@ohos-cpf/3rdloop 0.0.2 → 0.0.4
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 +290 -244
- package/bin/3rdloop.mjs +46 -46
- package/lib/cli.js +781 -781
- package/lib/config-cmd.js +451 -451
- package/lib/config.js +318 -318
- package/lib/doctor.js +113 -113
- package/lib/exit-codes.js +30 -30
- package/lib/opencode.js +155 -155
- package/lib/orch.js +426 -426
- package/lib/queries.js +263 -263
- package/lib/step.js +325 -325
- package/lib/ui.js +222 -222
- package/lib/update.js +279 -279
- package/lib/workflow.js +308 -308
- package/lib/workflows.js +131 -131
- package/package.json +50 -50
- package/vendor/Server/Agent/SkillSelector/README.md +343 -343
- package/vendor/Server/Agent/SkillSelector/core/Agent.js +207 -207
- package/vendor/Server/Agent/SkillSelector/index.js +14 -14
- package/vendor/Server/Agent/SkillSelector/llm/llmClient.js +313 -313
- package/vendor/Server/Agent/SkillSelector/llm/prompts.js +161 -161
- package/vendor/Server/Agent/SkillSelector/llm/reactSteps.js +144 -144
- package/vendor/Server/Agent/SkillSelector/matcher/fuzzyMatcher.js +433 -433
- package/vendor/Server/Agent/SkillSelector/scanner/skillScanner.js +382 -382
- package/vendor/Server/Agent/SkillSelector/utils/actionWords.js +59 -59
- package/vendor/Server/Brain/AnalysisStrategies.js +422 -422
- package/vendor/Server/Brain/Brain.js +686 -686
- package/vendor/Server/Brain/DecompositionStrategies.js +621 -621
- package/vendor/Server/Brain/PlanPersistence.js +196 -196
- package/vendor/Server/Brain/SkillExecutor.js +251 -251
- package/vendor/Server/Brain/index.js +11 -11
- package/vendor/Server/CLI/cli.js +275 -275
- package/vendor/Server/CLI/deveco-code/index.js +71 -71
- package/vendor/Server/CLI/deveco-code.js +5 -5
- package/vendor/Server/CLI/opencode/index.js +817 -818
- package/vendor/Server/CLI/opencode.js +5 -5
- package/vendor/Server/DbUse/MessageArchive.js +61 -61
- package/vendor/Server/DbUse/StorageManager.js +107 -107
- package/vendor/Server/DbUse/adapters/BaseAdapter.js +94 -94
- package/vendor/Server/DbUse/adapters/FileAdapter.js +138 -138
- package/vendor/Server/DbUse/adapters/JsonAdapter.js +138 -138
- package/vendor/Server/DbUse/adapters/JsonlAdapter.js +114 -114
- package/vendor/Server/DbUse/adapters/SqliteAdapter.js +157 -157
- package/vendor/Server/DbUse/index.js +160 -160
- package/vendor/Server/DbUse/stores/SessionStore.js +279 -279
- package/vendor/Server/DbUse/stores/TaskExecutionStore.js +133 -133
- package/vendor/Server/DbUse/stores/TaskRegistryStore.js +262 -262
- package/vendor/Server/DbUse/stores/TaskStepStore.js +279 -279
- package/vendor/Server/FlexRunner/FlexRunner.js +1759 -1759
- package/vendor/Server/FlexRunner/index.js +12 -12
- package/vendor/Server/Knowledge/KnowledgeImporter.js +523 -523
- package/vendor/Server/Knowledge/KnowledgeManager.js +341 -341
- package/vendor/Server/Knowledge/index.js +33 -33
- package/vendor/Server/LoopEngine/LoopEngine.js +1133 -1133
- package/vendor/Server/LoopEngine/index.js +11 -11
- package/vendor/Server/Orchestrator/Orchestrator.js +0 -3
- package/vendor/Server/Orchestrator/StepNode.js +312 -312
- package/vendor/Server/Orchestrator/index.js +13 -13
- package/vendor/Server/Routes/controllers/BrainController.js +241 -241
- package/vendor/Server/Routes/controllers/FlexRunnerController.js +1125 -1125
- package/vendor/Server/Routes/controllers/HealthController.js +44 -44
- package/vendor/Server/Routes/controllers/KnowledgeImportController.js +355 -355
- package/vendor/Server/Routes/controllers/LoopEngineController.js +788 -788
- package/vendor/Server/Routes/controllers/StatsController.js +57 -57
- package/vendor/Server/Routes/controllers/StreamController.js +67 -67
- package/vendor/Server/Routes/library/logger.js +179 -179
- package/vendor/Server/Routes/library/zipArchive.js +172 -172
- package/vendor/Server/Routes/router/Router.js +204 -204
- package/vendor/Server/Routes/routes/brain.js +47 -47
- package/vendor/Server/Routes/routes/flexrunner.js +72 -72
- package/vendor/Server/Routes/routes/health.js +28 -28
- package/vendor/Server/Routes/routes/index.js +57 -57
- package/vendor/Server/Routes/routes/knowledge.js +55 -55
- package/vendor/Server/Routes/routes/loopengine.js +58 -58
- package/vendor/Server/Routes/routes/orchestrator.js +61 -61
- package/vendor/Server/Routes/routes/registry.js +97 -97
- package/vendor/Server/Routes/routes/stats.js +23 -23
- package/vendor/Server/Routes/routes/stream.js +30 -30
- package/vendor/Server/Routes/server.js +203 -203
- package/vendor/Server/Routes/sse/SseHub.js +308 -308
- package/vendor/Server/Skills/acceptance-check/SKILL.md +191 -191
- package/vendor/Server/Skills/acceptance-check/references/PHASE1_ARTIFACT_COLLECTION.md +52 -52
- package/vendor/Server/Skills/acceptance-check/references/PHASE2_CRITERIA_EVALUATION.md +77 -77
- package/vendor/Server/Skills/acceptance-check/references/PHASE2_EVIDENCE_VERIFICATION.md +70 -70
- package/vendor/Server/Skills/arkts-code-check/SKILL.md +320 -320
- package/vendor/Server/Skills/arkts-code-check/references/CODE_CHECK_GUIDE.md +210 -210
- package/vendor/Server/Skills/arkts-code-check/references/FILE_TYPE_GUIDE.md +28 -28
- package/vendor/Server/Skills/arkts-code-check/references/PHASE1_INFO_COLLECTION.md +233 -233
- package/vendor/Server/Skills/arkts-code-check/references/REPORT_TEMPLATE.md +219 -219
- package/vendor/Server/Skills/arkts-library-compile-validate/SKILL.md +328 -328
- package/vendor/Server/Skills/arkts-library-compile-validate/scripts/build.ps1 +93 -93
- package/vendor/Server/Skills/arkts-library-compile-validate/scripts/code-linter.cjs +432 -432
- package/vendor/Server/Skills/arkts-library-compile-validate/scripts/migrate.cjs +851 -851
- package/vendor/Server/Skills/arkts-library-compile-validate/scripts/ohpm-switch.cjs +788 -788
- package/vendor/Server/Skills/arkts-library-demo-code/SKILL.md +291 -291
- package/vendor/Server/Skills/arkts-library-demo-code/references/API_SIGNATURE_CHECKS.md +68 -68
- package/vendor/Server/Skills/arkts-library-demo-code/references/BUILD_VALIDATION.md +184 -184
- package/vendor/Server/Skills/arkts-library-demo-code/references/CODE_STANDARDS.md +337 -337
- package/vendor/Server/Skills/arkts-library-demo-code/references/EXAMPLES.md +400 -400
- package/vendor/Server/Skills/arkts-library-demo-code/references/SYSTEM_API_LOOKUP.md +98 -98
- package/vendor/Server/Skills/arkts-library-demo-code/references/TEMPLATE.md +544 -544
- package/vendor/Server/Skills/arkts-library-demo-code/scripts/build.ps1 +93 -93
- package/vendor/Server/Skills/arkts-library-demo-code/scripts/code-linter.cjs +432 -432
- package/vendor/Server/Skills/arkts-library-demo-code/scripts/migrate.cjs +851 -851
- package/vendor/Server/Skills/arkts-library-demo-code/scripts/ohpm-switch.cjs +788 -788
- package/vendor/Server/Skills/arkts-library-demo-coverage/SKILL.md +174 -174
- package/vendor/Server/Skills/arkts-library-demo-scenario/SKILL.md +321 -321
- package/vendor/Server/Skills/arkts-library-demo-scenario/references/EXAMPLES.md +100 -100
- package/vendor/Server/Skills/arkts-library-demo-scenario/references/TEMPLATE.md +185 -185
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/SKILL.md +233 -233
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/assets/REPORT_TEMPLATE.md +102 -102
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/CHECK_DIMENSIONS.md +89 -89
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/COMPLIANCE_CHECKLIST.md +62 -62
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/KB_QUERY_GUIDE.md +107 -107
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/MCP_TOOL_DISCOVERY.md +124 -124
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/REPORT_TEMPLATE.md +90 -90
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/SCORING_FORMULA.md +57 -57
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/scripts/validate-skill.cjs +259 -259
- package/vendor/Server/Skills/arkts-library-interface-spec/SKILL.md +97 -97
- package/vendor/Server/Skills/arkts-library-memory-leak-check/SKILL.md +391 -391
- package/vendor/Server/Skills/arkts-library-source-clone/SKILL.md +113 -113
- package/vendor/Server/Skills/arkts-library-stability-check/SKILL.md +312 -312
- package/vendor/Server/Skills/arkts-library-stability-check/assets/REPORT_TEMPLATE.md +154 -154
- package/vendor/Server/Skills/arkts-library-stability-check/references/CHECKLIST.md +165 -165
- package/vendor/Server/Skills/arkts-library-stability-check/references/CODE_EXAMPLES.md +308 -308
- package/vendor/Server/Skills/arkts-library-stability-check/references/SCORING_RULES.md +90 -90
- package/vendor/Server/Skills/arkts-library-stability-check/scripts/validate-skill.cjs +282 -282
- package/vendor/Server/Skills/arkts-library-test-coverage-check/SKILL.md +360 -360
- package/vendor/Server/Skills/arkts-library-test-coverage-check/assets/REPORT_TEMPLATE.md +145 -145
- package/vendor/Server/Skills/arkts-library-test-coverage-check/references/CHECKLIST.md +252 -252
- package/vendor/Server/Skills/arkts-library-test-coverage-check/references/MCP_TOOL_USAGE.md +114 -114
- package/vendor/Server/Skills/arkts-library-test-coverage-check/scripts/validate-skill.cjs +262 -262
- package/vendor/Server/Skills/arkts-library-xts-code/SKILL.md +455 -455
- package/vendor/Server/Skills/arkts-library-xts-code/assets/report-template.md +60 -60
- package/vendor/Server/Skills/arkts-library-xts-code/references/ACCESS_MODIFIER_PRECHECK.md +76 -76
- package/vendor/Server/Skills/arkts-library-xts-code/references/BUILD_VERIFICATION.md +200 -200
- package/vendor/Server/Skills/arkts-library-xts-code/references/CODE_STANDARDS.md +518 -518
- package/vendor/Server/Skills/arkts-library-xts-code/references/SUBAGENT_PROMPT_TEMPLATE.md +276 -276
- package/vendor/Server/Skills/arkts-library-xts-code/references/SYSTEM_API_LOOKUP.md +92 -92
- package/vendor/Server/Skills/arkts-library-xts-code/references/XTS_TEMPLATE.md +767 -767
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/build.ps1 +93 -93
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/code-linter.cjs +432 -432
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/migrate.cjs +851 -851
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/ohpm-switch.cjs +788 -788
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/precheck-access-modifiers.cjs +221 -221
- package/vendor/Server/Skills/arkts-library-xts-code-fix/SKILL.md +228 -228
- package/vendor/Server/Skills/arkts-library-xts-coverage/SKILL.md +97 -97
- package/vendor/Server/Skills/arkts-library-xts-doc/SKILL.md +194 -194
- package/vendor/Server/Skills/arkts-library-xts-doc/references/EXAMPLES.md +575 -575
- package/vendor/Server/Skills/arkts-library-xts-doc/references/TEMPLATE.md +574 -574
- package/vendor/Server/Skills/arkts-library-xts-doc/references/TESTABILITY_GUIDE.md +182 -182
- package/vendor/Server/Skills/arkts-library-xts-execution/SKILL.md +490 -490
- package/vendor/Server/Skills/arkts-library-xts-execution/references/error-fixing-examples.md +217 -217
- package/vendor/Server/Skills/arkts-library-xts-execution/scripts/build.ps1 +93 -93
- package/vendor/Server/Skills/arkts-library-xts-execution/scripts/code-linter.cjs +432 -432
- package/vendor/Server/Skills/arkts-library-xts-execution/scripts/migrate.cjs +851 -851
- package/vendor/Server/Skills/arkts-library-xts-execution/scripts/ohpm-switch.cjs +788 -788
- package/vendor/Server/Skills/flutter-code-check/SKILL.md +299 -299
- package/vendor/Server/Skills/flutter-code-check/assets/OUTPUT_TEMPLATE.md +311 -311
- package/vendor/Server/Skills/flutter-code-check/references/CHECKLIST.md +190 -190
- package/vendor/Server/Skills/flutter-code-check/references/PLATFORMS.md +133 -133
- package/vendor/Server/Skills/flutter-code-check/scripts/validate-skill.cjs +259 -259
- package/vendor/Server/Skills/flutter-interface/README.md +75 -75
- package/vendor/Server/Skills/flutter-interface/SKILL.md +291 -291
- package/vendor/Server/Skills/flutter-interface/references/EXAMPLES.md +336 -336
- package/vendor/Server/Skills/flutter-interface/references/GIT_CLONE_GUIDE.md +190 -190
- package/vendor/Server/Skills/flutter-interface/references/SCRIPT_REFERENCE.md +258 -258
- package/vendor/Server/Skills/flutter-interface/references/TEMPLATE.md +254 -254
- package/vendor/Server/Skills/flutter-library-consistency-check/SKILL.md +517 -517
- package/vendor/Server/Skills/flutter-library-consistency-check/references/CHECKLIST.md +381 -381
- package/vendor/Server/Skills/flutter-library-consistency-check/references/FUNCTION_COMPARISON_GUIDE.md +341 -341
- package/vendor/Server/Skills/flutter-library-consistency-check/references/PLATFORM_LIMITATION_GUIDE.md +71 -71
- package/vendor/Server/Skills/flutter-library-documentation-quality-check/SKILL.md +518 -518
- package/vendor/Server/Skills/flutter-library-documentation-quality-check/references/CHECKLIST.md +406 -406
- package/vendor/Server/Skills/flutter-library-memory-leak-check/SKILL.md +652 -652
- package/vendor/Server/Skills/flutter-library-memory-leak-check/references/CHECKLIST.md +396 -396
- package/vendor/Server/Skills/flutter-library-stability-check/SKILL.md +744 -744
- package/vendor/Server/Skills/flutter-library-stability-check/references/CHECKLIST.md +720 -720
- package/vendor/Server/Skills/flutter-library-test-coverage-check/SKILL.md +414 -414
- package/vendor/Server/Skills/flutter-library-test-coverage-check/assets/REPORT_TEMPLATE.md +150 -150
- package/vendor/Server/Skills/flutter-library-test-coverage-check/references/CHECKLIST.md +304 -304
- package/vendor/Server/Skills/flutter-library-test-coverage-check/references/SCORING_RULES.md +265 -265
- package/vendor/Server/Skills/flutter-library-test-coverage-check/references/SCRIPT_USAGE.md +286 -286
- package/vendor/Server/Skills/knowledge-import/SKILL.md +383 -383
- package/vendor/Server/Skills/knowledge-import/references/MCP_TOOL_USAGE.md +165 -165
- package/vendor/Server/Skills/knowledge-import/references/SKILL_LOCATOR_GUIDE.md +91 -91
- package/vendor/Server/Skills/knowledge-import/references/SKILL_OPTIMIZATION_GUIDE.md +127 -127
- package/vendor/Server/Skills/ohos-lib-pr-push/SKILL.md +453 -301
- package/vendor/Server/Skills/ohos-lib-pr-push/assets/PR_CHECKLIST.md +151 -0
- package/vendor/Server/Skills/ohos-lib-pr-push/assets/PR_ISSUE_TEMPLATE.md +257 -105
- package/vendor/Server/Skills/ohos-lib-pr-push/references/GITCODE_API.md +191 -127
- package/vendor/Server/Skills/ohos-lib-pr-push/scripts/gitcode-api.cjs +317 -208
- package/vendor/Server/Skills/rn-code-check/SKILL.md +320 -320
- package/vendor/Server/Skills/rn-code-check/references/API-GUIDE.md +234 -234
- package/vendor/Server/Skills/rn-code-check/references/CHECKLIST.md +188 -188
- package/vendor/Server/Skills/rn-code-check/references/REPORT-TEMPLATE.md +246 -246
- package/vendor/Server/Skills/rn-lib-add-example/SKILL.md +198 -198
- package/vendor/Server/Skills/rn-lib-add-example/references/APP_RENAME_GUIDE.md +40 -40
- package/vendor/Server/Skills/rn-lib-add-example/references/SHELL_ADAPTATION_CHECKLIST.md +78 -78
- package/vendor/Server/Skills/rn-lib-add-example/references/TEMPLATE_REPO_GUIDE.md +70 -70
- package/vendor/Server/Skills/rn-lib-add-example/references/VERIFICATION_GUIDE.md +47 -47
- package/vendor/Server/Skills/rn-lib-add-example/scripts/create-example.cjs +252 -252
- package/vendor/Server/Skills/rn-lib-update-doc/SKILL.md +176 -176
- package/vendor/Server/Skills/rn-lib-update-doc/config.json +5 -5
- package/vendor/Server/Skills/rn-lib-update-doc/references/changelog-template.md +35 -35
- package/vendor/Server/Skills/rn-lib-update-doc/references/format-diff.md +137 -137
- package/vendor/Server/Skills/rn-lib-update-doc/references/link-registry.json +33 -33
- package/vendor/Server/Skills/rn-lib-update-doc/references/model-0.4.2-overview.md +40 -40
- package/vendor/Server/Skills/rn-lib-update-doc/references/model-0.4.2.md +429 -429
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/detect-readme-format.cjs +105 -105
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/find-usage-doc.cjs +90 -90
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/link-verify.cjs +213 -213
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/normalize-changelog.cjs +73 -73
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/normalize-package-meta.cjs +258 -258
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/normalize-readme-links.cjs +341 -341
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/resolve-usage-docs.cjs +67 -67
- package/vendor/Server/Skills/rn-library-consistency-check/SKILL.md +299 -299
- package/vendor/Server/Skills/rn-library-consistency-check/assets/REPORT_TEMPLATE.md +293 -293
- package/vendor/Server/Skills/rn-library-consistency-check/references/ARKTS_COMPONENT_CHECK_GUIDE.md +857 -857
- package/vendor/Server/Skills/rn-library-consistency-check/references/ARKTS_TURBOMODULE_CHECK_GUIDE.md +856 -856
- package/vendor/Server/Skills/rn-library-consistency-check/references/CHECKLIST.md +157 -157
- package/vendor/Server/Skills/rn-library-consistency-check/references/CPP_COMPONENT_CHECK_GUIDE.md +801 -801
- package/vendor/Server/Skills/rn-library-consistency-check/references/CPP_TURBOMODULE_CHECK_GUIDE.md +683 -683
- package/vendor/Server/Skills/rn-library-consistency-check/references/FUNCTION_COMPARISON_GUIDE.md +233 -233
- package/vendor/Server/Skills/rn-library-consistency-check/references/NATIVE_COMPONENT_IDENTIFICATION.md +1373 -1373
- package/vendor/Server/Skills/rn-library-consistency-check/references/SCORING_STANDARD.md +220 -220
- package/vendor/Server/Skills/rn-library-consistency-check/scripts/validate-skill.py +245 -245
- package/vendor/Server/Skills/rn-library-documentation-quality-check/SKILL.md +263 -263
- package/vendor/Server/Skills/rn-library-documentation-quality-check/assets/MODEL.md +414 -414
- package/vendor/Server/Skills/rn-library-documentation-quality-check/assets/MODEL_en.md +413 -413
- package/vendor/Server/Skills/rn-library-documentation-quality-check/assets/REPORT_TEMPLATE.md +311 -311
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/CHECK_CHECKLIST.md +355 -355
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/CROSS_VALIDATION_GUIDE.md +115 -115
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/DOC_COLLECTION_GUIDE.md +139 -139
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/EXAMPLES.md +586 -586
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/GOTCHAS.md +57 -57
- package/vendor/Server/Skills/rn-library-documentation-quality-check/scripts/validate-skill.py +259 -259
- package/vendor/Server/Skills/rn-library-interface-analyzer/SKILL.md +301 -301
- package/vendor/Server/Skills/rn-library-interface-analyzer/assets/REPORT_TEMPLATE.md +148 -148
- package/vendor/Server/Skills/rn-library-interface-analyzer/references/DOC_ANNOTATION_GUIDE.md +118 -118
- package/vendor/Server/Skills/rn-library-interface-analyzer/references/SCRIPT_USAGE_GUIDE.md +168 -168
- package/vendor/Server/Skills/rn-library-interface-analyzer/references/URL_PARSING_RULES.md +176 -176
- package/vendor/Server/Skills/rn-library-issue-generalizer/SKILL.md +274 -274
- package/vendor/Server/Skills/rn-library-issue-generalizer/assets/case-template.md +45 -45
- package/vendor/Server/Skills/rn-library-issue-generalizer/assets/rule-template.md +25 -25
- package/vendor/Server/Skills/rn-library-issue-generalizer/references/PR_FETCH_GUIDE.md +61 -61
- package/vendor/Server/Skills/rn-library-issue-generalizer/references/RULE_TEMPLATE_GUIDE.md +165 -165
- package/vendor/Server/Skills/rn-library-issue-generalizer/scripts/fetch-pr-info.py +239 -239
- package/vendor/Server/Skills/rn-library-known-issue-check/SKILL.md +263 -263
- package/vendor/Server/Skills/rn-library-known-issue-check/assets/REPORT_TEMPLATE.md +96 -96
- package/vendor/Server/Skills/rn-library-known-issue-check/references/COMPLIANCE_CHECKLIST.md +57 -57
- package/vendor/Server/Skills/rn-library-known-issue-check/references/INSPECTION_GUIDE.md +99 -99
- package/vendor/Server/Skills/rn-library-known-issue-check/references/PRESCREEN_GUIDE.md +64 -64
- package/vendor/Server/Skills/rn-library-known-issue-check/references/SOURCE_PREP_GUIDE.md +74 -74
- package/vendor/Server/Skills/rn-library-known-issue-check/scripts/validate-known-issue-report.py +164 -164
- package/vendor/Server/Skills/rn-library-memory-leak-check/SKILL.md +356 -339
- package/vendor/Server/Skills/rn-library-memory-leak-check/assets/REPORT_TEMPLATE.md +85 -83
- package/vendor/Server/Skills/rn-library-memory-leak-check/references/CHECKLIST.md +905 -859
- package/vendor/Server/Skills/rn-library-memory-leak-check/references/HARMONY_CODE_PATTERNS.md +124 -122
- package/vendor/Server/Skills/rn-library-memory-leak-check/scripts/scan_harmony_code.py +287 -279
- package/vendor/Server/Skills/rn-library-stability-check/SKILL.md +273 -273
- package/vendor/Server/Skills/rn-library-stability-check/assets/REPORT_TEMPLATE.md +129 -129
- package/vendor/Server/Skills/rn-library-stability-check/references/CHECKLIST.md +581 -581
- package/vendor/Server/Skills/rn-library-stability-check/references/SCORING_RULES.md +138 -138
- package/vendor/Server/Skills/rn-library-stability-check/scripts/scan-harmony-code.py +168 -168
- package/vendor/Server/Skills/rn-library-test-coverage-check/SKILL.md +526 -506
- package/vendor/Server/Skills/rn-library-test-coverage-check/references/CHECKLIST.md +321 -280
- package/vendor/Server/Skills/rn-library-test-coverage-check/references/DEMO_LOCATION.md +221 -221
- package/vendor/Server/Skills/rn-library-test-coverage-check/references/REPORT_TEMPLATE.md +220 -209
- package/vendor/Server/Skills/rn-library-test-coverage-check/references/SCRIPT_USAGE.md +325 -325
- package/vendor/Server/Skills/rn-ohos-xts-generator/SKILL.md +279 -279
- package/vendor/Server/Skills/rn-ohos-xts-generator/assets/TEST_FILE_TEMPLATES.md +404 -404
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/BUILD_TROUBLESHOOTING.md +185 -185
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/BUILD_WORKFLOW.md +265 -265
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/COMMON_CONFIG.md +189 -189
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/CONFIG_GUIDE.md +203 -203
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/COVERAGE_ANALYZER.md +147 -147
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/DESIGN_DOC_GUIDE.md +148 -148
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/GENERATION_FLOW.md +165 -165
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/GENERATION_STRATEGY.md +195 -195
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/HARMONY_SCANNER.md +249 -249
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/JEST_FRAMEWORK.md +235 -235
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/PLATFORM_COMPAT.md +161 -161
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/RN_TEST_PATTERNS.md +413 -413
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/SOURCE_PARSER.md +235 -235
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/TEST_CONVENTIONS.md +245 -245
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/TROUBLESHOOTING.md +282 -282
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/USAGE_GUIDE.md +251 -251
- package/vendor/Server/Skills/rnoh-cptf-api-test/SKILL.md +469 -469
- package/vendor/Server/Skills/rnoh-cptf-api-test/assets/CPTF_TEST_TEMPLATE.md +310 -310
- package/vendor/Server/Skills/rnoh-cptf-api-test/assets/DEMO_PAGE_TEMPLATE.md +303 -303
- package/vendor/Server/Skills/rnoh-cptf-api-test/references/CPTF_TEST_GENERATION_GUIDE.md +421 -421
- package/vendor/Server/Skills/rnoh-cptf-api-test/references/DEMO_GENERATION_GUIDE.md +358 -358
- package/vendor/Server/Skills/rnoh-cptf-api-test/references/QUALITY_CHECKLIST.md +114 -114
- package/vendor/Server/Skills/rnoh-cptf-api-test/references/SPEC_PARSING_GUIDE.md +274 -274
- package/vendor/Server/Skills/rnoh-cptf-api-test/scripts/validate-rnoh-cptf-api-test.sh +185 -185
- package/vendor/Server/Skills/rnoh-cptf-demo-test/SKILL.md +191 -191
- package/vendor/Server/Skills/rnoh-cptf-demo-test/assets/TEST_TEMPLATE.md +216 -216
- package/vendor/Server/Skills/rnoh-cptf-demo-test/references/CPTF_SETUP.md +107 -107
- package/vendor/Server/Skills/rnoh-cptf-demo-test/references/DEMO_ANALYSIS.md +120 -120
- package/vendor/Server/Skills/rnoh-cptf-demo-test/scripts/validate-rnoh-cptf-test.sh +108 -108
- package/vendor/Server/Skills/rnoh-cptf-test-run/SKILL.md +237 -237
- package/vendor/Server/Skills/rnoh-cptf-test-run/references/DEBUG_PLAYBOOK.md +261 -261
- package/vendor/Server/Skills/rnoh-cptf-test-run/scripts/validate-run-env.sh +112 -112
- package/vendor/Server/Skills/rnoh-lib-code-adapt/SKILL.md +497 -497
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/adapt-checklist.md +270 -270
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/api-migration-checklist.md +164 -164
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/common-compile-errors.md +556 -556
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/deveco-cli-tools.md +459 -459
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/edge-cases.md +65 -65
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/har-tgz-build.md +512 -512
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/version-compat-matrix.md +132 -132
- package/vendor/Server/Skills/rnoh-lib-code-adapt/scripts/auto-integrate.sh +424 -424
- package/vendor/Server/Skills/rnoh-lib-demo-coverage/SKILL.md +137 -137
- package/vendor/Server/Skills/rnoh-lib-demo-create/SKILL.md +306 -306
- package/vendor/Server/Skills/rnoh-lib-demo-create/assets/DEMO_PAGE_TEMPLATE.md +485 -485
- package/vendor/Server/Skills/rnoh-lib-demo-create/assets/INDEX_TEMPLATE.md +172 -172
- package/vendor/Server/Skills/rnoh-lib-demo-create/references/DEMO_CODE_RULES.md +422 -422
- package/vendor/Server/Skills/rnoh-lib-demo-create/references/QUALITY_CHECKLIST.md +95 -95
- package/vendor/Server/Skills/rnoh-lib-demo-create/references/SOURCE_EXPLORATION.md +169 -169
- package/vendor/Server/Skills/rnoh-lib-demo-doc/SKILL.md +554 -554
- package/vendor/Server/Skills/rnoh-lib-demo-doc/assets/DEMO_DOC_TEMPLATE.md +106 -106
- package/vendor/Server/Skills/rnoh-lib-demo-doc/references/COVERAGE_INCREMENTAL.md +216 -216
- package/vendor/Server/Skills/rnoh-lib-demo-doc/references/DEMO_DESIGN_RULES.md +413 -413
- package/vendor/Server/Skills/rnoh-lib-demo-doc/references/OUTPUT_FORMAT.md +269 -269
- package/vendor/Server/Skills/rnoh-lib-demo-doc/references/QUALITY_CHECKLIST.md +98 -98
- package/vendor/Server/Skills/rnoh-lib-func-test/SKILL.md +337 -337
- package/vendor/Server/Skills/rnoh-lib-rnt-search/SKILL.md +722 -722
- package/vendor/Server/Skills/rnoh-lib-rnt-search/assets/PORT_REPORT_TEMPLATE.md +219 -219
- package/vendor/Server/Skills/rnoh-lib-rnt-search/references/DEMO_PORTING_GUIDE.md +345 -345
- package/vendor/Server/Skills/rnoh-lib-rnt-search/references/PORT_VERIFICATION.md +269 -269
- package/vendor/Server/Skills/rnoh-lib-rnt-search/references/RNT_PROJECT_STRUCTURE.md +173 -173
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/analyze-demo-deps.cjs +267 -267
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/detect-rnoh-version.cjs +174 -174
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/find-rnt-demo.sh +111 -111
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/port-demo.sh +186 -186
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/read-lib-meta.cjs +150 -150
- package/vendor/Server/Skills/rnoh-lib-test-align/SKILL.md +296 -296
- package/vendor/Server/Skills/rnoh-lib-test-align/references/jest-troubleshooting.md +371 -371
- package/vendor/Server/Skills/rnoh-lib-test-align/references/port-test-demo-guide.md +212 -212
- package/vendor/Server/Skills/rnoh-lib-test-align/references/runtime-troubleshooting.md +345 -345
- package/vendor/Server/Skills/rnoh-lib-test-align/references/unit-test-template.md +223 -223
- package/vendor/Server/Skills/rnoh-lib-test-align/scripts/port-test-demo.sh +1053 -1053
- package/vendor/Server/Skills/rnoh-lib-version-diff/SKILL.md +295 -255
- package/vendor/Server/Skills/rnoh-lib-version-diff/references/OHOS_ADAPTATION.md +82 -77
- package/vendor/Server/Skills/rnoh-lib-version-diff/references/OHOS_API_LOOKUP.md +224 -224
- package/vendor/Server/Skills/rnoh-lib-version-diff/references/script-reference.md +175 -174
- package/vendor/Server/Skills/rnoh-lib-version-diff/scripts/detect-upstream-version.js +967 -967
- package/vendor/Server/Skills/rnoh-lib-version-diff/scripts/generate-diff.js +1798 -1798
- package/vendor/Server/Skills/rnoh-lib-version-diff/scripts/package.json +5 -5
- package/vendor/Server/Skills/rnoh-lib-version-diff/templates/report-template.md +180 -137
- package/vendor/Server/Skills/rnoh-lib-xts-coverage/SKILL.md +145 -145
- package/vendor/Server/Skills/skill-generator/SKILL.md +365 -365
- package/vendor/Server/Skills/skill-generator/assets/SKILL_TEMPLATE.md +183 -183
- package/vendor/Server/Skills/skill-generator/references/COMPLIANCE_CHECKLIST.md +82 -82
- package/vendor/Server/Skills/skill-generator/references/KB_QUERY_GUIDE.md +110 -110
- package/vendor/Server/Skills/skill-generator/references/MCP_TOOL_DISCOVERY.md +122 -122
- package/vendor/Server/Skills/skill-generator/references/SKILL_SPEC.md +121 -121
- package/vendor/Server/Skills/skill-generator/scripts/validate-skill.cjs +259 -259
- package/vendor/Server/Skills/task-analysis/SKILL.md +234 -234
- package/vendor/Server/Skills/task-analysis/assets/OUTPUT_EXAMPLES.md +160 -160
- package/vendor/Server/Skills/task-analysis/references/ACCEPTANCE_CRITERIA_GUIDE.md +190 -190
- package/vendor/Server/Skills/task-analysis/references/ANALYSIS_SCHEMA.md +224 -224
- package/vendor/Server/Skills/task-analysis/references/INTEGRATION_CONTEXT.md +162 -162
- package/vendor/Server/Skills/task-analysis/references/LESSONS_LEARNED.md +55 -55
- package/vendor/Server/Skills/task-analysis/references/REPLAN_CONTEXT_GUIDE.md +126 -126
- package/vendor/Server/Skills/task-analysis/scripts/validate-analysis-output.sh +256 -256
- package/vendor/Server/Skills/task-decomposition/SKILL.md +528 -528
- package/vendor/Server/Skills/task-decomposition/assets/OUTPUT_EXAMPLES.md +451 -451
- package/vendor/Server/Skills/task-decomposition/references/ACCEPTANCE_CRITERIA_GUIDE.md +179 -179
- package/vendor/Server/Skills/task-decomposition/references/DEPENDENCY_GRAPH_GUIDE.md +152 -152
- package/vendor/Server/Skills/task-decomposition/references/INTEGRATION_CONTEXT.md +175 -175
- package/vendor/Server/Skills/task-decomposition/references/REPLAN_CONTEXT_GUIDE.md +195 -195
- package/vendor/Server/Skills/task-decomposition/references/TASK_DECOMPOSITION_TEMPLATES.md +226 -226
- package/vendor/Server/Skills/task-decomposition/scripts/list-available-skills.cjs +263 -263
- package/vendor/Server/Skills/task-decomposition/scripts/skill-blacklist.json +29 -29
- package/vendor/Server/Skills/task-decomposition/scripts/validate-decomposition-output.cjs +376 -376
- package/vendor/Server/Skills/task-decomposition/scripts/validate-param-consistency.cjs +259 -259
- package/vendor/Server/Skills/task-decomposition/scripts/validate-specified-skills.cjs +216 -216
- package/vendor/Server/Skills/task-decomposition/scripts/validate-step-graph.cjs +424 -424
- package/vendor/Server/Skills/tpc-cpp-check/SKILL.md +427 -427
- package/vendor/Server/Skills/tpc-cpp-check/references/CHECKLIST.md +214 -214
- package/vendor/Server/Skills/tpc-cpp-check/references/HPKBUILD_GUIDE.md +235 -235
- package/vendor/Server/Skills/tpc-cpp-check/references/REPORT_TEMPLATE.md +250 -250
- package/vendor/Server/TestCheck/TestCheck.js +775 -775
- package/vendor/Server/TestCheck/index.js +11 -11
- package/vendor/Server/library/McpToolGuide.js +280 -280
- package/vendor/Server/library/StatsService.js +126 -126
- package/vendor/Server/library/cstTime.js +16 -16
- package/vendor/VERSION +3 -3
- package/workflows/pr-check.mjs +105 -105
- package/workflows/pr-push.mjs +192 -192
- package/vendor/Server/Agent/SkillSelector/types.js +0 -63
|
@@ -1,529 +1,529 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: task-decomposition
|
|
3
|
-
description: 将自然语言任务描述拆解为多个可独立执行的步骤,生成包含依赖关系的步骤图与步骤级验收标准。当需要将一个复杂的高层任务分解为 Orchestrator 可执行的结构化步骤列表时使用此技能。适用于 AI Loop 系统中 Brain 模块的任务拆解阶段,支持首轮拆解与重规划场景。关键词:步骤拆解、依赖图、验收标准、task-planning。
|
|
4
|
-
license: Apache-2.0
|
|
5
|
-
compatibility: 由 Brain 模块通过 opencode CLI 调用(SkillExecutor),或降级为直接 LLM 调用。需要写入权限到任务工作目录,输出纯 JSON 格式拆解结果。
|
|
6
|
-
metadata:
|
|
7
|
-
author: LoopEngine
|
|
8
|
-
version: "2.3.0"
|
|
9
|
-
category: task-planning
|
|
10
|
-
language: natural-language
|
|
11
|
-
invoked-by: DecompositionStrategies._decomposeViaCLI / _decomposeWithContextViaCLI
|
|
12
|
-
consumed-by: DecompositionStrategies.normalizeSteps → Brain.taskDef → Orchestrator.loadTask(步骤的 specifiedSkill 透传至 FlexRunner)
|
|
13
|
-
upstream: task-analysis(提供 intent/domain/techStack/estimatedSteps/acceptanceCriteria)
|
|
14
|
-
downstream: Orchestrator(调度步骤图,步骤经 specifiedSkill 显式绑定执行 SKILL)、TestCheck(消费任务级验收标准)、acceptance-check(消费步骤级产物)
|
|
15
|
-
---
|
|
16
|
-
|
|
17
|
-
# 任务拆解技能
|
|
18
|
-
|
|
19
|
-
本技能通过 LLM 将自然语言任务描述拆解为多个可独立执行的步骤,生成包含依赖关系的步骤图与步骤级验收标准,供 Orchestrator 编排器调度执行。
|
|
20
|
-
|
|
21
|
-
> ⚠️ **核心原则:每个步骤只做一件可独立完成、可验证的事,步骤描述包含足够技术细节。输出必须为纯 JSON。** 步骤描述面向任务本身(做什么/预期输出);当步骤职责与可用 SKILL 匹配时,通过 `specifiedSkill` 字段显式绑定(不在描述文本中写推荐语),技术细节由 SKILL 承载。拆解是设计活动而非研究活动:拆解输入只消费 prompt 注入的任务描述、分析结果与验收标准。
|
|
22
|
-
|
|
23
|
-
---
|
|
24
|
-
|
|
25
|
-
## 调用方式
|
|
26
|
-
|
|
27
|
-
本 SKILL 由 Brain 模块的 `DecompositionStrategies` 调用,通过 `SkillExecutor.invokeSkill` 执行:
|
|
28
|
-
|
|
29
|
-
- **首轮拆解**:`DecompositionStrategies._decomposeViaCLI(taskDescription, analysis, skillDir, userCriteria, execCtx)`
|
|
30
|
-
- **重规划拆解**:`DecompositionStrategies._decomposeWithContextViaCLI(taskDescription, analysis, skillDir, userCriteria, context, execCtx)`
|
|
31
|
-
|
|
32
|
-
调用方构建以下 prompt 段落传入:
|
|
33
|
-
- `## SKILL 目录` — 本 SKILL 目录路径(opencode 读取 SKILL.md 执行)
|
|
34
|
-
- `## 工作目录` — 任务工作目录
|
|
35
|
-
- `## 结果文件输出路径` — JSON 输出路径(`brain_decomposition_loop{N}.json`)
|
|
36
|
-
- `## 任务描述` — 自然语言任务描述
|
|
37
|
-
- `## 任务分析结果` — task-analysis SKILL 输出(intent/domain/keywords/constraints/techStack/complexity/estimatedSteps)
|
|
38
|
-
- `## 验收标准` — 任务级验收标准列表(`[ac1] (type) criterion → 验证: verification`)
|
|
39
|
-
- 重规划时额外注入:`## 重规划上下文` / `## 上一轮审核摘要` / `## 未满足的验收标准` / `## 改进建议` / `## 重拆解要求`
|
|
40
|
-
|
|
41
|
-
> 可用执行 SKILL 列表**不通过 prompt 注入**:由本 SKILL 的脚本在拆解时实时扫描获取(见 Phase 1.5),保证 SKILL 注册表的单一事实源在 SKILL 内的脚本,系统侧不硬编码。
|
|
42
|
-
|
|
43
|
-
> 完整调用链路与消费方式参见 [集成上下文说明](references/INTEGRATION_CONTEXT.md)
|
|
44
|
-
|
|
45
|
-
---
|
|
46
|
-
|
|
47
|
-
## 任务参数
|
|
48
|
-
|
|
49
|
-
| 参数 | 类型 | 必填 | 说明 |
|
|
50
|
-
|------|------|------|------|
|
|
51
|
-
| `taskDescription` | string | ✅ | 自然语言任务描述(由调用方通过 prompt 注入) |
|
|
52
|
-
| `analysis` | object | ✅ | task-analysis SKILL 输出(intent/domain/keywords/constraints/techStack/complexity/estimatedSteps/acceptanceCriteria) |
|
|
53
|
-
| `resultFilePath` | string | ✅ | 拆解结果 JSON 输出路径(由调用方指定) |
|
|
54
|
-
| `context` | object | ❌ | 重规划上下文(仅重规划时提供,含 failedCriteria、improvementSuggestions、prevCheckSummary、loopCount 等) |
|
|
55
|
-
| `skillDirectory` | string | ❌ | SKILL 根目录路径(覆盖可用 SKILL 扫描脚本的默认根目录,调用方通过 `## SKILL 目录` 注入) |
|
|
56
|
-
|
|
57
|
-
---
|
|
58
|
-
|
|
59
|
-
## 输入依赖
|
|
60
|
-
|
|
61
|
-
- **前置 SKILL**:`task-analysis`(提供任务分析结果,含 intent/domain/techStack/estimatedSteps/acceptanceCriteria)
|
|
62
|
-
- **输入文件**:无(任务描述与分析结果通过 prompt 注入)
|
|
63
|
-
- **下游 SKILL**:各执行类 SKILL(步骤通过 `specifiedSkill` 字段显式绑定,未绑定的步骤由 SkillSelector 运行时按 taskDescription 自动匹配)
|
|
64
|
-
|
|
65
|
-
---
|
|
66
|
-
|
|
67
|
-
## 工作流程概览
|
|
68
|
-
|
|
69
|
-
```
|
|
70
|
-
Phase 1: 任务理解与分析结果解析
|
|
71
|
-
↓
|
|
72
|
-
Phase 2: 从产物逆向推导步骤图并构建依赖关系
|
|
73
|
-
↓
|
|
74
|
-
Phase 3: 步骤级验收标准生成
|
|
75
|
-
↓
|
|
76
|
-
Phase 4: 结果输出(纯 JSON 写入 resultFilePath)
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
---
|
|
80
|
-
|
|
81
|
-
## Phase 1:任务理解与分析结果解析
|
|
82
|
-
|
|
83
|
-
### 1.1 解析任务描述
|
|
84
|
-
|
|
85
|
-
读取 `## 任务描述` 段落,理解任务的核心目标和预期产出。结合 `analysis.estimatedSteps` 作为步骤数量参考。
|
|
86
|
-
|
|
87
|
-
### 1.2 解析任务分析结果
|
|
88
|
-
|
|
89
|
-
读取 `## 任务分析结果` 段落,提取关键信息用于步骤设计:
|
|
90
|
-
|
|
91
|
-
| 字段 | 用途 |
|
|
92
|
-
|------|------|
|
|
93
|
-
| `intent` | 确保所有步骤围绕核心意图 |
|
|
94
|
-
| `domain` | 辅助判断任务所属领域,指导步骤设计 |
|
|
95
|
-
| `techStack` | 每个步骤的技术栈要与任务描述一致,便于后续匹配 |
|
|
96
|
-
| `estimatedSteps` | 步骤数量参考基准 |
|
|
97
|
-
| `acceptanceCriteria` | 步骤级验收标准需覆盖任务级标准 |
|
|
98
|
-
|
|
99
|
-
### 1.3 处理重规划上下文(如果提供)
|
|
100
|
-
|
|
101
|
-
如果 prompt 中包含 `## 重规划上下文` 段落,进入重规划模式:
|
|
102
|
-
- 读取 `## 未满足的验收标准` — 上一轮失败的标准及原因
|
|
103
|
-
- 读取 `## 改进建议` — 上一轮的改进方向
|
|
104
|
-
- 读取 `## 上一轮审核摘要` — 审核总结
|
|
105
|
-
- **保持原始任务目标不变**,调整步骤设计与验收标准
|
|
106
|
-
- 针对失败点强化步骤描述或新增验证步骤
|
|
107
|
-
|
|
108
|
-
> 详细处理流程参见 [重规划上下文处理指南](references/REPLAN_CONTEXT_GUIDE.md)
|
|
109
|
-
|
|
110
|
-
### 1.4 关键参数提取与锚定
|
|
111
|
-
|
|
112
|
-
在解析任务描述后,**必须**提取以下关键参数,并在后续步骤描述与验收标准中**逐字引用**原始值,不得改写、缩写或臆造:
|
|
113
|
-
|
|
114
|
-
| 参数类别 | 提取规则 | 示例 |
|
|
115
|
-
|----------|----------|------|
|
|
116
|
-
| 版本号 | 所有 `\d+(\.\d+){1,3}` 格式的数字(支持 2-4 段式) | `0.82`, `0.84`, `7.88.0` |
|
|
117
|
-
| 分支名 | `br_` 前缀的标识符 | `br_rnoh0.82` |
|
|
118
|
-
| 仓库 URL | `https://` 开头的完整 URL | `https://gitcode.com/CPF-RN/rntpc_react-native-pager-view/tree/br_rnoh0.82` |
|
|
119
|
-
| 库名 | 任务描述中的三方库名称 | `rntpc_react-native-pager-view` |
|
|
120
|
-
|
|
121
|
-
提取的参数写入输出 JSON 的 `keyParameters` 字段(结构见 Phase 4.2)。生成步骤描述时,涉及上述参数的位置必须从 `keyParameters` 中取值,不得从记忆中重新生成。
|
|
122
|
-
|
|
123
|
-
> ⚠️ **高频错误案例**:任务描述中源分支为 `br_rnoh0.82`(版本 `0.82`),但 LLM 在步骤描述中臆造为 `br_rnoh0.72`(版本 `0.72`)。这类版本号/分支名篡改会导致后续所有步骤执行完全错误,且现有结构校验无法发现。`keyParameters` 字段 + `validate-param-consistency.cjs` 脚本用于强制拦截此类错误。
|
|
124
|
-
|
|
125
|
-
### 1.5 获取可用 SKILL 列表
|
|
126
|
-
|
|
127
|
-
步骤与执行 SKILL 的绑定依赖**实时扫描**的可用 SKILL 列表(单一事实源:SKILL 根目录下各 SKILL.md 的 frontmatter,由本 SKILL 内的脚本提供,系统侧不硬编码、不预置)。**拆解时必须先运行以下脚本获取列表**:
|
|
128
|
-
|
|
129
|
-
```bash
|
|
130
|
-
node {SKILL目录}/scripts/list-available-skills.cjs --format compact
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
> `compact` 格式每 SKILL 一行(description 压缩为单行并截断 60 字符),输出体积小、可直接内联读取,足以完成步骤与 SKILL 的匹配;仅当某 SKILL 的职责边界无法从截断描述判断时,再运行 `--format list` 查看完整描述。
|
|
134
|
-
|
|
135
|
-
脚本行为:
|
|
136
|
-
- 扫描 SKILL 根目录(默认脚本所在目录的上上级,即 Skills 根目录)下所有含 SKILL.md 的一级子目录
|
|
137
|
-
- 读取各 SKILL.md frontmatter 的 `name` / `description`,按 `- name(目录名): description` 每行一个输出
|
|
138
|
-
- **黑名单过滤**:命中 `scripts/skill-blacklist.json`(默认排除编排层/元技能:task-analysis、task-decomposition、acceptance-check、skill-generator、knowledge-import——它们由 Brain/LoopEngine 按固定链路调用,不应被步骤引用)、`--exclude` 参数或环境变量 `SKILL_BLACKLIST` 的 SKILL 会被跳过
|
|
139
|
-
|
|
140
|
-
> **`specifiedSkill` 的合法取值只能来自该脚本实时返回的列表**,由 `validate-specified-skills.cjs` 强制校验(校验脚本同样实时扫描,不读取任何缓存或预置清单)。
|
|
141
|
-
|
|
142
|
-
---
|
|
143
|
-
|
|
144
|
-
## Phase 2:从产物逆向推导步骤图并构建依赖关系
|
|
145
|
-
|
|
146
|
-
### 2.0 拆解认知方法论:从产物逆向推导步骤图
|
|
147
|
-
|
|
148
|
-
拆解的正确起点是**任务级验收标准定义的最终交付物**,而非对问题域的研究。步骤图的推导路径:
|
|
149
|
-
|
|
150
|
-
```
|
|
151
|
-
最终交付物(任务级 AC 定义的报告/代码/测试结果)
|
|
152
|
-
↓ 逆向拆解:产出它需要哪些前置产物?
|
|
153
|
-
中间产物层(分析记录 / 编译产物 / 测试结果 / 变更清单…)
|
|
154
|
-
↓ 每个产物节点 = 一个步骤
|
|
155
|
-
外部输入层(源码仓库 / 环境 / Issue 信息…)
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
产物依赖树的构建不依赖问题域知识细节,拆解输入完全来自 prompt 注入的文本,无需检索补充。
|
|
159
|
-
|
|
160
|
-
#### 原则 1:产物逆向分解
|
|
161
|
-
|
|
162
|
-
从任务级 AC 提取最终产物,逆向回答"产出它需要什么前置产物",逐层下探直到外部输入。**每个产物节点对应一个步骤,产物依赖关系天然构成步骤图**,步骤数自然与 `estimatedSteps` 对齐。
|
|
163
|
-
|
|
164
|
-
以 bug 根因分析任务为例(AC 要求产出含五个章节的根因分析报告):
|
|
165
|
-
|
|
166
|
-
```
|
|
167
|
-
浅拷贝源码 → Issue事实与调用链 → NAPI层行为事实 → 连接认证流程事实 → 根因结论+调试方法 → 根因分析报告
|
|
168
|
-
步骤1 步骤2 步骤3 步骤4 步骤5 步骤6
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
#### 原则 2:信息时序分层
|
|
172
|
-
|
|
173
|
-
步骤描述中的技术断言(文件路径、函数名、行为结论)只能来源于 prompt 已注入的信息:任务描述、任务分析结果、验收标准、重规划上下文。拆解期未经验证的结论不得写成事实,应降级为探索目标。
|
|
174
|
-
|
|
175
|
-
写完每步自检:**"这个技术断言的出处是 prompt 的哪一段?"** 找不到出处即改写为探索目标。
|
|
176
|
-
|
|
177
|
-
#### 原则 3:探索型步骤容纳不确定性
|
|
178
|
-
|
|
179
|
-
拆解时"不知道 X 的具体行为"是正常且预期的。正确姿势是用**结构**容纳不确定性,由执行步骤去消解:
|
|
180
|
-
|
|
181
|
-
- **分析范围**:从任务描述给出的代码位置/库名取值(如 "ohos_ssh 库的 ArkTS 层与 NAPI C++ 层")
|
|
182
|
-
- **问题清单**:该步骤要回答的问题(如 "凭据如何校验与保存?失败返回路径有哪些?回调错误码语义是什么?")
|
|
183
|
-
- **产物结构**:记录文件必须包含的字段(如 "含调用链、错误码定义、回调回传机制三部分")
|
|
184
|
-
|
|
185
|
-
对应地,探索型步骤的验收标准只描述产物结构(文件存在、非空、含哪些章节),不预设结论内容。
|
|
186
|
-
|
|
187
|
-
### 2.1 步骤粒度原则
|
|
188
|
-
|
|
189
|
-
步骤颗粒度决定 Orchestrator 的调度粒度与每步的执行聚焦度。遵循以下**通用拆分规则**,同时保持任务编排层与 SKILL 层的解耦(步骤描述只面向任务本身,不绑定具体 SKILL):
|
|
190
|
-
|
|
191
|
-
#### 拆解数量基本原则:以最少充分步骤完成任务
|
|
192
|
-
|
|
193
|
-
步骤不是越多越好。拆解数量由**任务复杂度**决定,能以最少步骤覆盖全部任务级验收标准即为合适——每多一步都是 Orchestrator 的一次调度开销、上下文切换成本和潜在失败点。
|
|
194
|
-
|
|
195
|
-
**1. 复杂度分级定基准**(结合 `analysis.complexity` 与产物依赖树规模判断):
|
|
196
|
-
|
|
197
|
-
| 复杂度 | 特征 | 步骤数基准 |
|
|
198
|
-
|--------|------|-----------|
|
|
199
|
-
| 简单 | 单一最终产物,无中间产物或仅一层(如信息问答、单点修复、小范围代码检视) | 1-3 步 |
|
|
200
|
-
| 中等 | 2-3 个独立中间产物,线性依赖链(如分析→修改→验证) | 3-5 步 |
|
|
201
|
-
| 复杂 | 多中间产物、并行分支或修复回路、跨层跨模块(如框架升级适配) | 5-8 步 |
|
|
202
|
-
|
|
203
|
-
超过 8 步通常意味着任务本身应拆分为多个任务,或存在过度拆解。
|
|
204
|
-
|
|
205
|
-
**2. 最少充分判定**:目标步骤数 = 覆盖全部任务级 AC 所需的最少独立产物数。每增加一步前自检:
|
|
206
|
-
- "这步的产物被哪个下游步骤或任务级 AC 消费?" —— 无消费者则并入相邻步骤
|
|
207
|
-
- "并入相邻步骤后,验收标准是否仍可独立验证?" —— 仍可验证则合并
|
|
208
|
-
|
|
209
|
-
**3. 凑数反模式**:
|
|
210
|
-
- ❌ 为对齐 `estimatedSteps` 而拆细——它是参考基准而非目标值
|
|
211
|
-
- ❌ 无独立产物的流程性步骤(如单独的"确认环境"、"整理思路"、"校验报告格式")
|
|
212
|
-
- ❌ 为低概率失败预设修复步骤——按需用 `failStepId` 指回自身配合 `maxRetries` 重试即可
|
|
213
|
-
|
|
214
|
-
#### 通用拆分规则
|
|
215
|
-
|
|
216
|
-
1. **单一职责**:每个步骤只做"一件事"——一个可独立验证的产出或动作。若一个步骤蕴含多个独立产出(如"既分析源码又修改代码"),拆分为多个步骤。
|
|
217
|
-
2. **可验证**:每个步骤必须有可检查的产物或可执行命令来判定成败。无法验证的步骤需拆分,或补充明确验收标准。
|
|
218
|
-
3. **预估步数对齐**:步骤总数以 `analysis.estimatedSteps` 为参考基准(视为上限多于视为目标),实际取"覆盖全部任务级 AC 的最少独立产物数",向下偏差是正常的。当任务命中领域模板时,以模板固化的步骤数为准(如 RN 三方库框架升级适配固定 6 步),不因 `estimatedSteps` 偏差而拆细或合并。
|
|
219
|
-
4. **过粗/过细判定**:
|
|
220
|
-
- **过粗信号**:步骤描述含"同时/以及/并且"连接多个不相关任务,或蕴含多个独立产物 → 应拆分。
|
|
221
|
-
- **过细信号**:步骤描述只有原子操作(如 `git clone`、`cd 目录`、`ls 查看文件`)→ 应合并为一个"获取源码并分析结构"步骤。
|
|
222
|
-
|
|
223
|
-
#### few-shot 示例
|
|
224
|
-
|
|
225
|
-
> 4 个正反例(过细/过粗/凑数式/合理)参见 [常见任务拆解模板](references/TASK_DECOMPOSITION_TEMPLATES.md) 的「颗粒度 few-shot 示例」章节。核心记忆点:
|
|
226
|
-
>
|
|
227
|
-
> - 原子操作(git clone / cd / ls)合并为一步
|
|
228
|
-
> - 一步含多个独立产出必须拆分
|
|
229
|
-
> - 简单任务单一产物时 1 步即可,estimatedSteps 是参考而非目标
|
|
230
|
-
|
|
231
|
-
#### 领域模板优先匹配
|
|
232
|
-
|
|
233
|
-
当任务描述的 `domain` 或 `keywords` 命中已知领域模板时(如 `harmonyos-porting` + `framework-upgrade` 命中「RN 三方库框架升级适配」模板),**优先使用模板的步骤图骨架**,结合当前任务的版本号/分支名/验收标准进行适配,而非从零设计步骤。领域模板已沉淀了该类任务的最佳实践步骤划分、AC 覆盖模式和参数提取规则。
|
|
234
|
-
|
|
235
|
-
> 通用颗粒度拆分规则与更多常见任务拆解模板(含 RN 三方库框架升级适配 6 步模板)参见 [常见任务拆解模板](references/TASK_DECOMPOSITION_TEMPLATES.md)。**匹配模板时先读该文件顶部的「模板索引」表**,命中后仅按起始行小范围读取对应模板段落,禁止通读全文。
|
|
236
|
-
|
|
237
|
-
### 2.2 依赖图字段
|
|
238
|
-
|
|
239
|
-
步骤间通过三个字段构成有向图:
|
|
240
|
-
|
|
241
|
-
```
|
|
242
|
-
dependId → 当前步骤依赖的步骤,支持 number 或 number[](0 或空数组 = 入口步骤,无前置依赖;
|
|
243
|
-
-1 = 修复步骤哨兵,表示"仅由 failStepId 触发、无入口身份、无并行依赖")
|
|
244
|
-
· dependId: 2 单依赖(等价于 [2])
|
|
245
|
-
· dependId: [2,3,4] fan-in 聚合,需 2/3/4 全部完成才执行本步骤
|
|
246
|
-
· dependId: -1 修复步骤(唯一进入条件是触发它的步骤失败),不能当作入口步骤
|
|
247
|
-
nextStepId → 成功后执行哪个步骤(0 = 终止,任务完成)
|
|
248
|
-
failStepId → 失败后跳转到哪个步骤(0 = 失败即终止)
|
|
249
|
-
```
|
|
250
|
-
|
|
251
|
-
> ⚠️ **修复步骤 dependId 必须设为 -1 哨兵**:被某步骤 `failStepId=B` 指向的修复步骤 B,其 `dependId` **必须设为 `-1`**,不能设为 0 或空。0 或空会被 Orchestrator / 校验脚本误判为"入口步骤",导致 B 与任务入口一步骤并行启动、提前误执行。`dependId=-1` 明确表达"仅由 failStepId 触发、无入口身份、无并行依赖"。修复成功后通常用 B 的 `nextStepId` 指回触发它的步骤,配合 `maxRetries` 形成有限重试循环。(Brain 生成侧 `sanitizeFixChainDependId` 会自动将修复步骤的 dependId 规范化为 `-1`,LLM 原始输出无需手工设置此字段。)
|
|
252
|
-
|
|
253
|
-
### 2.3 图结构设计要点
|
|
254
|
-
|
|
255
|
-
- **入口步骤**:至少有一个 `dependId=0`(或 `dependId: []`)的步骤;`dependId=-1` 的修复步骤不计入入口
|
|
256
|
-
- **终止步骤**:至少有一个 `nextStepId=0` 的步骤
|
|
257
|
-
- **并行执行(fan-out)**:多个步骤的 `dependId` 指向同一步骤 → Orchestrator 并行执行
|
|
258
|
-
- **聚合执行(fan-in)**:某步骤需等待多个并行步骤全部完成再执行,用 `dependId: [a, b, c]` → 仅当 a/b/c 全部 COMPLETED 后本步骤才被激活
|
|
259
|
-
- **失败回退**:关键步骤设 `failStepId` 指向修复步骤(修复步骤 `dependId=-1`),修复成功后通过 `nextStepId` 重新指向原始步骤(有限重试循环)
|
|
260
|
-
- **禁止死循环**:failStepId 回退链必须是有限的,配合 `maxRetries` 控制
|
|
261
|
-
|
|
262
|
-
> 依赖图设计模式与示例参见 [依赖图设计指南](references/DEPENDENCY_GRAPH_GUIDE.md)
|
|
263
|
-
|
|
264
|
-
### 2.4 步骤描述规范
|
|
265
|
-
|
|
266
|
-
**好的描述:**
|
|
267
|
-
```
|
|
268
|
-
对 libcurl 源码进行鸿蒙化可行性分析:git clone 源码仓库,扫描源码结构、依赖、平台相关代码及构建系统,输出标准化分析报告(analysis-report.md)
|
|
269
|
-
```
|
|
270
|
-
|
|
271
|
-
**差的描述:**
|
|
272
|
-
```
|
|
273
|
-
分析代码
|
|
274
|
-
```
|
|
275
|
-
|
|
276
|
-
描述必须包含:具体操作(git clone/扫描/编译/测试)、操作对象(库名/文件路径)、预期输出(报告文件名/状态标记)。
|
|
277
|
-
|
|
278
|
-
#### 研究式 vs 设计式描述(高频反模式)
|
|
279
|
-
|
|
280
|
-
拆解阶段最易犯的错误是"研究式描述":把需要执行期核实的行为预先写成事实(往往来自拆解时的检索或记忆)。一旦与实际代码不符,步骤描述本身就会误导执行者。
|
|
281
|
-
|
|
282
|
-
**研究式(错误,预写了未验证结论):**
|
|
283
|
-
```
|
|
284
|
-
分析 SSH2Napi::SetUser 对空密码参数的校验与直接返回失败的行为,及其导致凭据未保存的影响
|
|
285
|
-
```
|
|
286
|
-
|
|
287
|
-
**设计式(正确,范围来自任务描述、目标来自验收标准):**
|
|
288
|
-
```
|
|
289
|
-
分析 ohos_ssh 库 NAPI 层的凭据处理与客户端启动异步流程,识别全部失败返回路径与回调错误码
|
|
290
|
-
语义,输出 napi-layer-analysis.md(含调用链、错误码定义、回调回传机制三部分)
|
|
291
|
-
```
|
|
292
|
-
|
|
293
|
-
判断标准:描述中的路径/函数名/行为断言必须能在任务描述或分析结果中找到出处;找不到出处的,改写为"识别/梳理/确认"类探索目标。
|
|
294
|
-
|
|
295
|
-
#### 步骤的 SKILL 匹配与 specifiedSkill 标注
|
|
296
|
-
|
|
297
|
-
拆解时参考 Phase 1.5 获取的**可用 SKILL 列表**:当某步骤的职责与某个可用 SKILL 匹配(该 SKILL 的 description 覆盖此步骤的目标产出)时,在该步骤 JSON 中设置 `specifiedSkill` 字段,值为该 SKILL 的 `name` 或目录名。执行层(FlexRunner)收到 `specifiedSkill` 后将跳过自动匹配直接使用该 SKILL——因此**该字段是步骤与执行 SKILL 的唯一绑定方式,不要在 `taskDescription` 中追加"推荐使用 X SKILL 执行"之类的推荐文本**(旧模式已废止,由 `validate-specified-skills.cjs` 拦截)。
|
|
298
|
-
|
|
299
|
-
无匹配 SKILL 的步骤(如克隆仓库、设备部署等通用操作)不设置 `specifiedSkill`,`taskDescription` 仍需写明具体操作步骤。
|
|
300
|
-
|
|
301
|
-
#### 设置 specifiedSkill 时步骤描述精简规则
|
|
302
|
-
|
|
303
|
-
> ⚠️ **核心原则:设置了 `specifiedSkill` 的步骤,`taskDescription` 只需描述任务目标与关键参数(版本号/分支名/库名),技术执行细节由 SKILL 承载,不需要在步骤描述中重复。**
|
|
304
|
-
|
|
305
|
-
当某步骤绑定了 `specifiedSkill` 时,`taskDescription` 应遵循以下精简模式:
|
|
306
|
-
|
|
307
|
-
1. **一句话描述任务目标** — 做什么、预期产出是什么
|
|
308
|
-
2. **保留关键参数锚定** — 版本号、分支名、库名等 `keyParameters` 中的值必须出现(参数一致性校验要求)
|
|
309
|
-
3. **设置 `specifiedSkill` 字段** — 值必须来自可用 SKILL 列表,不在描述文本中出现任何推荐语
|
|
310
|
-
4. **不重复 SKILL 内的技术细节** — 如脚本名、编译步骤、适配层级、具体命令等,这些由 SKILL 自身描述
|
|
311
|
-
|
|
312
|
-
**精简前(错误:技术细节冗长 + 旧式推荐文本):**
|
|
313
|
-
```
|
|
314
|
-
执行 detect-upstream-version.js 脚本识别鸿蒙化基线版本号与 npm 上游最新版本号,判定升级类型 A/B/C;
|
|
315
|
-
如为类型 A 使用 generate-diff.js 对比上游社区仓库两个版本标签(注意 --repo 必须是上游社区仓库 URL,
|
|
316
|
-
不是鸿蒙化仓库 URL);如为类型 B 跳过 diff 生成,聚焦 RNOH 0.82→0.84 框架 API 变更对比;
|
|
317
|
-
执行 git ls-remote --heads 检查 br_rnoh0.84 分支是否存在,如无则标注需从 0.82 基线升级;
|
|
318
|
-
输出版本分析报告,包含 currentVersion、upstreamVersion、diffItems、风险等级字段。
|
|
319
|
-
推荐使用 rnoh-lib-version-diff SKILL 执行。
|
|
320
|
-
```
|
|
321
|
-
|
|
322
|
-
**精简后(正确:specifiedSkill 显式绑定):**
|
|
323
|
-
```
|
|
324
|
-
taskDescription: 对 rntpc_react-native-netinfo 进行版本差异分析,对比 br_rnoh0.82 基线版本与 0.84 目标版本的差异,
|
|
325
|
-
检查 br_rnoh0.84 分支是否存在,输出版本分析报告。
|
|
326
|
-
specifiedSkill: rnoh-lib-version-diff
|
|
327
|
-
```
|
|
328
|
-
|
|
329
|
-
> 未绑定 `specifiedSkill` 的步骤(如克隆仓库、设备部署等通用操作)仍需在 `taskDescription` 中写明具体操作步骤,因为这些操作没有 SKILL 承载细节。
|
|
330
|
-
|
|
331
|
-
---
|
|
332
|
-
|
|
333
|
-
## Phase 3:步骤级验收标准生成
|
|
334
|
-
|
|
335
|
-
### 3.1 生成原则
|
|
336
|
-
|
|
337
|
-
每个步骤**必须**包含 `acceptanceCriteria` 数组:
|
|
338
|
-
- **具体可验证**:每条标准能通过检查文件、执行命令或人工审查判定
|
|
339
|
-
- **覆盖任务级标准**:所有步骤的验收标准合并后应覆盖 `analysis.acceptanceCriteria`
|
|
340
|
-
- **与步骤产出对齐**:验收标准与该步骤的 taskDescription 预期输出对应
|
|
341
|
-
- **追溯性**:通过 `taskACIds` 标明该步骤标准对应哪个任务级标准
|
|
342
|
-
|
|
343
|
-
### 3.2 每条标准必含字段
|
|
344
|
-
|
|
345
|
-
| 字段 | 必填 | 说明 |
|
|
346
|
-
|------|------|------|
|
|
347
|
-
| `id` | ✅ | 格式 `ac{stepId}_{序号}`,如 `ac1_1`、`ac2_3` |
|
|
348
|
-
| `criterion` | ✅ | 具体标准描述,非空,可验证 |
|
|
349
|
-
| `type` | ✅ | `output`/`quality`/`performance`/`compliance` |
|
|
350
|
-
| `verification` | ✅ | 验证方式(具体到可执行命令或检查方法) |
|
|
351
|
-
| `taskACIds` | ✅ | 关联的任务级标准 ID 列表(如 `["ac1"]`) |
|
|
352
|
-
|
|
353
|
-
> 编写指南与示例参见 [验收标准编写指南](references/ACCEPTANCE_CRITERIA_GUIDE.md)
|
|
354
|
-
|
|
355
|
-
---
|
|
356
|
-
|
|
357
|
-
## Phase 4:结果输出
|
|
358
|
-
|
|
359
|
-
### 4.1 输出文件
|
|
360
|
-
|
|
361
|
-
将拆解结果以 **纯 JSON** 格式写入 `## 结果文件输出路径` 指定的路径。
|
|
362
|
-
|
|
363
|
-
### 4.2 JSON 结构
|
|
364
|
-
|
|
365
|
-
```json
|
|
366
|
-
{
|
|
367
|
-
"keyParameters": {
|
|
368
|
-
"versionNumbers": ["0.82", "0.84"],
|
|
369
|
-
"branchNames": ["br_rnoh0.82"],
|
|
370
|
-
"repoUrls": ["https://gitcode.com/CPF-RN/rntpc_react-native-pager-view/tree/br_rnoh0.82"],
|
|
371
|
-
"libraryNames": ["rntpc_react-native-pager-view"]
|
|
372
|
-
},
|
|
373
|
-
"steps": [
|
|
374
|
-
{
|
|
375
|
-
"stepId": 1,
|
|
376
|
-
"taskDescription": "步骤的具体描述",
|
|
377
|
-
"specifiedSkill": "rnoh-lib-version-diff",
|
|
378
|
-
"dependId": 0,
|
|
379
|
-
"nextStepId": 2,
|
|
380
|
-
"failStepId": 0,
|
|
381
|
-
"maxRetries": 3,
|
|
382
|
-
"acceptanceCriteria": [
|
|
383
|
-
{
|
|
384
|
-
"id": "ac1_1",
|
|
385
|
-
"criterion": "该步骤的验收标准描述",
|
|
386
|
-
"type": "output",
|
|
387
|
-
"verification": "验证方式描述",
|
|
388
|
-
"taskACIds": ["ac1"]
|
|
389
|
-
}
|
|
390
|
-
]
|
|
391
|
-
}
|
|
392
|
-
]
|
|
393
|
-
}
|
|
394
|
-
```
|
|
395
|
-
|
|
396
|
-
> `keyParameters` 为必填字段,由 Phase 1.4 从任务描述中提取。步骤描述中出现的所有版本号、分支名必须与 `keyParameters` 中的值一致,由 `validate-param-consistency.cjs` 强制校验。
|
|
397
|
-
|
|
398
|
-
> `specifiedSkill` 为可选字段,由 Phase 2.4 的 SKILL 匹配产生:步骤职责与某个可用 SKILL 匹配时设置(值为该 SKILL 的 name 或目录名),未匹配时不设置或留空。值必须来自 Phase 1.5 的可用 SKILL 列表,由 `validate-specified-skills.cjs` 强制校验。
|
|
399
|
-
|
|
400
|
-
> 完整输出示例参见 [输出示例](assets/OUTPUT_EXAMPLES.md)
|
|
401
|
-
|
|
402
|
-
**fan-in 聚合示例**(并行步骤 2/3/4 聚合到步骤 5):
|
|
403
|
-
|
|
404
|
-
```json
|
|
405
|
-
{
|
|
406
|
-
"steps": [
|
|
407
|
-
{ "stepId": 1, "taskDescription": "分析任务并产出输入", "dependId": 0, "nextStepId": 2, "failStepId": 0, "maxRetries": 3 },
|
|
408
|
-
{ "stepId": 2, "taskDescription": "并行检视:代码质量", "dependId": 1, "nextStepId": 5, "failStepId": 0, "maxRetries": 3 },
|
|
409
|
-
{ "stepId": 3, "taskDescription": "并行检视:稳定性", "dependId": 1, "nextStepId": 5, "failStepId": 0, "maxRetries": 3 },
|
|
410
|
-
{ "stepId": 4, "taskDescription": "并行检视:文档质量", "dependId": 1, "nextStepId": 5, "failStepId": 0, "maxRetries": 3 },
|
|
411
|
-
{ "stepId": 5, "taskDescription": "聚合三路检视结果并汇总报告", "dependId": [2, 3, 4], "nextStepId": 0, "failStepId": 0, "maxRetries": 3 }
|
|
412
|
-
]
|
|
413
|
-
}
|
|
414
|
-
```
|
|
415
|
-
|
|
416
|
-
- 步骤 5 的 `dependId: [2, 3, 4]` 表示需等待步骤 2/3/4 **全部 COMPLETED** 后才执行(fan-in 聚合)。
|
|
417
|
-
- 步骤 2/3/4 均 `dependId: 1`,由 Orchestrator 并行执行(fan-out)。
|
|
418
|
-
|
|
419
|
-
### 4.3 输出规范
|
|
420
|
-
|
|
421
|
-
- ✅ 纯 JSON(无 markdown 代码块标记,无注释,无前后缀文字)
|
|
422
|
-
- ✅ 合法可解析格式
|
|
423
|
-
- ✅ `keyParameters` 字段存在且 `versionNumbers`/`branchNames` 至少各含 1 项(当任务描述包含版本号/分支名时)
|
|
424
|
-
- ✅ `stepId` 从 1 递增,唯一
|
|
425
|
-
- ✅ `acceptanceCriteria[].id` 格式为 `ac{stepId}_{序号}`
|
|
426
|
-
- ✅ 所有字符串字段非空
|
|
427
|
-
- ✅ 步骤描述中出现的版本号/分支名与 `keyParameters` 一致(由 `validate-param-consistency.cjs` 强制校验)
|
|
428
|
-
- ✅ `specifiedSkill`(可选)值必须来自可用 SKILL 列表(由 `validate-specified-skills.cjs` 强制校验)
|
|
429
|
-
|
|
430
|
-
---
|
|
431
|
-
|
|
432
|
-
## 重规划时的额外要求
|
|
433
|
-
|
|
434
|
-
当提供了 `context`(重规划场景)时,拆解需额外考虑:
|
|
435
|
-
|
|
436
|
-
1. **针对未满足的标准** — 调整相关步骤的任务描述,使其更明确
|
|
437
|
-
2. **增加验证步骤** — 强化对失败点的验证
|
|
438
|
-
3. **考虑改进建议** — 新增必要的步骤
|
|
439
|
-
4. **保持依赖关系合理** — 步骤间依赖关系需逻辑自洽
|
|
440
|
-
5. **步骤 ID 重新编号** — 从 1 开始重新编号
|
|
441
|
-
|
|
442
|
-
> 详细流程参见 [重规划上下文处理指南](references/REPLAN_CONTEXT_GUIDE.md)
|
|
443
|
-
|
|
444
|
-
---
|
|
445
|
-
|
|
446
|
-
## 自检
|
|
447
|
-
|
|
448
|
-
> ⚠️ **效率纪律(硬性)**:校验规则以下文「参数一致性校验规则」「specifiedSkill 校验规则」「死锁校验规则」三节的文字规则为准,**禁止通读 scripts/ 下校验脚本源码**——脚本仅用于执行,规则语义已完整沉淀于本文件。仅当某项校验失败且下文规则无法定位原因时,才 grep 对应脚本的规则段落定位实现细节。
|
|
449
|
-
|
|
450
|
-
输出完成后,**必须**运行以下三套校验脚本,全部通过后方可提交:
|
|
451
|
-
|
|
452
|
-
```bash
|
|
453
|
-
# 1. 字段/引用/验收标准合规性校验
|
|
454
|
-
node scripts/validate-decomposition-output.cjs <resultFile>
|
|
455
|
-
|
|
456
|
-
# 2. 死锁/循环检测(必须通过,否则重拆解)
|
|
457
|
-
node scripts/validate-step-graph.cjs <resultFile>
|
|
458
|
-
|
|
459
|
-
# 3. 关键参数一致性校验(版本号/分支名篡改检测)
|
|
460
|
-
node scripts/validate-param-consistency.cjs <resultFile>
|
|
461
|
-
|
|
462
|
-
# 4. specifiedSkill 校验(引用的 SKILL 必须在可用列表中,且无旧式推荐文本)
|
|
463
|
-
node scripts/validate-specified-skills.cjs <resultFile>
|
|
464
|
-
```
|
|
465
|
-
|
|
466
|
-
> 四个脚本均为 Node.js(`.cjs`)实现,跨平台(Windows/macOS/Linux)可直接运行,仅需 Node.js 环境。
|
|
467
|
-
|
|
468
|
-
### 参数一致性校验规则(强制)
|
|
469
|
-
|
|
470
|
-
`validate-param-consistency.cjs` 会检测以下**参数篡改**,任一项不通过则脚本以非零码退出:
|
|
471
|
-
|
|
472
|
-
1. **`keyParameters` 缺失** — 输出 JSON 未包含 `keyParameters` 字段,或 `versionNumbers`/`branchNames` 子字段为空(当任务描述中含版本号/分支名时)
|
|
473
|
-
2. **步骤描述中的版本号不在 `keyParameters` 中** — 如步骤描述出现 `0.72` 但 `keyParameters.versionNumbers` 中无此值,判定为版本号臆造
|
|
474
|
-
3. **步骤描述中的分支名不在 `keyParameters` 中** — 如步骤描述出现 `br_rnoh0.72` 但 `keyParameters.branchNames` 中无此值,判定为分支名臆造
|
|
475
|
-
4. **`keyParameters` 中声明的参数在步骤中完全未引用** — 如 `keyParameters.versionNumbers` 含 `0.82` 但所有步骤描述中均未出现,判定为参数声明但未使用
|
|
476
|
-
|
|
477
|
-
> ⚠️ **强制要求**:若脚本 exit 非 0(检测到参数篡改),**必须对照原始任务描述修正 `keyParameters` 及相关步骤描述后重新生成 JSON,并重新运行校验,直至全部通过**。
|
|
478
|
-
|
|
479
|
-
### specifiedSkill 校验规则(强制)
|
|
480
|
-
|
|
481
|
-
`validate-specified-skills.cjs` 会实时扫描 SKILL 根目录(黑名单过滤后)作为合法集合,检测以下问题,任一项不通过则脚本以非零码退出:
|
|
482
|
-
|
|
483
|
-
1. **specifiedSkill 不在可用列表中** — 步骤引用了不存在的 SKILL(含黑名单中的编排层/元技能),判定为臆造引用。修正方式:运行 `node scripts/list-available-skills.cjs` 查看实时列表,对照修正
|
|
484
|
-
2. **旧式推荐文本残留** — `taskDescription` 中出现"推荐使用 X SKILL 执行"字样(旧模式已废止)。修正方式:删除该句,改为在步骤 JSON 中设置 `specifiedSkill` 字段
|
|
485
|
-
|
|
486
|
-
> ⚠️ **强制要求**:若脚本 exit 非 0,**必须修正 `specifiedSkill` 引用或移除旧式推荐文本后重新生成 JSON,并重新运行校验,直至全部通过**。
|
|
487
|
-
|
|
488
|
-
### 死锁校验规则(强制)
|
|
489
|
-
|
|
490
|
-
`validate-step-graph.cjs` 会检测以下**死锁/循环**,任一项不通过则脚本以非零码退出:
|
|
491
|
-
|
|
492
|
-
1. **成功链环(nextStepId 成环)** — 如 `step4.nextStepId→step5`、`step5.nextStepId→step4`,成功后永远无法结束
|
|
493
|
-
2. **失败链环(failStepId 成环)** — 如 `A 失败→B`、`B 失败→A`,修复链无限回退(自身回退 `failStepId==自己` 配合 `maxRetries` 视为合法,不报错)
|
|
494
|
-
3. **依赖环(dependId 成环)** — 步骤互相依赖,拓扑无法启动
|
|
495
|
-
4. **不可达/孤立步骤** — 从入口沿 `nextStepId` 链无法到达的步骤,永远不会被执行
|
|
496
|
-
5. **成功链无终止** — 所有步骤 `nextStepId` 均非 0,无法结束
|
|
497
|
-
|
|
498
|
-
> ⚠️ **强制要求**:若脚本 exit 非 0(检测到上述任一问题),**必须修正步骤图的 `nextStepId`/`failStepId`/`dependId` 后重新生成 JSON,并重新运行校验,直至脚本全部通过**。不得提交含死锁的步骤图。
|
|
499
|
-
|
|
500
|
-
### 死锁反馈与自动重生成
|
|
501
|
-
|
|
502
|
-
若死锁校验未通过,执行以下**反馈驱动重生成循环**,将死锁链路径交给大模型自身推理修正:
|
|
503
|
-
|
|
504
|
-
1. **提取死锁反馈** — 读取 `validate-step-graph.cjs` 输出中的死锁链路径(如 `成功链环: 4 → 5 → 4`),将其作为"死锁反馈"写入当前工作上下文。
|
|
505
|
-
2. **判定类型与根因** — 逐条判定死锁类型(成功链环 / 失败链环 / 依赖环 / 孤立步骤 / 无终止),并定位根因字段(`nextStepId` / `failStepId` / `dependId`)。
|
|
506
|
-
3. **带着死锁反馈重新生成 JSON** — 依据任务目标重新设计步骤图,确保打破死锁的同时,步骤图仍能达成任务预期效果。重新生成而非在原 JSON 上局部修补。
|
|
507
|
-
4. **重新校验** — 重新运行 `node scripts/validate-step-graph.cjs <resultFile>`。
|
|
508
|
-
5. **循环 2-4** — 直至脚本全部 PASS;最多尝试 3 次,仍失败则报错并附最后一次死锁反馈。
|
|
509
|
-
|
|
510
|
-
死锁反馈必须保留在每一步骤的思考中,例如:
|
|
511
|
-
`已在上一轮检测到死锁: 成功链环 4 → 5 → 4,本次生成已将该环改写为 4 → 5 → 6(终止)`。
|
|
512
|
-
|
|
513
|
-
> 修正完全依靠大模型自身推理能力,不规定机械拆环手法,以确保步骤图仍能达成任务预期效果。
|
|
514
|
-
|
|
515
|
-
---
|
|
516
|
-
|
|
517
|
-
## 注意事项
|
|
518
|
-
|
|
519
|
-
1. **每个步骤只做一件独立可验证的事** — 步骤描述面向任务本身(做什么/预期输出);职责与可用 SKILL 匹配的步骤通过 `specifiedSkill` 字段显式绑定(跳过自动匹配),其余步骤由 SkillSelector 在运行时按 taskDescription 自动匹配
|
|
520
|
-
2. **验收标准必须可验证** — 避免模糊描述,verification 要具体到可执行
|
|
521
|
-
3. **依赖图不能有死循环** — failStepId 回退链必须有限,配合 maxRetries 控制;成功链/失败链/依赖环均会死锁。最终以 `node scripts/validate-step-graph.cjs <resultFile>` 校验结果为准,检测到死锁必须重拆解直至通过
|
|
522
|
-
4. **步骤级 AC 的 taskACIds 要覆盖任务级 AC** — 合并所有步骤的 taskACIds 应覆盖所有任务级标准 ID
|
|
523
|
-
5. **重规划时保持目标一致** — 调整的是步骤设计与验收标准,不是任务目标
|
|
524
|
-
6. **输出纯 JSON** — 下游有容错机制但应输出纯 JSON,不依赖容错
|
|
525
|
-
7. **步骤级 AC 实际由 acceptance-check SKILL 消费** — Orchestrator 仅消费图字段调度,步骤级 AC 通过产物文件传递给 acceptance-check SKILL 评估
|
|
526
|
-
8. **关键参数逐字保真** — 版本号、分支名、仓库 URL、库名等关键参数必须从任务描述中原样提取到 `keyParameters`,步骤描述中引用时必须与 `keyParameters` 一致。LLM 生成时易将版本号臆造为相似但错误的值(如 `0.82`→`0.72`),由 `validate-param-consistency.cjs` 强制拦截
|
|
527
|
-
9. **步骤与执行 SKILL 通过 specifiedSkill 字段绑定** — 职责与可用 SKILL 匹配的步骤设置 `specifiedSkill`(值必须来自 Phase 1.5 实时扫描的可用 SKILL 列表),执行层 FlexRunner 将跳过自动匹配直接使用该 SKILL;
|
|
528
|
-
10. **拆解是设计不是研究** — 拆解输入只来自 prompt 注入文本,不通过克隆仓库、读源码、拉 Issue 等检索补充;步骤描述只写有 prompt 出处的断言,其余表达为探索目标(见 Phase 2.0 三原则)
|
|
1
|
+
---
|
|
2
|
+
name: task-decomposition
|
|
3
|
+
description: 将自然语言任务描述拆解为多个可独立执行的步骤,生成包含依赖关系的步骤图与步骤级验收标准。当需要将一个复杂的高层任务分解为 Orchestrator 可执行的结构化步骤列表时使用此技能。适用于 AI Loop 系统中 Brain 模块的任务拆解阶段,支持首轮拆解与重规划场景。关键词:步骤拆解、依赖图、验收标准、task-planning。
|
|
4
|
+
license: Apache-2.0
|
|
5
|
+
compatibility: 由 Brain 模块通过 opencode CLI 调用(SkillExecutor),或降级为直接 LLM 调用。需要写入权限到任务工作目录,输出纯 JSON 格式拆解结果。
|
|
6
|
+
metadata:
|
|
7
|
+
author: LoopEngine
|
|
8
|
+
version: "2.3.0"
|
|
9
|
+
category: task-planning
|
|
10
|
+
language: natural-language
|
|
11
|
+
invoked-by: DecompositionStrategies._decomposeViaCLI / _decomposeWithContextViaCLI
|
|
12
|
+
consumed-by: DecompositionStrategies.normalizeSteps → Brain.taskDef → Orchestrator.loadTask(步骤的 specifiedSkill 透传至 FlexRunner)
|
|
13
|
+
upstream: task-analysis(提供 intent/domain/techStack/estimatedSteps/acceptanceCriteria)
|
|
14
|
+
downstream: Orchestrator(调度步骤图,步骤经 specifiedSkill 显式绑定执行 SKILL)、TestCheck(消费任务级验收标准)、acceptance-check(消费步骤级产物)
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# 任务拆解技能
|
|
18
|
+
|
|
19
|
+
本技能通过 LLM 将自然语言任务描述拆解为多个可独立执行的步骤,生成包含依赖关系的步骤图与步骤级验收标准,供 Orchestrator 编排器调度执行。
|
|
20
|
+
|
|
21
|
+
> ⚠️ **核心原则:每个步骤只做一件可独立完成、可验证的事,步骤描述包含足够技术细节。输出必须为纯 JSON。** 步骤描述面向任务本身(做什么/预期输出);当步骤职责与可用 SKILL 匹配时,通过 `specifiedSkill` 字段显式绑定(不在描述文本中写推荐语),技术细节由 SKILL 承载。拆解是设计活动而非研究活动:拆解输入只消费 prompt 注入的任务描述、分析结果与验收标准。
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## 调用方式
|
|
26
|
+
|
|
27
|
+
本 SKILL 由 Brain 模块的 `DecompositionStrategies` 调用,通过 `SkillExecutor.invokeSkill` 执行:
|
|
28
|
+
|
|
29
|
+
- **首轮拆解**:`DecompositionStrategies._decomposeViaCLI(taskDescription, analysis, skillDir, userCriteria, execCtx)`
|
|
30
|
+
- **重规划拆解**:`DecompositionStrategies._decomposeWithContextViaCLI(taskDescription, analysis, skillDir, userCriteria, context, execCtx)`
|
|
31
|
+
|
|
32
|
+
调用方构建以下 prompt 段落传入:
|
|
33
|
+
- `## SKILL 目录` — 本 SKILL 目录路径(opencode 读取 SKILL.md 执行)
|
|
34
|
+
- `## 工作目录` — 任务工作目录
|
|
35
|
+
- `## 结果文件输出路径` — JSON 输出路径(`brain_decomposition_loop{N}.json`)
|
|
36
|
+
- `## 任务描述` — 自然语言任务描述
|
|
37
|
+
- `## 任务分析结果` — task-analysis SKILL 输出(intent/domain/keywords/constraints/techStack/complexity/estimatedSteps)
|
|
38
|
+
- `## 验收标准` — 任务级验收标准列表(`[ac1] (type) criterion → 验证: verification`)
|
|
39
|
+
- 重规划时额外注入:`## 重规划上下文` / `## 上一轮审核摘要` / `## 未满足的验收标准` / `## 改进建议` / `## 重拆解要求`
|
|
40
|
+
|
|
41
|
+
> 可用执行 SKILL 列表**不通过 prompt 注入**:由本 SKILL 的脚本在拆解时实时扫描获取(见 Phase 1.5),保证 SKILL 注册表的单一事实源在 SKILL 内的脚本,系统侧不硬编码。
|
|
42
|
+
|
|
43
|
+
> 完整调用链路与消费方式参见 [集成上下文说明](references/INTEGRATION_CONTEXT.md)
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## 任务参数
|
|
48
|
+
|
|
49
|
+
| 参数 | 类型 | 必填 | 说明 |
|
|
50
|
+
|------|------|------|------|
|
|
51
|
+
| `taskDescription` | string | ✅ | 自然语言任务描述(由调用方通过 prompt 注入) |
|
|
52
|
+
| `analysis` | object | ✅ | task-analysis SKILL 输出(intent/domain/keywords/constraints/techStack/complexity/estimatedSteps/acceptanceCriteria) |
|
|
53
|
+
| `resultFilePath` | string | ✅ | 拆解结果 JSON 输出路径(由调用方指定) |
|
|
54
|
+
| `context` | object | ❌ | 重规划上下文(仅重规划时提供,含 failedCriteria、improvementSuggestions、prevCheckSummary、loopCount 等) |
|
|
55
|
+
| `skillDirectory` | string | ❌ | SKILL 根目录路径(覆盖可用 SKILL 扫描脚本的默认根目录,调用方通过 `## SKILL 目录` 注入) |
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## 输入依赖
|
|
60
|
+
|
|
61
|
+
- **前置 SKILL**:`task-analysis`(提供任务分析结果,含 intent/domain/techStack/estimatedSteps/acceptanceCriteria)
|
|
62
|
+
- **输入文件**:无(任务描述与分析结果通过 prompt 注入)
|
|
63
|
+
- **下游 SKILL**:各执行类 SKILL(步骤通过 `specifiedSkill` 字段显式绑定,未绑定的步骤由 SkillSelector 运行时按 taskDescription 自动匹配)
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## 工作流程概览
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
Phase 1: 任务理解与分析结果解析
|
|
71
|
+
↓
|
|
72
|
+
Phase 2: 从产物逆向推导步骤图并构建依赖关系
|
|
73
|
+
↓
|
|
74
|
+
Phase 3: 步骤级验收标准生成
|
|
75
|
+
↓
|
|
76
|
+
Phase 4: 结果输出(纯 JSON 写入 resultFilePath)
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## Phase 1:任务理解与分析结果解析
|
|
82
|
+
|
|
83
|
+
### 1.1 解析任务描述
|
|
84
|
+
|
|
85
|
+
读取 `## 任务描述` 段落,理解任务的核心目标和预期产出。结合 `analysis.estimatedSteps` 作为步骤数量参考。
|
|
86
|
+
|
|
87
|
+
### 1.2 解析任务分析结果
|
|
88
|
+
|
|
89
|
+
读取 `## 任务分析结果` 段落,提取关键信息用于步骤设计:
|
|
90
|
+
|
|
91
|
+
| 字段 | 用途 |
|
|
92
|
+
|------|------|
|
|
93
|
+
| `intent` | 确保所有步骤围绕核心意图 |
|
|
94
|
+
| `domain` | 辅助判断任务所属领域,指导步骤设计 |
|
|
95
|
+
| `techStack` | 每个步骤的技术栈要与任务描述一致,便于后续匹配 |
|
|
96
|
+
| `estimatedSteps` | 步骤数量参考基准 |
|
|
97
|
+
| `acceptanceCriteria` | 步骤级验收标准需覆盖任务级标准 |
|
|
98
|
+
|
|
99
|
+
### 1.3 处理重规划上下文(如果提供)
|
|
100
|
+
|
|
101
|
+
如果 prompt 中包含 `## 重规划上下文` 段落,进入重规划模式:
|
|
102
|
+
- 读取 `## 未满足的验收标准` — 上一轮失败的标准及原因
|
|
103
|
+
- 读取 `## 改进建议` — 上一轮的改进方向
|
|
104
|
+
- 读取 `## 上一轮审核摘要` — 审核总结
|
|
105
|
+
- **保持原始任务目标不变**,调整步骤设计与验收标准
|
|
106
|
+
- 针对失败点强化步骤描述或新增验证步骤
|
|
107
|
+
|
|
108
|
+
> 详细处理流程参见 [重规划上下文处理指南](references/REPLAN_CONTEXT_GUIDE.md)
|
|
109
|
+
|
|
110
|
+
### 1.4 关键参数提取与锚定
|
|
111
|
+
|
|
112
|
+
在解析任务描述后,**必须**提取以下关键参数,并在后续步骤描述与验收标准中**逐字引用**原始值,不得改写、缩写或臆造:
|
|
113
|
+
|
|
114
|
+
| 参数类别 | 提取规则 | 示例 |
|
|
115
|
+
|----------|----------|------|
|
|
116
|
+
| 版本号 | 所有 `\d+(\.\d+){1,3}` 格式的数字(支持 2-4 段式) | `0.82`, `0.84`, `7.88.0` |
|
|
117
|
+
| 分支名 | `br_` 前缀的标识符 | `br_rnoh0.82` |
|
|
118
|
+
| 仓库 URL | `https://` 开头的完整 URL | `https://gitcode.com/CPF-RN/rntpc_react-native-pager-view/tree/br_rnoh0.82` |
|
|
119
|
+
| 库名 | 任务描述中的三方库名称 | `rntpc_react-native-pager-view` |
|
|
120
|
+
|
|
121
|
+
提取的参数写入输出 JSON 的 `keyParameters` 字段(结构见 Phase 4.2)。生成步骤描述时,涉及上述参数的位置必须从 `keyParameters` 中取值,不得从记忆中重新生成。
|
|
122
|
+
|
|
123
|
+
> ⚠️ **高频错误案例**:任务描述中源分支为 `br_rnoh0.82`(版本 `0.82`),但 LLM 在步骤描述中臆造为 `br_rnoh0.72`(版本 `0.72`)。这类版本号/分支名篡改会导致后续所有步骤执行完全错误,且现有结构校验无法发现。`keyParameters` 字段 + `validate-param-consistency.cjs` 脚本用于强制拦截此类错误。
|
|
124
|
+
|
|
125
|
+
### 1.5 获取可用 SKILL 列表
|
|
126
|
+
|
|
127
|
+
步骤与执行 SKILL 的绑定依赖**实时扫描**的可用 SKILL 列表(单一事实源:SKILL 根目录下各 SKILL.md 的 frontmatter,由本 SKILL 内的脚本提供,系统侧不硬编码、不预置)。**拆解时必须先运行以下脚本获取列表**:
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
node {SKILL目录}/scripts/list-available-skills.cjs --format compact
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
> `compact` 格式每 SKILL 一行(description 压缩为单行并截断 60 字符),输出体积小、可直接内联读取,足以完成步骤与 SKILL 的匹配;仅当某 SKILL 的职责边界无法从截断描述判断时,再运行 `--format list` 查看完整描述。
|
|
134
|
+
|
|
135
|
+
脚本行为:
|
|
136
|
+
- 扫描 SKILL 根目录(默认脚本所在目录的上上级,即 Skills 根目录)下所有含 SKILL.md 的一级子目录
|
|
137
|
+
- 读取各 SKILL.md frontmatter 的 `name` / `description`,按 `- name(目录名): description` 每行一个输出
|
|
138
|
+
- **黑名单过滤**:命中 `scripts/skill-blacklist.json`(默认排除编排层/元技能:task-analysis、task-decomposition、acceptance-check、skill-generator、knowledge-import——它们由 Brain/LoopEngine 按固定链路调用,不应被步骤引用)、`--exclude` 参数或环境变量 `SKILL_BLACKLIST` 的 SKILL 会被跳过
|
|
139
|
+
|
|
140
|
+
> **`specifiedSkill` 的合法取值只能来自该脚本实时返回的列表**,由 `validate-specified-skills.cjs` 强制校验(校验脚本同样实时扫描,不读取任何缓存或预置清单)。
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## Phase 2:从产物逆向推导步骤图并构建依赖关系
|
|
145
|
+
|
|
146
|
+
### 2.0 拆解认知方法论:从产物逆向推导步骤图
|
|
147
|
+
|
|
148
|
+
拆解的正确起点是**任务级验收标准定义的最终交付物**,而非对问题域的研究。步骤图的推导路径:
|
|
149
|
+
|
|
150
|
+
```
|
|
151
|
+
最终交付物(任务级 AC 定义的报告/代码/测试结果)
|
|
152
|
+
↓ 逆向拆解:产出它需要哪些前置产物?
|
|
153
|
+
中间产物层(分析记录 / 编译产物 / 测试结果 / 变更清单…)
|
|
154
|
+
↓ 每个产物节点 = 一个步骤
|
|
155
|
+
外部输入层(源码仓库 / 环境 / Issue 信息…)
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
产物依赖树的构建不依赖问题域知识细节,拆解输入完全来自 prompt 注入的文本,无需检索补充。
|
|
159
|
+
|
|
160
|
+
#### 原则 1:产物逆向分解
|
|
161
|
+
|
|
162
|
+
从任务级 AC 提取最终产物,逆向回答"产出它需要什么前置产物",逐层下探直到外部输入。**每个产物节点对应一个步骤,产物依赖关系天然构成步骤图**,步骤数自然与 `estimatedSteps` 对齐。
|
|
163
|
+
|
|
164
|
+
以 bug 根因分析任务为例(AC 要求产出含五个章节的根因分析报告):
|
|
165
|
+
|
|
166
|
+
```
|
|
167
|
+
浅拷贝源码 → Issue事实与调用链 → NAPI层行为事实 → 连接认证流程事实 → 根因结论+调试方法 → 根因分析报告
|
|
168
|
+
步骤1 步骤2 步骤3 步骤4 步骤5 步骤6
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
#### 原则 2:信息时序分层
|
|
172
|
+
|
|
173
|
+
步骤描述中的技术断言(文件路径、函数名、行为结论)只能来源于 prompt 已注入的信息:任务描述、任务分析结果、验收标准、重规划上下文。拆解期未经验证的结论不得写成事实,应降级为探索目标。
|
|
174
|
+
|
|
175
|
+
写完每步自检:**"这个技术断言的出处是 prompt 的哪一段?"** 找不到出处即改写为探索目标。
|
|
176
|
+
|
|
177
|
+
#### 原则 3:探索型步骤容纳不确定性
|
|
178
|
+
|
|
179
|
+
拆解时"不知道 X 的具体行为"是正常且预期的。正确姿势是用**结构**容纳不确定性,由执行步骤去消解:
|
|
180
|
+
|
|
181
|
+
- **分析范围**:从任务描述给出的代码位置/库名取值(如 "ohos_ssh 库的 ArkTS 层与 NAPI C++ 层")
|
|
182
|
+
- **问题清单**:该步骤要回答的问题(如 "凭据如何校验与保存?失败返回路径有哪些?回调错误码语义是什么?")
|
|
183
|
+
- **产物结构**:记录文件必须包含的字段(如 "含调用链、错误码定义、回调回传机制三部分")
|
|
184
|
+
|
|
185
|
+
对应地,探索型步骤的验收标准只描述产物结构(文件存在、非空、含哪些章节),不预设结论内容。
|
|
186
|
+
|
|
187
|
+
### 2.1 步骤粒度原则
|
|
188
|
+
|
|
189
|
+
步骤颗粒度决定 Orchestrator 的调度粒度与每步的执行聚焦度。遵循以下**通用拆分规则**,同时保持任务编排层与 SKILL 层的解耦(步骤描述只面向任务本身,不绑定具体 SKILL):
|
|
190
|
+
|
|
191
|
+
#### 拆解数量基本原则:以最少充分步骤完成任务
|
|
192
|
+
|
|
193
|
+
步骤不是越多越好。拆解数量由**任务复杂度**决定,能以最少步骤覆盖全部任务级验收标准即为合适——每多一步都是 Orchestrator 的一次调度开销、上下文切换成本和潜在失败点。
|
|
194
|
+
|
|
195
|
+
**1. 复杂度分级定基准**(结合 `analysis.complexity` 与产物依赖树规模判断):
|
|
196
|
+
|
|
197
|
+
| 复杂度 | 特征 | 步骤数基准 |
|
|
198
|
+
|--------|------|-----------|
|
|
199
|
+
| 简单 | 单一最终产物,无中间产物或仅一层(如信息问答、单点修复、小范围代码检视) | 1-3 步 |
|
|
200
|
+
| 中等 | 2-3 个独立中间产物,线性依赖链(如分析→修改→验证) | 3-5 步 |
|
|
201
|
+
| 复杂 | 多中间产物、并行分支或修复回路、跨层跨模块(如框架升级适配) | 5-8 步 |
|
|
202
|
+
|
|
203
|
+
超过 8 步通常意味着任务本身应拆分为多个任务,或存在过度拆解。
|
|
204
|
+
|
|
205
|
+
**2. 最少充分判定**:目标步骤数 = 覆盖全部任务级 AC 所需的最少独立产物数。每增加一步前自检:
|
|
206
|
+
- "这步的产物被哪个下游步骤或任务级 AC 消费?" —— 无消费者则并入相邻步骤
|
|
207
|
+
- "并入相邻步骤后,验收标准是否仍可独立验证?" —— 仍可验证则合并
|
|
208
|
+
|
|
209
|
+
**3. 凑数反模式**:
|
|
210
|
+
- ❌ 为对齐 `estimatedSteps` 而拆细——它是参考基准而非目标值
|
|
211
|
+
- ❌ 无独立产物的流程性步骤(如单独的"确认环境"、"整理思路"、"校验报告格式")
|
|
212
|
+
- ❌ 为低概率失败预设修复步骤——按需用 `failStepId` 指回自身配合 `maxRetries` 重试即可
|
|
213
|
+
|
|
214
|
+
#### 通用拆分规则
|
|
215
|
+
|
|
216
|
+
1. **单一职责**:每个步骤只做"一件事"——一个可独立验证的产出或动作。若一个步骤蕴含多个独立产出(如"既分析源码又修改代码"),拆分为多个步骤。
|
|
217
|
+
2. **可验证**:每个步骤必须有可检查的产物或可执行命令来判定成败。无法验证的步骤需拆分,或补充明确验收标准。
|
|
218
|
+
3. **预估步数对齐**:步骤总数以 `analysis.estimatedSteps` 为参考基准(视为上限多于视为目标),实际取"覆盖全部任务级 AC 的最少独立产物数",向下偏差是正常的。当任务命中领域模板时,以模板固化的步骤数为准(如 RN 三方库框架升级适配固定 6 步),不因 `estimatedSteps` 偏差而拆细或合并。
|
|
219
|
+
4. **过粗/过细判定**:
|
|
220
|
+
- **过粗信号**:步骤描述含"同时/以及/并且"连接多个不相关任务,或蕴含多个独立产物 → 应拆分。
|
|
221
|
+
- **过细信号**:步骤描述只有原子操作(如 `git clone`、`cd 目录`、`ls 查看文件`)→ 应合并为一个"获取源码并分析结构"步骤。
|
|
222
|
+
|
|
223
|
+
#### few-shot 示例
|
|
224
|
+
|
|
225
|
+
> 4 个正反例(过细/过粗/凑数式/合理)参见 [常见任务拆解模板](references/TASK_DECOMPOSITION_TEMPLATES.md) 的「颗粒度 few-shot 示例」章节。核心记忆点:
|
|
226
|
+
>
|
|
227
|
+
> - 原子操作(git clone / cd / ls)合并为一步
|
|
228
|
+
> - 一步含多个独立产出必须拆分
|
|
229
|
+
> - 简单任务单一产物时 1 步即可,estimatedSteps 是参考而非目标
|
|
230
|
+
|
|
231
|
+
#### 领域模板优先匹配
|
|
232
|
+
|
|
233
|
+
当任务描述的 `domain` 或 `keywords` 命中已知领域模板时(如 `harmonyos-porting` + `framework-upgrade` 命中「RN 三方库框架升级适配」模板),**优先使用模板的步骤图骨架**,结合当前任务的版本号/分支名/验收标准进行适配,而非从零设计步骤。领域模板已沉淀了该类任务的最佳实践步骤划分、AC 覆盖模式和参数提取规则。
|
|
234
|
+
|
|
235
|
+
> 通用颗粒度拆分规则与更多常见任务拆解模板(含 RN 三方库框架升级适配 6 步模板)参见 [常见任务拆解模板](references/TASK_DECOMPOSITION_TEMPLATES.md)。**匹配模板时先读该文件顶部的「模板索引」表**,命中后仅按起始行小范围读取对应模板段落,禁止通读全文。
|
|
236
|
+
|
|
237
|
+
### 2.2 依赖图字段
|
|
238
|
+
|
|
239
|
+
步骤间通过三个字段构成有向图:
|
|
240
|
+
|
|
241
|
+
```
|
|
242
|
+
dependId → 当前步骤依赖的步骤,支持 number 或 number[](0 或空数组 = 入口步骤,无前置依赖;
|
|
243
|
+
-1 = 修复步骤哨兵,表示"仅由 failStepId 触发、无入口身份、无并行依赖")
|
|
244
|
+
· dependId: 2 单依赖(等价于 [2])
|
|
245
|
+
· dependId: [2,3,4] fan-in 聚合,需 2/3/4 全部完成才执行本步骤
|
|
246
|
+
· dependId: -1 修复步骤(唯一进入条件是触发它的步骤失败),不能当作入口步骤
|
|
247
|
+
nextStepId → 成功后执行哪个步骤(0 = 终止,任务完成)
|
|
248
|
+
failStepId → 失败后跳转到哪个步骤(0 = 失败即终止)
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
> ⚠️ **修复步骤 dependId 必须设为 -1 哨兵**:被某步骤 `failStepId=B` 指向的修复步骤 B,其 `dependId` **必须设为 `-1`**,不能设为 0 或空。0 或空会被 Orchestrator / 校验脚本误判为"入口步骤",导致 B 与任务入口一步骤并行启动、提前误执行。`dependId=-1` 明确表达"仅由 failStepId 触发、无入口身份、无并行依赖"。修复成功后通常用 B 的 `nextStepId` 指回触发它的步骤,配合 `maxRetries` 形成有限重试循环。(Brain 生成侧 `sanitizeFixChainDependId` 会自动将修复步骤的 dependId 规范化为 `-1`,LLM 原始输出无需手工设置此字段。)
|
|
252
|
+
|
|
253
|
+
### 2.3 图结构设计要点
|
|
254
|
+
|
|
255
|
+
- **入口步骤**:至少有一个 `dependId=0`(或 `dependId: []`)的步骤;`dependId=-1` 的修复步骤不计入入口
|
|
256
|
+
- **终止步骤**:至少有一个 `nextStepId=0` 的步骤
|
|
257
|
+
- **并行执行(fan-out)**:多个步骤的 `dependId` 指向同一步骤 → Orchestrator 并行执行
|
|
258
|
+
- **聚合执行(fan-in)**:某步骤需等待多个并行步骤全部完成再执行,用 `dependId: [a, b, c]` → 仅当 a/b/c 全部 COMPLETED 后本步骤才被激活
|
|
259
|
+
- **失败回退**:关键步骤设 `failStepId` 指向修复步骤(修复步骤 `dependId=-1`),修复成功后通过 `nextStepId` 重新指向原始步骤(有限重试循环)
|
|
260
|
+
- **禁止死循环**:failStepId 回退链必须是有限的,配合 `maxRetries` 控制
|
|
261
|
+
|
|
262
|
+
> 依赖图设计模式与示例参见 [依赖图设计指南](references/DEPENDENCY_GRAPH_GUIDE.md)
|
|
263
|
+
|
|
264
|
+
### 2.4 步骤描述规范
|
|
265
|
+
|
|
266
|
+
**好的描述:**
|
|
267
|
+
```
|
|
268
|
+
对 libcurl 源码进行鸿蒙化可行性分析:git clone 源码仓库,扫描源码结构、依赖、平台相关代码及构建系统,输出标准化分析报告(analysis-report.md)
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
**差的描述:**
|
|
272
|
+
```
|
|
273
|
+
分析代码
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
描述必须包含:具体操作(git clone/扫描/编译/测试)、操作对象(库名/文件路径)、预期输出(报告文件名/状态标记)。
|
|
277
|
+
|
|
278
|
+
#### 研究式 vs 设计式描述(高频反模式)
|
|
279
|
+
|
|
280
|
+
拆解阶段最易犯的错误是"研究式描述":把需要执行期核实的行为预先写成事实(往往来自拆解时的检索或记忆)。一旦与实际代码不符,步骤描述本身就会误导执行者。
|
|
281
|
+
|
|
282
|
+
**研究式(错误,预写了未验证结论):**
|
|
283
|
+
```
|
|
284
|
+
分析 SSH2Napi::SetUser 对空密码参数的校验与直接返回失败的行为,及其导致凭据未保存的影响
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
**设计式(正确,范围来自任务描述、目标来自验收标准):**
|
|
288
|
+
```
|
|
289
|
+
分析 ohos_ssh 库 NAPI 层的凭据处理与客户端启动异步流程,识别全部失败返回路径与回调错误码
|
|
290
|
+
语义,输出 napi-layer-analysis.md(含调用链、错误码定义、回调回传机制三部分)
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
判断标准:描述中的路径/函数名/行为断言必须能在任务描述或分析结果中找到出处;找不到出处的,改写为"识别/梳理/确认"类探索目标。
|
|
294
|
+
|
|
295
|
+
#### 步骤的 SKILL 匹配与 specifiedSkill 标注
|
|
296
|
+
|
|
297
|
+
拆解时参考 Phase 1.5 获取的**可用 SKILL 列表**:当某步骤的职责与某个可用 SKILL 匹配(该 SKILL 的 description 覆盖此步骤的目标产出)时,在该步骤 JSON 中设置 `specifiedSkill` 字段,值为该 SKILL 的 `name` 或目录名。执行层(FlexRunner)收到 `specifiedSkill` 后将跳过自动匹配直接使用该 SKILL——因此**该字段是步骤与执行 SKILL 的唯一绑定方式,不要在 `taskDescription` 中追加"推荐使用 X SKILL 执行"之类的推荐文本**(旧模式已废止,由 `validate-specified-skills.cjs` 拦截)。
|
|
298
|
+
|
|
299
|
+
无匹配 SKILL 的步骤(如克隆仓库、设备部署等通用操作)不设置 `specifiedSkill`,`taskDescription` 仍需写明具体操作步骤。
|
|
300
|
+
|
|
301
|
+
#### 设置 specifiedSkill 时步骤描述精简规则
|
|
302
|
+
|
|
303
|
+
> ⚠️ **核心原则:设置了 `specifiedSkill` 的步骤,`taskDescription` 只需描述任务目标与关键参数(版本号/分支名/库名),技术执行细节由 SKILL 承载,不需要在步骤描述中重复。**
|
|
304
|
+
|
|
305
|
+
当某步骤绑定了 `specifiedSkill` 时,`taskDescription` 应遵循以下精简模式:
|
|
306
|
+
|
|
307
|
+
1. **一句话描述任务目标** — 做什么、预期产出是什么
|
|
308
|
+
2. **保留关键参数锚定** — 版本号、分支名、库名等 `keyParameters` 中的值必须出现(参数一致性校验要求)
|
|
309
|
+
3. **设置 `specifiedSkill` 字段** — 值必须来自可用 SKILL 列表,不在描述文本中出现任何推荐语
|
|
310
|
+
4. **不重复 SKILL 内的技术细节** — 如脚本名、编译步骤、适配层级、具体命令等,这些由 SKILL 自身描述
|
|
311
|
+
|
|
312
|
+
**精简前(错误:技术细节冗长 + 旧式推荐文本):**
|
|
313
|
+
```
|
|
314
|
+
执行 detect-upstream-version.js 脚本识别鸿蒙化基线版本号与 npm 上游最新版本号,判定升级类型 A/B/C;
|
|
315
|
+
如为类型 A 使用 generate-diff.js 对比上游社区仓库两个版本标签(注意 --repo 必须是上游社区仓库 URL,
|
|
316
|
+
不是鸿蒙化仓库 URL);如为类型 B 跳过 diff 生成,聚焦 RNOH 0.82→0.84 框架 API 变更对比;
|
|
317
|
+
执行 git ls-remote --heads 检查 br_rnoh0.84 分支是否存在,如无则标注需从 0.82 基线升级;
|
|
318
|
+
输出版本分析报告,包含 currentVersion、upstreamVersion、diffItems、风险等级字段。
|
|
319
|
+
推荐使用 rnoh-lib-version-diff SKILL 执行。
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
**精简后(正确:specifiedSkill 显式绑定):**
|
|
323
|
+
```
|
|
324
|
+
taskDescription: 对 rntpc_react-native-netinfo 进行版本差异分析,对比 br_rnoh0.82 基线版本与 0.84 目标版本的差异,
|
|
325
|
+
检查 br_rnoh0.84 分支是否存在,输出版本分析报告。
|
|
326
|
+
specifiedSkill: rnoh-lib-version-diff
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
> 未绑定 `specifiedSkill` 的步骤(如克隆仓库、设备部署等通用操作)仍需在 `taskDescription` 中写明具体操作步骤,因为这些操作没有 SKILL 承载细节。
|
|
330
|
+
|
|
331
|
+
---
|
|
332
|
+
|
|
333
|
+
## Phase 3:步骤级验收标准生成
|
|
334
|
+
|
|
335
|
+
### 3.1 生成原则
|
|
336
|
+
|
|
337
|
+
每个步骤**必须**包含 `acceptanceCriteria` 数组:
|
|
338
|
+
- **具体可验证**:每条标准能通过检查文件、执行命令或人工审查判定
|
|
339
|
+
- **覆盖任务级标准**:所有步骤的验收标准合并后应覆盖 `analysis.acceptanceCriteria`
|
|
340
|
+
- **与步骤产出对齐**:验收标准与该步骤的 taskDescription 预期输出对应
|
|
341
|
+
- **追溯性**:通过 `taskACIds` 标明该步骤标准对应哪个任务级标准
|
|
342
|
+
|
|
343
|
+
### 3.2 每条标准必含字段
|
|
344
|
+
|
|
345
|
+
| 字段 | 必填 | 说明 |
|
|
346
|
+
|------|------|------|
|
|
347
|
+
| `id` | ✅ | 格式 `ac{stepId}_{序号}`,如 `ac1_1`、`ac2_3` |
|
|
348
|
+
| `criterion` | ✅ | 具体标准描述,非空,可验证 |
|
|
349
|
+
| `type` | ✅ | `output`/`quality`/`performance`/`compliance` |
|
|
350
|
+
| `verification` | ✅ | 验证方式(具体到可执行命令或检查方法) |
|
|
351
|
+
| `taskACIds` | ✅ | 关联的任务级标准 ID 列表(如 `["ac1"]`) |
|
|
352
|
+
|
|
353
|
+
> 编写指南与示例参见 [验收标准编写指南](references/ACCEPTANCE_CRITERIA_GUIDE.md)
|
|
354
|
+
|
|
355
|
+
---
|
|
356
|
+
|
|
357
|
+
## Phase 4:结果输出
|
|
358
|
+
|
|
359
|
+
### 4.1 输出文件
|
|
360
|
+
|
|
361
|
+
将拆解结果以 **纯 JSON** 格式写入 `## 结果文件输出路径` 指定的路径。
|
|
362
|
+
|
|
363
|
+
### 4.2 JSON 结构
|
|
364
|
+
|
|
365
|
+
```json
|
|
366
|
+
{
|
|
367
|
+
"keyParameters": {
|
|
368
|
+
"versionNumbers": ["0.82", "0.84"],
|
|
369
|
+
"branchNames": ["br_rnoh0.82"],
|
|
370
|
+
"repoUrls": ["https://gitcode.com/CPF-RN/rntpc_react-native-pager-view/tree/br_rnoh0.82"],
|
|
371
|
+
"libraryNames": ["rntpc_react-native-pager-view"]
|
|
372
|
+
},
|
|
373
|
+
"steps": [
|
|
374
|
+
{
|
|
375
|
+
"stepId": 1,
|
|
376
|
+
"taskDescription": "步骤的具体描述",
|
|
377
|
+
"specifiedSkill": "rnoh-lib-version-diff",
|
|
378
|
+
"dependId": 0,
|
|
379
|
+
"nextStepId": 2,
|
|
380
|
+
"failStepId": 0,
|
|
381
|
+
"maxRetries": 3,
|
|
382
|
+
"acceptanceCriteria": [
|
|
383
|
+
{
|
|
384
|
+
"id": "ac1_1",
|
|
385
|
+
"criterion": "该步骤的验收标准描述",
|
|
386
|
+
"type": "output",
|
|
387
|
+
"verification": "验证方式描述",
|
|
388
|
+
"taskACIds": ["ac1"]
|
|
389
|
+
}
|
|
390
|
+
]
|
|
391
|
+
}
|
|
392
|
+
]
|
|
393
|
+
}
|
|
394
|
+
```
|
|
395
|
+
|
|
396
|
+
> `keyParameters` 为必填字段,由 Phase 1.4 从任务描述中提取。步骤描述中出现的所有版本号、分支名必须与 `keyParameters` 中的值一致,由 `validate-param-consistency.cjs` 强制校验。
|
|
397
|
+
|
|
398
|
+
> `specifiedSkill` 为可选字段,由 Phase 2.4 的 SKILL 匹配产生:步骤职责与某个可用 SKILL 匹配时设置(值为该 SKILL 的 name 或目录名),未匹配时不设置或留空。值必须来自 Phase 1.5 的可用 SKILL 列表,由 `validate-specified-skills.cjs` 强制校验。
|
|
399
|
+
|
|
400
|
+
> 完整输出示例参见 [输出示例](assets/OUTPUT_EXAMPLES.md)
|
|
401
|
+
|
|
402
|
+
**fan-in 聚合示例**(并行步骤 2/3/4 聚合到步骤 5):
|
|
403
|
+
|
|
404
|
+
```json
|
|
405
|
+
{
|
|
406
|
+
"steps": [
|
|
407
|
+
{ "stepId": 1, "taskDescription": "分析任务并产出输入", "dependId": 0, "nextStepId": 2, "failStepId": 0, "maxRetries": 3 },
|
|
408
|
+
{ "stepId": 2, "taskDescription": "并行检视:代码质量", "dependId": 1, "nextStepId": 5, "failStepId": 0, "maxRetries": 3 },
|
|
409
|
+
{ "stepId": 3, "taskDescription": "并行检视:稳定性", "dependId": 1, "nextStepId": 5, "failStepId": 0, "maxRetries": 3 },
|
|
410
|
+
{ "stepId": 4, "taskDescription": "并行检视:文档质量", "dependId": 1, "nextStepId": 5, "failStepId": 0, "maxRetries": 3 },
|
|
411
|
+
{ "stepId": 5, "taskDescription": "聚合三路检视结果并汇总报告", "dependId": [2, 3, 4], "nextStepId": 0, "failStepId": 0, "maxRetries": 3 }
|
|
412
|
+
]
|
|
413
|
+
}
|
|
414
|
+
```
|
|
415
|
+
|
|
416
|
+
- 步骤 5 的 `dependId: [2, 3, 4]` 表示需等待步骤 2/3/4 **全部 COMPLETED** 后才执行(fan-in 聚合)。
|
|
417
|
+
- 步骤 2/3/4 均 `dependId: 1`,由 Orchestrator 并行执行(fan-out)。
|
|
418
|
+
|
|
419
|
+
### 4.3 输出规范
|
|
420
|
+
|
|
421
|
+
- ✅ 纯 JSON(无 markdown 代码块标记,无注释,无前后缀文字)
|
|
422
|
+
- ✅ 合法可解析格式
|
|
423
|
+
- ✅ `keyParameters` 字段存在且 `versionNumbers`/`branchNames` 至少各含 1 项(当任务描述包含版本号/分支名时)
|
|
424
|
+
- ✅ `stepId` 从 1 递增,唯一
|
|
425
|
+
- ✅ `acceptanceCriteria[].id` 格式为 `ac{stepId}_{序号}`
|
|
426
|
+
- ✅ 所有字符串字段非空
|
|
427
|
+
- ✅ 步骤描述中出现的版本号/分支名与 `keyParameters` 一致(由 `validate-param-consistency.cjs` 强制校验)
|
|
428
|
+
- ✅ `specifiedSkill`(可选)值必须来自可用 SKILL 列表(由 `validate-specified-skills.cjs` 强制校验)
|
|
429
|
+
|
|
430
|
+
---
|
|
431
|
+
|
|
432
|
+
## 重规划时的额外要求
|
|
433
|
+
|
|
434
|
+
当提供了 `context`(重规划场景)时,拆解需额外考虑:
|
|
435
|
+
|
|
436
|
+
1. **针对未满足的标准** — 调整相关步骤的任务描述,使其更明确
|
|
437
|
+
2. **增加验证步骤** — 强化对失败点的验证
|
|
438
|
+
3. **考虑改进建议** — 新增必要的步骤
|
|
439
|
+
4. **保持依赖关系合理** — 步骤间依赖关系需逻辑自洽
|
|
440
|
+
5. **步骤 ID 重新编号** — 从 1 开始重新编号
|
|
441
|
+
|
|
442
|
+
> 详细流程参见 [重规划上下文处理指南](references/REPLAN_CONTEXT_GUIDE.md)
|
|
443
|
+
|
|
444
|
+
---
|
|
445
|
+
|
|
446
|
+
## 自检
|
|
447
|
+
|
|
448
|
+
> ⚠️ **效率纪律(硬性)**:校验规则以下文「参数一致性校验规则」「specifiedSkill 校验规则」「死锁校验规则」三节的文字规则为准,**禁止通读 scripts/ 下校验脚本源码**——脚本仅用于执行,规则语义已完整沉淀于本文件。仅当某项校验失败且下文规则无法定位原因时,才 grep 对应脚本的规则段落定位实现细节。
|
|
449
|
+
|
|
450
|
+
输出完成后,**必须**运行以下三套校验脚本,全部通过后方可提交:
|
|
451
|
+
|
|
452
|
+
```bash
|
|
453
|
+
# 1. 字段/引用/验收标准合规性校验
|
|
454
|
+
node scripts/validate-decomposition-output.cjs <resultFile>
|
|
455
|
+
|
|
456
|
+
# 2. 死锁/循环检测(必须通过,否则重拆解)
|
|
457
|
+
node scripts/validate-step-graph.cjs <resultFile>
|
|
458
|
+
|
|
459
|
+
# 3. 关键参数一致性校验(版本号/分支名篡改检测)
|
|
460
|
+
node scripts/validate-param-consistency.cjs <resultFile>
|
|
461
|
+
|
|
462
|
+
# 4. specifiedSkill 校验(引用的 SKILL 必须在可用列表中,且无旧式推荐文本)
|
|
463
|
+
node scripts/validate-specified-skills.cjs <resultFile>
|
|
464
|
+
```
|
|
465
|
+
|
|
466
|
+
> 四个脚本均为 Node.js(`.cjs`)实现,跨平台(Windows/macOS/Linux)可直接运行,仅需 Node.js 环境。
|
|
467
|
+
|
|
468
|
+
### 参数一致性校验规则(强制)
|
|
469
|
+
|
|
470
|
+
`validate-param-consistency.cjs` 会检测以下**参数篡改**,任一项不通过则脚本以非零码退出:
|
|
471
|
+
|
|
472
|
+
1. **`keyParameters` 缺失** — 输出 JSON 未包含 `keyParameters` 字段,或 `versionNumbers`/`branchNames` 子字段为空(当任务描述中含版本号/分支名时)
|
|
473
|
+
2. **步骤描述中的版本号不在 `keyParameters` 中** — 如步骤描述出现 `0.72` 但 `keyParameters.versionNumbers` 中无此值,判定为版本号臆造
|
|
474
|
+
3. **步骤描述中的分支名不在 `keyParameters` 中** — 如步骤描述出现 `br_rnoh0.72` 但 `keyParameters.branchNames` 中无此值,判定为分支名臆造
|
|
475
|
+
4. **`keyParameters` 中声明的参数在步骤中完全未引用** — 如 `keyParameters.versionNumbers` 含 `0.82` 但所有步骤描述中均未出现,判定为参数声明但未使用
|
|
476
|
+
|
|
477
|
+
> ⚠️ **强制要求**:若脚本 exit 非 0(检测到参数篡改),**必须对照原始任务描述修正 `keyParameters` 及相关步骤描述后重新生成 JSON,并重新运行校验,直至全部通过**。
|
|
478
|
+
|
|
479
|
+
### specifiedSkill 校验规则(强制)
|
|
480
|
+
|
|
481
|
+
`validate-specified-skills.cjs` 会实时扫描 SKILL 根目录(黑名单过滤后)作为合法集合,检测以下问题,任一项不通过则脚本以非零码退出:
|
|
482
|
+
|
|
483
|
+
1. **specifiedSkill 不在可用列表中** — 步骤引用了不存在的 SKILL(含黑名单中的编排层/元技能),判定为臆造引用。修正方式:运行 `node scripts/list-available-skills.cjs` 查看实时列表,对照修正
|
|
484
|
+
2. **旧式推荐文本残留** — `taskDescription` 中出现"推荐使用 X SKILL 执行"字样(旧模式已废止)。修正方式:删除该句,改为在步骤 JSON 中设置 `specifiedSkill` 字段
|
|
485
|
+
|
|
486
|
+
> ⚠️ **强制要求**:若脚本 exit 非 0,**必须修正 `specifiedSkill` 引用或移除旧式推荐文本后重新生成 JSON,并重新运行校验,直至全部通过**。
|
|
487
|
+
|
|
488
|
+
### 死锁校验规则(强制)
|
|
489
|
+
|
|
490
|
+
`validate-step-graph.cjs` 会检测以下**死锁/循环**,任一项不通过则脚本以非零码退出:
|
|
491
|
+
|
|
492
|
+
1. **成功链环(nextStepId 成环)** — 如 `step4.nextStepId→step5`、`step5.nextStepId→step4`,成功后永远无法结束
|
|
493
|
+
2. **失败链环(failStepId 成环)** — 如 `A 失败→B`、`B 失败→A`,修复链无限回退(自身回退 `failStepId==自己` 配合 `maxRetries` 视为合法,不报错)
|
|
494
|
+
3. **依赖环(dependId 成环)** — 步骤互相依赖,拓扑无法启动
|
|
495
|
+
4. **不可达/孤立步骤** — 从入口沿 `nextStepId` 链无法到达的步骤,永远不会被执行
|
|
496
|
+
5. **成功链无终止** — 所有步骤 `nextStepId` 均非 0,无法结束
|
|
497
|
+
|
|
498
|
+
> ⚠️ **强制要求**:若脚本 exit 非 0(检测到上述任一问题),**必须修正步骤图的 `nextStepId`/`failStepId`/`dependId` 后重新生成 JSON,并重新运行校验,直至脚本全部通过**。不得提交含死锁的步骤图。
|
|
499
|
+
|
|
500
|
+
### 死锁反馈与自动重生成
|
|
501
|
+
|
|
502
|
+
若死锁校验未通过,执行以下**反馈驱动重生成循环**,将死锁链路径交给大模型自身推理修正:
|
|
503
|
+
|
|
504
|
+
1. **提取死锁反馈** — 读取 `validate-step-graph.cjs` 输出中的死锁链路径(如 `成功链环: 4 → 5 → 4`),将其作为"死锁反馈"写入当前工作上下文。
|
|
505
|
+
2. **判定类型与根因** — 逐条判定死锁类型(成功链环 / 失败链环 / 依赖环 / 孤立步骤 / 无终止),并定位根因字段(`nextStepId` / `failStepId` / `dependId`)。
|
|
506
|
+
3. **带着死锁反馈重新生成 JSON** — 依据任务目标重新设计步骤图,确保打破死锁的同时,步骤图仍能达成任务预期效果。重新生成而非在原 JSON 上局部修补。
|
|
507
|
+
4. **重新校验** — 重新运行 `node scripts/validate-step-graph.cjs <resultFile>`。
|
|
508
|
+
5. **循环 2-4** — 直至脚本全部 PASS;最多尝试 3 次,仍失败则报错并附最后一次死锁反馈。
|
|
509
|
+
|
|
510
|
+
死锁反馈必须保留在每一步骤的思考中,例如:
|
|
511
|
+
`已在上一轮检测到死锁: 成功链环 4 → 5 → 4,本次生成已将该环改写为 4 → 5 → 6(终止)`。
|
|
512
|
+
|
|
513
|
+
> 修正完全依靠大模型自身推理能力,不规定机械拆环手法,以确保步骤图仍能达成任务预期效果。
|
|
514
|
+
|
|
515
|
+
---
|
|
516
|
+
|
|
517
|
+
## 注意事项
|
|
518
|
+
|
|
519
|
+
1. **每个步骤只做一件独立可验证的事** — 步骤描述面向任务本身(做什么/预期输出);职责与可用 SKILL 匹配的步骤通过 `specifiedSkill` 字段显式绑定(跳过自动匹配),其余步骤由 SkillSelector 在运行时按 taskDescription 自动匹配
|
|
520
|
+
2. **验收标准必须可验证** — 避免模糊描述,verification 要具体到可执行
|
|
521
|
+
3. **依赖图不能有死循环** — failStepId 回退链必须有限,配合 maxRetries 控制;成功链/失败链/依赖环均会死锁。最终以 `node scripts/validate-step-graph.cjs <resultFile>` 校验结果为准,检测到死锁必须重拆解直至通过
|
|
522
|
+
4. **步骤级 AC 的 taskACIds 要覆盖任务级 AC** — 合并所有步骤的 taskACIds 应覆盖所有任务级标准 ID
|
|
523
|
+
5. **重规划时保持目标一致** — 调整的是步骤设计与验收标准,不是任务目标
|
|
524
|
+
6. **输出纯 JSON** — 下游有容错机制但应输出纯 JSON,不依赖容错
|
|
525
|
+
7. **步骤级 AC 实际由 acceptance-check SKILL 消费** — Orchestrator 仅消费图字段调度,步骤级 AC 通过产物文件传递给 acceptance-check SKILL 评估
|
|
526
|
+
8. **关键参数逐字保真** — 版本号、分支名、仓库 URL、库名等关键参数必须从任务描述中原样提取到 `keyParameters`,步骤描述中引用时必须与 `keyParameters` 一致。LLM 生成时易将版本号臆造为相似但错误的值(如 `0.82`→`0.72`),由 `validate-param-consistency.cjs` 强制拦截
|
|
527
|
+
9. **步骤与执行 SKILL 通过 specifiedSkill 字段绑定** — 职责与可用 SKILL 匹配的步骤设置 `specifiedSkill`(值必须来自 Phase 1.5 实时扫描的可用 SKILL 列表),执行层 FlexRunner 将跳过自动匹配直接使用该 SKILL;
|
|
528
|
+
10. **拆解是设计不是研究** — 拆解输入只来自 prompt 注入文本,不通过克隆仓库、读源码、拉 Issue 等检索补充;步骤描述只写有 prompt 出处的断言,其余表达为探索目标(见 Phase 2.0 三原则)
|
|
529
529
|
11. **最少充分步骤** — 步骤数由任务复杂度决定(简单 1-3 步 / 中等 3-5 步 / 复杂 5-8 步),以覆盖全部任务级 AC 的最少独立产物数为目标,禁止凑数式拆解(见 Phase 2.1 拆解数量基本原则)
|