cc-devflow 4.3.0 → 4.5.0

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.
Files changed (579) hide show
  1. package/.claude/skills/cc-act/CHANGELOG.md +70 -0
  2. package/.claude/skills/cc-act/PLAYBOOK.md +212 -0
  3. package/.claude/skills/cc-act/SKILL.md +330 -0
  4. package/.claude/skills/cc-act/assets/PR_BRIEF_TEMPLATE.md +68 -0
  5. package/.claude/skills/cc-act/assets/RELEASE_NOTE_TEMPLATE.md +29 -0
  6. package/.claude/skills/cc-act/references/closure-contract.md +49 -0
  7. package/.claude/skills/cc-act/references/git-commit-guidelines.md +83 -0
  8. package/.claude/skills/cc-act/scripts/archive-requirement.sh +49 -0
  9. package/.claude/skills/cc-act/scripts/cc-act-common.sh +245 -0
  10. package/.claude/skills/cc-act/scripts/detect-ship-target.sh +82 -0
  11. package/.claude/skills/cc-act/scripts/generate-status-report.sh +83 -0
  12. package/.claude/skills/cc-act/scripts/render-pr-brief.sh +200 -0
  13. package/.claude/skills/cc-act/scripts/sync-act-docs.sh +328 -0
  14. package/.claude/skills/cc-act/scripts/verify-act-gate.sh +63 -0
  15. package/.claude/skills/cc-check/CHANGELOG.md +78 -0
  16. package/.claude/skills/cc-check/PLAYBOOK.md +153 -0
  17. package/.claude/skills/cc-check/SKILL.md +353 -0
  18. package/.claude/skills/cc-check/assets/REPORT_CARD_TEMPLATE.json +53 -0
  19. package/.claude/skills/cc-check/references/gate-contract.md +29 -0
  20. package/.claude/skills/cc-check/references/review-contract.md +45 -0
  21. package/.claude/skills/cc-check/scripts/render-report-card.js +229 -0
  22. package/.claude/skills/cc-check/scripts/run-quality-gates.sh +86 -0
  23. package/.claude/skills/cc-check/scripts/verify-gate.sh +57 -0
  24. package/.claude/skills/cc-do/CHANGELOG.md +54 -0
  25. package/.claude/skills/cc-do/PLAYBOOK.md +119 -0
  26. package/.claude/skills/cc-do/SKILL.md +224 -0
  27. package/.claude/skills/cc-do/references/execution-recovery.md +86 -0
  28. package/.claude/skills/cc-do/references/parallel-dispatch.md +80 -0
  29. package/.claude/skills/cc-do/scripts/build-task-context.sh +184 -0
  30. package/.claude/skills/cc-do/scripts/cc-do-common.sh +79 -0
  31. package/.claude/skills/cc-do/scripts/check-task-status.sh +92 -0
  32. package/.claude/skills/cc-do/scripts/detect-file-conflicts.sh +87 -0
  33. package/.claude/skills/cc-do/scripts/mark-task-complete.sh +119 -0
  34. package/.claude/skills/cc-do/scripts/record-review-decision.sh +89 -0
  35. package/.claude/skills/cc-do/scripts/recover-workflow.sh +84 -0
  36. package/.claude/skills/cc-do/scripts/run-problem-analysis.sh +70 -0
  37. package/.claude/skills/cc-do/scripts/select-ready-tasks.sh +135 -0
  38. package/.claude/skills/cc-do/scripts/verify-task-gates.sh +94 -0
  39. package/.claude/skills/cc-do/scripts/write-task-checkpoint.sh +102 -0
  40. package/.claude/skills/cc-investigate/CHANGELOG.md +31 -0
  41. package/.claude/skills/cc-investigate/PLAYBOOK.md +49 -0
  42. package/.claude/skills/cc-investigate/SKILL.md +229 -0
  43. package/.claude/skills/cc-investigate/assets/ANALYSIS_TEMPLATE.md +56 -0
  44. package/.claude/skills/cc-investigate/assets/TASKS_TEMPLATE.md +53 -0
  45. package/.claude/skills/cc-investigate/assets/TASK_MANIFEST_TEMPLATE.json +106 -0
  46. package/.claude/skills/cc-investigate/references/investigation-contract.md +28 -0
  47. package/.claude/skills/cc-investigate/scripts/bootstrap-analysis.sh +38 -0
  48. package/.claude/skills/cc-plan/CHANGELOG.md +104 -0
  49. package/.claude/skills/cc-plan/PLAYBOOK.md +106 -0
  50. package/.claude/skills/cc-plan/SKILL.md +333 -0
  51. package/.claude/skills/cc-plan/assets/DESIGN_TEMPLATE.md +156 -0
  52. package/.claude/skills/cc-plan/assets/TASKS_TEMPLATE.md +99 -0
  53. package/.claude/skills/cc-plan/assets/TASK_MANIFEST_TEMPLATE.json +111 -0
  54. package/.claude/skills/cc-plan/assets/TINY_DESIGN_TEMPLATE.md +80 -0
  55. package/.claude/skills/cc-plan/references/planning-contract.md +82 -0
  56. package/.claude/skills/cc-plan/scripts/bump-skill-version.sh +103 -0
  57. package/.claude/skills/cc-plan/scripts/parse-task-dependencies.js +75 -0
  58. package/.claude/skills/cc-plan/scripts/validate-scope.sh +78 -0
  59. package/.claude/skills/cc-roadmap/CHANGELOG.md +119 -0
  60. package/.claude/skills/cc-roadmap/PLAYBOOK.md +136 -0
  61. package/.claude/skills/cc-roadmap/SKILL.md +267 -0
  62. package/.claude/skills/cc-roadmap/assets/BACKLOG_TEMPLATE.md +46 -0
  63. package/.claude/skills/cc-roadmap/assets/ROADMAP_TEMPLATE.md +154 -0
  64. package/.claude/skills/cc-roadmap/assets/TRACKING_TEMPLATE.json +51 -0
  65. package/.claude/skills/cc-roadmap/references/roadmap-dialogue.md +37 -0
  66. package/.claude/skills/cc-roadmap/scripts/bump-skill-version.sh +103 -0
  67. package/.claude/skills/cc-roadmap/scripts/lib/roadmap-tracking/markdown.js +604 -0
  68. package/.claude/skills/cc-roadmap/scripts/lib/roadmap-tracking/query.js +63 -0
  69. package/.claude/skills/cc-roadmap/scripts/lib/roadmap-tracking/schema.js +245 -0
  70. package/.claude/skills/cc-roadmap/scripts/lib/roadmap-tracking/store.js +139 -0
  71. package/.claude/skills/cc-roadmap/scripts/locate-roadmap-item.sh +109 -0
  72. package/.claude/skills/cc-roadmap/scripts/roadmap-tracking.js +153 -0
  73. package/.claude/skills/cc-roadmap/scripts/sync-roadmap-progress.sh +100 -0
  74. package/.claude/skills/cc-simplify/CHANGELOG.md +10 -0
  75. package/.claude/skills/cc-simplify/SKILL.md +55 -0
  76. package/.claude/skills/cc-spec-init/CHANGELOG.md +12 -0
  77. package/.claude/skills/cc-spec-init/PLAYBOOK.md +55 -0
  78. package/.claude/skills/cc-spec-init/SKILL.md +135 -0
  79. package/.claude/skills/cc-spec-init/assets/CAPABILITY_TEMPLATE.md +64 -0
  80. package/.claude/skills/cc-spec-init/assets/CHANGE_META_TEMPLATE.json +28 -0
  81. package/.claude/skills/cc-spec-init/assets/INDEX_TEMPLATE.md +35 -0
  82. package/.claude/skills/cc-spec-init/references/spec-contract.md +22 -0
  83. package/.claude/skills/cc-spec-init/scripts/bootstrap-specs.sh +31 -0
  84. package/.claude/skills/cc-spec-init/scripts/validate-spec-links.sh +45 -0
  85. package/CHANGELOG.md +80 -4
  86. package/README.md +148 -741
  87. package/README.zh-CN.md +146 -740
  88. package/bin/adapt.js +2 -6
  89. package/bin/cc-devflow-cli.js +287 -166
  90. package/config/distributable-skills.json +24 -0
  91. package/config/schema/cc-devflow-config.schema.json +45 -0
  92. package/config/user-config.template.yml +16 -0
  93. package/docs/CLAUDE.md +10 -6
  94. package/docs/commands/README.md +19 -46
  95. package/docs/commands/README.zh-CN.md +25 -48
  96. package/docs/examples/BY-ARTIFACT.md +7 -0
  97. package/docs/examples/README.md +38 -0
  98. package/docs/examples/START-HERE.md +149 -0
  99. package/docs/examples/example-bindings.json +38 -0
  100. package/docs/examples/full-design-blocked/BACKLOG.md +45 -0
  101. package/docs/examples/full-design-blocked/README.md +55 -0
  102. package/docs/examples/full-design-blocked/ROADMAP.md +53 -0
  103. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/design.md +154 -0
  104. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/task-manifest.json +146 -0
  105. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/tasks.md +78 -0
  106. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/review/report-card.json +52 -0
  107. package/docs/examples/full-design-blocked/roadmap-tracking.json +50 -0
  108. package/docs/examples/local-handoff/BACKLOG.md +45 -0
  109. package/docs/examples/local-handoff/README.md +56 -0
  110. package/docs/examples/local-handoff/ROADMAP.md +45 -0
  111. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/handoff/resume-index.md +39 -0
  112. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/handoff/status.md +29 -0
  113. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/design.md +71 -0
  114. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/task-manifest.json +98 -0
  115. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/tasks.md +59 -0
  116. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/review/report-card.json +44 -0
  117. package/docs/examples/local-handoff/roadmap-tracking.json +48 -0
  118. package/docs/examples/pdca-loop/BACKLOG.md +46 -0
  119. package/docs/examples/pdca-loop/README.md +58 -0
  120. package/docs/examples/pdca-loop/ROADMAP.md +133 -0
  121. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/handoff/pr-brief.md +72 -0
  122. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/handoff/status.md +29 -0
  123. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/design.md +72 -0
  124. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/task-manifest.json +201 -0
  125. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/tasks.md +73 -0
  126. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/review/report-card.json +44 -0
  127. package/docs/examples/pdca-loop/roadmap-tracking.json +114 -0
  128. package/docs/examples/scripts/check-example-bindings.sh +116 -0
  129. package/docs/guides/getting-started.md +94 -129
  130. package/docs/guides/getting-started.zh-CN.md +103 -84
  131. package/docs/skill-runtime-migration.md +46 -0
  132. package/docs/v4.3.0-migration-guide.md +60 -225
  133. package/lib/compiler/CLAUDE.md +55 -84
  134. package/lib/compiler/__tests__/drift.test.js +1 -1
  135. package/lib/compiler/__tests__/errors.test.js +0 -1
  136. package/lib/compiler/__tests__/integration.test.js +49 -3
  137. package/lib/compiler/__tests__/manifest.test.js +0 -156
  138. package/lib/compiler/__tests__/parser.test.js +33 -104
  139. package/lib/compiler/__tests__/schemas.test.js +30 -34
  140. package/lib/compiler/__tests__/skills-registry.test.js +114 -0
  141. package/lib/compiler/__tests__/transformer.test.js +5 -9
  142. package/lib/compiler/emitters/antigravity-emitter.js +5 -213
  143. package/lib/compiler/emitters/base-emitter.js +3 -298
  144. package/lib/compiler/emitters/codex-emitter.js +4 -202
  145. package/lib/compiler/emitters/cursor-emitter.js +3 -287
  146. package/lib/compiler/emitters/qwen-emitter.js +4 -176
  147. package/lib/compiler/index.js +65 -345
  148. package/lib/compiler/manifest.js +6 -68
  149. package/lib/compiler/parser.js +31 -63
  150. package/lib/compiler/platforms.js +32 -277
  151. package/lib/compiler/resource-copier.js +176 -6
  152. package/lib/compiler/rules-emitters/__tests__/antigravity-rules-emitter.test.js +3 -3
  153. package/lib/compiler/rules-emitters/__tests__/cursor-rules-emitter.test.js +14 -4
  154. package/lib/compiler/rules-emitters/__tests__/qwen-rules-emitter.test.js +16 -7
  155. package/lib/compiler/rules-emitters/antigravity-rules-emitter.js +10 -15
  156. package/lib/compiler/rules-emitters/base-rules-emitter.js +5 -5
  157. package/lib/compiler/rules-emitters/cursor-rules-emitter.js +7 -12
  158. package/lib/compiler/rules-emitters/index.js +6 -3
  159. package/lib/compiler/rules-emitters/qwen-rules-emitter.js +7 -7
  160. package/lib/compiler/schemas.js +8 -4
  161. package/lib/compiler/skills-registry.js +213 -15
  162. package/lib/compiler/transformer.js +1 -1
  163. package/lib/skill-runtime/CLAUDE.md +19 -0
  164. package/lib/skill-runtime/__tests__/autopilot.test.js +210 -0
  165. package/lib/skill-runtime/__tests__/cli-bootstrap.integration.test.js +291 -0
  166. package/lib/skill-runtime/__tests__/config.test.js +161 -0
  167. package/lib/skill-runtime/__tests__/delegation.test.js +97 -0
  168. package/lib/skill-runtime/__tests__/dispatch.test.js +267 -0
  169. package/lib/skill-runtime/__tests__/intent.test.js +219 -0
  170. package/lib/skill-runtime/__tests__/lifecycle.test.js +169 -0
  171. package/lib/skill-runtime/__tests__/paths.test.js +42 -0
  172. package/lib/skill-runtime/__tests__/planner.tdd.test.js +250 -0
  173. package/lib/skill-runtime/__tests__/prepare-pr.test.js +139 -0
  174. package/lib/skill-runtime/__tests__/query.test.js +284 -0
  175. package/lib/skill-runtime/__tests__/runtime.integration.test.js +281 -0
  176. package/lib/skill-runtime/__tests__/schemas.test.js +207 -0
  177. package/lib/skill-runtime/__tests__/team-state.test.js +51 -0
  178. package/lib/skill-runtime/__tests__/worker-run.test.js +253 -0
  179. package/lib/skill-runtime/__tests__/worker.test.js +56 -0
  180. package/lib/skill-runtime/artifacts.js +93 -0
  181. package/lib/skill-runtime/config.js +379 -0
  182. package/lib/skill-runtime/delegation.js +533 -0
  183. package/lib/skill-runtime/index.js +36 -0
  184. package/lib/skill-runtime/intent.js +333 -0
  185. package/lib/skill-runtime/lifecycle.js +294 -0
  186. package/lib/skill-runtime/operations/CLAUDE.md +19 -0
  187. package/lib/skill-runtime/operations/approve.js +66 -0
  188. package/lib/skill-runtime/operations/autopilot-core.js +337 -0
  189. package/lib/skill-runtime/operations/autopilot-execution.js +307 -0
  190. package/lib/skill-runtime/operations/autopilot-shared.js +48 -0
  191. package/lib/skill-runtime/operations/autopilot.js +163 -0
  192. package/lib/skill-runtime/operations/dispatch.js +454 -0
  193. package/lib/skill-runtime/operations/init.js +64 -0
  194. package/lib/{harness → skill-runtime}/operations/janitor.js +9 -6
  195. package/lib/skill-runtime/operations/plan.js +59 -0
  196. package/lib/skill-runtime/operations/prepare-pr.js +25 -0
  197. package/lib/skill-runtime/operations/release.js +96 -0
  198. package/lib/skill-runtime/operations/resume.js +143 -0
  199. package/lib/skill-runtime/operations/snapshot.js +45 -0
  200. package/lib/skill-runtime/operations/verify.js +170 -0
  201. package/lib/skill-runtime/operations/worker-run.js +529 -0
  202. package/lib/skill-runtime/operations/worker.js +33 -0
  203. package/lib/skill-runtime/paths.js +213 -0
  204. package/lib/skill-runtime/planner.js +519 -0
  205. package/lib/skill-runtime/query.js +157 -0
  206. package/lib/skill-runtime/review.js +557 -0
  207. package/lib/skill-runtime/schemas.js +400 -0
  208. package/lib/{harness → skill-runtime}/store.js +45 -30
  209. package/lib/skill-runtime/team-state.js +122 -0
  210. package/package.json +13 -11
  211. package/.claude/CLAUDE.md +0 -125
  212. package/.claude/agents/architecture-designer.md +0 -443
  213. package/.claude/agents/bug-analyzer.md +0 -381
  214. package/.claude/agents/checklist-agent.md +0 -175
  215. package/.claude/agents/clarify-analyst.md +0 -50
  216. package/.claude/agents/code-quality-reviewer.md +0 -205
  217. package/.claude/agents/code-reviewer.md +0 -71
  218. package/.claude/agents/codex-analyzer.md +0 -39
  219. package/.claude/agents/compatibility-checker.md +0 -579
  220. package/.claude/agents/consistency-checker.md +0 -532
  221. package/.claude/agents/dev-implementer.md +0 -195
  222. package/.claude/agents/flow-researcher.md +0 -132
  223. package/.claude/agents/impact-analyzer.md +0 -440
  224. package/.claude/agents/planner.md +0 -230
  225. package/.claude/agents/prd-writer.md +0 -320
  226. package/.claude/agents/project-guidelines-generator.md +0 -1329
  227. package/.claude/agents/qa-tester.md +0 -313
  228. package/.claude/agents/release-manager.md +0 -295
  229. package/.claude/agents/security-reviewer.md +0 -314
  230. package/.claude/agents/spec-reviewer.md +0 -221
  231. package/.claude/agents/style-guide-generator.md +0 -458
  232. package/.claude/agents/tech-architect.md +0 -516
  233. package/.claude/agents/ui-designer.md +0 -485
  234. package/.claude/commands/core/architecture.md +0 -459
  235. package/.claude/commands/core/guidelines.md +0 -511
  236. package/.claude/commands/core/roadmap.md +0 -468
  237. package/.claude/commands/core/style.md +0 -83
  238. package/.claude/commands/flow/CLAUDE.md +0 -24
  239. package/.claude/commands/flow/archive.md +0 -280
  240. package/.claude/commands/flow/constitution.md +0 -82
  241. package/.claude/commands/flow/context.md +0 -150
  242. package/.claude/commands/flow/delta.md +0 -245
  243. package/.claude/commands/flow/dev.md +0 -40
  244. package/.claude/commands/flow/fix.md +0 -217
  245. package/.claude/commands/flow/ideate.md +0 -214
  246. package/.claude/commands/flow/init.md +0 -38
  247. package/.claude/commands/flow/release.md +0 -36
  248. package/.claude/commands/flow/restart.md +0 -97
  249. package/.claude/commands/flow/spec.md +0 -36
  250. package/.claude/commands/flow/status.md +0 -64
  251. package/.claude/commands/flow/update.md +0 -111
  252. package/.claude/commands/flow/upgrade.md +0 -115
  253. package/.claude/commands/flow/verify.md +0 -37
  254. package/.claude/commands/flow/workspace.md +0 -155
  255. package/.claude/commands/util/cancel-ralph.md +0 -60
  256. package/.claude/commands/util/code-review.md +0 -58
  257. package/.claude/commands/util/git-commit.md +0 -422
  258. package/.claude/commands/util/problem-analyzer.md +0 -60
  259. package/.claude/config/quality-gates.yml +0 -305
  260. package/.claude/config/quality-rules.yml +0 -161
  261. package/.claude/docs/SPEC_KIT_CONSTITUTION_ANALYSIS.md +0 -426
  262. package/.claude/docs/design/consistency-conflict-detection-algorithms.md +0 -658
  263. package/.claude/docs/design/intent-driven-input-design.md +0 -380
  264. package/.claude/docs/design/prd-version-management-design.md +0 -437
  265. package/.claude/docs/examples/design-inspiration-pool.md +0 -59
  266. package/.claude/docs/examples/ui-prototype-constitution-checklist.md +0 -75
  267. package/.claude/docs/guides/INIT_TROUBLESHOOTING.md +0 -117
  268. package/.claude/docs/guides/NEW_TROUBLESHOOTING.md +0 -99
  269. package/.claude/docs/guides/ROADMAP_TROUBLESHOOTING.md +0 -188
  270. package/.claude/docs/guides/TASK_COMPLETION_MARKING.md +0 -338
  271. package/.claude/docs/guides/TEAM_MODE_GUIDE.md +0 -312
  272. package/.claude/docs/implementation-summary-v7.md +0 -449
  273. package/.claude/docs/spec-format-guide.md +0 -349
  274. package/.claude/docs/state-consolidation-design.md +0 -323
  275. package/.claude/docs/templates/ARCHITECTURE_TEMPLATE.md +0 -332
  276. package/.claude/docs/templates/ATTEMPT_TEMPLATE.md +0 -156
  277. package/.claude/docs/templates/BACKLOG_TEMPLATE.md +0 -261
  278. package/.claude/docs/templates/BRAINSTORM_TEMPLATE.md +0 -148
  279. package/.claude/docs/templates/CHECKLIST_TEMPLATE.md +0 -52
  280. package/.claude/docs/templates/CLARIFICATION_REPORT_TEMPLATE.md +0 -206
  281. package/.claude/docs/templates/CODE_REVIEW_TEMPLATE.md +0 -71
  282. package/.claude/docs/templates/DELTA_SPEC_TEMPLATE.md +0 -91
  283. package/.claude/docs/templates/DESIGN_DECISIONS_TEMPLATE.md +0 -151
  284. package/.claude/docs/templates/DESIGN_TEMPLATE.md +0 -157
  285. package/.claude/docs/templates/ERROR_LOG_TEMPLATE.md +0 -80
  286. package/.claude/docs/templates/INIT_FLOW_TEMPLATE.md +0 -198
  287. package/.claude/docs/templates/INTENT_CLARIFICATION_TEMPLATE.md +0 -57
  288. package/.claude/docs/templates/JOURNAL_TEMPLATE.md +0 -75
  289. package/.claude/docs/templates/NEW_ORCHESTRATION_TEMPLATE.md +0 -76
  290. package/.claude/docs/templates/PROPOSAL_TEMPLATE.md +0 -91
  291. package/.claude/docs/templates/RESEARCH_TEMPLATE.md +0 -276
  292. package/.claude/docs/templates/REVIEW-HIGH.md +0 -57
  293. package/.claude/docs/templates/ROADMAP_DIALOGUE_TEMPLATE.md +0 -198
  294. package/.claude/docs/templates/ROADMAP_TEMPLATE.md +0 -310
  295. package/.claude/docs/templates/SPEC_TEMPLATE_DELTA.md +0 -139
  296. package/.claude/docs/templates/SPEC_TEMPLATE_PROJECT.md +0 -93
  297. package/.claude/docs/templates/STYLE_TEMPLATE.md +0 -479
  298. package/.claude/docs/templates/UI_PROTOTYPE_TEMPLATE.md +0 -373
  299. package/.claude/docs/templates/_shared/CLAUDE.md +0 -36
  300. package/.claude/docs/templates/_shared/CONSTITUTION_CHECK.md +0 -125
  301. package/.claude/docs/templates/_shared/VALIDATION_CHECKLIST.md +0 -187
  302. package/.claude/docs/templates/_shared/YAML_FRONTMATTER.md +0 -164
  303. package/.claude/docs/templates/context/dev.jsonl.template +0 -6
  304. package/.claude/docs/templates/context/epic.jsonl.template +0 -5
  305. package/.claude/docs/templates/context/prd.jsonl.template +0 -4
  306. package/.claude/docs/templates/context/research.jsonl.template +0 -4
  307. package/.claude/docs/templates/context/review.jsonl.template +0 -5
  308. package/.claude/docs/templates/context/tech.jsonl.template +0 -5
  309. package/.claude/guides/agent-guides/agent-coordination-guide.md +0 -459
  310. package/.claude/guides/project-guidelines-system.md +0 -463
  311. package/.claude/guides/technical-guides/datetime-handling-guide.md +0 -563
  312. package/.claude/guides/technical-guides/git-github-guide.md +0 -642
  313. package/.claude/guides/technical-guides/test-execution-guide.md +0 -618
  314. package/.claude/guides/workflow-guides/bug-fix-orchestrator.md +0 -217
  315. package/.claude/guides/workflow-guides/flow-orchestrator.md +0 -48
  316. package/.claude/hooks/CLAUDE.md +0 -342
  317. package/.claude/hooks/checklist-gate.js +0 -397
  318. package/.claude/hooks/error-handling-reminder.sh +0 -12
  319. package/.claude/hooks/error-handling-reminder.ts +0 -459
  320. package/.claude/hooks/hooks.json +0 -15
  321. package/.claude/hooks/inject-agent-context.ts +0 -480
  322. package/.claude/hooks/inject-skill-context.ts +0 -359
  323. package/.claude/hooks/post-tool-use-tracker.sh +0 -280
  324. package/.claude/hooks/pre-tool-use-guardrail.sh +0 -36
  325. package/.claude/hooks/pre-tool-use-guardrail.ts +0 -342
  326. package/.claude/hooks/ralph-loop.ts +0 -931
  327. package/.claude/hooks/ralph-stop-hook.sh +0 -190
  328. package/.claude/hooks/skill-activation-prompt.sh +0 -36
  329. package/.claude/hooks/skill-activation-prompt.ts +0 -214
  330. package/.claude/hooks/state/skills-used-test-guard.json +0 -3
  331. package/.claude/hooks/task-completed-hook.ts +0 -593
  332. package/.claude/hooks/teammate-idle-hook.ts +0 -690
  333. package/.claude/hooks/types/team-types.d.ts +0 -238
  334. package/.claude/rules/devflow-conventions.md +0 -286
  335. package/.claude/rules/project-constitution.md +0 -1002
  336. package/.claude/rules/rationalization-library.md +0 -282
  337. package/.claude/schemas/constitution.schema.json +0 -43
  338. package/.claude/scripts/.claude/commands/flow/export-openspec.md +0 -221
  339. package/.claude/scripts/.claude/commands/flow/import-openspec.md +0 -171
  340. package/.claude/scripts/CLAUDE.md +0 -76
  341. package/.claude/scripts/__tests__/openspec.test.js +0 -212
  342. package/.claude/scripts/analyze-upgrade-impact.sh +0 -200
  343. package/.claude/scripts/archive-requirement.sh +0 -394
  344. package/.claude/scripts/calculate-checklist-completion.sh +0 -243
  345. package/.claude/scripts/calculate-quarter.sh +0 -206
  346. package/.claude/scripts/check-dependencies.sh +0 -409
  347. package/.claude/scripts/check-prerequisites.sh +0 -232
  348. package/.claude/scripts/check-task-status.sh +0 -288
  349. package/.claude/scripts/checklist-errors.sh +0 -131
  350. package/.claude/scripts/common.sh +0 -1102
  351. package/.claude/scripts/consolidate-research.sh +0 -182
  352. package/.claude/scripts/create-requirement.sh +0 -451
  353. package/.claude/scripts/delta-parser.ts +0 -637
  354. package/.claude/scripts/detect-file-conflicts.sh +0 -151
  355. package/.claude/scripts/export-contracts.sh +0 -117
  356. package/.claude/scripts/export-openspec.js +0 -222
  357. package/.claude/scripts/extract-data-model.sh +0 -78
  358. package/.claude/scripts/flow-context-add.sh +0 -134
  359. package/.claude/scripts/flow-context-init.sh +0 -133
  360. package/.claude/scripts/flow-context-validate.sh +0 -144
  361. package/.claude/scripts/flow-delta-apply.sh +0 -297
  362. package/.claude/scripts/flow-delta-archive.sh +0 -71
  363. package/.claude/scripts/flow-delta-create.sh +0 -202
  364. package/.claude/scripts/flow-delta-list.sh +0 -142
  365. package/.claude/scripts/flow-delta-status.sh +0 -235
  366. package/.claude/scripts/flow-quality-full.sh +0 -215
  367. package/.claude/scripts/flow-quality-quick.sh +0 -119
  368. package/.claude/scripts/flow-workspace-init.sh +0 -117
  369. package/.claude/scripts/flow-workspace-record.sh +0 -164
  370. package/.claude/scripts/generate-clarification-questions.sh +0 -377
  371. package/.claude/scripts/generate-clarification-report.sh +0 -463
  372. package/.claude/scripts/generate-quickstart.sh +0 -146
  373. package/.claude/scripts/generate-research-tasks.sh +0 -157
  374. package/.claude/scripts/generate-status-report.sh +0 -523
  375. package/.claude/scripts/generate-tech-analysis.sh +0 -46
  376. package/.claude/scripts/get-workflow-status.sh +0 -415
  377. package/.claude/scripts/import-openspec.js +0 -272
  378. package/.claude/scripts/locate-requirement-in-roadmap.sh +0 -233
  379. package/.claude/scripts/manage-constitution.sh +0 -602
  380. package/.claude/scripts/mark-task-complete.sh +0 -198
  381. package/.claude/scripts/parse-task-dependencies.js +0 -334
  382. package/.claude/scripts/populate-research-tasks.sh +0 -284
  383. package/.claude/scripts/record-quality-error.sh +0 -165
  384. package/.claude/scripts/recover-workflow.sh +0 -463
  385. package/.claude/scripts/run-clarify-scan.sh +0 -601
  386. package/.claude/scripts/run-high-review.sh +0 -62
  387. package/.claude/scripts/run-problem-analysis.sh +0 -68
  388. package/.claude/scripts/run-quality-gates.sh +0 -242
  389. package/.claude/scripts/setup-epic.sh +0 -173
  390. package/.claude/scripts/setup-ralph-loop.sh +0 -155
  391. package/.claude/scripts/sync-roadmap-progress.sh +0 -300
  392. package/.claude/scripts/sync-task-marks.sh +0 -199
  393. package/.claude/scripts/team-dev-init.sh +0 -319
  394. package/.claude/scripts/team-state-recovery.sh +0 -229
  395. package/.claude/scripts/test-clarify-scan.sh +0 -515
  396. package/.claude/scripts/update-agent-context.sh +0 -806
  397. package/.claude/scripts/validate-constitution.sh +0 -567
  398. package/.claude/scripts/validate-hooks.sh +0 -487
  399. package/.claude/scripts/validate-research.sh +0 -332
  400. package/.claude/scripts/validate-scope-boundary.sh +0 -493
  401. package/.claude/scripts/validate-scope.sh +0 -200
  402. package/.claude/scripts/verify-gate.sh +0 -269
  403. package/.claude/scripts/verify-setup.sh +0 -37
  404. package/.claude/scripts/workflow-status.ts +0 -433
  405. package/.claude/settings.json +0 -95
  406. package/.claude/skills/_reference-implementations/README.md +0 -96
  407. package/.claude/skills/_reference-implementations/backend-express-prisma/SKILL.md +0 -302
  408. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/architecture-overview.md +0 -451
  409. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/async-and-errors.md +0 -307
  410. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/complete-examples.md +0 -638
  411. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/configuration.md +0 -275
  412. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/database-patterns.md +0 -224
  413. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/middleware-guide.md +0 -213
  414. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/routing-and-controllers.md +0 -756
  415. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/sentry-and-monitoring.md +0 -336
  416. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/services-and-repositories.md +0 -789
  417. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/testing-guide.md +0 -235
  418. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/validation-patterns.md +0 -754
  419. package/.claude/skills/_reference-implementations/frontend-react-mui/SKILL.md +0 -399
  420. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/common-patterns.md +0 -331
  421. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/complete-examples.md +0 -872
  422. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/component-patterns.md +0 -502
  423. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/data-fetching.md +0 -767
  424. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/file-organization.md +0 -502
  425. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/loading-and-error-states.md +0 -501
  426. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/performance.md +0 -406
  427. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/routing-guide.md +0 -364
  428. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/styling-guide.md +0 -428
  429. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/typescript-standards.md +0 -418
  430. package/.claude/skills/attention-refresh/SKILL.md +0 -170
  431. package/.claude/skills/brainstorming/SKILL.md +0 -161
  432. package/.claude/skills/cc-devflow-orchestrator/SKILL.md +0 -169
  433. package/.claude/skills/constitution-guardian/SKILL.md +0 -306
  434. package/.claude/skills/constitution-quick-ref/SKILL.md +0 -374
  435. package/.claude/skills/debugging/SKILL.md +0 -221
  436. package/.claude/skills/file-standards/SKILL.md +0 -353
  437. package/.claude/skills/finishing-branch/SKILL.md +0 -189
  438. package/.claude/skills/flow-dev/CLAUDE.md +0 -16
  439. package/.claude/skills/flow-dev/SKILL.md +0 -94
  440. package/.claude/skills/flow-dev/assets/IMPLEMENTATION_PLAN_TEMPLATE.md +0 -71
  441. package/.claude/skills/flow-dev/context.jsonl +0 -4
  442. package/.claude/skills/flow-dev/dev-implementer.jsonl +0 -8
  443. package/.claude/skills/flow-dev/scripts/entry-gate.sh +0 -116
  444. package/.claude/skills/flow-dev/scripts/exit-gate.sh +0 -101
  445. package/.claude/skills/flow-dev/scripts/task-orchestrator.sh +0 -106
  446. package/.claude/skills/flow-fix/SKILL.md +0 -105
  447. package/.claude/skills/flow-fix/context.jsonl +0 -6
  448. package/.claude/skills/flow-fix/references/bug-analyzer.md +0 -381
  449. package/.claude/skills/flow-init/SKILL.md +0 -105
  450. package/.claude/skills/flow-init/assets/BRAINSTORM_TEMPLATE.md +0 -148
  451. package/.claude/skills/flow-init/assets/INIT_FLOW_TEMPLATE.md +0 -198
  452. package/.claude/skills/flow-init/assets/RESEARCH_TEMPLATE.md +0 -276
  453. package/.claude/skills/flow-init/context.jsonl +0 -5
  454. package/.claude/skills/flow-init/references/flow-researcher.md +0 -132
  455. package/.claude/skills/flow-init/scripts/check-prerequisites.sh +0 -240
  456. package/.claude/skills/flow-init/scripts/consolidate-research.sh +0 -182
  457. package/.claude/skills/flow-init/scripts/create-requirement.sh +0 -404
  458. package/.claude/skills/flow-init/scripts/generate-research-tasks.sh +0 -157
  459. package/.claude/skills/flow-init/scripts/populate-research-tasks.sh +0 -284
  460. package/.claude/skills/flow-init/scripts/validate-research.sh +0 -340
  461. package/.claude/skills/flow-quality/SKILL.md +0 -98
  462. package/.claude/skills/flow-quality/context.jsonl +0 -6
  463. package/.claude/skills/flow-quality/references/code-quality-reviewer.md +0 -205
  464. package/.claude/skills/flow-quality/references/qa-tester.md +0 -313
  465. package/.claude/skills/flow-quality/references/security-reviewer.md +0 -314
  466. package/.claude/skills/flow-quality/references/spec-reviewer.md +0 -221
  467. package/.claude/skills/flow-release/SKILL.md +0 -60
  468. package/.claude/skills/flow-release/context.jsonl +0 -5
  469. package/.claude/skills/flow-release/references/release-manager.md +0 -295
  470. package/.claude/skills/flow-spec/CLAUDE.md +0 -17
  471. package/.claude/skills/flow-spec/SKILL.md +0 -102
  472. package/.claude/skills/flow-spec/context.jsonl +0 -5
  473. package/.claude/skills/flow-spec/scripts/entry-gate.sh +0 -194
  474. package/.claude/skills/flow-spec/scripts/exit-gate.sh +0 -244
  475. package/.claude/skills/flow-spec/scripts/parallel-orchestrator.sh +0 -205
  476. package/.claude/skills/flow-spec/scripts/team-communication.sh +0 -353
  477. package/.claude/skills/flow-spec/scripts/team-init.sh +0 -195
  478. package/.claude/skills/flow-spec/scripts/test-team-mode.sh +0 -496
  479. package/.claude/skills/flow-spec/team-config.json +0 -165
  480. package/.claude/skills/flow-verify/CLAUDE.md +0 -10
  481. package/.claude/skills/flow-verify/SKILL.md +0 -53
  482. package/.claude/skills/flow-verify/context.jsonl +0 -5
  483. package/.claude/skills/fractal-docs/SKILL.md +0 -45
  484. package/.claude/skills/journey-checker/SKILL.md +0 -199
  485. package/.claude/skills/journey-checker/pressure-scenarios.md +0 -164
  486. package/.claude/skills/receiving-review/SKILL.md +0 -153
  487. package/.claude/skills/skill-creator/LICENSE.txt +0 -202
  488. package/.claude/skills/skill-creator/SKILL.md +0 -356
  489. package/.claude/skills/skill-creator/references/output-patterns.md +0 -82
  490. package/.claude/skills/skill-creator/references/workflows.md +0 -28
  491. package/.claude/skills/skill-creator/scripts/init_skill.py +0 -303
  492. package/.claude/skills/skill-creator/scripts/package_skill.py +0 -110
  493. package/.claude/skills/skill-creator/scripts/quick_validate.py +0 -95
  494. package/.claude/skills/skill-rules.json +0 -359
  495. package/.claude/skills/tdd/SKILL.md +0 -218
  496. package/.claude/skills/tdd-enforcer/SKILL.md +0 -192
  497. package/.claude/skills/utility/npm-release/CLAUDE.md +0 -55
  498. package/.claude/skills/utility/npm-release/SKILL.md +0 -379
  499. package/.claude/skills/utility/npm-release/references/version-decision-guide.md +0 -134
  500. package/.claude/skills/utility/npm-release/scripts/atomic-version-bump.sh +0 -95
  501. package/.claude/skills/utility/npm-release/scripts/validate-version-sync.sh +0 -82
  502. package/.claude/skills/utility/npm-release/scripts/version-decision-tree.sh +0 -44
  503. package/.claude/skills/verification/SKILL.md +0 -158
  504. package/.claude/skills/workflow.yaml +0 -219
  505. package/.claude/tests/README.md +0 -300
  506. package/.claude/tests/TODO.md +0 -69
  507. package/.claude/tests/__pycache__/test_analyze_upgrade_impact.cpython-311-pytest-7.2.2.pyc +0 -0
  508. package/.claude/tests/__pycache__/test_consolidate_research.cpython-311-pytest-7.2.2.pyc +0 -0
  509. package/.claude/tests/__pycache__/test_export_contracts.cpython-311-pytest-7.2.2.pyc +0 -0
  510. package/.claude/tests/__pycache__/test_extract_data_model.cpython-311-pytest-7.2.2.pyc +0 -0
  511. package/.claude/tests/__pycache__/test_generate_quickstart.cpython-311-pytest-7.2.2.pyc +0 -0
  512. package/.claude/tests/__pycache__/test_generate_research_tasks.cpython-311-pytest-7.2.2.pyc +0 -0
  513. package/.claude/tests/constitution/run_all_constitution_tests.sh +0 -111
  514. package/.claude/tests/constitution/test_agent_assignment.sh +0 -207
  515. package/.claude/tests/constitution/test_article_coverage.sh +0 -201
  516. package/.claude/tests/constitution/test_template_completeness.sh +0 -150
  517. package/.claude/tests/constitution/test_version_consistency.sh +0 -120
  518. package/.claude/tests/fixtures/spec_delta_full.md +0 -16
  519. package/.claude/tests/fixtures/tasks_progress_sample.md +0 -5
  520. package/.claude/tests/run-all-tests.sh +0 -229
  521. package/.claude/tests/scripts/run.sh +0 -30
  522. package/.claude/tests/scripts/test-framework.sh +0 -128
  523. package/.claude/tests/scripts/test_check_prerequisites.sh +0 -511
  524. package/.claude/tests/scripts/test_check_prerequisites.sh.bak +0 -504
  525. package/.claude/tests/scripts/test_check_prerequisites.sh.bak2 +0 -505
  526. package/.claude/tests/scripts/test_check_prerequisites.sh.bak3 +0 -506
  527. package/.claude/tests/scripts/test_check_prerequisites.sh.bak4 +0 -507
  528. package/.claude/tests/scripts/test_check_prerequisites.sh.bak5 +0 -508
  529. package/.claude/tests/scripts/test_check_task_status.sh +0 -499
  530. package/.claude/tests/scripts/test_common.sh +0 -244
  531. package/.claude/tests/scripts/test_generate_status_report.sh +0 -71
  532. package/.claude/tests/scripts/test_mark_task_complete.sh +0 -441
  533. package/.claude/tests/scripts/test_mark_task_complete.sh.backup +0 -410
  534. package/.claude/tests/scripts/test_recover_workflow.sh +0 -304
  535. package/.claude/tests/scripts/test_setup_epic.sh +0 -437
  536. package/.claude/tests/scripts/test_sync_task_marks.sh +0 -196
  537. package/.claude/tests/scripts/test_validate_constitution.sh +0 -74
  538. package/.claude/tests/scripts/test_validate_research.sh +0 -462
  539. package/.claude/tests/slugify.bats +0 -82
  540. package/.claude/tests/test-framework.sh +0 -732
  541. package/.claude/tests/test_analyze_upgrade_impact.py +0 -34
  542. package/.claude/tests/test_consolidate_research.py +0 -48
  543. package/.claude/tests/test_export_contracts.py +0 -43
  544. package/.claude/tests/test_extract_data_model.py +0 -33
  545. package/.claude/tests/test_generate_quickstart.py +0 -50
  546. package/.claude/tests/test_generate_research_tasks.py +0 -52
  547. package/.claude/tsc-cache/70d2fc6d-2936-429b-b529-429f1aae8c88/affected-repos.txt +0 -1
  548. package/.claude/tsc-cache/70d2fc6d-2936-429b-b529-429f1aae8c88/edited-files.log +0 -2
  549. package/bin/harness.js +0 -22
  550. package/docs/commands/core-roadmap.md +0 -106
  551. package/docs/commands/core-roadmap.zh-CN.md +0 -102
  552. package/docs/commands/core-style.md +0 -53
  553. package/docs/commands/core-style.zh-CN.md +0 -53
  554. package/docs/commands/flow-init.md +0 -140
  555. package/docs/commands/flow-init.zh-CN.md +0 -169
  556. package/docs/commands/flow-new.md +0 -39
  557. package/docs/commands/flow-new.zh-CN.md +0 -39
  558. package/lib/compiler/__tests__/compile-regression.test.js +0 -103
  559. package/lib/compiler/__tests__/multi-module-emitters.test.js +0 -534
  560. package/lib/compiler/__tests__/resource-copier.test.js +0 -26
  561. package/lib/compiler/__tests__/skill-discovery.test.js +0 -72
  562. package/lib/compiler/context-expander.js +0 -179
  563. package/lib/compiler/rules-emitters/__tests__/codex-rules-emitter.test.js +0 -109
  564. package/lib/compiler/rules-emitters/codex-rules-emitter.js +0 -116
  565. package/lib/compiler/skill-discovery.js +0 -68
  566. package/lib/harness/CLAUDE.md +0 -22
  567. package/lib/harness/__tests__/planner.tdd.test.js +0 -125
  568. package/lib/harness/cli.js +0 -208
  569. package/lib/harness/index.js +0 -18
  570. package/lib/harness/operations/dispatch.js +0 -298
  571. package/lib/harness/operations/init.js +0 -48
  572. package/lib/harness/operations/pack.js +0 -100
  573. package/lib/harness/operations/plan.js +0 -83
  574. package/lib/harness/operations/release.js +0 -170
  575. package/lib/harness/operations/resume.js +0 -44
  576. package/lib/harness/operations/verify.js +0 -177
  577. package/lib/harness/planner.js +0 -272
  578. package/lib/harness/query.js +0 -126
  579. package/lib/harness/schemas.js +0 -129
