cc-devflow 4.3.0 → 4.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (575) hide show
  1. package/.claude/skills/cc-act/CHANGELOG.md +64 -0
  2. package/.claude/skills/cc-act/PLAYBOOK.md +212 -0
  3. package/.claude/skills/cc-act/SKILL.md +322 -0
  4. package/.claude/skills/cc-act/assets/PR_BRIEF_TEMPLATE.md +64 -0
  5. package/.claude/skills/cc-act/assets/RELEASE_NOTE_TEMPLATE.md +25 -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 +240 -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 +195 -0
  13. package/.claude/skills/cc-act/scripts/sync-act-docs.sh +315 -0
  14. package/.claude/skills/cc-act/scripts/verify-act-gate.sh +63 -0
  15. package/.claude/skills/cc-check/CHANGELOG.md +73 -0
  16. package/.claude/skills/cc-check/PLAYBOOK.md +153 -0
  17. package/.claude/skills/cc-check/SKILL.md +345 -0
  18. package/.claude/skills/cc-check/assets/REPORT_CARD_TEMPLATE.json +50 -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 +49 -0
  25. package/.claude/skills/cc-do/PLAYBOOK.md +119 -0
  26. package/.claude/skills/cc-do/SKILL.md +216 -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 +26 -0
  41. package/.claude/skills/cc-investigate/PLAYBOOK.md +49 -0
  42. package/.claude/skills/cc-investigate/SKILL.md +221 -0
  43. package/.claude/skills/cc-investigate/assets/ANALYSIS_TEMPLATE.md +55 -0
  44. package/.claude/skills/cc-investigate/assets/TASKS_TEMPLATE.md +52 -0
  45. package/.claude/skills/cc-investigate/assets/TASK_MANIFEST_TEMPLATE.json +103 -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 +99 -0
  49. package/.claude/skills/cc-plan/PLAYBOOK.md +106 -0
  50. package/.claude/skills/cc-plan/SKILL.md +325 -0
  51. package/.claude/skills/cc-plan/assets/DESIGN_TEMPLATE.md +155 -0
  52. package/.claude/skills/cc-plan/assets/TASKS_TEMPLATE.md +98 -0
  53. package/.claude/skills/cc-plan/assets/TASK_MANIFEST_TEMPLATE.json +108 -0
  54. package/.claude/skills/cc-plan/assets/TINY_DESIGN_TEMPLATE.md +79 -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 +114 -0
  60. package/.claude/skills/cc-roadmap/PLAYBOOK.md +136 -0
  61. package/.claude/skills/cc-roadmap/SKILL.md +259 -0
  62. package/.claude/skills/cc-roadmap/assets/BACKLOG_TEMPLATE.md +45 -0
  63. package/.claude/skills/cc-roadmap/assets/ROADMAP_TEMPLATE.md +153 -0
  64. package/.claude/skills/cc-roadmap/assets/TRACKING_TEMPLATE.json +48 -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 +7 -0
  77. package/.claude/skills/cc-spec-init/PLAYBOOK.md +55 -0
  78. package/.claude/skills/cc-spec-init/SKILL.md +127 -0
  79. package/.claude/skills/cc-spec-init/assets/CAPABILITY_TEMPLATE.md +63 -0
  80. package/.claude/skills/cc-spec-init/assets/CHANGE_META_TEMPLATE.json +25 -0
  81. package/.claude/skills/cc-spec-init/assets/INDEX_TEMPLATE.md +34 -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 +61 -4
  86. package/README.md +120 -756
  87. package/README.zh-CN.md +119 -756
  88. package/bin/adapt.js +2 -6
  89. package/bin/cc-devflow-cli.js +72 -177
  90. package/config/distributable-skills.json +24 -0
  91. package/docs/CLAUDE.md +10 -6
  92. package/docs/commands/README.md +19 -46
  93. package/docs/commands/README.zh-CN.md +25 -48
  94. package/docs/examples/BY-ARTIFACT.md +7 -0
  95. package/docs/examples/README.md +38 -0
  96. package/docs/examples/START-HERE.md +149 -0
  97. package/docs/examples/example-bindings.json +38 -0
  98. package/docs/examples/full-design-blocked/BACKLOG.md +45 -0
  99. package/docs/examples/full-design-blocked/README.md +55 -0
  100. package/docs/examples/full-design-blocked/ROADMAP.md +53 -0
  101. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/design.md +154 -0
  102. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/task-manifest.json +146 -0
  103. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/tasks.md +78 -0
  104. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/review/report-card.json +52 -0
  105. package/docs/examples/full-design-blocked/roadmap-tracking.json +50 -0
  106. package/docs/examples/local-handoff/BACKLOG.md +45 -0
  107. package/docs/examples/local-handoff/README.md +56 -0
  108. package/docs/examples/local-handoff/ROADMAP.md +45 -0
  109. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/handoff/resume-index.md +39 -0
  110. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/handoff/status.md +29 -0
  111. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/design.md +71 -0
  112. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/task-manifest.json +98 -0
  113. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/tasks.md +59 -0
  114. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/review/report-card.json +44 -0
  115. package/docs/examples/local-handoff/roadmap-tracking.json +48 -0
  116. package/docs/examples/pdca-loop/BACKLOG.md +46 -0
  117. package/docs/examples/pdca-loop/README.md +58 -0
  118. package/docs/examples/pdca-loop/ROADMAP.md +133 -0
  119. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/handoff/pr-brief.md +72 -0
  120. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/handoff/status.md +29 -0
  121. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/design.md +72 -0
  122. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/task-manifest.json +201 -0
  123. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/tasks.md +73 -0
  124. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/review/report-card.json +44 -0
  125. package/docs/examples/pdca-loop/roadmap-tracking.json +114 -0
  126. package/docs/examples/scripts/check-example-bindings.sh +116 -0
  127. package/docs/guides/getting-started.md +94 -129
  128. package/docs/guides/getting-started.zh-CN.md +103 -84
  129. package/docs/skill-runtime-migration.md +46 -0
  130. package/docs/v4.3.0-migration-guide.md +60 -225
  131. package/lib/compiler/CLAUDE.md +55 -84
  132. package/lib/compiler/__tests__/drift.test.js +1 -1
  133. package/lib/compiler/__tests__/errors.test.js +0 -1
  134. package/lib/compiler/__tests__/integration.test.js +49 -3
  135. package/lib/compiler/__tests__/manifest.test.js +0 -156
  136. package/lib/compiler/__tests__/parser.test.js +33 -104
  137. package/lib/compiler/__tests__/schemas.test.js +30 -34
  138. package/lib/compiler/__tests__/skills-registry.test.js +114 -0
  139. package/lib/compiler/__tests__/transformer.test.js +5 -9
  140. package/lib/compiler/emitters/antigravity-emitter.js +5 -213
  141. package/lib/compiler/emitters/base-emitter.js +3 -298
  142. package/lib/compiler/emitters/codex-emitter.js +4 -202
  143. package/lib/compiler/emitters/cursor-emitter.js +3 -287
  144. package/lib/compiler/emitters/qwen-emitter.js +4 -176
  145. package/lib/compiler/index.js +65 -345
  146. package/lib/compiler/manifest.js +6 -68
  147. package/lib/compiler/parser.js +31 -63
  148. package/lib/compiler/platforms.js +32 -277
  149. package/lib/compiler/resource-copier.js +176 -6
  150. package/lib/compiler/rules-emitters/__tests__/antigravity-rules-emitter.test.js +3 -3
  151. package/lib/compiler/rules-emitters/__tests__/cursor-rules-emitter.test.js +14 -4
  152. package/lib/compiler/rules-emitters/__tests__/qwen-rules-emitter.test.js +16 -7
  153. package/lib/compiler/rules-emitters/antigravity-rules-emitter.js +10 -15
  154. package/lib/compiler/rules-emitters/base-rules-emitter.js +5 -5
  155. package/lib/compiler/rules-emitters/cursor-rules-emitter.js +7 -12
  156. package/lib/compiler/rules-emitters/index.js +6 -3
  157. package/lib/compiler/rules-emitters/qwen-rules-emitter.js +7 -7
  158. package/lib/compiler/schemas.js +8 -4
  159. package/lib/compiler/skills-registry.js +213 -15
  160. package/lib/compiler/transformer.js +1 -1
  161. package/lib/skill-runtime/CLAUDE.md +19 -0
  162. package/lib/skill-runtime/__tests__/autopilot.test.js +210 -0
  163. package/lib/skill-runtime/__tests__/cli-bootstrap.integration.test.js +181 -0
  164. package/lib/skill-runtime/__tests__/delegation.test.js +97 -0
  165. package/lib/skill-runtime/__tests__/dispatch.test.js +267 -0
  166. package/lib/skill-runtime/__tests__/intent.test.js +219 -0
  167. package/lib/skill-runtime/__tests__/lifecycle.test.js +169 -0
  168. package/lib/skill-runtime/__tests__/paths.test.js +42 -0
  169. package/lib/skill-runtime/__tests__/planner.tdd.test.js +250 -0
  170. package/lib/skill-runtime/__tests__/prepare-pr.test.js +139 -0
  171. package/lib/skill-runtime/__tests__/query.test.js +284 -0
  172. package/lib/skill-runtime/__tests__/runtime.integration.test.js +279 -0
  173. package/lib/skill-runtime/__tests__/schemas.test.js +207 -0
  174. package/lib/skill-runtime/__tests__/team-state.test.js +51 -0
  175. package/lib/skill-runtime/__tests__/worker-run.test.js +253 -0
  176. package/lib/skill-runtime/__tests__/worker.test.js +56 -0
  177. package/lib/skill-runtime/artifacts.js +93 -0
  178. package/lib/skill-runtime/delegation.js +533 -0
  179. package/lib/skill-runtime/index.js +34 -0
  180. package/lib/skill-runtime/intent.js +333 -0
  181. package/lib/skill-runtime/lifecycle.js +294 -0
  182. package/lib/skill-runtime/operations/CLAUDE.md +19 -0
  183. package/lib/skill-runtime/operations/approve.js +66 -0
  184. package/lib/skill-runtime/operations/autopilot-core.js +337 -0
  185. package/lib/skill-runtime/operations/autopilot-execution.js +307 -0
  186. package/lib/skill-runtime/operations/autopilot-shared.js +48 -0
  187. package/lib/skill-runtime/operations/autopilot.js +163 -0
  188. package/lib/skill-runtime/operations/dispatch.js +454 -0
  189. package/lib/skill-runtime/operations/init.js +64 -0
  190. package/lib/{harness → skill-runtime}/operations/janitor.js +9 -6
  191. package/lib/skill-runtime/operations/plan.js +59 -0
  192. package/lib/skill-runtime/operations/prepare-pr.js +25 -0
  193. package/lib/skill-runtime/operations/release.js +96 -0
  194. package/lib/skill-runtime/operations/resume.js +143 -0
  195. package/lib/skill-runtime/operations/snapshot.js +45 -0
  196. package/lib/skill-runtime/operations/verify.js +170 -0
  197. package/lib/skill-runtime/operations/worker-run.js +529 -0
  198. package/lib/skill-runtime/operations/worker.js +33 -0
  199. package/lib/skill-runtime/paths.js +213 -0
  200. package/lib/skill-runtime/planner.js +519 -0
  201. package/lib/skill-runtime/query.js +157 -0
  202. package/lib/skill-runtime/review.js +557 -0
  203. package/lib/skill-runtime/schemas.js +400 -0
  204. package/lib/{harness → skill-runtime}/store.js +45 -30
  205. package/lib/skill-runtime/team-state.js +122 -0
  206. package/package.json +13 -11
  207. package/.claude/CLAUDE.md +0 -125
  208. package/.claude/agents/architecture-designer.md +0 -443
  209. package/.claude/agents/bug-analyzer.md +0 -381
  210. package/.claude/agents/checklist-agent.md +0 -175
  211. package/.claude/agents/clarify-analyst.md +0 -50
  212. package/.claude/agents/code-quality-reviewer.md +0 -205
  213. package/.claude/agents/code-reviewer.md +0 -71
  214. package/.claude/agents/codex-analyzer.md +0 -39
  215. package/.claude/agents/compatibility-checker.md +0 -579
  216. package/.claude/agents/consistency-checker.md +0 -532
  217. package/.claude/agents/dev-implementer.md +0 -195
  218. package/.claude/agents/flow-researcher.md +0 -132
  219. package/.claude/agents/impact-analyzer.md +0 -440
  220. package/.claude/agents/planner.md +0 -230
  221. package/.claude/agents/prd-writer.md +0 -320
  222. package/.claude/agents/project-guidelines-generator.md +0 -1329
  223. package/.claude/agents/qa-tester.md +0 -313
  224. package/.claude/agents/release-manager.md +0 -295
  225. package/.claude/agents/security-reviewer.md +0 -314
  226. package/.claude/agents/spec-reviewer.md +0 -221
  227. package/.claude/agents/style-guide-generator.md +0 -458
  228. package/.claude/agents/tech-architect.md +0 -516
  229. package/.claude/agents/ui-designer.md +0 -485
  230. package/.claude/commands/core/architecture.md +0 -459
  231. package/.claude/commands/core/guidelines.md +0 -511
  232. package/.claude/commands/core/roadmap.md +0 -468
  233. package/.claude/commands/core/style.md +0 -83
  234. package/.claude/commands/flow/CLAUDE.md +0 -24
  235. package/.claude/commands/flow/archive.md +0 -280
  236. package/.claude/commands/flow/constitution.md +0 -82
  237. package/.claude/commands/flow/context.md +0 -150
  238. package/.claude/commands/flow/delta.md +0 -245
  239. package/.claude/commands/flow/dev.md +0 -40
  240. package/.claude/commands/flow/fix.md +0 -217
  241. package/.claude/commands/flow/ideate.md +0 -214
  242. package/.claude/commands/flow/init.md +0 -38
  243. package/.claude/commands/flow/release.md +0 -36
  244. package/.claude/commands/flow/restart.md +0 -97
  245. package/.claude/commands/flow/spec.md +0 -36
  246. package/.claude/commands/flow/status.md +0 -64
  247. package/.claude/commands/flow/update.md +0 -111
  248. package/.claude/commands/flow/upgrade.md +0 -115
  249. package/.claude/commands/flow/verify.md +0 -37
  250. package/.claude/commands/flow/workspace.md +0 -155
  251. package/.claude/commands/util/cancel-ralph.md +0 -60
  252. package/.claude/commands/util/code-review.md +0 -58
  253. package/.claude/commands/util/git-commit.md +0 -422
  254. package/.claude/commands/util/problem-analyzer.md +0 -60
  255. package/.claude/config/quality-gates.yml +0 -305
  256. package/.claude/config/quality-rules.yml +0 -161
  257. package/.claude/docs/SPEC_KIT_CONSTITUTION_ANALYSIS.md +0 -426
  258. package/.claude/docs/design/consistency-conflict-detection-algorithms.md +0 -658
  259. package/.claude/docs/design/intent-driven-input-design.md +0 -380
  260. package/.claude/docs/design/prd-version-management-design.md +0 -437
  261. package/.claude/docs/examples/design-inspiration-pool.md +0 -59
  262. package/.claude/docs/examples/ui-prototype-constitution-checklist.md +0 -75
  263. package/.claude/docs/guides/INIT_TROUBLESHOOTING.md +0 -117
  264. package/.claude/docs/guides/NEW_TROUBLESHOOTING.md +0 -99
  265. package/.claude/docs/guides/ROADMAP_TROUBLESHOOTING.md +0 -188
  266. package/.claude/docs/guides/TASK_COMPLETION_MARKING.md +0 -338
  267. package/.claude/docs/guides/TEAM_MODE_GUIDE.md +0 -312
  268. package/.claude/docs/implementation-summary-v7.md +0 -449
  269. package/.claude/docs/spec-format-guide.md +0 -349
  270. package/.claude/docs/state-consolidation-design.md +0 -323
  271. package/.claude/docs/templates/ARCHITECTURE_TEMPLATE.md +0 -332
  272. package/.claude/docs/templates/ATTEMPT_TEMPLATE.md +0 -156
  273. package/.claude/docs/templates/BACKLOG_TEMPLATE.md +0 -261
  274. package/.claude/docs/templates/BRAINSTORM_TEMPLATE.md +0 -148
  275. package/.claude/docs/templates/CHECKLIST_TEMPLATE.md +0 -52
  276. package/.claude/docs/templates/CLARIFICATION_REPORT_TEMPLATE.md +0 -206
  277. package/.claude/docs/templates/CODE_REVIEW_TEMPLATE.md +0 -71
  278. package/.claude/docs/templates/DELTA_SPEC_TEMPLATE.md +0 -91
  279. package/.claude/docs/templates/DESIGN_DECISIONS_TEMPLATE.md +0 -151
  280. package/.claude/docs/templates/DESIGN_TEMPLATE.md +0 -157
  281. package/.claude/docs/templates/ERROR_LOG_TEMPLATE.md +0 -80
  282. package/.claude/docs/templates/INIT_FLOW_TEMPLATE.md +0 -198
  283. package/.claude/docs/templates/INTENT_CLARIFICATION_TEMPLATE.md +0 -57
  284. package/.claude/docs/templates/JOURNAL_TEMPLATE.md +0 -75
  285. package/.claude/docs/templates/NEW_ORCHESTRATION_TEMPLATE.md +0 -76
  286. package/.claude/docs/templates/PROPOSAL_TEMPLATE.md +0 -91
  287. package/.claude/docs/templates/RESEARCH_TEMPLATE.md +0 -276
  288. package/.claude/docs/templates/REVIEW-HIGH.md +0 -57
  289. package/.claude/docs/templates/ROADMAP_DIALOGUE_TEMPLATE.md +0 -198
  290. package/.claude/docs/templates/ROADMAP_TEMPLATE.md +0 -310
  291. package/.claude/docs/templates/SPEC_TEMPLATE_DELTA.md +0 -139
  292. package/.claude/docs/templates/SPEC_TEMPLATE_PROJECT.md +0 -93
  293. package/.claude/docs/templates/STYLE_TEMPLATE.md +0 -479
  294. package/.claude/docs/templates/UI_PROTOTYPE_TEMPLATE.md +0 -373
  295. package/.claude/docs/templates/_shared/CLAUDE.md +0 -36
  296. package/.claude/docs/templates/_shared/CONSTITUTION_CHECK.md +0 -125
  297. package/.claude/docs/templates/_shared/VALIDATION_CHECKLIST.md +0 -187
  298. package/.claude/docs/templates/_shared/YAML_FRONTMATTER.md +0 -164
  299. package/.claude/docs/templates/context/dev.jsonl.template +0 -6
  300. package/.claude/docs/templates/context/epic.jsonl.template +0 -5
  301. package/.claude/docs/templates/context/prd.jsonl.template +0 -4
  302. package/.claude/docs/templates/context/research.jsonl.template +0 -4
  303. package/.claude/docs/templates/context/review.jsonl.template +0 -5
  304. package/.claude/docs/templates/context/tech.jsonl.template +0 -5
  305. package/.claude/guides/agent-guides/agent-coordination-guide.md +0 -459
  306. package/.claude/guides/project-guidelines-system.md +0 -463
  307. package/.claude/guides/technical-guides/datetime-handling-guide.md +0 -563
  308. package/.claude/guides/technical-guides/git-github-guide.md +0 -642
  309. package/.claude/guides/technical-guides/test-execution-guide.md +0 -618
  310. package/.claude/guides/workflow-guides/bug-fix-orchestrator.md +0 -217
  311. package/.claude/guides/workflow-guides/flow-orchestrator.md +0 -48
  312. package/.claude/hooks/CLAUDE.md +0 -342
  313. package/.claude/hooks/checklist-gate.js +0 -397
  314. package/.claude/hooks/error-handling-reminder.sh +0 -12
  315. package/.claude/hooks/error-handling-reminder.ts +0 -459
  316. package/.claude/hooks/hooks.json +0 -15
  317. package/.claude/hooks/inject-agent-context.ts +0 -480
  318. package/.claude/hooks/inject-skill-context.ts +0 -359
  319. package/.claude/hooks/post-tool-use-tracker.sh +0 -280
  320. package/.claude/hooks/pre-tool-use-guardrail.sh +0 -36
  321. package/.claude/hooks/pre-tool-use-guardrail.ts +0 -342
  322. package/.claude/hooks/ralph-loop.ts +0 -931
  323. package/.claude/hooks/ralph-stop-hook.sh +0 -190
  324. package/.claude/hooks/skill-activation-prompt.sh +0 -36
  325. package/.claude/hooks/skill-activation-prompt.ts +0 -214
  326. package/.claude/hooks/state/skills-used-test-guard.json +0 -3
  327. package/.claude/hooks/task-completed-hook.ts +0 -593
  328. package/.claude/hooks/teammate-idle-hook.ts +0 -690
  329. package/.claude/hooks/types/team-types.d.ts +0 -238
  330. package/.claude/rules/devflow-conventions.md +0 -286
  331. package/.claude/rules/project-constitution.md +0 -1002
  332. package/.claude/rules/rationalization-library.md +0 -282
  333. package/.claude/schemas/constitution.schema.json +0 -43
  334. package/.claude/scripts/.claude/commands/flow/export-openspec.md +0 -221
  335. package/.claude/scripts/.claude/commands/flow/import-openspec.md +0 -171
  336. package/.claude/scripts/CLAUDE.md +0 -76
  337. package/.claude/scripts/__tests__/openspec.test.js +0 -212
  338. package/.claude/scripts/analyze-upgrade-impact.sh +0 -200
  339. package/.claude/scripts/archive-requirement.sh +0 -394
  340. package/.claude/scripts/calculate-checklist-completion.sh +0 -243
  341. package/.claude/scripts/calculate-quarter.sh +0 -206
  342. package/.claude/scripts/check-dependencies.sh +0 -409
  343. package/.claude/scripts/check-prerequisites.sh +0 -232
  344. package/.claude/scripts/check-task-status.sh +0 -288
  345. package/.claude/scripts/checklist-errors.sh +0 -131
  346. package/.claude/scripts/common.sh +0 -1102
  347. package/.claude/scripts/consolidate-research.sh +0 -182
  348. package/.claude/scripts/create-requirement.sh +0 -451
  349. package/.claude/scripts/delta-parser.ts +0 -637
  350. package/.claude/scripts/detect-file-conflicts.sh +0 -151
  351. package/.claude/scripts/export-contracts.sh +0 -117
  352. package/.claude/scripts/export-openspec.js +0 -222
  353. package/.claude/scripts/extract-data-model.sh +0 -78
  354. package/.claude/scripts/flow-context-add.sh +0 -134
  355. package/.claude/scripts/flow-context-init.sh +0 -133
  356. package/.claude/scripts/flow-context-validate.sh +0 -144
  357. package/.claude/scripts/flow-delta-apply.sh +0 -297
  358. package/.claude/scripts/flow-delta-archive.sh +0 -71
  359. package/.claude/scripts/flow-delta-create.sh +0 -202
  360. package/.claude/scripts/flow-delta-list.sh +0 -142
  361. package/.claude/scripts/flow-delta-status.sh +0 -235
  362. package/.claude/scripts/flow-quality-full.sh +0 -215
  363. package/.claude/scripts/flow-quality-quick.sh +0 -119
  364. package/.claude/scripts/flow-workspace-init.sh +0 -117
  365. package/.claude/scripts/flow-workspace-record.sh +0 -164
  366. package/.claude/scripts/generate-clarification-questions.sh +0 -377
  367. package/.claude/scripts/generate-clarification-report.sh +0 -463
  368. package/.claude/scripts/generate-quickstart.sh +0 -146
  369. package/.claude/scripts/generate-research-tasks.sh +0 -157
  370. package/.claude/scripts/generate-status-report.sh +0 -523
  371. package/.claude/scripts/generate-tech-analysis.sh +0 -46
  372. package/.claude/scripts/get-workflow-status.sh +0 -415
  373. package/.claude/scripts/import-openspec.js +0 -272
  374. package/.claude/scripts/locate-requirement-in-roadmap.sh +0 -233
  375. package/.claude/scripts/manage-constitution.sh +0 -602
  376. package/.claude/scripts/mark-task-complete.sh +0 -198
  377. package/.claude/scripts/parse-task-dependencies.js +0 -334
  378. package/.claude/scripts/populate-research-tasks.sh +0 -284
  379. package/.claude/scripts/record-quality-error.sh +0 -165
  380. package/.claude/scripts/recover-workflow.sh +0 -463
  381. package/.claude/scripts/run-clarify-scan.sh +0 -601
  382. package/.claude/scripts/run-high-review.sh +0 -62
  383. package/.claude/scripts/run-problem-analysis.sh +0 -68
  384. package/.claude/scripts/run-quality-gates.sh +0 -242
  385. package/.claude/scripts/setup-epic.sh +0 -173
  386. package/.claude/scripts/setup-ralph-loop.sh +0 -155
  387. package/.claude/scripts/sync-roadmap-progress.sh +0 -300
  388. package/.claude/scripts/sync-task-marks.sh +0 -199
  389. package/.claude/scripts/team-dev-init.sh +0 -319
  390. package/.claude/scripts/team-state-recovery.sh +0 -229
  391. package/.claude/scripts/test-clarify-scan.sh +0 -515
  392. package/.claude/scripts/update-agent-context.sh +0 -806
  393. package/.claude/scripts/validate-constitution.sh +0 -567
  394. package/.claude/scripts/validate-hooks.sh +0 -487
  395. package/.claude/scripts/validate-research.sh +0 -332
  396. package/.claude/scripts/validate-scope-boundary.sh +0 -493
  397. package/.claude/scripts/validate-scope.sh +0 -200
  398. package/.claude/scripts/verify-gate.sh +0 -269
  399. package/.claude/scripts/verify-setup.sh +0 -37
  400. package/.claude/scripts/workflow-status.ts +0 -433
  401. package/.claude/settings.json +0 -95
  402. package/.claude/skills/_reference-implementations/README.md +0 -96
  403. package/.claude/skills/_reference-implementations/backend-express-prisma/SKILL.md +0 -302
  404. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/architecture-overview.md +0 -451
  405. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/async-and-errors.md +0 -307
  406. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/complete-examples.md +0 -638
  407. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/configuration.md +0 -275
  408. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/database-patterns.md +0 -224
  409. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/middleware-guide.md +0 -213
  410. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/routing-and-controllers.md +0 -756
  411. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/sentry-and-monitoring.md +0 -336
  412. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/services-and-repositories.md +0 -789
  413. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/testing-guide.md +0 -235
  414. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/validation-patterns.md +0 -754
  415. package/.claude/skills/_reference-implementations/frontend-react-mui/SKILL.md +0 -399
  416. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/common-patterns.md +0 -331
  417. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/complete-examples.md +0 -872
  418. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/component-patterns.md +0 -502
  419. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/data-fetching.md +0 -767
  420. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/file-organization.md +0 -502
  421. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/loading-and-error-states.md +0 -501
  422. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/performance.md +0 -406
  423. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/routing-guide.md +0 -364
  424. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/styling-guide.md +0 -428
  425. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/typescript-standards.md +0 -418
  426. package/.claude/skills/attention-refresh/SKILL.md +0 -170
  427. package/.claude/skills/brainstorming/SKILL.md +0 -161
  428. package/.claude/skills/cc-devflow-orchestrator/SKILL.md +0 -169
  429. package/.claude/skills/constitution-guardian/SKILL.md +0 -306
  430. package/.claude/skills/constitution-quick-ref/SKILL.md +0 -374
  431. package/.claude/skills/debugging/SKILL.md +0 -221
  432. package/.claude/skills/file-standards/SKILL.md +0 -353
  433. package/.claude/skills/finishing-branch/SKILL.md +0 -189
  434. package/.claude/skills/flow-dev/CLAUDE.md +0 -16
  435. package/.claude/skills/flow-dev/SKILL.md +0 -94
  436. package/.claude/skills/flow-dev/assets/IMPLEMENTATION_PLAN_TEMPLATE.md +0 -71
  437. package/.claude/skills/flow-dev/context.jsonl +0 -4
  438. package/.claude/skills/flow-dev/dev-implementer.jsonl +0 -8
  439. package/.claude/skills/flow-dev/scripts/entry-gate.sh +0 -116
  440. package/.claude/skills/flow-dev/scripts/exit-gate.sh +0 -101
  441. package/.claude/skills/flow-dev/scripts/task-orchestrator.sh +0 -106
  442. package/.claude/skills/flow-fix/SKILL.md +0 -105
  443. package/.claude/skills/flow-fix/context.jsonl +0 -6
  444. package/.claude/skills/flow-fix/references/bug-analyzer.md +0 -381
  445. package/.claude/skills/flow-init/SKILL.md +0 -105
  446. package/.claude/skills/flow-init/assets/BRAINSTORM_TEMPLATE.md +0 -148
  447. package/.claude/skills/flow-init/assets/INIT_FLOW_TEMPLATE.md +0 -198
  448. package/.claude/skills/flow-init/assets/RESEARCH_TEMPLATE.md +0 -276
  449. package/.claude/skills/flow-init/context.jsonl +0 -5
  450. package/.claude/skills/flow-init/references/flow-researcher.md +0 -132
  451. package/.claude/skills/flow-init/scripts/check-prerequisites.sh +0 -240
  452. package/.claude/skills/flow-init/scripts/consolidate-research.sh +0 -182
  453. package/.claude/skills/flow-init/scripts/create-requirement.sh +0 -404
  454. package/.claude/skills/flow-init/scripts/generate-research-tasks.sh +0 -157
  455. package/.claude/skills/flow-init/scripts/populate-research-tasks.sh +0 -284
  456. package/.claude/skills/flow-init/scripts/validate-research.sh +0 -340
  457. package/.claude/skills/flow-quality/SKILL.md +0 -98
  458. package/.claude/skills/flow-quality/context.jsonl +0 -6
  459. package/.claude/skills/flow-quality/references/code-quality-reviewer.md +0 -205
  460. package/.claude/skills/flow-quality/references/qa-tester.md +0 -313
  461. package/.claude/skills/flow-quality/references/security-reviewer.md +0 -314
  462. package/.claude/skills/flow-quality/references/spec-reviewer.md +0 -221
  463. package/.claude/skills/flow-release/SKILL.md +0 -60
  464. package/.claude/skills/flow-release/context.jsonl +0 -5
  465. package/.claude/skills/flow-release/references/release-manager.md +0 -295
  466. package/.claude/skills/flow-spec/CLAUDE.md +0 -17
  467. package/.claude/skills/flow-spec/SKILL.md +0 -102
  468. package/.claude/skills/flow-spec/context.jsonl +0 -5
  469. package/.claude/skills/flow-spec/scripts/entry-gate.sh +0 -194
  470. package/.claude/skills/flow-spec/scripts/exit-gate.sh +0 -244
  471. package/.claude/skills/flow-spec/scripts/parallel-orchestrator.sh +0 -205
  472. package/.claude/skills/flow-spec/scripts/team-communication.sh +0 -353
  473. package/.claude/skills/flow-spec/scripts/team-init.sh +0 -195
  474. package/.claude/skills/flow-spec/scripts/test-team-mode.sh +0 -496
  475. package/.claude/skills/flow-spec/team-config.json +0 -165
  476. package/.claude/skills/flow-verify/CLAUDE.md +0 -10
  477. package/.claude/skills/flow-verify/SKILL.md +0 -53
  478. package/.claude/skills/flow-verify/context.jsonl +0 -5
  479. package/.claude/skills/fractal-docs/SKILL.md +0 -45
  480. package/.claude/skills/journey-checker/SKILL.md +0 -199
  481. package/.claude/skills/journey-checker/pressure-scenarios.md +0 -164
  482. package/.claude/skills/receiving-review/SKILL.md +0 -153
  483. package/.claude/skills/skill-creator/LICENSE.txt +0 -202
  484. package/.claude/skills/skill-creator/SKILL.md +0 -356
  485. package/.claude/skills/skill-creator/references/output-patterns.md +0 -82
  486. package/.claude/skills/skill-creator/references/workflows.md +0 -28
  487. package/.claude/skills/skill-creator/scripts/init_skill.py +0 -303
  488. package/.claude/skills/skill-creator/scripts/package_skill.py +0 -110
  489. package/.claude/skills/skill-creator/scripts/quick_validate.py +0 -95
  490. package/.claude/skills/skill-rules.json +0 -359
  491. package/.claude/skills/tdd/SKILL.md +0 -218
  492. package/.claude/skills/tdd-enforcer/SKILL.md +0 -192
  493. package/.claude/skills/utility/npm-release/CLAUDE.md +0 -55
  494. package/.claude/skills/utility/npm-release/SKILL.md +0 -379
  495. package/.claude/skills/utility/npm-release/references/version-decision-guide.md +0 -134
  496. package/.claude/skills/utility/npm-release/scripts/atomic-version-bump.sh +0 -95
  497. package/.claude/skills/utility/npm-release/scripts/validate-version-sync.sh +0 -82
  498. package/.claude/skills/utility/npm-release/scripts/version-decision-tree.sh +0 -44
  499. package/.claude/skills/verification/SKILL.md +0 -158
  500. package/.claude/skills/workflow.yaml +0 -219
  501. package/.claude/tests/README.md +0 -300
  502. package/.claude/tests/TODO.md +0 -69
  503. package/.claude/tests/__pycache__/test_analyze_upgrade_impact.cpython-311-pytest-7.2.2.pyc +0 -0
  504. package/.claude/tests/__pycache__/test_consolidate_research.cpython-311-pytest-7.2.2.pyc +0 -0
  505. package/.claude/tests/__pycache__/test_export_contracts.cpython-311-pytest-7.2.2.pyc +0 -0
  506. package/.claude/tests/__pycache__/test_extract_data_model.cpython-311-pytest-7.2.2.pyc +0 -0
  507. package/.claude/tests/__pycache__/test_generate_quickstart.cpython-311-pytest-7.2.2.pyc +0 -0
  508. package/.claude/tests/__pycache__/test_generate_research_tasks.cpython-311-pytest-7.2.2.pyc +0 -0
  509. package/.claude/tests/constitution/run_all_constitution_tests.sh +0 -111
  510. package/.claude/tests/constitution/test_agent_assignment.sh +0 -207
  511. package/.claude/tests/constitution/test_article_coverage.sh +0 -201
  512. package/.claude/tests/constitution/test_template_completeness.sh +0 -150
  513. package/.claude/tests/constitution/test_version_consistency.sh +0 -120
  514. package/.claude/tests/fixtures/spec_delta_full.md +0 -16
  515. package/.claude/tests/fixtures/tasks_progress_sample.md +0 -5
  516. package/.claude/tests/run-all-tests.sh +0 -229
  517. package/.claude/tests/scripts/run.sh +0 -30
  518. package/.claude/tests/scripts/test-framework.sh +0 -128
  519. package/.claude/tests/scripts/test_check_prerequisites.sh +0 -511
  520. package/.claude/tests/scripts/test_check_prerequisites.sh.bak +0 -504
  521. package/.claude/tests/scripts/test_check_prerequisites.sh.bak2 +0 -505
  522. package/.claude/tests/scripts/test_check_prerequisites.sh.bak3 +0 -506
  523. package/.claude/tests/scripts/test_check_prerequisites.sh.bak4 +0 -507
  524. package/.claude/tests/scripts/test_check_prerequisites.sh.bak5 +0 -508
  525. package/.claude/tests/scripts/test_check_task_status.sh +0 -499
  526. package/.claude/tests/scripts/test_common.sh +0 -244
  527. package/.claude/tests/scripts/test_generate_status_report.sh +0 -71
  528. package/.claude/tests/scripts/test_mark_task_complete.sh +0 -441
  529. package/.claude/tests/scripts/test_mark_task_complete.sh.backup +0 -410
  530. package/.claude/tests/scripts/test_recover_workflow.sh +0 -304
  531. package/.claude/tests/scripts/test_setup_epic.sh +0 -437
  532. package/.claude/tests/scripts/test_sync_task_marks.sh +0 -196
  533. package/.claude/tests/scripts/test_validate_constitution.sh +0 -74
  534. package/.claude/tests/scripts/test_validate_research.sh +0 -462
  535. package/.claude/tests/slugify.bats +0 -82
  536. package/.claude/tests/test-framework.sh +0 -732
  537. package/.claude/tests/test_analyze_upgrade_impact.py +0 -34
  538. package/.claude/tests/test_consolidate_research.py +0 -48
  539. package/.claude/tests/test_export_contracts.py +0 -43
  540. package/.claude/tests/test_extract_data_model.py +0 -33
  541. package/.claude/tests/test_generate_quickstart.py +0 -50
  542. package/.claude/tests/test_generate_research_tasks.py +0 -52
  543. package/.claude/tsc-cache/70d2fc6d-2936-429b-b529-429f1aae8c88/affected-repos.txt +0 -1
  544. package/.claude/tsc-cache/70d2fc6d-2936-429b-b529-429f1aae8c88/edited-files.log +0 -2
  545. package/bin/harness.js +0 -22
  546. package/docs/commands/core-roadmap.md +0 -106
  547. package/docs/commands/core-roadmap.zh-CN.md +0 -102
  548. package/docs/commands/core-style.md +0 -53
  549. package/docs/commands/core-style.zh-CN.md +0 -53
  550. package/docs/commands/flow-init.md +0 -140
  551. package/docs/commands/flow-init.zh-CN.md +0 -169
  552. package/docs/commands/flow-new.md +0 -39
  553. package/docs/commands/flow-new.zh-CN.md +0 -39
  554. package/lib/compiler/__tests__/compile-regression.test.js +0 -103
  555. package/lib/compiler/__tests__/multi-module-emitters.test.js +0 -534
  556. package/lib/compiler/__tests__/resource-copier.test.js +0 -26
  557. package/lib/compiler/__tests__/skill-discovery.test.js +0 -72
  558. package/lib/compiler/context-expander.js +0 -179
  559. package/lib/compiler/rules-emitters/__tests__/codex-rules-emitter.test.js +0 -109
  560. package/lib/compiler/rules-emitters/codex-rules-emitter.js +0 -116
  561. package/lib/compiler/skill-discovery.js +0 -68
  562. package/lib/harness/CLAUDE.md +0 -22
  563. package/lib/harness/__tests__/planner.tdd.test.js +0 -125
  564. package/lib/harness/cli.js +0 -208
  565. package/lib/harness/index.js +0 -18
  566. package/lib/harness/operations/dispatch.js +0 -298
  567. package/lib/harness/operations/init.js +0 -48
  568. package/lib/harness/operations/pack.js +0 -100
  569. package/lib/harness/operations/plan.js +0 -83
  570. package/lib/harness/operations/release.js +0 -170
  571. package/lib/harness/operations/resume.js +0 -44
  572. package/lib/harness/operations/verify.js +0 -177
  573. package/lib/harness/planner.js +0 -272
  574. package/lib/harness/query.js +0 -126
  575. package/lib/harness/schemas.js +0 -129
