@ohos-cpf/3rdloop 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +425 -0
- package/bin/3rdloop.mjs +48 -0
- package/lib/cli.js +741 -0
- package/lib/config.js +318 -0
- package/lib/doctor.js +114 -0
- package/lib/exit-codes.js +31 -0
- package/lib/opencode.js +156 -0
- package/lib/orch.js +427 -0
- package/lib/queries.js +264 -0
- package/lib/runner.js +979 -0
- package/lib/step.js +326 -0
- package/lib/ui.js +223 -0
- package/lib/workflow.js +291 -0
- package/lib/workflows.js +132 -0
- package/package.json +50 -0
- package/vendor/Server/Agent/SkillSelector/README.md +344 -0
- package/vendor/Server/Agent/SkillSelector/core/Agent.js +207 -0
- package/vendor/Server/Agent/SkillSelector/index.js +14 -0
- package/vendor/Server/Agent/SkillSelector/llm/llmClient.js +313 -0
- package/vendor/Server/Agent/SkillSelector/llm/prompts.js +161 -0
- package/vendor/Server/Agent/SkillSelector/llm/reactSteps.js +144 -0
- package/vendor/Server/Agent/SkillSelector/matcher/fuzzyMatcher.js +433 -0
- package/vendor/Server/Agent/SkillSelector/scanner/skillScanner.js +382 -0
- package/vendor/Server/Agent/SkillSelector/types.js +63 -0
- package/vendor/Server/Agent/SkillSelector/utils/actionWords.js +60 -0
- package/vendor/Server/Brain/AnalysisStrategies.js +422 -0
- package/vendor/Server/Brain/Brain.js +686 -0
- package/vendor/Server/Brain/DecompositionStrategies.js +621 -0
- package/vendor/Server/Brain/PlanPersistence.js +196 -0
- package/vendor/Server/Brain/SkillExecutor.js +251 -0
- package/vendor/Server/Brain/index.js +11 -0
- package/vendor/Server/CLI/cli.js +243 -0
- package/vendor/Server/CLI/opencode/index.js +804 -0
- package/vendor/Server/CLI/opencode.js +5 -0
- package/vendor/Server/DbUse/MessageArchive.js +61 -0
- package/vendor/Server/DbUse/StorageManager.js +107 -0
- package/vendor/Server/DbUse/adapters/BaseAdapter.js +94 -0
- package/vendor/Server/DbUse/adapters/FileAdapter.js +138 -0
- package/vendor/Server/DbUse/adapters/JsonAdapter.js +138 -0
- package/vendor/Server/DbUse/adapters/JsonlAdapter.js +114 -0
- package/vendor/Server/DbUse/adapters/SqliteAdapter.js +157 -0
- package/vendor/Server/DbUse/index.js +160 -0
- package/vendor/Server/DbUse/stores/SessionStore.js +279 -0
- package/vendor/Server/DbUse/stores/TaskExecutionStore.js +133 -0
- package/vendor/Server/DbUse/stores/TaskRegistryStore.js +262 -0
- package/vendor/Server/DbUse/stores/TaskStepStore.js +279 -0
- package/vendor/Server/FlexRunner/FlexRunner.js +1759 -0
- package/vendor/Server/FlexRunner/index.js +12 -0
- package/vendor/Server/Knowledge/KnowledgeImporter.js +523 -0
- package/vendor/Server/Knowledge/KnowledgeManager.js +341 -0
- package/vendor/Server/Knowledge/index.js +33 -0
- package/vendor/Server/LoopEngine/LoopEngine.js +1133 -0
- package/vendor/Server/LoopEngine/index.js +11 -0
- package/vendor/Server/Orchestrator/Orchestrator.js +1425 -0
- package/vendor/Server/Orchestrator/StepNode.js +312 -0
- package/vendor/Server/Orchestrator/index.js +13 -0
- package/vendor/Server/Routes/controllers/BrainController.js +241 -0
- package/vendor/Server/Routes/controllers/FlexRunnerController.js +1125 -0
- package/vendor/Server/Routes/controllers/HealthController.js +44 -0
- package/vendor/Server/Routes/controllers/KnowledgeImportController.js +355 -0
- package/vendor/Server/Routes/controllers/LoopEngineController.js +788 -0
- package/vendor/Server/Routes/controllers/OrchestratorController.js +911 -0
- package/vendor/Server/Routes/controllers/StatsController.js +57 -0
- package/vendor/Server/Routes/controllers/StreamController.js +67 -0
- package/vendor/Server/Routes/library/logger.js +179 -0
- package/vendor/Server/Routes/library/zipArchive.js +172 -0
- package/vendor/Server/Routes/router/Router.js +204 -0
- package/vendor/Server/Routes/routes/brain.js +47 -0
- package/vendor/Server/Routes/routes/flexrunner.js +72 -0
- package/vendor/Server/Routes/routes/health.js +28 -0
- package/vendor/Server/Routes/routes/index.js +57 -0
- package/vendor/Server/Routes/routes/knowledge.js +55 -0
- package/vendor/Server/Routes/routes/loopengine.js +58 -0
- package/vendor/Server/Routes/routes/orchestrator.js +61 -0
- package/vendor/Server/Routes/routes/registry.js +98 -0
- package/vendor/Server/Routes/routes/stats.js +23 -0
- package/vendor/Server/Routes/routes/stream.js +30 -0
- package/vendor/Server/Routes/server.js +202 -0
- package/vendor/Server/Routes/sse/SseHub.js +308 -0
- package/vendor/Server/Skills/acceptance-check/SKILL.md +174 -0
- package/vendor/Server/Skills/acceptance-check/references/PHASE1_ARTIFACT_COLLECTION.md +52 -0
- package/vendor/Server/Skills/acceptance-check/references/PHASE2_CRITERIA_EVALUATION.md +77 -0
- package/vendor/Server/Skills/arkts-code-check/SKILL.md +314 -0
- package/vendor/Server/Skills/arkts-code-check/references/CODE_CHECK_GUIDE.md +160 -0
- package/vendor/Server/Skills/arkts-code-check/references/FILE_TYPE_GUIDE.md +29 -0
- package/vendor/Server/Skills/arkts-code-check/references/PHASE1_INFO_COLLECTION.md +222 -0
- package/vendor/Server/Skills/arkts-code-check/references/REPORT_TEMPLATE.md +220 -0
- package/vendor/Server/Skills/arkts-library-compile-validate/SKILL.md +329 -0
- package/vendor/Server/Skills/arkts-library-compile-validate/scripts/build.ps1 +93 -0
- package/vendor/Server/Skills/arkts-library-compile-validate/scripts/code-linter.cjs +433 -0
- package/vendor/Server/Skills/arkts-library-compile-validate/scripts/migrate.cjs +851 -0
- package/vendor/Server/Skills/arkts-library-compile-validate/scripts/ohpm-switch.cjs +789 -0
- package/vendor/Server/Skills/arkts-library-demo-code/SKILL.md +291 -0
- package/vendor/Server/Skills/arkts-library-demo-code/references/API_SIGNATURE_CHECKS.md +68 -0
- package/vendor/Server/Skills/arkts-library-demo-code/references/BUILD_VALIDATION.md +184 -0
- package/vendor/Server/Skills/arkts-library-demo-code/references/CODE_STANDARDS.md +337 -0
- package/vendor/Server/Skills/arkts-library-demo-code/references/EXAMPLES.md +400 -0
- package/vendor/Server/Skills/arkts-library-demo-code/references/SYSTEM_API_LOOKUP.md +99 -0
- package/vendor/Server/Skills/arkts-library-demo-code/references/TEMPLATE.md +544 -0
- package/vendor/Server/Skills/arkts-library-demo-code/scripts/build.ps1 +93 -0
- package/vendor/Server/Skills/arkts-library-demo-code/scripts/code-linter.cjs +433 -0
- package/vendor/Server/Skills/arkts-library-demo-code/scripts/migrate.cjs +851 -0
- package/vendor/Server/Skills/arkts-library-demo-code/scripts/ohpm-switch.cjs +789 -0
- package/vendor/Server/Skills/arkts-library-demo-coverage/SKILL.md +174 -0
- package/vendor/Server/Skills/arkts-library-demo-scenario/SKILL.md +321 -0
- package/vendor/Server/Skills/arkts-library-demo-scenario/references/EXAMPLES.md +100 -0
- package/vendor/Server/Skills/arkts-library-demo-scenario/references/TEMPLATE.md +185 -0
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/SKILL.md +234 -0
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/assets/REPORT_TEMPLATE.md +103 -0
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/CHECK_DIMENSIONS.md +89 -0
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/COMPLIANCE_CHECKLIST.md +62 -0
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/KB_QUERY_GUIDE.md +108 -0
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/MCP_TOOL_DISCOVERY.md +124 -0
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/REPORT_TEMPLATE.md +90 -0
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/SCORING_FORMULA.md +57 -0
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/scripts/validate-skill.cjs +259 -0
- package/vendor/Server/Skills/arkts-library-interface-spec/SKILL.md +97 -0
- package/vendor/Server/Skills/arkts-library-memory-leak-check/SKILL.md +392 -0
- package/vendor/Server/Skills/arkts-library-source-clone/SKILL.md +113 -0
- package/vendor/Server/Skills/arkts-library-stability-check/SKILL.md +313 -0
- package/vendor/Server/Skills/arkts-library-stability-check/assets/REPORT_TEMPLATE.md +154 -0
- package/vendor/Server/Skills/arkts-library-stability-check/references/CHECKLIST.md +166 -0
- package/vendor/Server/Skills/arkts-library-stability-check/references/CODE_EXAMPLES.md +309 -0
- package/vendor/Server/Skills/arkts-library-stability-check/references/SCORING_RULES.md +90 -0
- package/vendor/Server/Skills/arkts-library-stability-check/scripts/validate-skill.cjs +282 -0
- package/vendor/Server/Skills/arkts-library-test-coverage-check/SKILL.md +361 -0
- package/vendor/Server/Skills/arkts-library-test-coverage-check/assets/REPORT_TEMPLATE.md +146 -0
- package/vendor/Server/Skills/arkts-library-test-coverage-check/references/CHECKLIST.md +253 -0
- package/vendor/Server/Skills/arkts-library-test-coverage-check/references/MCP_TOOL_USAGE.md +115 -0
- package/vendor/Server/Skills/arkts-library-test-coverage-check/scripts/validate-skill.cjs +263 -0
- package/vendor/Server/Skills/arkts-library-xts-code/SKILL.md +455 -0
- package/vendor/Server/Skills/arkts-library-xts-code/assets/report-template.md +60 -0
- package/vendor/Server/Skills/arkts-library-xts-code/references/ACCESS_MODIFIER_PRECHECK.md +76 -0
- package/vendor/Server/Skills/arkts-library-xts-code/references/BUILD_VERIFICATION.md +200 -0
- package/vendor/Server/Skills/arkts-library-xts-code/references/CODE_STANDARDS.md +519 -0
- package/vendor/Server/Skills/arkts-library-xts-code/references/SUBAGENT_PROMPT_TEMPLATE.md +276 -0
- package/vendor/Server/Skills/arkts-library-xts-code/references/SYSTEM_API_LOOKUP.md +93 -0
- package/vendor/Server/Skills/arkts-library-xts-code/references/XTS_TEMPLATE.md +767 -0
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/build.ps1 +93 -0
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/code-linter.cjs +433 -0
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/migrate.cjs +851 -0
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/ohpm-switch.cjs +789 -0
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/precheck-access-modifiers.cjs +221 -0
- package/vendor/Server/Skills/arkts-library-xts-code-fix/SKILL.md +229 -0
- package/vendor/Server/Skills/arkts-library-xts-coverage/SKILL.md +97 -0
- package/vendor/Server/Skills/arkts-library-xts-doc/SKILL.md +194 -0
- package/vendor/Server/Skills/arkts-library-xts-doc/references/EXAMPLES.md +576 -0
- package/vendor/Server/Skills/arkts-library-xts-doc/references/TEMPLATE.md +575 -0
- package/vendor/Server/Skills/arkts-library-xts-doc/references/TESTABILITY_GUIDE.md +182 -0
- package/vendor/Server/Skills/arkts-library-xts-execution/SKILL.md +491 -0
- package/vendor/Server/Skills/arkts-library-xts-execution/references/error-fixing-examples.md +217 -0
- package/vendor/Server/Skills/arkts-library-xts-execution/scripts/build.ps1 +93 -0
- package/vendor/Server/Skills/arkts-library-xts-execution/scripts/code-linter.cjs +433 -0
- package/vendor/Server/Skills/arkts-library-xts-execution/scripts/migrate.cjs +851 -0
- package/vendor/Server/Skills/arkts-library-xts-execution/scripts/ohpm-switch.cjs +789 -0
- package/vendor/Server/Skills/flutter-code-check/SKILL.md +299 -0
- package/vendor/Server/Skills/flutter-code-check/assets/OUTPUT_TEMPLATE.md +312 -0
- package/vendor/Server/Skills/flutter-code-check/references/CHECKLIST.md +190 -0
- package/vendor/Server/Skills/flutter-code-check/references/PLATFORMS.md +134 -0
- package/vendor/Server/Skills/flutter-code-check/scripts/validate-skill.cjs +259 -0
- package/vendor/Server/Skills/flutter-interface/README.md +75 -0
- package/vendor/Server/Skills/flutter-interface/SKILL.md +291 -0
- package/vendor/Server/Skills/flutter-interface/references/EXAMPLES.md +336 -0
- package/vendor/Server/Skills/flutter-interface/references/GIT_CLONE_GUIDE.md +190 -0
- package/vendor/Server/Skills/flutter-interface/references/SCRIPT_REFERENCE.md +258 -0
- package/vendor/Server/Skills/flutter-interface/references/TEMPLATE.md +254 -0
- package/vendor/Server/Skills/flutter-library-consistency-check/SKILL.md +518 -0
- package/vendor/Server/Skills/flutter-library-consistency-check/references/CHECKLIST.md +382 -0
- package/vendor/Server/Skills/flutter-library-consistency-check/references/FUNCTION_COMPARISON_GUIDE.md +342 -0
- package/vendor/Server/Skills/flutter-library-consistency-check/references/PLATFORM_LIMITATION_GUIDE.md +71 -0
- package/vendor/Server/Skills/flutter-library-documentation-quality-check/SKILL.md +519 -0
- package/vendor/Server/Skills/flutter-library-documentation-quality-check/references/CHECKLIST.md +407 -0
- package/vendor/Server/Skills/flutter-library-memory-leak-check/SKILL.md +653 -0
- package/vendor/Server/Skills/flutter-library-memory-leak-check/references/CHECKLIST.md +397 -0
- package/vendor/Server/Skills/flutter-library-stability-check/SKILL.md +745 -0
- package/vendor/Server/Skills/flutter-library-stability-check/references/CHECKLIST.md +721 -0
- package/vendor/Server/Skills/flutter-library-test-coverage-check/SKILL.md +414 -0
- package/vendor/Server/Skills/flutter-library-test-coverage-check/assets/REPORT_TEMPLATE.md +150 -0
- package/vendor/Server/Skills/flutter-library-test-coverage-check/references/CHECKLIST.md +304 -0
- package/vendor/Server/Skills/flutter-library-test-coverage-check/references/SCORING_RULES.md +265 -0
- package/vendor/Server/Skills/flutter-library-test-coverage-check/references/SCRIPT_USAGE.md +286 -0
- package/vendor/Server/Skills/knowledge-import/SKILL.md +383 -0
- package/vendor/Server/Skills/knowledge-import/references/MCP_TOOL_USAGE.md +165 -0
- package/vendor/Server/Skills/knowledge-import/references/SKILL_LOCATOR_GUIDE.md +91 -0
- package/vendor/Server/Skills/knowledge-import/references/SKILL_OPTIMIZATION_GUIDE.md +127 -0
- package/vendor/Server/Skills/ohos-lib-pr-push/SKILL.md +301 -0
- package/vendor/Server/Skills/ohos-lib-pr-push/assets/PR_ISSUE_TEMPLATE.md +105 -0
- package/vendor/Server/Skills/ohos-lib-pr-push/references/GITCODE_API.md +127 -0
- package/vendor/Server/Skills/ohos-lib-pr-push/scripts/gitcode-api.cjs +208 -0
- package/vendor/Server/Skills/rn-code-check/SKILL.md +321 -0
- package/vendor/Server/Skills/rn-code-check/references/API-GUIDE.md +235 -0
- package/vendor/Server/Skills/rn-code-check/references/CHECKLIST.md +189 -0
- package/vendor/Server/Skills/rn-code-check/references/REPORT-TEMPLATE.md +247 -0
- package/vendor/Server/Skills/rn-lib-add-example/SKILL.md +198 -0
- package/vendor/Server/Skills/rn-lib-add-example/references/APP_RENAME_GUIDE.md +40 -0
- package/vendor/Server/Skills/rn-lib-add-example/references/SHELL_ADAPTATION_CHECKLIST.md +78 -0
- package/vendor/Server/Skills/rn-lib-add-example/references/TEMPLATE_REPO_GUIDE.md +70 -0
- package/vendor/Server/Skills/rn-lib-add-example/references/VERIFICATION_GUIDE.md +47 -0
- package/vendor/Server/Skills/rn-lib-add-example/scripts/create-example.cjs +252 -0
- package/vendor/Server/Skills/rn-lib-update-doc/SKILL.md +176 -0
- package/vendor/Server/Skills/rn-lib-update-doc/config.json +5 -0
- package/vendor/Server/Skills/rn-lib-update-doc/references/changelog-template.md +35 -0
- package/vendor/Server/Skills/rn-lib-update-doc/references/format-diff.md +137 -0
- package/vendor/Server/Skills/rn-lib-update-doc/references/link-registry.json +33 -0
- package/vendor/Server/Skills/rn-lib-update-doc/references/model-0.4.2-overview.md +40 -0
- package/vendor/Server/Skills/rn-lib-update-doc/references/model-0.4.2.md +429 -0
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/detect-readme-format.cjs +105 -0
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/find-usage-doc.cjs +90 -0
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/link-verify.cjs +213 -0
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/normalize-changelog.cjs +73 -0
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/normalize-package-meta.cjs +258 -0
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/normalize-readme-links.cjs +341 -0
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/resolve-usage-docs.cjs +67 -0
- package/vendor/Server/Skills/rn-library-consistency-check/SKILL.md +299 -0
- package/vendor/Server/Skills/rn-library-consistency-check/assets/REPORT_TEMPLATE.md +293 -0
- package/vendor/Server/Skills/rn-library-consistency-check/references/ARKTS_COMPONENT_CHECK_GUIDE.md +857 -0
- package/vendor/Server/Skills/rn-library-consistency-check/references/ARKTS_TURBOMODULE_CHECK_GUIDE.md +856 -0
- package/vendor/Server/Skills/rn-library-consistency-check/references/CHECKLIST.md +157 -0
- package/vendor/Server/Skills/rn-library-consistency-check/references/CPP_COMPONENT_CHECK_GUIDE.md +801 -0
- package/vendor/Server/Skills/rn-library-consistency-check/references/CPP_TURBOMODULE_CHECK_GUIDE.md +684 -0
- package/vendor/Server/Skills/rn-library-consistency-check/references/FUNCTION_COMPARISON_GUIDE.md +233 -0
- package/vendor/Server/Skills/rn-library-consistency-check/references/NATIVE_COMPONENT_IDENTIFICATION.md +1373 -0
- package/vendor/Server/Skills/rn-library-consistency-check/references/SCORING_STANDARD.md +220 -0
- package/vendor/Server/Skills/rn-library-consistency-check/scripts/validate-skill.py +245 -0
- package/vendor/Server/Skills/rn-library-documentation-quality-check/SKILL.md +263 -0
- package/vendor/Server/Skills/rn-library-documentation-quality-check/assets/MODEL.md +414 -0
- package/vendor/Server/Skills/rn-library-documentation-quality-check/assets/MODEL_en.md +413 -0
- package/vendor/Server/Skills/rn-library-documentation-quality-check/assets/REPORT_TEMPLATE.md +311 -0
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/CHECK_CHECKLIST.md +355 -0
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/CROSS_VALIDATION_GUIDE.md +115 -0
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/DOC_COLLECTION_GUIDE.md +139 -0
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/EXAMPLES.md +586 -0
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/GOTCHAS.md +57 -0
- package/vendor/Server/Skills/rn-library-documentation-quality-check/scripts/validate-skill.py +259 -0
- package/vendor/Server/Skills/rn-library-interface-analyzer/SKILL.md +301 -0
- package/vendor/Server/Skills/rn-library-interface-analyzer/assets/REPORT_TEMPLATE.md +148 -0
- package/vendor/Server/Skills/rn-library-interface-analyzer/references/DOC_ANNOTATION_GUIDE.md +118 -0
- package/vendor/Server/Skills/rn-library-interface-analyzer/references/SCRIPT_USAGE_GUIDE.md +168 -0
- package/vendor/Server/Skills/rn-library-interface-analyzer/references/URL_PARSING_RULES.md +176 -0
- package/vendor/Server/Skills/rn-library-issue-generalizer/SKILL.md +274 -0
- package/vendor/Server/Skills/rn-library-issue-generalizer/assets/case-template.md +45 -0
- package/vendor/Server/Skills/rn-library-issue-generalizer/assets/rule-template.md +25 -0
- package/vendor/Server/Skills/rn-library-issue-generalizer/references/PR_FETCH_GUIDE.md +61 -0
- package/vendor/Server/Skills/rn-library-issue-generalizer/references/RULE_TEMPLATE_GUIDE.md +165 -0
- package/vendor/Server/Skills/rn-library-issue-generalizer/scripts/fetch-pr-info.py +239 -0
- package/vendor/Server/Skills/rn-library-known-issue-check/SKILL.md +263 -0
- package/vendor/Server/Skills/rn-library-known-issue-check/assets/REPORT_TEMPLATE.md +96 -0
- package/vendor/Server/Skills/rn-library-known-issue-check/references/COMPLIANCE_CHECKLIST.md +58 -0
- package/vendor/Server/Skills/rn-library-known-issue-check/references/INSPECTION_GUIDE.md +99 -0
- package/vendor/Server/Skills/rn-library-known-issue-check/references/PRESCREEN_GUIDE.md +64 -0
- package/vendor/Server/Skills/rn-library-known-issue-check/references/SOURCE_PREP_GUIDE.md +75 -0
- package/vendor/Server/Skills/rn-library-known-issue-check/scripts/validate-known-issue-report.py +164 -0
- package/vendor/Server/Skills/rn-library-memory-leak-check/SKILL.md +339 -0
- package/vendor/Server/Skills/rn-library-memory-leak-check/assets/REPORT_TEMPLATE.md +83 -0
- package/vendor/Server/Skills/rn-library-memory-leak-check/references/CHECKLIST.md +859 -0
- package/vendor/Server/Skills/rn-library-memory-leak-check/references/HARMONY_CODE_PATTERNS.md +122 -0
- package/vendor/Server/Skills/rn-library-memory-leak-check/scripts/scan_harmony_code.py +279 -0
- package/vendor/Server/Skills/rn-library-stability-check/SKILL.md +273 -0
- package/vendor/Server/Skills/rn-library-stability-check/assets/REPORT_TEMPLATE.md +129 -0
- package/vendor/Server/Skills/rn-library-stability-check/references/CHECKLIST.md +581 -0
- package/vendor/Server/Skills/rn-library-stability-check/references/SCORING_RULES.md +138 -0
- package/vendor/Server/Skills/rn-library-stability-check/scripts/scan-harmony-code.py +168 -0
- package/vendor/Server/Skills/rn-library-test-coverage-check/SKILL.md +506 -0
- package/vendor/Server/Skills/rn-library-test-coverage-check/references/CHECKLIST.md +280 -0
- package/vendor/Server/Skills/rn-library-test-coverage-check/references/DEMO_LOCATION.md +221 -0
- package/vendor/Server/Skills/rn-library-test-coverage-check/references/REPORT_TEMPLATE.md +209 -0
- package/vendor/Server/Skills/rn-library-test-coverage-check/references/SCRIPT_USAGE.md +325 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/SKILL.md +279 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/assets/TEST_FILE_TEMPLATES.md +404 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/BUILD_TROUBLESHOOTING.md +185 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/BUILD_WORKFLOW.md +265 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/COMMON_CONFIG.md +189 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/CONFIG_GUIDE.md +203 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/COVERAGE_ANALYZER.md +147 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/DESIGN_DOC_GUIDE.md +148 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/GENERATION_FLOW.md +165 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/GENERATION_STRATEGY.md +195 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/HARMONY_SCANNER.md +249 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/JEST_FRAMEWORK.md +235 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/PLATFORM_COMPAT.md +161 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/RN_TEST_PATTERNS.md +413 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/SOURCE_PARSER.md +235 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/TEST_CONVENTIONS.md +245 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/TROUBLESHOOTING.md +282 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/USAGE_GUIDE.md +251 -0
- package/vendor/Server/Skills/rnoh-cptf-api-test/SKILL.md +469 -0
- package/vendor/Server/Skills/rnoh-cptf-api-test/assets/CPTF_TEST_TEMPLATE.md +310 -0
- package/vendor/Server/Skills/rnoh-cptf-api-test/assets/DEMO_PAGE_TEMPLATE.md +303 -0
- package/vendor/Server/Skills/rnoh-cptf-api-test/references/CPTF_TEST_GENERATION_GUIDE.md +421 -0
- package/vendor/Server/Skills/rnoh-cptf-api-test/references/DEMO_GENERATION_GUIDE.md +358 -0
- package/vendor/Server/Skills/rnoh-cptf-api-test/references/QUALITY_CHECKLIST.md +114 -0
- package/vendor/Server/Skills/rnoh-cptf-api-test/references/SPEC_PARSING_GUIDE.md +274 -0
- package/vendor/Server/Skills/rnoh-cptf-api-test/scripts/validate-rnoh-cptf-api-test.sh +185 -0
- package/vendor/Server/Skills/rnoh-cptf-demo-test/SKILL.md +191 -0
- package/vendor/Server/Skills/rnoh-cptf-demo-test/assets/TEST_TEMPLATE.md +216 -0
- package/vendor/Server/Skills/rnoh-cptf-demo-test/references/CPTF_SETUP.md +107 -0
- package/vendor/Server/Skills/rnoh-cptf-demo-test/references/DEMO_ANALYSIS.md +120 -0
- package/vendor/Server/Skills/rnoh-cptf-demo-test/scripts/validate-rnoh-cptf-test.sh +108 -0
- package/vendor/Server/Skills/rnoh-cptf-test-run/SKILL.md +237 -0
- package/vendor/Server/Skills/rnoh-cptf-test-run/references/DEBUG_PLAYBOOK.md +261 -0
- package/vendor/Server/Skills/rnoh-cptf-test-run/scripts/validate-run-env.sh +112 -0
- package/vendor/Server/Skills/rnoh-lib-code-adapt/SKILL.md +498 -0
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/adapt-checklist.md +270 -0
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/api-migration-checklist.md +164 -0
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/common-compile-errors.md +556 -0
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/deveco-cli-tools.md +459 -0
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/edge-cases.md +65 -0
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/har-tgz-build.md +512 -0
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/version-compat-matrix.md +132 -0
- package/vendor/Server/Skills/rnoh-lib-code-adapt/scripts/auto-integrate.sh +424 -0
- package/vendor/Server/Skills/rnoh-lib-demo-coverage/SKILL.md +137 -0
- package/vendor/Server/Skills/rnoh-lib-demo-create/SKILL.md +306 -0
- package/vendor/Server/Skills/rnoh-lib-demo-create/assets/DEMO_PAGE_TEMPLATE.md +485 -0
- package/vendor/Server/Skills/rnoh-lib-demo-create/assets/INDEX_TEMPLATE.md +172 -0
- package/vendor/Server/Skills/rnoh-lib-demo-create/references/DEMO_CODE_RULES.md +422 -0
- package/vendor/Server/Skills/rnoh-lib-demo-create/references/QUALITY_CHECKLIST.md +95 -0
- package/vendor/Server/Skills/rnoh-lib-demo-create/references/SOURCE_EXPLORATION.md +169 -0
- package/vendor/Server/Skills/rnoh-lib-demo-doc/SKILL.md +554 -0
- package/vendor/Server/Skills/rnoh-lib-demo-doc/assets/DEMO_DOC_TEMPLATE.md +106 -0
- package/vendor/Server/Skills/rnoh-lib-demo-doc/references/COVERAGE_INCREMENTAL.md +216 -0
- package/vendor/Server/Skills/rnoh-lib-demo-doc/references/DEMO_DESIGN_RULES.md +413 -0
- package/vendor/Server/Skills/rnoh-lib-demo-doc/references/OUTPUT_FORMAT.md +269 -0
- package/vendor/Server/Skills/rnoh-lib-demo-doc/references/QUALITY_CHECKLIST.md +98 -0
- package/vendor/Server/Skills/rnoh-lib-func-test/SKILL.md +337 -0
- package/vendor/Server/Skills/rnoh-lib-rnt-search/SKILL.md +722 -0
- package/vendor/Server/Skills/rnoh-lib-rnt-search/assets/PORT_REPORT_TEMPLATE.md +219 -0
- package/vendor/Server/Skills/rnoh-lib-rnt-search/references/DEMO_PORTING_GUIDE.md +345 -0
- package/vendor/Server/Skills/rnoh-lib-rnt-search/references/PORT_VERIFICATION.md +269 -0
- package/vendor/Server/Skills/rnoh-lib-rnt-search/references/RNT_PROJECT_STRUCTURE.md +173 -0
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/analyze-demo-deps.cjs +267 -0
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/detect-rnoh-version.cjs +174 -0
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/find-rnt-demo.sh +111 -0
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/port-demo.sh +186 -0
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/read-lib-meta.cjs +150 -0
- package/vendor/Server/Skills/rnoh-lib-test-align/SKILL.md +296 -0
- package/vendor/Server/Skills/rnoh-lib-test-align/references/jest-troubleshooting.md +371 -0
- package/vendor/Server/Skills/rnoh-lib-test-align/references/port-test-demo-guide.md +212 -0
- package/vendor/Server/Skills/rnoh-lib-test-align/references/runtime-troubleshooting.md +345 -0
- package/vendor/Server/Skills/rnoh-lib-test-align/references/unit-test-template.md +223 -0
- package/vendor/Server/Skills/rnoh-lib-test-align/scripts/port-test-demo.sh +1053 -0
- package/vendor/Server/Skills/rnoh-lib-version-diff/SKILL.md +255 -0
- package/vendor/Server/Skills/rnoh-lib-version-diff/references/OHOS_ADAPTATION.md +77 -0
- package/vendor/Server/Skills/rnoh-lib-version-diff/references/OHOS_API_LOOKUP.md +224 -0
- package/vendor/Server/Skills/rnoh-lib-version-diff/references/script-reference.md +174 -0
- package/vendor/Server/Skills/rnoh-lib-version-diff/scripts/detect-upstream-version.js +967 -0
- package/vendor/Server/Skills/rnoh-lib-version-diff/scripts/generate-diff.js +1798 -0
- package/vendor/Server/Skills/rnoh-lib-version-diff/scripts/package.json +5 -0
- package/vendor/Server/Skills/rnoh-lib-version-diff/templates/report-template.md +137 -0
- package/vendor/Server/Skills/rnoh-lib-xts-coverage/SKILL.md +145 -0
- package/vendor/Server/Skills/skill-generator/SKILL.md +365 -0
- package/vendor/Server/Skills/skill-generator/assets/SKILL_TEMPLATE.md +183 -0
- package/vendor/Server/Skills/skill-generator/references/COMPLIANCE_CHECKLIST.md +82 -0
- package/vendor/Server/Skills/skill-generator/references/KB_QUERY_GUIDE.md +110 -0
- package/vendor/Server/Skills/skill-generator/references/MCP_TOOL_DISCOVERY.md +122 -0
- package/vendor/Server/Skills/skill-generator/references/SKILL_SPEC.md +121 -0
- package/vendor/Server/Skills/skill-generator/scripts/validate-skill.cjs +259 -0
- package/vendor/Server/Skills/task-analysis/SKILL.md +234 -0
- package/vendor/Server/Skills/task-analysis/assets/OUTPUT_EXAMPLES.md +160 -0
- package/vendor/Server/Skills/task-analysis/references/ACCEPTANCE_CRITERIA_GUIDE.md +190 -0
- package/vendor/Server/Skills/task-analysis/references/ANALYSIS_SCHEMA.md +224 -0
- package/vendor/Server/Skills/task-analysis/references/INTEGRATION_CONTEXT.md +162 -0
- package/vendor/Server/Skills/task-analysis/references/LESSONS_LEARNED.md +55 -0
- package/vendor/Server/Skills/task-analysis/references/REPLAN_CONTEXT_GUIDE.md +126 -0
- package/vendor/Server/Skills/task-analysis/scripts/validate-analysis-output.sh +256 -0
- package/vendor/Server/Skills/task-decomposition/SKILL.md +529 -0
- package/vendor/Server/Skills/task-decomposition/assets/OUTPUT_EXAMPLES.md +451 -0
- package/vendor/Server/Skills/task-decomposition/references/ACCEPTANCE_CRITERIA_GUIDE.md +179 -0
- package/vendor/Server/Skills/task-decomposition/references/DEPENDENCY_GRAPH_GUIDE.md +152 -0
- package/vendor/Server/Skills/task-decomposition/references/INTEGRATION_CONTEXT.md +175 -0
- package/vendor/Server/Skills/task-decomposition/references/REPLAN_CONTEXT_GUIDE.md +195 -0
- package/vendor/Server/Skills/task-decomposition/references/TASK_DECOMPOSITION_TEMPLATES.md +226 -0
- package/vendor/Server/Skills/task-decomposition/scripts/list-available-skills.cjs +263 -0
- package/vendor/Server/Skills/task-decomposition/scripts/skill-blacklist.json +29 -0
- package/vendor/Server/Skills/task-decomposition/scripts/validate-decomposition-output.cjs +376 -0
- package/vendor/Server/Skills/task-decomposition/scripts/validate-param-consistency.cjs +259 -0
- package/vendor/Server/Skills/task-decomposition/scripts/validate-specified-skills.cjs +216 -0
- package/vendor/Server/Skills/task-decomposition/scripts/validate-step-graph.cjs +425 -0
- package/vendor/Server/Skills/tpc-cpp-check/SKILL.md +427 -0
- package/vendor/Server/Skills/tpc-cpp-check/references/CHECKLIST.md +214 -0
- package/vendor/Server/Skills/tpc-cpp-check/references/HPKBUILD_GUIDE.md +235 -0
- package/vendor/Server/Skills/tpc-cpp-check/references/REPORT_TEMPLATE.md +250 -0
- package/vendor/Server/TestCheck/TestCheck.js +775 -0
- package/vendor/Server/TestCheck/index.js +11 -0
- package/vendor/Server/library/McpToolGuide.js +280 -0
- package/vendor/Server/library/StatsService.js +127 -0
- package/vendor/Server/library/cstTime.js +16 -0
- package/vendor/Server/package.json +17 -0
- package/vendor/VERSION +3 -0
- package/workflows/pr-check.mjs +106 -0
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
# MCP 工具调用指南
|
|
2
|
+
|
|
3
|
+
> 知识导入过程中如何调用 MCP Gateway 提供的知识库工具。
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 0. MCP Gateway 可用性验证(前置步骤)
|
|
8
|
+
|
|
9
|
+
在执行任何知识库操作前,**必须先验证 MCP Gateway 和所需工具可用**:
|
|
10
|
+
|
|
11
|
+
### 0.1 健康检查
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
工具: gateway_health
|
|
15
|
+
参数: 无
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
检查返回的 `totalTools` > 0 且 `downstream` 中各 Server 状态为 `connected`。
|
|
19
|
+
|
|
20
|
+
### 0.2 工具列表确认
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
工具: gateway_list_tools
|
|
24
|
+
参数: 无
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
在返回的工具列表中确认以下工具存在:
|
|
28
|
+
- `kb_add_document`(builtin)— 知识库写入
|
|
29
|
+
- `kb_search`(builtin)— 知识库搜索验证
|
|
30
|
+
- `kb-server_*`(downstream,可选)— 远程知识库
|
|
31
|
+
|
|
32
|
+
> ⚠️ **若 `kb_add_document` 不在工具列表中**:
|
|
33
|
+
> - 知识类导入标记为跳过
|
|
34
|
+
> - 在结果文件中记录"MCP Gateway 未配置或 kb_add_document 工具未注册"
|
|
35
|
+
> - 提醒用户检查 `~/.config/opencode/opencode.json` 中是否配置了 `mcp-gateway`
|
|
36
|
+
> - SKILL类导入(如有)继续执行
|
|
37
|
+
|
|
38
|
+
### 0.3 MCP Gateway 配置方法
|
|
39
|
+
|
|
40
|
+
若 MCP Gateway 未配置,需在 `~/.config/opencode/opencode.json` 的 `mcp` 节点中添加:
|
|
41
|
+
|
|
42
|
+
```json
|
|
43
|
+
"mcp-gateway": {
|
|
44
|
+
"command": [
|
|
45
|
+
"node",
|
|
46
|
+
"/Users/lalhan/Desktop/3rdLibraryLoop/3rdLibraryLoop/MCP/src/index.js",
|
|
47
|
+
"--config",
|
|
48
|
+
"/Users/lalhan/Desktop/3rdLibraryLoop/3rdLibraryLoop/MCP/config.json"
|
|
49
|
+
],
|
|
50
|
+
"enabled": true,
|
|
51
|
+
"type": "local"
|
|
52
|
+
}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
配置后需**重启 opencode** 才能让 AI 会话发现并调用 MCP 工具。
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## 1. 可用工具概览
|
|
60
|
+
|
|
61
|
+
知识导入过程中会用到以下 MCP 工具:
|
|
62
|
+
|
|
63
|
+
| 工具名 | 来源 | 用途 |
|
|
64
|
+
|--------|------|------|
|
|
65
|
+
| `kb_add_document` | builtin (KBToolProvider) | 向本地知识库引擎添加文档 |
|
|
66
|
+
| `kb_search` | builtin (KBToolProvider) | 搜索本地知识库(验证导入效果) |
|
|
67
|
+
| `kb-server_*` | downstream (远程知识库) | 远程知识库的增删查工具 |
|
|
68
|
+
| `gateway_list_tools` | builtin (Gateway) | 列出所有工具(确认工具名) |
|
|
69
|
+
| `gateway_health` | builtin (Gateway) | 健康检查(Gateway 状态) |
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## 2. 工具调用方式
|
|
74
|
+
|
|
75
|
+
opencode CLI 执行 SKILL 时,AI 已通过 MCP 协议获取所有工具定义。
|
|
76
|
+
SKILL 指令中只需说明**调用哪个工具、传什么参数**,AI 会自动完成调用。
|
|
77
|
+
|
|
78
|
+
### 2.1 调用 kb_add_document
|
|
79
|
+
|
|
80
|
+
```
|
|
81
|
+
工具: kb_add_document
|
|
82
|
+
参数:
|
|
83
|
+
documentId (string, 必填): 文档唯一标识,如 "experiences/react-native-track-player-upstream-diff"。禁止使用知识条目ID(kn_xxx),应使用知识内容的简明概括作为文档名
|
|
84
|
+
catalog (string, 必填): 所属目录,如 "best-practices"
|
|
85
|
+
title (string, 选填): 文档标题
|
|
86
|
+
content (string, 必填): 文档 Markdown 原文(必须结构化整理,非原始文档)
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
> ⚠️ content 参数必须按"问题现象/解决方案/结果"结构整理,禁止传入原始经验文档。
|
|
90
|
+
|
|
91
|
+
### 2.2 调用 kb_search(导入验证)
|
|
92
|
+
|
|
93
|
+
```
|
|
94
|
+
工具: kb_search
|
|
95
|
+
参数:
|
|
96
|
+
query (string, 必填): 搜索关键词
|
|
97
|
+
catalog (string, 选填): 限定目录,如 "best-practices"
|
|
98
|
+
limit (number, 选填): 返回数量上限,默认 10
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### 2.3 调用 kb-server 远程工具
|
|
102
|
+
|
|
103
|
+
先通过 `gateway_list_tools` 确认远程知识库的实际工具名(前缀为 `kb-server_`),然后调用:
|
|
104
|
+
|
|
105
|
+
```
|
|
106
|
+
工具: kb-server_create_entry (实际名称以 gateway_list_tools 返回为准)
|
|
107
|
+
参数:
|
|
108
|
+
title: 经验文档标题
|
|
109
|
+
content: 知识类内容
|
|
110
|
+
tags: ["经验沉淀", "相关技术领域"]
|
|
111
|
+
source: "knowledge-import"
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
> ⚠️ 远程知识库工具可能不支持 create 操作(测试阶段可能只读)。调用失败时记录警告,不影响整体导入流程。
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## 3. 目录(catalog)说明
|
|
119
|
+
|
|
120
|
+
本地知识库引擎支持以下目录:
|
|
121
|
+
|
|
122
|
+
| 目录ID | 用途 | 适用场景 |
|
|
123
|
+
|--------|------|----------|
|
|
124
|
+
| `guides` | 指南文档 | 操作指南、使用教程 |
|
|
125
|
+
| `references` | 参考文档 | API参考、技术规格 |
|
|
126
|
+
| `best-practices` | 最佳实践 | 经验总结、最佳实践、踩坑记录 |
|
|
127
|
+
| `faqs` | 常见问题 | FAQ、疑难解答 |
|
|
128
|
+
| `releases` | 发布说明 | 版本发布、变更记录 |
|
|
129
|
+
| `roadmap` | 路线图 | 规划、路线图 |
|
|
130
|
+
|
|
131
|
+
知识导入默认使用 `best-practices`,因为经验沉淀本质是最佳实践。
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
## 4. 知识库内容结构化格式
|
|
136
|
+
|
|
137
|
+
导入知识库的 content 必须按以下结构整理,禁止传入原始经验文档:
|
|
138
|
+
|
|
139
|
+
```markdown
|
|
140
|
+
# {经验标题}
|
|
141
|
+
|
|
142
|
+
## {条目1标题}
|
|
143
|
+
|
|
144
|
+
### 问题现象
|
|
145
|
+
{描述遇到的具体问题、困惑或错误表现}
|
|
146
|
+
|
|
147
|
+
### 解决方案
|
|
148
|
+
{描述如何解决该问题,包括具体方法、命令、配置等}
|
|
149
|
+
|
|
150
|
+
### 结果
|
|
151
|
+
{描述解决后的效果、验证方式或可复用的结论}
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## {条目2标题}
|
|
156
|
+
|
|
157
|
+
### 问题现象
|
|
158
|
+
...
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
**整理规则**:
|
|
162
|
+
- 将原始文档中的"关键发现""踩坑记录""可复用建议"拆解为独立条目
|
|
163
|
+
- 每个条目聚焦一个问题,按"问题现象 → 解决方案 → 结果"三段式重组
|
|
164
|
+
- 去除与问题无直接关联的背景描述,保留可复用的核心信息
|
|
165
|
+
- 多个独立问题用 `---` 分隔
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# SKILL 定位指南
|
|
2
|
+
|
|
3
|
+
> 当经验条目没有关联的 skillDir 时,如何判断是否需要定位 SKILL 以及如何定位。
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. 定位流程
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
Step 1: 检查知识条目的 skillDir 字段
|
|
11
|
+
├── 非null → 直接使用该路径
|
|
12
|
+
└── null → 进入 Step 2
|
|
13
|
+
|
|
14
|
+
Step 2: 检查经验内容是否显式提及SKILL
|
|
15
|
+
├── 经验中直接提到SKILL名称或步骤名 → 进入 Step 3
|
|
16
|
+
└── 未显式提及 → 停止定位,所有内容归为知识类
|
|
17
|
+
|
|
18
|
+
Step 3: 精确定位(非语义推断)
|
|
19
|
+
├── 在经验内容中提取显式提及的SKILL名称 → 直接关联
|
|
20
|
+
├── 提取显式提及的步骤名/流程环节 → 搜索包含该步骤的SKILL
|
|
21
|
+
└── 仍无法精确匹配 → 停止定位,内容归为知识类
|
|
22
|
+
|
|
23
|
+
Step 4: 确认关联
|
|
24
|
+
├── 精确匹配到 → 使用该SKILL目录
|
|
25
|
+
└── 未精确匹配到 → 不进行SKILL修改,内容归为知识类
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
> ⚠️ **核心原则**:SKILL定位基于**显式证据**(经验中明确提到的SKILL名/步骤名),而非主题相关性或语义推断。主题相关不等于流程缺陷。
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## 2. 显式提及的判断标准
|
|
33
|
+
|
|
34
|
+
经验内容满足以下任一条件才算"显式提及SKILL":
|
|
35
|
+
|
|
36
|
+
| 判断条件 | 示例 | 说明 |
|
|
37
|
+
|----------|------|------|
|
|
38
|
+
| 直接提到SKILL的name | "TPCXTSCodeSkill应增加..." | 明确指向特定SKILL |
|
|
39
|
+
| 直接提到SKILL的具体步骤 | "阶段零的探查步骤遗漏了..." | 指向特定流程环节 |
|
|
40
|
+
| 直接提到SKILL的检查项 | "应增加对XX的检查" | 指向特定检查环节 |
|
|
41
|
+
|
|
42
|
+
**不算显式提及的情况**(以下不触发SKILL定位):
|
|
43
|
+
- 经验提到某技术领域(如"测试""覆盖率")但未指向具体SKILL
|
|
44
|
+
- 经验提到某工具行为(如"devecocli docs search不稳定")但未指向SKILL流程
|
|
45
|
+
- 经验提到最佳实践(如"版本标注应同时...")但未指向SKILL步骤缺陷
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## 3. 关键词提取(仅用于已确认需要定位时)
|
|
50
|
+
|
|
51
|
+
当 Step 2 确认经验**显式提及了SKILL**后,提取关键词用于精确定位:
|
|
52
|
+
|
|
53
|
+
### 3.1 从经验内容提取
|
|
54
|
+
|
|
55
|
+
- 显式提到的SKILL名称(如 "TPCXTSCodeSkill")
|
|
56
|
+
- 显式提到的步骤名(如 "阶段零""步骤1")
|
|
57
|
+
- 显式提到的检查项或流程环节
|
|
58
|
+
|
|
59
|
+
### 3.2 从 taskDescription 提取(辅助)
|
|
60
|
+
|
|
61
|
+
- 原始任务描述中的操作动词和领域名词,用于辅助确认定位准确性
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## 4. 匹配规则
|
|
66
|
+
|
|
67
|
+
### 4.1 精确名称匹配
|
|
68
|
+
|
|
69
|
+
经验内容直接提及某个SKILL的name → 直接关联。
|
|
70
|
+
|
|
71
|
+
### 4.2 步骤名匹配
|
|
72
|
+
|
|
73
|
+
经验内容提及某个步骤名/流程环节 → 在所有SKILL中搜索包含该步骤的SKILL。
|
|
74
|
+
|
|
75
|
+
> ⚠️ **禁止使用关键词重叠匹配**:即使经验关键词与某SKILL的description有大量重叠,只要经验未显式提及该SKILL的名称或步骤,就不进行关联。
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## 5. 现有SKILL分类参考
|
|
80
|
+
|
|
81
|
+
| 分类 | SKILL | 典型关键词 |
|
|
82
|
+
|------|-------|-----------|
|
|
83
|
+
| task-planning | task-analysis, task-decomposition | 任务分析、拆解、验收标准 |
|
|
84
|
+
| meta-skill | skill-generator, knowledge-import | SKILL生成、知识导入、自我迭代 |
|
|
85
|
+
| 代码检视 | arkts-code-check, arkts-library-*-check | 代码质量、内存泄漏、稳定性、覆盖率 |
|
|
86
|
+
| 原生库 Demo | arkts-library-demo-* | Demo代码、覆盖率、场景 |
|
|
87
|
+
| 原生库 XTS | arkts-library-xts-* | XTS测试、用例、执行 |
|
|
88
|
+
| 接口规范 | arkts-library-interface-spec | 接口提取、规格 |
|
|
89
|
+
| 验收 | acceptance-check | 准出审核、验收测试 |
|
|
90
|
+
|
|
91
|
+
> 此表仅用于辅助理解SKILL分类,**不用于语义推断关联**。定位仍以显式提及为前提。
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
# SKILL 优化规范
|
|
2
|
+
|
|
3
|
+
> 修改现有 SKILL 文件时的规范和约束。
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. 修改原则
|
|
8
|
+
|
|
9
|
+
| 原则 | 说明 |
|
|
10
|
+
|------|------|
|
|
11
|
+
| 最小改动 | 只修改与经验直接相关的部分,不做无关重构 |
|
|
12
|
+
| 保持结构 | 不破坏现有的 Phase 结构和渐进式披露层次 |
|
|
13
|
+
| 版本递增 | 每次修改递增 frontmatter 中的 version |
|
|
14
|
+
| 向后兼容 | 不删除现有步骤,只新增或优化 |
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## 2. 版本号规则
|
|
19
|
+
|
|
20
|
+
采用语义化版本(SemVer):
|
|
21
|
+
|
|
22
|
+
| 变更类型 | 版本变更 | 示例 |
|
|
23
|
+
|----------|----------|------|
|
|
24
|
+
| 新增步骤/检查项 | minor +1 | 1.0.0 → 1.1.0 |
|
|
25
|
+
| 修改现有步骤描述 | patch +1 | 1.0.0 → 1.0.1 |
|
|
26
|
+
| 重构流程结构 | major +1 | 1.0.0 → 2.0.0 |
|
|
27
|
+
|
|
28
|
+
> 知识导入场景通常为新增步骤或检查项,使用 minor +1。
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## 3. 修改位置定位
|
|
33
|
+
|
|
34
|
+
根据经验内容类型,定位 SKILL.md 中的修改位置:
|
|
35
|
+
|
|
36
|
+
### 3.1 步骤补充
|
|
37
|
+
|
|
38
|
+
经验表明 SKILL 缺少某个执行步骤:
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
定位: SKILL.md body 中最相关的 Phase
|
|
42
|
+
操作: 在该 Phase 的步骤列表末尾新增子步骤
|
|
43
|
+
格式: ### N.M {新步骤名}\n{步骤说明}
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### 3.2 检查项新增
|
|
47
|
+
|
|
48
|
+
经验表明 SKILL 应增加某项检查:
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
定位: SKILL.md body 中检查相关的 Phase 或输出阶段
|
|
52
|
+
操作: 新增检查项说明
|
|
53
|
+
格式: - [ ] {检查项描述}
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### 3.3 注意事项更新
|
|
57
|
+
|
|
58
|
+
经验发现新的注意事项:
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
定位: SKILL.md body 中最相关的 Phase
|
|
62
|
+
操作: 添加 > ⚠️ 提示
|
|
63
|
+
格式: > ⚠️ {注意事项描述}
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### 3.4 参数补充
|
|
67
|
+
|
|
68
|
+
经验表明 SKILL 缺少某参数说明:
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
定位: SKILL.md body 中的任务参数表
|
|
72
|
+
操作: 在表格末尾新增参数行
|
|
73
|
+
格式: | `{paramName}` | {type} | ❌ | {说明} |
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## 4. 拆分到 references
|
|
79
|
+
|
|
80
|
+
如果优化内容超过 50 行,应拆分到 `references/` 目录:
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
SKILL.md body 中:
|
|
84
|
+
> 详细检查清单参见 [扩展检查项](references/EXTENDED_CHECKS.md)
|
|
85
|
+
|
|
86
|
+
references/EXTENDED_CHECKS.md:
|
|
87
|
+
# 扩展检查项
|
|
88
|
+
...详细内容...
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## 5. 修改后验证
|
|
94
|
+
|
|
95
|
+
修改完成后,进行以下验证:
|
|
96
|
+
|
|
97
|
+
| 检查项 | 方法 |
|
|
98
|
+
|--------|------|
|
|
99
|
+
| frontmatter 合规 | name 匹配目录名、description ≤1024字符 |
|
|
100
|
+
| body 行数 | < 500 行 |
|
|
101
|
+
| references 深度 | 一层,无嵌套 |
|
|
102
|
+
| 文件引用 | 使用相对路径 |
|
|
103
|
+
| 版本号 | 已递增 |
|
|
104
|
+
|
|
105
|
+
> 完整合规检查清单参见 skill-generator 的 [合规检查清单](../../skill-generator/references/COMPLIANCE_CHECKLIST.md)
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## 6. 禁止添加变更记录
|
|
110
|
+
|
|
111
|
+
> ⚠️ **修改 SKILL 文件时,禁止在 SKILL.md 末尾添加"变更记录"章节。**
|
|
112
|
+
|
|
113
|
+
版本变更信息仅体现在 frontmatter 的 `version` 字段中,不需要在 body 中维护变更记录表格。
|
|
114
|
+
|
|
115
|
+
**反面示例**(以下操作禁止):
|
|
116
|
+
|
|
117
|
+
```markdown
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## 变更记录
|
|
121
|
+
|
|
122
|
+
| 版本 | 日期 | 变更内容 |
|
|
123
|
+
|------|------|----------|
|
|
124
|
+
| 1.1.0 | 2026-08-05 | 新增 Phase 3 中的输入验证步骤 |
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
如果目标 SKILL.md 中已存在"变更记录"章节,**不要追加新行**,也不要删除已有内容——仅做不新增处理。
|
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ohos-lib-pr-push
|
|
3
|
+
description: 'GitCode 三方库自动提 PR 工具。工作区为 fork 仓库克隆:在代码修改完成后复用当前分支提交推送,自动总结修改点、在源仓库(上游)创建 Issue、必要时同步更新 CHANGELOG(条目附 Issue 链接)、从 fork 向源仓库创建绑定 Issue 的 PR、评论 Start build 触发 CI。USE FOR: 三方库适配/修复/用例补充等本地修改完成后,从 fork 向 GitCode 源仓库(如 CPF-RN 组织仓库)自动提交 PR。'
|
|
4
|
+
license: Apache-2.0
|
|
5
|
+
compatibility: 需要 Node.js 18+(执行 scripts/gitcode-api.cjs),需要 git 命令行,需要 GitCode API Token(默认读取 3rdLibraryLoop/Server/.env 的 GIT_TOKEN)
|
|
6
|
+
metadata:
|
|
7
|
+
author: LoopEngine
|
|
8
|
+
version: "1.2.0"
|
|
9
|
+
category: gitcode-pr
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# OHOS Lib PR Push — 三方库自动提 PR
|
|
13
|
+
|
|
14
|
+
将本地工作区(**fork 仓库的克隆**)的代码修改自动提交为**源仓库(上游)**的 PR,并创建绑定 Issue、触发 CI 门禁。
|
|
15
|
+
|
|
16
|
+
> ⚠️ **核心原则:① 工作区是 fork 仓库,PR 必须“从 fork 提交到源仓库”,禁止提交到 fork 自身;② 不修改分支——当前在哪个分支,就在该分支上提交并推送,PR head 就是该分支;③ 不修改任何业务代码,只做"总结修改 → 提交 → 建 Issue → 建 PR → 触发 CI"的发布链路;④ Token 绝不写入日志和报告。**
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## 任务参数
|
|
21
|
+
|
|
22
|
+
| 参数 | 类型 | 必填 | 说明 |
|
|
23
|
+
|------|------|------|------|
|
|
24
|
+
| `workspaceDir` | string | ✅ | 本地工作区(git 仓库根目录)绝对路径,修改已在该目录完成 |
|
|
25
|
+
| `upstreamUrl` | string | ❌ | 源仓库(上游)URL(如 `https://gitcode.com/CPF-RN/rntpc_react-native-image-crop-picker`)。不提供时按 Phase 1.1 的上游推断规则确定 |
|
|
26
|
+
| `token` | string | ❌ | GitCode Token。不提供时读取 `3rdLibraryLoop/Server/.env` 的 `GIT_TOKEN`(见 Phase 1) |
|
|
27
|
+
| `baseBranch` | string | ❌ | PR 目标(上游)分支。默认为上游与当前分支同名的分支(见 Phase 1.5) |
|
|
28
|
+
| `branchName` | string | ❌ | **已废弃自动生成新分支**:默认使用当前分支。仅当用户明确要求指定分支名时才生效,且仍不得切换已有工作分支 |
|
|
29
|
+
| `commitMessage` | string | ❌ | 提交信息。默认由修改点总结自动生成 |
|
|
30
|
+
| `changelog` | string | ❌ | 默认 `auto`:按 Phase 2.4 判定是否更新 CHANGELOG;`true` 强制更新;`false` 强制跳过 |
|
|
31
|
+
| `dryRun` | boolean | ❌ | 默认 `false`。`true` 时只总结修改点和生成报告,不执行 Issue/CHANGELOG 写入/提交推送/PR/CI |
|
|
32
|
+
|
|
33
|
+
## 输入依赖
|
|
34
|
+
|
|
35
|
+
- 前置SKILL: 无(通常在 `rnoh-lib-code-adapt` / `rnoh-cptf-demo-test` 等修改类 SKILL 完成后调用)
|
|
36
|
+
- 输入文件: `workspaceDir` 内的未提交/已提交修改(`git status` / `git log` 可见)
|
|
37
|
+
- 输入前提: `workspaceDir` 是某 GitCode 仓库的 **fork 克隆**(本地 origin 指向 fork;可能另有 upstream remote 指向源仓库)
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## 工作流程概览
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
Phase 1: 确定工作区与 Token
|
|
45
|
+
↓
|
|
46
|
+
Phase 2: 总结代码修改点(含 CHANGELOG 必要性判定)
|
|
47
|
+
↓
|
|
48
|
+
Phase 3: 创建 Issue
|
|
49
|
+
↓
|
|
50
|
+
Phase 4: 更新 CHANGELOG(仅当三方库内部源码有修改,英文条目带 Issue 链接)
|
|
51
|
+
↓
|
|
52
|
+
Phase 5: 提交并推送分支
|
|
53
|
+
↓
|
|
54
|
+
Phase 6: 创建绑定 Issue 的 PR
|
|
55
|
+
↓
|
|
56
|
+
Phase 7: 评论 Start build 触发 CI
|
|
57
|
+
↓
|
|
58
|
+
Phase 8: 生成报告
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
> 各阶段使用的 GitCode API 细节、参数表与踩坑记录统一参见 [GitCode API 参考](references/GITCODE_API.md)
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Phase 1:确定工作区与 Token
|
|
66
|
+
|
|
67
|
+
### 1.1 确定工作区与上游关系(fork → 源仓库)
|
|
68
|
+
|
|
69
|
+
1. 将 `workspaceDir` 设为当前工作目录
|
|
70
|
+
2. 校验是 git 仓库:执行 `git rev-parse --show-toplevel`
|
|
71
|
+
3. 记录当前分支:`git branch --show-current`(**此分支即提交分支与 PR head,禁止切换**);remote 信息:`git remote -v`
|
|
72
|
+
4. **确定 fork 仓库与源仓库**:
|
|
73
|
+
- 本地 `origin`(或其它 remote)指向的仓库视为 fork 仓库(如 `https://gitcode.com/{user}/rntpc_react-native-image-crop-picker`)
|
|
74
|
+
- 源仓库(上游)按优先级确定:
|
|
75
|
+
a. 用户传入的 `upstreamUrl`
|
|
76
|
+
b. 本地名为 `upstream` 的 remote 指向的仓库
|
|
77
|
+
c. `git remote -v` 中与 origin **同名不同 owner** 的 GitCode 仓库(如 origin 是 `{user}/rntpc_react-native-image-crop-picker`,另一 remote 或仓库推导出 `CPF-RN/rntpc_react-native-image-crop-picker`)
|
|
78
|
+
d. 通过 GitCode API 查询 fork 仓库的 `parent` 字段(`GET /repos/{forkOwner}/{repo}`,取响应中 `parent.path_with_namespace`)
|
|
79
|
+
5. 无法确定源仓库 → **终止并询问用户**,禁止默认提交到 fork 自身
|
|
80
|
+
6. **Monorepo 判断**:若 `upstreamUrl` 含 `/tree/{branch}/{subpath}`,记录子库路径,Phase 2 总结修改时标注其在仓库内的相对位置
|
|
81
|
+
|
|
82
|
+
### 1.2 确定 Token
|
|
83
|
+
|
|
84
|
+
按优先级取值:
|
|
85
|
+
|
|
86
|
+
1. 用户显式传入的 `token` 参数
|
|
87
|
+
2. 读取 `{3rdLibraryLoop根目录}/3rdLibraryLoop/Server/.env` 中的 `GIT_TOKEN`(该目录通常是 `/Users/lalhan/Desktop/3rdLibraryLoop/3rdLibraryLoop/Server/.env`,亦可从本 SKILL 目录向上回溯:`SKILL 目录 = Server/Skills/ohos-lib-pr-push`,故 `.env` 位于 `../../../.env`)
|
|
88
|
+
3. 都没有 → **终止并提示用户提供 Token**
|
|
89
|
+
|
|
90
|
+
### 1.3 获取 Token 用户信息
|
|
91
|
+
|
|
92
|
+
执行(用 Token 换取提交人身份,用于 git config):
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
node scripts/gitcode-api.cjs get-user --token "$GIT_TOKEN"
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
记录返回的 `username`(登录名)、`name`、`email`。
|
|
99
|
+
|
|
100
|
+
### 1.4 获取源仓库(上游)信息
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
node scripts/gitcode-api.cjs get-repo --token "$GIT_TOKEN" --owner {upstreamOwner} --repo {repo}
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
记录:`id`(源仓库 project_id,Phase 6 必需)、`default_branch`、`path_with_namespace`。
|
|
107
|
+
|
|
108
|
+
### 1.5 确定 PR base 分支(上游目标分支)
|
|
109
|
+
|
|
110
|
+
按优先级确定 PR 的 `base`:
|
|
111
|
+
|
|
112
|
+
1. 用户传入的 `baseBranch`
|
|
113
|
+
2. 上游存在与**当前分支同名**的分支 → 用同名分支(典型场景:当前在 `br_rnoh0.82`,上游也有 `br_rnoh0.82`)。API 探测:`GET /repos/{upstreamOwner}/{repo}/branches/{branch}` 存在即用
|
|
114
|
+
3. 上游无同名分支 → 使用上游 `default_branch`,并在报告中**明显标注**"当前分支 {branch} 在上游无同名分支,PR base 回退到 {default_branch}"
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## Phase 2:总结代码修改点
|
|
121
|
+
|
|
122
|
+
### 2.1 采集修改
|
|
123
|
+
|
|
124
|
+
在工作区内依序执行并汇总:
|
|
125
|
+
|
|
126
|
+
| 命令 | 用途 |
|
|
127
|
+
|------|------|
|
|
128
|
+
| `git status --porcelain` | 未提交修改文件清单 |
|
|
129
|
+
| `git diff --stat` + `git diff` | 未暂存修改的统计与详情 |
|
|
130
|
+
| `git diff --cached --stat` | 已暂存修改 |
|
|
131
|
+
| `git log --oneline origin/{defaultBranch}..HEAD`(无 upstream 时用 `git log -10 --oneline`) | 本分支相对目标分支的提交 |
|
|
132
|
+
|
|
133
|
+
> 注意:若用户已在某分支做过提交,不要重复提交;只需 `git log` 提取已有提交。
|
|
134
|
+
|
|
135
|
+
### 2.2 归纳修改点清单
|
|
136
|
+
|
|
137
|
+
对每个修改文件/提交,整理为:
|
|
138
|
+
|
|
139
|
+
| 序号 | 文件路径 | 修改类型(新增/修改/删除) | 修改说明 |
|
|
140
|
+
|------|---------|--------------------------|---------|
|
|
141
|
+
|
|
142
|
+
修改说明需具体(如"新增 ImageCropPicker.openPicker 的 crop 场景 CPTF 用例 12 条"),避免笼统的"更新文件"。
|
|
143
|
+
|
|
144
|
+
### 2.3 生成提交文案
|
|
145
|
+
|
|
146
|
+
- `commitMessage`(未提供时):一句话概括 + 修改点数量,如 `feat: 补充 image-crop-picker 裁剪场景 CPTF 用例并完善 demo`
|
|
147
|
+
- PR 标题:`{commitMessage 摘要}`(不加 `[auto]` 之类前缀)
|
|
148
|
+
- Issue 标题:`{分类}:{摘要}`,分类按修改性质从以下三类中选择,**禁止使用 `[auto]` 等无意义前缀**:
|
|
149
|
+
- `Demo 需求`:新增/补充 demo 演示、示例页面、用例展示
|
|
150
|
+
- `bug`:缺陷修复
|
|
151
|
+
- `咨询`:问题咨询、方案确认类
|
|
152
|
+
- PR/Issue body:按 [报告模板](assets/PR_ISSUE_TEMPLATE.md) 填写修改点表格;body 内容一律写入 `/tmp` 临时文件,流程结束后删除,**不得写入工作目录**
|
|
153
|
+
|
|
154
|
+
### 2.4 判定是否需要更新 CHANGELOG
|
|
155
|
+
|
|
156
|
+
逐条审视 2.2 的修改点清单,按涉及范围判定:
|
|
157
|
+
|
|
158
|
+
| 判定 | 涉及范围(示例) | 结果 |
|
|
159
|
+
|------|------------------|------|
|
|
160
|
+
| **需要** | **三方库内部源码**:库源码目录(如 `library/`、`src/` 主代码)、harmony 模块、package 业务代码、进入交付产物的缺陷修复/行为变更 | Phase 4 更新 CHANGELOG |
|
|
161
|
+
| **不需要** | demo/example 页面、测试用例、README 等文档、CI 配置、注释等**不涉及三方库内部**的修改 | 跳过,报告记录"未修改三方库内部源码,跳过 CHANGELOG" |
|
|
162
|
+
|
|
163
|
+
边界拿不准或用户传了 `changelog` 参数时,以用户为准。
|
|
164
|
+
|
|
165
|
+
> CHANGELOG 格式遵循 [Keep a Changelog](https://keepachangelog.com/)(与 `rn-lib-update-doc` SKILL 的 Step 6 约定一致)。
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## Phase 3:创建 Issue
|
|
170
|
+
|
|
171
|
+
> **必须在提交与 PR 之前创建**:CHANGELOG 条目(Phase 4)与 PR body(Phase 6)都要引用 Issue 编号/链接;绑定关系必须创建时写入,后续 PATCH PR 可能因权限不足失败。
|
|
172
|
+
|
|
173
|
+
```bash
|
|
174
|
+
node scripts/gitcode-api.cjs create-issue \
|
|
175
|
+
--token "$GIT_TOKEN" --owner {upstreamOwner} --repo {repo} \
|
|
176
|
+
--title "{issue标题}" --body-file /tmp/issue-body.md
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
- body 内容:本次提交的作用 + Phase 2 的修改点清单(模板见 [assets/PR_ISSUE_TEMPLATE.md](assets/PR_ISSUE_TEMPLATE.md))
|
|
180
|
+
- 记录返回的 `number`(Issue 编号),Phase 4 与 Phase 6 使用
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## Phase 4:更新 CHANGELOG(仅当三方库内部源码有修改)
|
|
185
|
+
|
|
186
|
+
按 Phase 2.4 的判定执行(`changelog` 参数为 `true`/`false` 时强制覆盖判定):
|
|
187
|
+
|
|
188
|
+
**判定为"不需要"** → 跳过本阶段,报告中记录"未修改三方库内部源码,跳过 CHANGELOG"。
|
|
189
|
+
|
|
190
|
+
**判定为"需要"** → 在 `{workspaceDir}/CHANGELOG.md` 新增条目:
|
|
191
|
+
|
|
192
|
+
1. 遵循仓库现有 CHANGELOG 格式:Keep a Changelog 格式时写入 `## [Unreleased]` 下对应分类(`### Added` / `### Changed` / `### Fixed` / `### Deprecated`),无该节则创建;仓库为其他格式时遵循现状;无 CHANGELOG.md 时按 Keep a Changelog 新建
|
|
193
|
+
2. 条目描述**使用英文书写**,与 Phase 2 修改点一致,具体到模块/场景(禁止笼统的 "update code")
|
|
194
|
+
3. **条目末尾必须附上 Phase 3 创建的 Issue 链接**:`- {英文描述} ([#{issueNumber}](https://gitcode.com/{upstreamOwner}/{repo}/issues/{issueNumber}))`
|
|
195
|
+
4. 该文件修改随 Phase 5 一并提交(`git add -A` 自然包含)
|
|
196
|
+
|
|
197
|
+
条目示例:
|
|
198
|
+
|
|
199
|
+
```markdown
|
|
200
|
+
## [Unreleased]
|
|
201
|
+
|
|
202
|
+
### Added
|
|
203
|
+
- Add 12 CPTF crop-scenario test cases for image-crop-picker and enhance the demo ([#42](https://gitcode.com/CPF-RN/rntpc_react-native-image-crop-picker/issues/42))
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
---
|
|
207
|
+
|
|
208
|
+
## Phase 5:在当前分支提交并推送(禁止切换分支)
|
|
209
|
+
|
|
210
|
+
1. `dryRun=true` → 跳过 Phase 3~7,直接进 Phase 8
|
|
211
|
+
2. 设置仓库级提交人(与 Token 用户一致,避免本地全局配置冒名):
|
|
212
|
+
|
|
213
|
+
```bash
|
|
214
|
+
cd "{workspaceDir}"
|
|
215
|
+
git config user.name "{name}"
|
|
216
|
+
git config user.email "{email}"
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
3. **在当前分支直接提交**(含 Phase 4 的 CHANGELOG 修改)。**禁止 `git checkout -b` / `git switch` 创建或切换分支**:
|
|
220
|
+
|
|
221
|
+
```bash
|
|
222
|
+
git add -A
|
|
223
|
+
git commit --signoff -m "{commitMessage}"
|
|
224
|
+
# 仅当工作区完全干净(无待提交内容且有已存在提交)时,跳过 commit
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
4. 推送**当前分支**到 origin(fork 仓库):
|
|
228
|
+
|
|
229
|
+
```bash
|
|
230
|
+
git push -u origin HEAD
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
推送失败(fork 无写权限/无 fork remote)→ 参照 [GitCode API 参考](references/GITCODE_API.md) 的"Fork 模式"章节,用 Token Fork 后添加 remote 再推,仍推送当前分支。
|
|
234
|
+
|
|
235
|
+
---
|
|
236
|
+
|
|
237
|
+
## Phase 6:从 fork 向源仓库创建绑定 Issue 的 PR
|
|
238
|
+
|
|
239
|
+
```bash
|
|
240
|
+
node scripts/gitcode-api.cjs create-pr \
|
|
241
|
+
--token "$GIT_TOKEN" --owner {forkOwner} --repo {repo} \
|
|
242
|
+
--head "{当前分支名}" --base "{Phase 1.5 确定的上游 base 分支}" \
|
|
243
|
+
--title "{pr标题}" --body-file /tmp/pr-body.md \
|
|
244
|
+
--fork-repo "{upstreamOwner}/{repo}" --target-project-id "{源仓库 project_id}"
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
关键规则(详细踩坑说明见 [GitCode API 参考](references/GITCODE_API.md)):
|
|
248
|
+
|
|
249
|
+
1. **PR 方向恒为 fork → 源仓库(上游)**:调用 fork 仓库的 pulls API,**必须传 `--fork-repo`(源仓库路径)和 `--target-project-id`(源仓库 id)**,否则 PR 变成 fork 仓库内部 PR,源仓库不可见。**禁止**向 fork 自身提 PR
|
|
250
|
+
2. **`head` = 当前分支**(Phase 1.1 记录,随推送更新到 fork);**`base` = Phase 1.5 确定的上游分支**,不默认使用 `default_branch`
|
|
251
|
+
3. PR body 中**必须**包含 `Closes #{issue_number}`(创建时写入,不事后 PATCH)
|
|
252
|
+
4. body 从 `--body-file` 读取,脚本内部以 UTF-8 form-encoded 发送,避免中文乱码
|
|
253
|
+
|
|
254
|
+
验证:检查响应 `target_project.path_with_namespace` 是否为源仓库(`{upstreamOwner}/{repo}`);记录 PR `number` 与网页地址(格式 `https://gitcode.com/{upstreamOwner}/{repo}/merge_requests/{number}`)。
|
|
255
|
+
|
|
256
|
+
---
|
|
257
|
+
|
|
258
|
+
## Phase 7:评论 Start build 触发 CI
|
|
259
|
+
|
|
260
|
+
在**源仓库(上游)**的 PR 下评论(注意 owner/repo 用源仓库,不是 fork):
|
|
261
|
+
|
|
262
|
+
```bash
|
|
263
|
+
node scripts/gitcode-api.cjs comment-pr \
|
|
264
|
+
--token "$GIT_TOKEN" --owner {upstreamOwner} --repo {repo} \
|
|
265
|
+
--pr "{prNumber}" --body "Start build"
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
记录评论是否成功(报告的 CI 状态字段)。
|
|
269
|
+
|
|
270
|
+
---
|
|
271
|
+
|
|
272
|
+
## Phase 8:生成报告
|
|
273
|
+
|
|
274
|
+
在 `{workspaceDir}` 下生成 `ohos-lib-pr-push-report.md`——**这是整个流程在工作目录产出的唯一文档**(Issue/PR body 等中间文件一律放 `/tmp` 并在流程结束后删除),模板见 [assets/PR_ISSUE_TEMPLATE.md](assets/PR_ISSUE_TEMPLATE.md),包含:
|
|
275
|
+
|
|
276
|
+
- 基本信息(仓库、分支、时间、模式:直推/Fork)
|
|
277
|
+
- 执行结果(PR 地址与编号、Issue 地址与编号、Issue 绑定状态、CI 触发状态)
|
|
278
|
+
- CHANGELOG 状态(已更新并附 Issue 链接;或跳过及原因,如"未修改三方库本身内容")
|
|
279
|
+
- 修改文件清单(Phase 2 成果)
|
|
280
|
+
- 错误信息(如有)
|
|
281
|
+
|
|
282
|
+
> **Token 安全**:报告中不得出现 Token 明文。
|
|
283
|
+
|
|
284
|
+
---
|
|
285
|
+
|
|
286
|
+
## 注意事项
|
|
287
|
+
|
|
288
|
+
- **只发布不修改**:发现代码问题应停下报告,不顺手改代码
|
|
289
|
+
- **PR 方向**:恒为 fork → 源仓库(上游)。Issue 建、PR 提、CI 评论均在**源仓库**进行;禁止提交到 fork 自身
|
|
290
|
+
- **分支不变**:当前在哪个分支,就在该分支提交、推送并作为 PR head;禁止 `checkout -b`/`git switch` 创建或切换分支(用户明确指定 `branchName` 并说明目标时除外)
|
|
291
|
+
- **修改点先行**:Issue/PR 的标题与 body 必须基于 Phase 2 的真实修改总结,禁止编造
|
|
292
|
+
- **CHANGELOG 条件更新**:仅当修改了**三方库内部源码**(如 `library/` 目录、harmony 模块、交付产物行为变更)才更新 CHANGELOG,条目使用**英文**描述且必须附 Issue 链接;demo 页面、测试用例、文档、CI 配置等不涉及库内部的修改一律跳过并在报告说明原因
|
|
293
|
+
- **Issue 分类**:Issue 标题必须以 `Demo 需求:` / `bug:` / `咨询:` 之一开头,禁止 `[auto]` 等无意义前缀
|
|
294
|
+
- **单一产出到工作目录**:整个流程只允许在 `{workspaceDir}` 下生成 `ohos-lib-pr-push-report.md` 一个文档;Issue/PR body 等中间文件一律放 `/tmp`,流程结束后删除
|
|
295
|
+
- **Monorepo**:PR body 中标注子库路径;分支名建议带子库名前缀
|
|
296
|
+
- **顺序不可颠倒**:Issue(Phase 3)→ CHANGELOG(Phase 4)→ 提交推送(Phase 5)→ PR(Phase 6)→ CI 评论(Phase 7)
|
|
297
|
+
- **失败恢复**:某步失败时保留已完成产物的编号与链接写入报告,终止后续步骤
|
|
298
|
+
|
|
299
|
+
## 流程步骤顺序速查
|
|
300
|
+
|
|
301
|
+
1. 确定工作区 + fork/上游关系 + 当前分支 → 2. 确定 Token(用户传入 or `Server/.env` 的 `GIT_TOKEN`)→ 3. 获取用户与源仓库信息(project_id、base 分支探测)→ 4. 总结修改点(判定 CHANGELOG 必要性:仅三方库内部源码修改才更新)→ **5. 在源仓库创建 Issue(标题带分类前缀:`Demo 需求:`/`bug:`/`咨询:`)** → 6. 更新 CHANGELOG(仅三方库内部源码有修改时,英文条目带 Issue 链接)→ 7. **在当前分支提交并推送到 fork(禁止切分支)** → 8. 从 fork 向源仓库创建 PR(head=当前分支, base=上游对应分支, body 含 `Closes #{issue_number}`)→ 9. 在源仓库评论 Start build → 10. 生成报告(工作目录唯一产出文档,清理 /tmp 中间文件)
|