@@ -0,0 +1,224 @@
1
+ ---
2
+ name: cc-do
3
+ version: 1.5.2
4
+ description: Use when implementing planned tasks, resuming interrupted work, applying a frozen investigation handoff, or landing review feedback after cc-plan or cc-investigate.
5
+ triggers:
6
+ - 开始做 T003
7
+ - 继续上次做到一半的任务
8
+ - 按 planning/tasks.md 开始实现
9
+ - 修这个 review comment
10
+ - implement this task
11
+ - resume this requirement
12
+ - repair this investigated bug
13
+ reads:
14
+ - PLAYBOOK.md
15
+ - CHANGELOG.md
16
+ - references/execution-recovery.md
17
+ - references/parallel-dispatch.md
18
+ writes:
19
+ - path: devflow/changes/<change-key>/execution/tasks/<task-id>/checkpoint.json
20
+ durability: durable
21
+ required: true
22
+ - path: devflow/changes/<change-key>/execution/tasks/<task-id>/events.jsonl
23
+ durability: durable
24
+ required: false
25
+ when: debug mode is enabled or the task execution fails
26
+ - path: devflow/changes/<change-key>/execution/team-state.json
27
+ durability: durable
28
+ required: false
29
+ when: execution mode uses delegated or team workers
30
+ effects:
31
+ - code changes
32
+ - test changes
33
+ - workspace scratch runtime updates
34
+ entry_gate:
35
+ - Read planning/design.md or planning/analysis.md, then planning/tasks.md, planning/task-manifest.json, change-meta.json, related capability specs, and the latest checkpoint before changing code.
36
+ - Select only ready tasks whose dependencies and file ownership are clear.
37
+ - If the current task cannot be restated from canonical artifacts, run a context reset before coding.
38
+ exit_criteria:
39
+ - The current task has red/green evidence, review evidence, and a resumable checkpoint trail.
40
+ - Execution leaves the next verifier enough runtime truth to judge the task without chat memory.
41
+ - The honest next step is cc-check or an explicit reroute.
42
+ reroutes:
43
+ - when: Three failed repair attempts or new evidence show the investigation contract is wrong.
44
+ target: cc-investigate
45
+ - when: New evidence shows the requirement design or scope contract is wrong.
46
+ target: cc-plan
47
+ - when: Implementation and reviews are complete for the current task set.
48
+ target: cc-check
49
+ recovery_modes:
50
+ - name: resume-from-checkpoint
51
+ when: Work was interrupted but the current design contract is still valid.
52
+ action: Reload the latest checkpoint, rebuild task context, and continue from the last confirmed red/green/review milestone.
53
+ - name: context-reset
54
+ when: The conversation history is noisy, stale, or cannot reproduce the exact task state.
55
+ action: Discard chat memory, reread planning/design.md or planning/analysis.md plus planning/tasks.md/planning/task-manifest.json and the latest checkpoint, then restate the next action before coding.
56
+ tool_budget:
57
+ read_files: 9
58
+ search_steps: 6
59
+ shell_commands: 8
60
+ ---
61
+
62
+ # CC-Do
63
+
64
+ > [PROTOCOL]: 变更时同步更新 `version`、`CHANGELOG.md`、相关模板/脚本引用,然后检查 `CLAUDE.md`
65
+
66
+ ## Role
67
+
68
+ `cc-do` 是 PDCA 里的 `Do`。
69
+
70
+ 同时它也是 IDCA / DDCA 里的 `Do`。
71
+
72
+ 它只做一件事:沿着已经冻结的任务,把代码真正做出来,并把执行证据留到足够让别人接手、复盘、复验。
73
+
74
+ ## Runtime Output Policy
75
+
76
+ 写入任何 durable Markdown 或 JSON metadata 前,先运行 `cc-devflow config resolve --format policy`。
77
+
78
+ - `Output language` 是机器约束,checkpoint、events、team-state 中新增的人类可读摘要必须记录并遵守它。
79
+ - `agent_preferences` 是用户偏好建议,只影响表达方式和结构选择,不覆盖本 Skill 的工作流边界。
80
+ - 如果配置解析失败,先修配置或向用户说明阻塞,不要用默认语言继续生成正式文档。
81
+
82
+ 上游冻结合同可以来自两条路:
83
+
84
+ - `cc-plan` 产出的 `planning/design.md`
85
+ - `cc-investigate` 产出的 `planning/analysis.md`
86
+
87
+ ## Read First
88
+
89
+ 1. `PLAYBOOK.md`
90
+ 2. `CHANGELOG.md`
91
+ 3. `references/execution-recovery.md`
92
+ 4. `references/parallel-dispatch.md`
93
+
94
+ ## Use This Skill When
95
+
96
+ - 要实现 `planning/tasks.md` / `planning/task-manifest.json`
97
+ - 执行被中断,需要恢复
98
+ - bug 根因已经在 `cc-investigate` 里冻结,准备开始修
99
+ - review feedback 要落成代码
100
+
101
+ 如果方案还没冻结、任务边界还没定,停下并回 `cc-plan` 或 `cc-investigate`。
102
+
103
+ ## Quick Start
104
+
105
+ 先判断现在是哪一种执行局面,再开始编码:
106
+
107
+ | 现实状态 | 先走什么路径 |
108
+ | --- | --- |
109
+ | 已有 ready task,直接实现 | `implement` |
110
+ | 上次做到一半,需要继续 | `resume` |
111
+ | bug 根因已冻结 | `repair-from-investigation` |
112
+ | bug 还没搞清根因 | reroute 到 `cc-investigate` |
113
+ | 收到 review comment,要在既定范围内修正 | `review-fix` |
114
+
115
+ 如果连“当前 task 是什么”都说不清,先别写代码,先跑 `scripts/select-ready-tasks.sh` 和 `scripts/build-task-context.sh`。
116
+
117
+ ## Harness Contract
118
+
119
+ - Allowed actions: implement ready tasks, debug inside frozen scope, write runtime evidence, and apply review feedback that does not reopen design.
120
+ - Forbidden actions: re-planning the requirement in place, blindly rerunning the whole requirement, or delegating tasks without full task context.
121
+ - Required evidence: every task must leave red/green/review checkpoints plus objective failure notes when blocked.
122
+ - Reroute rule: after repeated failed repairs or root-cause drift, stop patching and go back to `cc-investigate`; if scope or design truth breaks, go back to `cc-plan`; after task closure, hand off to `cc-check`.
123
+
124
+ ## TDD Iron Law
125
+
126
+ ```text
127
+ NO PRODUCTION CODE WITHOUT A FAILING TEST FIRST
128
+ ```
129
+
130
+ `cc-do` 默认采用测试先行的执行纪律:
131
+
132
+ 1. Red:先写一个最小失败测试,运行并确认它因为目标行为缺失而失败。
133
+ 2. Green:只写让当前失败测试通过的最小生产代码。
134
+ 3. Refactor:只有 Green 之后才能清理命名、重复、结构和坏味道。
135
+ 4. Record:每一站都写入 `checkpoint.json`,必要时写入 `events.jsonl`。
136
+
137
+ 例外只能用于 throwaway prototype、纯生成文件、纯配置改动;例外必须写进 checkpoint 的 `tddException`,包含原因、风险和替代验证命令。测试第一次就绿,说明测试没有证明新行为,必须修测试而不是继续写生产代码。
138
+
139
+ ## Entry Gate
140
+
141
+ 1. 先读 `planning/design.md` 或 `planning/analysis.md`,再读 `planning/tasks.md`、`planning/task-manifest.json`;如果是恢复执行,再补读最近 checkpoint 或已有 `handoff/resume-index.md`。
142
+ 2. 先用 `scripts/select-ready-tasks.sh` 判断现在到底哪几个任务真的 ready。
143
+ 3. 只锁定当前 ready task,或一组经依赖与触点校验后可并行的 ready tasks。
144
+ 4. 如果这次来自 `cc-investigate`,必须把 `planning/analysis.md` 当成 canonical contract,而不是一边实现一边重新调查。
145
+ 5. 没有任务上下文,不准把任务扔给 subagent;先用 `scripts/build-task-context.sh` 从 `planning/design.md` 或 `planning/analysis.md`、`planning/tasks.md`、`planning/task-manifest.json`、`change-meta.json` 与相关 capability spec 组装上下文。
146
+
147
+ ## Loop
148
+
149
+ 1. 读取当前任务,而不是重新发明任务。
150
+ 2. 依赖没满足前,不准提前做下游任务。
151
+ 3. 没有明确并行资格,不准把多个实现任务同时推进。
152
+ 4. 先 `fail-first`:先写失败测试,先看见预期红,再写生产代码。
153
+ 5. 如果红灯不是预期失败(语法错、fixture 错、测试没连上),先修测试直到它正确失败。
154
+ 6. 按 `Red -> Green -> Refactor` 推进,Green 只允许最小实现。
155
+ 7. Refactor 后必须重跑相关测试,保持 Green。
156
+ 8. 每次推进都写 task runtime:`events.jsonl` + `checkpoint.json`。
157
+ 9. 任务实现后,先过 `spec review`,再过 `code review`,两道门都过才算任务收口;这里只验证 spec delta,不回写长期 spec。
158
+ 10. 当前任务完成后,把可验证证据留给 `cc-check`。
159
+
160
+ ## Output
161
+
162
+ - 代码变更
163
+ - 测试变更
164
+ - `devflow/changes/<change-key>/execution/tasks/<task-id>/checkpoint.json`
165
+ - `devflow/changes/<change-key>/execution/tasks/<task-id>/events.jsonl`(仅 debug / failed 默认保留)
166
+ - `planning/task-manifest.json` 里的 task review verdict
167
+
168
+ ## Good Output
169
+
170
+ - 当前 task 一眼可见,执行者不用从聊天记录里猜目标
171
+ - 至少留下一次明确的 Red/Green/Refactor 证据,且 Red 是预期失败
172
+ - runtime / checkpoint 足够让下一位接手者无损恢复
173
+ - reviewer 能顺着 review 记录和验证命令复盘这次实现
174
+
175
+ ## Bundled Resources
176
+
177
+ - 变更记录:`CHANGELOG.md`
178
+ - 执行 / 恢复规则:`references/execution-recovery.md`
179
+ - 并行分配准则:`references/parallel-dispatch.md`
180
+ - 恢复分析:`scripts/recover-workflow.sh`
181
+ - 任务状态:`scripts/check-task-status.sh`
182
+ - ready 任务选择:`scripts/select-ready-tasks.sh`
183
+ - 任务上下文组装:`scripts/build-task-context.sh`
184
+ - checkpoint 记录:`scripts/write-task-checkpoint.sh`
185
+ - review 记录:`scripts/record-review-decision.sh`
186
+ - 任务闭环校验:`scripts/verify-task-gates.sh`
187
+ - 任务勾选:`scripts/mark-task-complete.sh`
188
+ - 文件冲突:`scripts/detect-file-conflicts.sh`
189
+
190
+ ## Working Rules
191
+
192
+ 1. 没有根因,不准修 bug。
193
+ 2. 没有任务边界,不准无界发散。
194
+ 3. 没有失败测试,不准写生产代码。
195
+ 4. 测试如果第一次就绿,说明你没证明任何东西,先修测试。
196
+ 5. 红灯原因必须和目标行为缺失一致;红灯如果只是测试写错,不算 TDD 证据。
197
+ 6. 先过 `spec review`,再过 `code review`,顺序不能反。
198
+ 7. 不在 `cc-do` 里改 capability spec 正文;这里只产出实现证据和 spec 对齐证据。
199
+ 8. 失败和阻塞都要留下恢复证据。
200
+ 9. 给 subagent 的输入必须包含:当前进度、当前任务全文、依赖状态、必读文件、验收标准、可信命令。
201
+ 10. 三次失败修补后必须先质疑调查合同或设计合同,而不是继续堆补丁。
202
+
203
+ ## Exit Criteria
204
+
205
+ - 当前任务有 Red/Green 证据
206
+ - 当前任务有 `spec review` / `code review` 两道门证据
207
+ - 恢复点已更新到 `devflow/changes/<change-key>/execution/tasks/<task-id>/`
208
+ - 阻塞原因已写清楚
209
+ - 下一步应进入 `cc-check`,或明确退回 `cc-investigate` / `cc-plan`
210
+
211
+ ## Do Not
212
+
213
+ - 不在这里重开方案讨论
214
+ - 不把一次修复膨胀成重写整个模块
215
+ - 不把依赖任务和被依赖任务同时并行
216
+ - 不把没有当前进度的任务直接丢给 subagent
217
+ - 三层以上判断说明上游合同该回炉
218
+
219
+ ## Companion Files
220
+
221
+ - 深入剧本:`PLAYBOOK.md`
222
+ - 变更记录:`CHANGELOG.md`
223
+ - 执行规则:`references/execution-recovery.md`
224
+ - 并行规则:`references/parallel-dispatch.md`
@@ -0,0 +1,86 @@
1
+ # Execution And Recovery
2
+
3
+ ## Minimum Runtime Truth
4
+
5
+ - 当前 requirement / change ID
6
+ - 当前 task ID
7
+ - 当前 task status
8
+ - 当前 active phase
9
+ - 当前 ready tasks
10
+ - 当前 review gates(spec / code)
11
+ - 已完成证据
12
+ - 阻塞点
13
+ - 下一步唯一动作
14
+
15
+ ## Recovery Rule
16
+
17
+ 恢复时只回答 3 件事:
18
+
19
+ 1. 现在停在哪
20
+ 2. 为什么停在这
21
+ 3. 下一步必须先做什么
22
+
23
+ 如果这三件事不能只靠规范产物和最新 checkpoint 回答,就先做 context reset,不准继续依赖聊天记忆。
24
+
25
+ ## Runtime Layout
26
+
27
+ 运行态证据按任务落在:
28
+
29
+ - `devflow/changes/<change-key>/execution/tasks/<task-id>/checkpoint.json`
30
+ - `devflow/changes/<change-key>/execution/tasks/<task-id>/events.jsonl`(仅 debug / failed 默认保留)
31
+ - `planning/task-manifest.json` 里的 `tasks[*].reviews`
32
+
33
+ ## Required Event Spine
34
+
35
+ 一个健康任务最少要看见这些事件:
36
+
37
+ 1. `context_ready`
38
+ 2. `red_failed`
39
+ 3. `red_reason_verified`
40
+ 4. `green_passed`
41
+ 5. `refactor_done` 或 `refactor_not_needed`
42
+ 6. `refactor_green`
43
+ 7. `spec_review_pass`
44
+ 8. `code_review_pass`
45
+
46
+ 如果 `events.jsonl` 没开启,至少仍要有最新 `checkpoint.json` 和 manifest review verdict。
47
+
48
+ ## Checkpoint TDD Fields
49
+
50
+ 最新 checkpoint 至少能回答:
51
+
52
+ - `red.command`
53
+ - `red.exitStatus`
54
+ - `red.expectedFailure`
55
+ - `green.command`
56
+ - `green.exitStatus`
57
+ - `refactor.status`
58
+ - `review.spec.status`
59
+ - `review.code.status`
60
+
61
+ 如果跳过 TDD,必须有 `tddException`,并写清替代验证。没有这些字段时,恢复执行先补证据,不准直接继续实现。
62
+
63
+ ## Bug Rule
64
+
65
+ - 先复现
66
+ - 再收证据
67
+ - 再下根因判断
68
+ - 最后改代码
69
+
70
+ ## Local Recovery Ladder
71
+
72
+ 1. 先重试当前命令或当前 task,而不是重跑整条 requirement
73
+ 2. 两次失败后回看证据链和 task context
74
+ 3. 三次失败后默认怀疑上游合同:根因漂移回 `cc-investigate`,范围 / 设计漂移回 `cc-plan`
75
+
76
+ ## Subagent Rule
77
+
78
+ 给 subagent 的上下文至少包含:
79
+
80
+ - 当前任务全文
81
+ - 当前进度与最近 checkpoint
82
+ - 已满足 / 未满足的依赖
83
+ - 必读文件
84
+ - 验收标准
85
+ - 验证命令
86
+ - 不做项 / 边界
@@ -0,0 +1,80 @@
1
+ # Parallel Dispatch Guide
2
+
3
+ ## Golden Law
4
+
5
+ 并行的是独立事实,不是因果链。
6
+
7
+ 如果一个任务的输出会改变另一个任务的实现选择,那它们就不是并行任务,而是顺序任务。
8
+
9
+ ## Can Run In Parallel
10
+
11
+ 只有全部满足,才算可并行:
12
+
13
+ 1. 两个任务都在当前 active phase
14
+ 2. `dependsOn` 已满足,且互不依赖
15
+ 3. `touches` / `files` 没有交集
16
+ 4. 不共享同一个可变资源,例如同一 schema、同一公共接口、同一全局状态
17
+ 5. 验证命令可以各自独立运行
18
+ 6. 每个任务都有完整上下文包,不需要靠别人的临场解释补脑
19
+
20
+ ## Must Run Sequentially
21
+
22
+ 命中任一条,就必须串行:
23
+
24
+ 1. 一个任务依赖另一个任务的输出
25
+ 2. 两个任务会改同一个文件或同一抽象边界
26
+ 3. 上游任务在定义契约,下游任务在消费契约
27
+ 4. 一个任务先改 schema / API,另一个任务基于它写实现
28
+ 5. 你还不能清楚说出每个任务各自的验收标准
29
+ 6. 你打算让第二个 subagent 先看第一个 subagent 的结果再决定怎么写
30
+
31
+ ## Dispatch Packet
32
+
33
+ 每个 subagent 在开工前必须拿到:
34
+
35
+ - 当前任务全文
36
+ - 当前 requirement 摘要
37
+ - 当前进度摘要
38
+ - 当前任务依赖状态
39
+ - 必读文件列表
40
+ - 允许修改的触点
41
+ - 验收标准
42
+ - 可信命令
43
+ - 非目标
44
+
45
+ 少任何一项,都不是“已准备好的并行任务”。
46
+
47
+ ## Scheduling Heuristics
48
+
49
+ 优先级从高到低:
50
+
51
+ 1. 先选当前 active phase 的 ready tasks
52
+ 2. 在 ready tasks 里优先选 `touches` 不重叠的任务
53
+ 3. 在不重叠任务里优先选验证面最小的任务
54
+ 4. 如果仍然不确定,退回串行
55
+
56
+ ## Good Example
57
+
58
+ - `T010 [TEST]` 为支付折扣补失败测试,触点只在 `tests/payment-discount.test.ts`
59
+ - `T011 [TEST]` 为通知重试补失败测试,触点只在 `tests/notify-retry.test.ts`
60
+ - `T012 [IMPL]` 修支付折扣实现,`dependsOn:T010`
61
+ - `T013 [IMPL]` 修通知重试实现,`dependsOn:T011`
62
+
63
+ 可以并行的是 `T010` 和 `T011`,也可以在它们各自通过后并行 `T012` 和 `T013`。
64
+
65
+ ## Bad Example
66
+
67
+ - `T020` 重命名鉴权中间件导出
68
+ - `T021` 基于新导出接入路由
69
+
70
+ 这不是并行,它们是显式因果链。
71
+
72
+ ## Taste Check
73
+
74
+ 并行调度前问自己三件事:
75
+
76
+ 1. 如果 A 任务晚 30 分钟完成,B 还能独立写完吗?
77
+ 2. 如果两个任务同时改完,我能不用人工大合并就直接集成吗?
78
+ 3. 如果把两个任务交给两个完全不共享记忆的 subagent,他们还能各自成功吗?
79
+
80
+ 有一个答案是否,就别并行。
@@ -0,0 +1,184 @@
1
+ #!/usr/bin/env bash
2
+
3
+ set -euo pipefail
4
+
5
+ # ------------------------------------------------------------
6
+ # 组装当前任务的执行上下文,并记录 context_ready 事件
7
+ # ------------------------------------------------------------
8
+
9
+ usage() {
10
+ cat <<'EOF'
11
+ Usage:
12
+ build-task-context.sh --dir path/to/change --task T001
13
+ EOF
14
+ }
15
+
16
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
17
+ source "$SCRIPT_DIR/cc-do-common.sh"
18
+ REQ_DIR=""
19
+ TASK_ID=""
20
+
21
+ while [[ $# -gt 0 ]]; do
22
+ case "$1" in
23
+ --dir) REQ_DIR="$2"; shift 2 ;;
24
+ --task) TASK_ID="$(echo "$2" | tr '[:lower:]' '[:upper:]')"; shift 2 ;;
25
+ -h|--help) usage; exit 0 ;;
26
+ *) echo "Unknown arg: $1" >&2; usage; exit 1 ;;
27
+ esac
28
+ done
29
+
30
+ if [[ -z "$REQ_DIR" || -z "$TASK_ID" || ! -d "$REQ_DIR" ]]; then
31
+ usage
32
+ exit 1
33
+ fi
34
+
35
+ CHANGE_DIR="$(req_do_resolve_change_dir "$REQ_DIR")"
36
+ manifest="$(req_do_manifest_path "$CHANGE_DIR")"
37
+ design_file="$(req_do_contract_path "$CHANGE_DIR")"
38
+ tasks_file="$(req_do_tasks_path "$CHANGE_DIR")"
39
+ change_meta="$(req_do_change_meta_path "$CHANGE_DIR")"
40
+ resume_index="$(req_do_resume_index_path "$CHANGE_DIR")"
41
+
42
+ if [[ ! -f "$manifest" ]]; then
43
+ echo "Missing $manifest" >&2
44
+ exit 1
45
+ fi
46
+
47
+ task_json="$(jq -c --arg task "$TASK_ID" '.tasks[] | select(.id == $task)' "$manifest")"
48
+ if [[ -z "$task_json" ]]; then
49
+ echo "$TASK_ID not found in manifest" >&2
50
+ exit 1
51
+ fi
52
+
53
+ change_id="$(jq -r '.changeId // .requirementId // "REQ-UNKNOWN"' "$manifest")"
54
+ runtime_task_dir="$(req_do_task_runtime_dir "$CHANGE_DIR" "$TASK_ID")"
55
+ output_path="$runtime_task_dir/context.md"
56
+ ready_json="$("$SCRIPT_DIR/select-ready-tasks.sh" --manifest "$manifest")"
57
+
58
+ mkdir -p "$runtime_task_dir"
59
+
60
+ list_or_none() {
61
+ local value="$1"
62
+ if [[ -z "${value//$'\n'/}" ]]; then
63
+ echo "- None"
64
+ else
65
+ printf '%s\n' "$value" | sed '/^$/d' | awk '!seen[$0]++' | sed 's/^/- /'
66
+ fi
67
+ }
68
+
69
+ task_title="$(jq -r '.title // ""' <<<"$task_json")"
70
+ task_phase="$(jq -r '.phase // 0' <<<"$task_json")"
71
+ task_status="$(jq -r '.status // "pending"' <<<"$task_json")"
72
+ task_parallel="$(jq -r '.parallel // false' <<<"$task_json")"
73
+ task_depends="$(jq -r '(.dependsOn // [])[]?' <<<"$task_json")"
74
+ task_touches="$(jq -r '((.touches // .files // [])[]?)' <<<"$task_json")"
75
+ task_acceptance="$(jq -r '(.acceptance // [])[]?' <<<"$task_json")"
76
+ task_verification="$(jq -r '(.verification // [])[]?' <<<"$task_json")"
77
+ task_read_files="$(jq -r '(.context.readFiles // [])[]?' <<<"$task_json")"
78
+ task_commands="$(jq -r '(.context.commands // [])[]?' <<<"$task_json")"
79
+ task_notes="$(jq -r '(.context.notes // [])[]?' <<<"$task_json")"
80
+ completed_tasks="$(jq -r '
81
+ .tasks[]
82
+ | select((.status // "pending") == "passed" or (.status // "pending") == "completed" or (.status // "pending") == "done" or (.status // "pending") == "verified")
83
+ | .id
84
+ ' "$manifest")"
85
+ ready_tasks="$(echo "$ready_json" | jq -r '.readyTasks[]?.id')"
86
+ running_tasks="$(echo "$ready_json" | jq -r '.runningTasks[]?.id')"
87
+ active_phase="$(echo "$ready_json" | jq -r '.activePhase // "unknown"')"
88
+ primary_capability="$(jq -r '.spec.primaryCapability // empty' "$manifest" 2>/dev/null || true)"
89
+ secondary_capabilities="$(jq -r '(.spec.secondaryCapabilities // [])[]?' "$manifest" 2>/dev/null || true)"
90
+ spec_files="$(jq -r '(.spec.specFiles // [])[]?' "$manifest" 2>/dev/null || true)"
91
+ expected_delta="$(jq -r '(.spec.expectedDelta // [])[]?' "$manifest" 2>/dev/null || true)"
92
+ sync_status="$(jq -r '.spec.syncStatus // "unknown"' "$manifest" 2>/dev/null || true)"
93
+
94
+ {
95
+ echo "# Task Context"
96
+ echo
97
+ echo "- Change: $change_id"
98
+ echo "- Task: $TASK_ID"
99
+ echo "- Title: $task_title"
100
+ echo "- Phase: $task_phase"
101
+ echo "- Status: $task_status"
102
+ echo "- Parallel eligible: $task_parallel"
103
+ echo "- Active phase: $active_phase"
104
+ echo
105
+ echo "## Current Progress"
106
+ echo
107
+ echo "### Completed Tasks"
108
+ list_or_none "$completed_tasks"
109
+ echo
110
+ echo "### Running Tasks"
111
+ list_or_none "$running_tasks"
112
+ echo
113
+ echo "### Ready Tasks"
114
+ list_or_none "$ready_tasks"
115
+ echo
116
+ echo "## Dependencies"
117
+ echo
118
+ list_or_none "$task_depends"
119
+ echo
120
+ echo "## Touches"
121
+ echo
122
+ list_or_none "$task_touches"
123
+ echo
124
+ echo "## Acceptance"
125
+ echo
126
+ list_or_none "$task_acceptance"
127
+ echo
128
+ echo "## Verification"
129
+ echo
130
+ list_or_none "$task_verification"
131
+ echo
132
+ echo "## Read First"
133
+ echo
134
+ list_or_none "$task_read_files"
135
+ echo
136
+ echo "## Commands To Trust"
137
+ echo
138
+ list_or_none "$task_commands"
139
+ echo
140
+ echo "## Spec Contract"
141
+ echo
142
+ echo "- Primary capability: ${primary_capability:-none}"
143
+ echo "- Spec sync status: ${sync_status:-unknown}"
144
+ echo
145
+ echo "### Secondary Capabilities"
146
+ list_or_none "$secondary_capabilities"
147
+ echo
148
+ echo "### Capability Specs"
149
+ list_or_none "$spec_files"
150
+ echo
151
+ echo "### Expected Spec Delta"
152
+ list_or_none "$expected_delta"
153
+ echo
154
+ echo "## Task Notes"
155
+ echo
156
+ list_or_none "$task_notes"
157
+ echo
158
+ echo "## Canonical Planning Files"
159
+ echo
160
+ [[ -f "$design_file" ]] && echo "- ${design_file#$CHANGE_DIR/}"
161
+ [[ -f "$tasks_file" ]] && echo "- ${tasks_file#$CHANGE_DIR/}"
162
+ [[ -f "$change_meta" ]] && echo "- ${change_meta#$CHANGE_DIR/}"
163
+ echo "- planning/task-manifest.json"
164
+ echo
165
+ echo "## Context Reset"
166
+ echo
167
+ echo "- If chat context drifts, discard conversational memory and reload only the canonical files above plus the latest checkpoint."
168
+ echo "- Do not continue from memory if the current task, active phase, or latest checkpoint summary cannot be restated exactly."
169
+ echo
170
+ if [[ -f "$resume_index" ]]; then
171
+ echo "## Optional Resume Index"
172
+ echo
173
+ cat "$resume_index"
174
+ fi
175
+ } > "$output_path"
176
+
177
+ "$SCRIPT_DIR/write-task-checkpoint.sh" \
178
+ --dir "$CHANGE_DIR" \
179
+ --task "$TASK_ID" \
180
+ --status pending \
181
+ --summary "Task context assembled" \
182
+ --next-action "Write the failing test for $TASK_ID" >/dev/null
183
+
184
+ cat "$output_path"
@@ -0,0 +1,79 @@
1
+ #!/usr/bin/env bash
2
+
3
+ # ------------------------------------------------------------
4
+ # cc-do: canonical devflow layout 解析
5
+ # ------------------------------------------------------------
6
+
7
+ req_do_resolve_change_dir() {
8
+ local input="$1"
9
+ local normalized
10
+
11
+ normalized="${input%/}"
12
+ case "$(basename "$normalized")" in
13
+ planning|execution|review|handoff|meta)
14
+ dirname "$normalized"
15
+ ;;
16
+ *)
17
+ printf '%s\n' "$normalized"
18
+ ;;
19
+ esac
20
+ }
21
+
22
+ req_do_planning_dir() {
23
+ printf '%s/planning\n' "$(req_do_resolve_change_dir "$1")"
24
+ }
25
+
26
+ req_do_execution_dir() {
27
+ printf '%s/execution\n' "$(req_do_resolve_change_dir "$1")"
28
+ }
29
+
30
+ req_do_review_dir() {
31
+ printf '%s/review\n' "$(req_do_resolve_change_dir "$1")"
32
+ }
33
+
34
+ req_do_handoff_dir() {
35
+ printf '%s/handoff\n' "$(req_do_resolve_change_dir "$1")"
36
+ }
37
+
38
+ req_do_manifest_path() {
39
+ printf '%s/task-manifest.json\n' "$(req_do_planning_dir "$1")"
40
+ }
41
+
42
+ req_do_tasks_path() {
43
+ printf '%s/tasks.md\n' "$(req_do_planning_dir "$1")"
44
+ }
45
+
46
+ req_do_change_meta_path() {
47
+ printf '%s/change-meta.json\n' "$(req_do_resolve_change_dir "$1")"
48
+ }
49
+
50
+ req_do_contract_path() {
51
+ local planning_dir
52
+ local design_file
53
+ local analysis_file
54
+
55
+ planning_dir="$(req_do_planning_dir "$1")"
56
+ design_file="$planning_dir/design.md"
57
+ analysis_file="$planning_dir/analysis.md"
58
+
59
+ if [[ -f "$analysis_file" && ! -f "$design_file" ]]; then
60
+ printf '%s\n' "$analysis_file"
61
+ return 0
62
+ fi
63
+
64
+ printf '%s\n' "$design_file"
65
+ }
66
+
67
+ req_do_report_card_path() {
68
+ printf '%s/report-card.json\n' "$(req_do_review_dir "$1")"
69
+ }
70
+
71
+ req_do_resume_index_path() {
72
+ printf '%s/resume-index.md\n' "$(req_do_handoff_dir "$1")"
73
+ }
74
+
75
+ req_do_task_runtime_dir() {
76
+ local change_dir="$1"
77
+ local task_id="$2"
78
+ printf '%s/tasks/%s\n' "$(req_do_execution_dir "$change_dir")" "$task_id"
79
+ }