@@ -0,0 +1,216 @@
1
+ ---
2
+ name: cc-do
3
+ version: 1.5.1
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
+ 上游冻结合同可以来自两条路:
75
+
76
+ - `cc-plan` 产出的 `planning/design.md`
77
+ - `cc-investigate` 产出的 `planning/analysis.md`
78
+
79
+ ## Read First
80
+
81
+ 1. `PLAYBOOK.md`
82
+ 2. `CHANGELOG.md`
83
+ 3. `references/execution-recovery.md`
84
+ 4. `references/parallel-dispatch.md`
85
+
86
+ ## Use This Skill When
87
+
88
+ - 要实现 `planning/tasks.md` / `planning/task-manifest.json`
89
+ - 执行被中断,需要恢复
90
+ - bug 根因已经在 `cc-investigate` 里冻结,准备开始修
91
+ - review feedback 要落成代码
92
+
93
+ 如果方案还没冻结、任务边界还没定,停下并回 `cc-plan` 或 `cc-investigate`。
94
+
95
+ ## Quick Start
96
+
97
+ 先判断现在是哪一种执行局面,再开始编码:
98
+
99
+ | 现实状态 | 先走什么路径 |
100
+ | --- | --- |
101
+ | 已有 ready task,直接实现 | `implement` |
102
+ | 上次做到一半,需要继续 | `resume` |
103
+ | bug 根因已冻结 | `repair-from-investigation` |
104
+ | bug 还没搞清根因 | reroute 到 `cc-investigate` |
105
+ | 收到 review comment,要在既定范围内修正 | `review-fix` |
106
+
107
+ 如果连“当前 task 是什么”都说不清,先别写代码,先跑 `scripts/select-ready-tasks.sh` 和 `scripts/build-task-context.sh`。
108
+
109
+ ## Harness Contract
110
+
111
+ - Allowed actions: implement ready tasks, debug inside frozen scope, write runtime evidence, and apply review feedback that does not reopen design.
112
+ - Forbidden actions: re-planning the requirement in place, blindly rerunning the whole requirement, or delegating tasks without full task context.
113
+ - Required evidence: every task must leave red/green/review checkpoints plus objective failure notes when blocked.
114
+ - 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`.
115
+
116
+ ## TDD Iron Law
117
+
118
+ ```text
119
+ NO PRODUCTION CODE WITHOUT A FAILING TEST FIRST
120
+ ```
121
+
122
+ `cc-do` 默认采用测试先行的执行纪律:
123
+
124
+ 1. Red:先写一个最小失败测试,运行并确认它因为目标行为缺失而失败。
125
+ 2. Green:只写让当前失败测试通过的最小生产代码。
126
+ 3. Refactor:只有 Green 之后才能清理命名、重复、结构和坏味道。
127
+ 4. Record:每一站都写入 `checkpoint.json`,必要时写入 `events.jsonl`。
128
+
129
+ 例外只能用于 throwaway prototype、纯生成文件、纯配置改动;例外必须写进 checkpoint 的 `tddException`,包含原因、风险和替代验证命令。测试第一次就绿,说明测试没有证明新行为,必须修测试而不是继续写生产代码。
130
+
131
+ ## Entry Gate
132
+
133
+ 1. 先读 `planning/design.md` 或 `planning/analysis.md`,再读 `planning/tasks.md`、`planning/task-manifest.json`;如果是恢复执行,再补读最近 checkpoint 或已有 `handoff/resume-index.md`。
134
+ 2. 先用 `scripts/select-ready-tasks.sh` 判断现在到底哪几个任务真的 ready。
135
+ 3. 只锁定当前 ready task,或一组经依赖与触点校验后可并行的 ready tasks。
136
+ 4. 如果这次来自 `cc-investigate`,必须把 `planning/analysis.md` 当成 canonical contract,而不是一边实现一边重新调查。
137
+ 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 组装上下文。
138
+
139
+ ## Loop
140
+
141
+ 1. 读取当前任务,而不是重新发明任务。
142
+ 2. 依赖没满足前,不准提前做下游任务。
143
+ 3. 没有明确并行资格,不准把多个实现任务同时推进。
144
+ 4. 先 `fail-first`:先写失败测试,先看见预期红,再写生产代码。
145
+ 5. 如果红灯不是预期失败(语法错、fixture 错、测试没连上),先修测试直到它正确失败。
146
+ 6. 按 `Red -> Green -> Refactor` 推进,Green 只允许最小实现。
147
+ 7. Refactor 后必须重跑相关测试,保持 Green。
148
+ 8. 每次推进都写 task runtime:`events.jsonl` + `checkpoint.json`。
149
+ 9. 任务实现后,先过 `spec review`,再过 `code review`,两道门都过才算任务收口;这里只验证 spec delta,不回写长期 spec。
150
+ 10. 当前任务完成后,把可验证证据留给 `cc-check`。
151
+
152
+ ## Output
153
+
154
+ - 代码变更
155
+ - 测试变更
156
+ - `devflow/changes/<change-key>/execution/tasks/<task-id>/checkpoint.json`
157
+ - `devflow/changes/<change-key>/execution/tasks/<task-id>/events.jsonl`(仅 debug / failed 默认保留)
158
+ - `planning/task-manifest.json` 里的 task review verdict
159
+
160
+ ## Good Output
161
+
162
+ - 当前 task 一眼可见,执行者不用从聊天记录里猜目标
163
+ - 至少留下一次明确的 Red/Green/Refactor 证据,且 Red 是预期失败
164
+ - runtime / checkpoint 足够让下一位接手者无损恢复
165
+ - reviewer 能顺着 review 记录和验证命令复盘这次实现
166
+
167
+ ## Bundled Resources
168
+
169
+ - 变更记录:`CHANGELOG.md`
170
+ - 执行 / 恢复规则:`references/execution-recovery.md`
171
+ - 并行分配准则:`references/parallel-dispatch.md`
172
+ - 恢复分析:`scripts/recover-workflow.sh`
173
+ - 任务状态:`scripts/check-task-status.sh`
174
+ - ready 任务选择:`scripts/select-ready-tasks.sh`
175
+ - 任务上下文组装:`scripts/build-task-context.sh`
176
+ - checkpoint 记录:`scripts/write-task-checkpoint.sh`
177
+ - review 记录:`scripts/record-review-decision.sh`
178
+ - 任务闭环校验:`scripts/verify-task-gates.sh`
179
+ - 任务勾选:`scripts/mark-task-complete.sh`
180
+ - 文件冲突:`scripts/detect-file-conflicts.sh`
181
+
182
+ ## Working Rules
183
+
184
+ 1. 没有根因,不准修 bug。
185
+ 2. 没有任务边界,不准无界发散。
186
+ 3. 没有失败测试,不准写生产代码。
187
+ 4. 测试如果第一次就绿,说明你没证明任何东西,先修测试。
188
+ 5. 红灯原因必须和目标行为缺失一致;红灯如果只是测试写错,不算 TDD 证据。
189
+ 6. 先过 `spec review`,再过 `code review`,顺序不能反。
190
+ 7. 不在 `cc-do` 里改 capability spec 正文;这里只产出实现证据和 spec 对齐证据。
191
+ 8. 失败和阻塞都要留下恢复证据。
192
+ 9. 给 subagent 的输入必须包含:当前进度、当前任务全文、依赖状态、必读文件、验收标准、可信命令。
193
+ 10. 三次失败修补后必须先质疑调查合同或设计合同,而不是继续堆补丁。
194
+
195
+ ## Exit Criteria
196
+
197
+ - 当前任务有 Red/Green 证据
198
+ - 当前任务有 `spec review` / `code review` 两道门证据
199
+ - 恢复点已更新到 `devflow/changes/<change-key>/execution/tasks/<task-id>/`
200
+ - 阻塞原因已写清楚
201
+ - 下一步应进入 `cc-check`,或明确退回 `cc-investigate` / `cc-plan`
202
+
203
+ ## Do Not
204
+
205
+ - 不在这里重开方案讨论
206
+ - 不把一次修复膨胀成重写整个模块
207
+ - 不把依赖任务和被依赖任务同时并行
208
+ - 不把没有当前进度的任务直接丢给 subagent
209
+ - 三层以上判断说明上游合同该回炉
210
+
211
+ ## Companion Files
212
+
213
+ - 深入剧本:`PLAYBOOK.md`
214
+ - 变更记录:`CHANGELOG.md`
215
+ - 执行规则:`references/execution-recovery.md`
216
+ - 并行规则:`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
+ }