cc-devflow 4.2.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 (559) 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 +101 -4
  86. package/README.md +120 -755
  87. package/README.zh-CN.md +119 -755
  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 +111 -0
  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/{harness → skill-runtime}/operations/release.js +18 -5
  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 -28
  235. package/.claude/commands/flow/archive.md +0 -280
  236. package/.claude/commands/flow/checklist.md +0 -18
  237. package/.claude/commands/flow/clarify.md +0 -18
  238. package/.claude/commands/flow/constitution.md +0 -82
  239. package/.claude/commands/flow/context.md +0 -150
  240. package/.claude/commands/flow/delta.md +0 -245
  241. package/.claude/commands/flow/dev.md +0 -40
  242. package/.claude/commands/flow/fix.md +0 -217
  243. package/.claude/commands/flow/ideate.md +0 -214
  244. package/.claude/commands/flow/init.md +0 -38
  245. package/.claude/commands/flow/new.md +0 -23
  246. package/.claude/commands/flow/quality.md +0 -21
  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/guides/INIT_TROUBLESHOOTING.md +0 -117
  266. package/.claude/docs/guides/NEW_TROUBLESHOOTING.md +0 -99
  267. package/.claude/docs/guides/ROADMAP_TROUBLESHOOTING.md +0 -188
  268. package/.claude/docs/guides/TASK_COMPLETION_MARKING.md +0 -338
  269. package/.claude/docs/guides/TEAM_MODE_GUIDE.md +0 -312
  270. package/.claude/docs/templates/ARCHITECTURE_TEMPLATE.md +0 -633
  271. package/.claude/docs/templates/ATTEMPT_TEMPLATE.md +0 -156
  272. package/.claude/docs/templates/BACKLOG_TEMPLATE.md +0 -261
  273. package/.claude/docs/templates/BRAINSTORM_TEMPLATE.md +0 -148
  274. package/.claude/docs/templates/CHECKLIST_TEMPLATE.md +0 -52
  275. package/.claude/docs/templates/CLARIFICATION_REPORT_TEMPLATE.md +0 -206
  276. package/.claude/docs/templates/CODE_REVIEW_TEMPLATE.md +0 -71
  277. package/.claude/docs/templates/DELTA_SPEC_TEMPLATE.md +0 -91
  278. package/.claude/docs/templates/DESIGN_DECISIONS_TEMPLATE.md +0 -151
  279. package/.claude/docs/templates/EPIC_TEMPLATE.md +0 -805
  280. package/.claude/docs/templates/ERROR_LOG_TEMPLATE.md +0 -80
  281. package/.claude/docs/templates/INIT_FLOW_TEMPLATE.md +0 -198
  282. package/.claude/docs/templates/INTENT_CLARIFICATION_TEMPLATE.md +0 -57
  283. package/.claude/docs/templates/JOURNAL_TEMPLATE.md +0 -75
  284. package/.claude/docs/templates/NEW_ORCHESTRATION_TEMPLATE.md +0 -76
  285. package/.claude/docs/templates/PRD_TEMPLATE.md +0 -562
  286. package/.claude/docs/templates/RESEARCH_TEMPLATE.md +0 -276
  287. package/.claude/docs/templates/REVIEW-HIGH.md +0 -57
  288. package/.claude/docs/templates/ROADMAP_DIALOGUE_TEMPLATE.md +0 -198
  289. package/.claude/docs/templates/ROADMAP_TEMPLATE.md +0 -310
  290. package/.claude/docs/templates/STYLE_TEMPLATE.md +0 -1266
  291. package/.claude/docs/templates/TASKS_TEMPLATE.md +0 -523
  292. package/.claude/docs/templates/TECH_DESIGN_TEMPLATE.md +0 -1019
  293. package/.claude/docs/templates/UI_PROTOTYPE_TEMPLATE.md +0 -1435
  294. package/.claude/docs/templates/_shared/CLAUDE.md +0 -36
  295. package/.claude/docs/templates/_shared/CONSTITUTION_CHECK.md +0 -125
  296. package/.claude/docs/templates/_shared/VALIDATION_CHECKLIST.md +0 -187
  297. package/.claude/docs/templates/_shared/YAML_FRONTMATTER.md +0 -164
  298. package/.claude/docs/templates/context/dev.jsonl.template +0 -6
  299. package/.claude/docs/templates/context/epic.jsonl.template +0 -5
  300. package/.claude/docs/templates/context/prd.jsonl.template +0 -4
  301. package/.claude/docs/templates/context/research.jsonl.template +0 -4
  302. package/.claude/docs/templates/context/review.jsonl.template +0 -5
  303. package/.claude/docs/templates/context/tech.jsonl.template +0 -5
  304. package/.claude/guides/agent-guides/agent-coordination-guide.md +0 -459
  305. package/.claude/guides/project-guidelines-system.md +0 -463
  306. package/.claude/guides/technical-guides/datetime-handling-guide.md +0 -563
  307. package/.claude/guides/technical-guides/git-github-guide.md +0 -642
  308. package/.claude/guides/technical-guides/test-execution-guide.md +0 -618
  309. package/.claude/guides/workflow-guides/bug-fix-orchestrator.md +0 -217
  310. package/.claude/guides/workflow-guides/flow-orchestrator.md +0 -48
  311. package/.claude/hooks/CLAUDE.md +0 -342
  312. package/.claude/hooks/checklist-gate.js +0 -397
  313. package/.claude/hooks/error-handling-reminder.sh +0 -12
  314. package/.claude/hooks/error-handling-reminder.ts +0 -459
  315. package/.claude/hooks/hooks.json +0 -15
  316. package/.claude/hooks/inject-agent-context.ts +0 -480
  317. package/.claude/hooks/inject-skill-context.ts +0 -359
  318. package/.claude/hooks/post-tool-use-tracker.sh +0 -280
  319. package/.claude/hooks/pre-tool-use-guardrail.sh +0 -36
  320. package/.claude/hooks/pre-tool-use-guardrail.ts +0 -342
  321. package/.claude/hooks/ralph-loop.ts +0 -931
  322. package/.claude/hooks/ralph-stop-hook.sh +0 -190
  323. package/.claude/hooks/skill-activation-prompt.sh +0 -36
  324. package/.claude/hooks/skill-activation-prompt.ts +0 -214
  325. package/.claude/hooks/state/skills-used-test-guard.json +0 -3
  326. package/.claude/hooks/task-completed-hook.ts +0 -593
  327. package/.claude/hooks/teammate-idle-hook.ts +0 -690
  328. package/.claude/hooks/types/team-types.d.ts +0 -238
  329. package/.claude/rules/devflow-conventions.md +0 -286
  330. package/.claude/rules/project-constitution.md +0 -1002
  331. package/.claude/rules/rationalization-library.md +0 -282
  332. package/.claude/schemas/constitution.schema.json +0 -43
  333. package/.claude/scripts/CLAUDE.md +0 -76
  334. package/.claude/scripts/analyze-upgrade-impact.sh +0 -200
  335. package/.claude/scripts/archive-requirement.sh +0 -394
  336. package/.claude/scripts/calculate-checklist-completion.sh +0 -243
  337. package/.claude/scripts/calculate-quarter.sh +0 -206
  338. package/.claude/scripts/check-dependencies.sh +0 -409
  339. package/.claude/scripts/check-prerequisites.sh +0 -232
  340. package/.claude/scripts/check-task-status.sh +0 -288
  341. package/.claude/scripts/checklist-errors.sh +0 -131
  342. package/.claude/scripts/common.sh +0 -1102
  343. package/.claude/scripts/consolidate-research.sh +0 -182
  344. package/.claude/scripts/create-requirement.sh +0 -451
  345. package/.claude/scripts/delta-parser.ts +0 -527
  346. package/.claude/scripts/detect-file-conflicts.sh +0 -151
  347. package/.claude/scripts/export-contracts.sh +0 -117
  348. package/.claude/scripts/extract-data-model.sh +0 -78
  349. package/.claude/scripts/flow-context-add.sh +0 -134
  350. package/.claude/scripts/flow-context-init.sh +0 -133
  351. package/.claude/scripts/flow-context-validate.sh +0 -144
  352. package/.claude/scripts/flow-delta-apply.sh +0 -297
  353. package/.claude/scripts/flow-delta-archive.sh +0 -71
  354. package/.claude/scripts/flow-delta-create.sh +0 -202
  355. package/.claude/scripts/flow-delta-list.sh +0 -142
  356. package/.claude/scripts/flow-delta-status.sh +0 -235
  357. package/.claude/scripts/flow-quality-full.sh +0 -215
  358. package/.claude/scripts/flow-quality-quick.sh +0 -119
  359. package/.claude/scripts/flow-workspace-init.sh +0 -117
  360. package/.claude/scripts/flow-workspace-record.sh +0 -164
  361. package/.claude/scripts/generate-clarification-questions.sh +0 -377
  362. package/.claude/scripts/generate-clarification-report.sh +0 -463
  363. package/.claude/scripts/generate-quickstart.sh +0 -146
  364. package/.claude/scripts/generate-research-tasks.sh +0 -157
  365. package/.claude/scripts/generate-status-report.sh +0 -523
  366. package/.claude/scripts/generate-tech-analysis.sh +0 -46
  367. package/.claude/scripts/get-workflow-status.sh +0 -415
  368. package/.claude/scripts/locate-requirement-in-roadmap.sh +0 -233
  369. package/.claude/scripts/manage-constitution.sh +0 -602
  370. package/.claude/scripts/mark-task-complete.sh +0 -198
  371. package/.claude/scripts/parse-task-dependencies.js +0 -334
  372. package/.claude/scripts/populate-research-tasks.sh +0 -284
  373. package/.claude/scripts/record-quality-error.sh +0 -165
  374. package/.claude/scripts/recover-workflow.sh +0 -463
  375. package/.claude/scripts/run-clarify-scan.sh +0 -601
  376. package/.claude/scripts/run-high-review.sh +0 -62
  377. package/.claude/scripts/run-problem-analysis.sh +0 -68
  378. package/.claude/scripts/run-quality-gates.sh +0 -242
  379. package/.claude/scripts/setup-epic.sh +0 -173
  380. package/.claude/scripts/setup-ralph-loop.sh +0 -155
  381. package/.claude/scripts/sync-roadmap-progress.sh +0 -300
  382. package/.claude/scripts/sync-task-marks.sh +0 -199
  383. package/.claude/scripts/team-dev-init.sh +0 -319
  384. package/.claude/scripts/team-state-recovery.sh +0 -229
  385. package/.claude/scripts/test-clarify-scan.sh +0 -515
  386. package/.claude/scripts/update-agent-context.sh +0 -806
  387. package/.claude/scripts/validate-constitution.sh +0 -567
  388. package/.claude/scripts/validate-hooks.sh +0 -487
  389. package/.claude/scripts/validate-research.sh +0 -332
  390. package/.claude/scripts/validate-scope-boundary.sh +0 -493
  391. package/.claude/scripts/verify-gate.sh +0 -269
  392. package/.claude/scripts/verify-setup.sh +0 -37
  393. package/.claude/scripts/workflow-status.ts +0 -433
  394. package/.claude/settings.json +0 -95
  395. package/.claude/skills/_reference-implementations/README.md +0 -96
  396. package/.claude/skills/_reference-implementations/backend-express-prisma/SKILL.md +0 -302
  397. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/architecture-overview.md +0 -451
  398. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/async-and-errors.md +0 -307
  399. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/complete-examples.md +0 -638
  400. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/configuration.md +0 -275
  401. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/database-patterns.md +0 -224
  402. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/middleware-guide.md +0 -213
  403. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/routing-and-controllers.md +0 -756
  404. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/sentry-and-monitoring.md +0 -336
  405. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/services-and-repositories.md +0 -789
  406. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/testing-guide.md +0 -235
  407. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/validation-patterns.md +0 -754
  408. package/.claude/skills/_reference-implementations/frontend-react-mui/SKILL.md +0 -399
  409. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/common-patterns.md +0 -331
  410. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/complete-examples.md +0 -872
  411. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/component-patterns.md +0 -502
  412. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/data-fetching.md +0 -767
  413. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/file-organization.md +0 -502
  414. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/loading-and-error-states.md +0 -501
  415. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/performance.md +0 -406
  416. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/routing-guide.md +0 -364
  417. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/styling-guide.md +0 -428
  418. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/typescript-standards.md +0 -418
  419. package/.claude/skills/cc-devflow-orchestrator/SKILL.md +0 -169
  420. package/.claude/skills/domain/attention-refresh/SKILL.md +0 -170
  421. package/.claude/skills/domain/brainstorming/SKILL.md +0 -161
  422. package/.claude/skills/domain/debugging/SKILL.md +0 -221
  423. package/.claude/skills/domain/finishing-branch/SKILL.md +0 -189
  424. package/.claude/skills/domain/receiving-review/SKILL.md +0 -153
  425. package/.claude/skills/domain/tdd/SKILL.md +0 -218
  426. package/.claude/skills/domain/verification/SKILL.md +0 -158
  427. package/.claude/skills/guardrail/constitution-guardian/SKILL.md +0 -306
  428. package/.claude/skills/guardrail/tdd-enforcer/SKILL.md +0 -192
  429. package/.claude/skills/skill-rules.json +0 -359
  430. package/.claude/skills/utility/constitution-quick-ref/SKILL.md +0 -374
  431. package/.claude/skills/utility/file-standards/SKILL.md +0 -353
  432. package/.claude/skills/utility/fractal-docs/SKILL.md +0 -45
  433. package/.claude/skills/utility/journey-checker/SKILL.md +0 -199
  434. package/.claude/skills/utility/journey-checker/pressure-scenarios.md +0 -164
  435. package/.claude/skills/utility/npm-release/SKILL.md +0 -314
  436. package/.claude/skills/utility/skill-creator/LICENSE.txt +0 -202
  437. package/.claude/skills/utility/skill-creator/SKILL.md +0 -356
  438. package/.claude/skills/utility/skill-creator/references/output-patterns.md +0 -82
  439. package/.claude/skills/utility/skill-creator/references/workflows.md +0 -28
  440. package/.claude/skills/utility/skill-creator/scripts/init_skill.py +0 -303
  441. package/.claude/skills/utility/skill-creator/scripts/package_skill.py +0 -110
  442. package/.claude/skills/utility/skill-creator/scripts/quick_validate.py +0 -95
  443. package/.claude/skills/workflow/CLAUDE.md +0 -24
  444. package/.claude/skills/workflow/flow-dev/CLAUDE.md +0 -16
  445. package/.claude/skills/workflow/flow-dev/SKILL.md +0 -94
  446. package/.claude/skills/workflow/flow-dev/assets/IMPLEMENTATION_PLAN_TEMPLATE.md +0 -71
  447. package/.claude/skills/workflow/flow-dev/context.jsonl +0 -4
  448. package/.claude/skills/workflow/flow-dev/dev-implementer.jsonl +0 -8
  449. package/.claude/skills/workflow/flow-dev/scripts/entry-gate.sh +0 -116
  450. package/.claude/skills/workflow/flow-dev/scripts/exit-gate.sh +0 -101
  451. package/.claude/skills/workflow/flow-dev/scripts/task-orchestrator.sh +0 -106
  452. package/.claude/skills/workflow/flow-fix/SKILL.md +0 -105
  453. package/.claude/skills/workflow/flow-fix/context.jsonl +0 -6
  454. package/.claude/skills/workflow/flow-fix/references/bug-analyzer.md +0 -381
  455. package/.claude/skills/workflow/flow-init/SKILL.md +0 -84
  456. package/.claude/skills/workflow/flow-init/assets/BRAINSTORM_TEMPLATE.md +0 -148
  457. package/.claude/skills/workflow/flow-init/assets/INIT_FLOW_TEMPLATE.md +0 -198
  458. package/.claude/skills/workflow/flow-init/assets/RESEARCH_TEMPLATE.md +0 -276
  459. package/.claude/skills/workflow/flow-init/context.jsonl +0 -5
  460. package/.claude/skills/workflow/flow-init/references/flow-researcher.md +0 -132
  461. package/.claude/skills/workflow/flow-init/scripts/check-prerequisites.sh +0 -240
  462. package/.claude/skills/workflow/flow-init/scripts/consolidate-research.sh +0 -182
  463. package/.claude/skills/workflow/flow-init/scripts/create-requirement.sh +0 -404
  464. package/.claude/skills/workflow/flow-init/scripts/generate-research-tasks.sh +0 -157
  465. package/.claude/skills/workflow/flow-init/scripts/populate-research-tasks.sh +0 -284
  466. package/.claude/skills/workflow/flow-init/scripts/validate-research.sh +0 -340
  467. package/.claude/skills/workflow/flow-quality/SKILL.md +0 -98
  468. package/.claude/skills/workflow/flow-quality/context.jsonl +0 -6
  469. package/.claude/skills/workflow/flow-quality/references/code-quality-reviewer.md +0 -205
  470. package/.claude/skills/workflow/flow-quality/references/qa-tester.md +0 -313
  471. package/.claude/skills/workflow/flow-quality/references/security-reviewer.md +0 -314
  472. package/.claude/skills/workflow/flow-quality/references/spec-reviewer.md +0 -221
  473. package/.claude/skills/workflow/flow-release/SKILL.md +0 -49
  474. package/.claude/skills/workflow/flow-release/context.jsonl +0 -5
  475. package/.claude/skills/workflow/flow-release/references/release-manager.md +0 -295
  476. package/.claude/skills/workflow/flow-spec/CLAUDE.md +0 -17
  477. package/.claude/skills/workflow/flow-spec/SKILL.md +0 -74
  478. package/.claude/skills/workflow/flow-spec/context.jsonl +0 -5
  479. package/.claude/skills/workflow/flow-spec/scripts/entry-gate.sh +0 -194
  480. package/.claude/skills/workflow/flow-spec/scripts/exit-gate.sh +0 -244
  481. package/.claude/skills/workflow/flow-spec/scripts/parallel-orchestrator.sh +0 -205
  482. package/.claude/skills/workflow/flow-spec/scripts/team-communication.sh +0 -353
  483. package/.claude/skills/workflow/flow-spec/scripts/team-init.sh +0 -195
  484. package/.claude/skills/workflow/flow-spec/scripts/test-team-mode.sh +0 -496
  485. package/.claude/skills/workflow/flow-spec/team-config.json +0 -165
  486. package/.claude/skills/workflow/flow-verify/CLAUDE.md +0 -10
  487. package/.claude/skills/workflow/flow-verify/SKILL.md +0 -53
  488. package/.claude/skills/workflow/flow-verify/context.jsonl +0 -5
  489. package/.claude/skills/workflow.yaml +0 -219
  490. package/.claude/tests/README.md +0 -300
  491. package/.claude/tests/TODO.md +0 -69
  492. package/.claude/tests/__pycache__/test_analyze_upgrade_impact.cpython-311-pytest-7.2.2.pyc +0 -0
  493. package/.claude/tests/__pycache__/test_consolidate_research.cpython-311-pytest-7.2.2.pyc +0 -0
  494. package/.claude/tests/__pycache__/test_export_contracts.cpython-311-pytest-7.2.2.pyc +0 -0
  495. package/.claude/tests/__pycache__/test_extract_data_model.cpython-311-pytest-7.2.2.pyc +0 -0
  496. package/.claude/tests/__pycache__/test_generate_quickstart.cpython-311-pytest-7.2.2.pyc +0 -0
  497. package/.claude/tests/__pycache__/test_generate_research_tasks.cpython-311-pytest-7.2.2.pyc +0 -0
  498. package/.claude/tests/constitution/run_all_constitution_tests.sh +0 -111
  499. package/.claude/tests/constitution/test_agent_assignment.sh +0 -207
  500. package/.claude/tests/constitution/test_article_coverage.sh +0 -201
  501. package/.claude/tests/constitution/test_template_completeness.sh +0 -150
  502. package/.claude/tests/constitution/test_version_consistency.sh +0 -120
  503. package/.claude/tests/fixtures/spec_delta_full.md +0 -16
  504. package/.claude/tests/fixtures/tasks_progress_sample.md +0 -5
  505. package/.claude/tests/run-all-tests.sh +0 -229
  506. package/.claude/tests/scripts/run.sh +0 -30
  507. package/.claude/tests/scripts/test-framework.sh +0 -128
  508. package/.claude/tests/scripts/test_check_prerequisites.sh +0 -511
  509. package/.claude/tests/scripts/test_check_prerequisites.sh.bak +0 -504
  510. package/.claude/tests/scripts/test_check_prerequisites.sh.bak2 +0 -505
  511. package/.claude/tests/scripts/test_check_prerequisites.sh.bak3 +0 -506
  512. package/.claude/tests/scripts/test_check_prerequisites.sh.bak4 +0 -507
  513. package/.claude/tests/scripts/test_check_prerequisites.sh.bak5 +0 -508
  514. package/.claude/tests/scripts/test_check_task_status.sh +0 -499
  515. package/.claude/tests/scripts/test_common.sh +0 -244
  516. package/.claude/tests/scripts/test_generate_status_report.sh +0 -71
  517. package/.claude/tests/scripts/test_mark_task_complete.sh +0 -441
  518. package/.claude/tests/scripts/test_mark_task_complete.sh.backup +0 -410
  519. package/.claude/tests/scripts/test_recover_workflow.sh +0 -304
  520. package/.claude/tests/scripts/test_setup_epic.sh +0 -437
  521. package/.claude/tests/scripts/test_sync_task_marks.sh +0 -196
  522. package/.claude/tests/scripts/test_validate_constitution.sh +0 -74
  523. package/.claude/tests/scripts/test_validate_research.sh +0 -462
  524. package/.claude/tests/slugify.bats +0 -82
  525. package/.claude/tests/test-framework.sh +0 -732
  526. package/.claude/tests/test_analyze_upgrade_impact.py +0 -34
  527. package/.claude/tests/test_consolidate_research.py +0 -48
  528. package/.claude/tests/test_export_contracts.py +0 -43
  529. package/.claude/tests/test_extract_data_model.py +0 -33
  530. package/.claude/tests/test_generate_quickstart.py +0 -50
  531. package/.claude/tests/test_generate_research_tasks.py +0 -52
  532. package/bin/harness.js +0 -22
  533. package/docs/commands/core-roadmap.md +0 -106
  534. package/docs/commands/core-roadmap.zh-CN.md +0 -102
  535. package/docs/commands/core-style.md +0 -53
  536. package/docs/commands/core-style.zh-CN.md +0 -53
  537. package/docs/commands/flow-init.md +0 -140
  538. package/docs/commands/flow-init.zh-CN.md +0 -169
  539. package/docs/commands/flow-new.md +0 -39
  540. package/docs/commands/flow-new.zh-CN.md +0 -39
  541. package/lib/compiler/__tests__/compile-regression.test.js +0 -103
  542. package/lib/compiler/__tests__/multi-module-emitters.test.js +0 -534
  543. package/lib/compiler/__tests__/resource-copier.test.js +0 -26
  544. package/lib/compiler/__tests__/skill-discovery.test.js +0 -72
  545. package/lib/compiler/context-expander.js +0 -179
  546. package/lib/compiler/rules-emitters/__tests__/codex-rules-emitter.test.js +0 -109
  547. package/lib/compiler/rules-emitters/codex-rules-emitter.js +0 -116
  548. package/lib/compiler/skill-discovery.js +0 -68
  549. package/lib/harness/CLAUDE.md +0 -21
  550. package/lib/harness/cli.js +0 -208
  551. package/lib/harness/index.js +0 -16
  552. package/lib/harness/operations/dispatch.js +0 -285
  553. package/lib/harness/operations/init.js +0 -48
  554. package/lib/harness/operations/pack.js +0 -100
  555. package/lib/harness/operations/plan.js +0 -29
  556. package/lib/harness/operations/resume.js +0 -44
  557. package/lib/harness/operations/verify.js +0 -163
  558. package/lib/harness/planner.js +0 -141
  559. package/lib/harness/schemas.js +0 -108
@@ -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
+ }