cc-devflow 4.5.10 → 4.5.12

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 (187) hide show
  1. package/.claude/skills/cc-act/CHANGELOG.md +23 -0
  2. package/.claude/skills/cc-act/PLAYBOOK.md +17 -269
  3. package/.claude/skills/cc-act/SKILL.md +38 -418
  4. package/.claude/skills/cc-act/assets/PROJECT_POSTMORTEM_INDEX_TEMPLATE.md +2 -13
  5. package/.claude/skills/cc-act/assets/PROJECT_POSTMORTEM_TEMPLATE.md +1 -9
  6. package/.claude/skills/cc-act/assets/PR_BRIEF_TEMPLATE.md +21 -177
  7. package/.claude/skills/cc-act/references/closure-contract.md +12 -63
  8. package/.claude/skills/cc-act/references/git-commit-guidelines.md +5 -5
  9. package/.claude/skills/cc-act/scripts/cc-act-common.sh +5 -322
  10. package/.claude/skills/cc-act/scripts/detect-ship-target.sh +11 -2
  11. package/.claude/skills/cc-act/scripts/inspect-git-index.sh +58 -0
  12. package/.claude/skills/cc-act/scripts/render-pr-brief.sh +40 -440
  13. package/.claude/skills/cc-act/scripts/verify-act-gate.sh +10 -50
  14. package/.claude/skills/cc-check/CHANGELOG.md +24 -0
  15. package/.claude/skills/cc-check/PLAYBOOK.md +19 -273
  16. package/.claude/skills/cc-check/SKILL.md +33 -454
  17. package/.claude/skills/cc-check/references/review-contract.md +12 -147
  18. package/.claude/skills/cc-dev/CHANGELOG.md +20 -0
  19. package/.claude/skills/cc-dev/PLAYBOOK.md +1 -1
  20. package/.claude/skills/cc-dev/SKILL.md +52 -130
  21. package/.claude/skills/cc-dev/scripts/resolve-cc-devflow.sh +181 -0
  22. package/.claude/skills/cc-do/CHANGELOG.md +17 -0
  23. package/.claude/skills/cc-do/PLAYBOOK.md +19 -113
  24. package/.claude/skills/cc-do/SKILL.md +39 -236
  25. package/.claude/skills/cc-do/references/execution-recovery.md +15 -109
  26. package/.claude/skills/cc-do/scripts/cc-do-common.sh +5 -57
  27. package/.claude/skills/cc-do/scripts/check-task-status.sh +35 -65
  28. package/.claude/skills/cc-do/scripts/mark-task-complete.sh +9 -46
  29. package/.claude/skills/cc-do/scripts/select-ready-tasks.sh +29 -97
  30. package/.claude/skills/cc-investigate/CHANGELOG.md +23 -0
  31. package/.claude/skills/cc-investigate/PLAYBOOK.md +20 -180
  32. package/.claude/skills/cc-investigate/SKILL.md +65 -513
  33. package/.claude/skills/cc-investigate/assets/TASKS_TEMPLATE.md +48 -95
  34. package/.claude/skills/cc-investigate/references/investigation-contract.md +14 -217
  35. package/.claude/skills/cc-next/CHANGELOG.md +6 -0
  36. package/.claude/skills/cc-next/PLAYBOOK.md +12 -8
  37. package/.claude/skills/cc-next/SKILL.md +34 -140
  38. package/.claude/skills/cc-plan/CHANGELOG.md +29 -0
  39. package/.claude/skills/cc-plan/PLAYBOOK.md +22 -161
  40. package/.claude/skills/cc-plan/SKILL.md +47 -640
  41. package/.claude/skills/cc-plan/assets/TASKS_TEMPLATE.md +30 -225
  42. package/.claude/skills/cc-plan/references/planning-contract.md +24 -160
  43. package/.claude/skills/cc-plan/scripts/next-change-key.sh +8 -44
  44. package/.claude/skills/cc-plan/scripts/parse-task-dependencies.js +2 -2
  45. package/.claude/skills/cc-plan/scripts/validate-scope.sh +1 -1
  46. package/.claude/skills/cc-pr-land/SKILL.md +14 -114
  47. package/.claude/skills/cc-pr-review/CHANGELOG.md +4 -0
  48. package/.claude/skills/cc-pr-review/SKILL.md +20 -103
  49. package/.claude/skills/cc-review/CHANGELOG.md +17 -0
  50. package/.claude/skills/cc-review/PLAYBOOK.md +13 -86
  51. package/.claude/skills/cc-review/SKILL.md +53 -241
  52. package/.claude/skills/cc-review/references/e2e-and-plugin-verification.md +2 -2
  53. package/.claude/skills/cc-review/references/implementation-review-branch.md +7 -147
  54. package/.claude/skills/cc-review/references/plan-review-branch.md +5 -147
  55. package/.claude/skills/cc-review/references/review-methods.md +10 -218
  56. package/.claude/skills/cc-review/scripts/collect-review-context.sh +4 -63
  57. package/.claude/skills/cc-roadmap/PLAYBOOK.md +1 -1
  58. package/.claude/skills/cc-roadmap/SKILL.md +3 -3
  59. package/.claude/skills/cc-simplify/CHANGELOG.md +7 -0
  60. package/.claude/skills/cc-simplify/SKILL.md +26 -21
  61. package/.claude/skills/cc-spec-init/PLAYBOOK.md +12 -48
  62. package/.claude/skills/cc-spec-init/SKILL.md +29 -132
  63. package/.claude/skills/cc-spec-init/references/spec-contract.md +8 -17
  64. package/CHANGELOG.md +27 -0
  65. package/README.md +5 -3
  66. package/README.zh-CN.md +5 -3
  67. package/bin/cc-devflow-cli.js +20 -260
  68. package/bin/cc-devflow.js +44 -7
  69. package/docs/commands/README.md +1 -1
  70. package/docs/commands/README.zh-CN.md +1 -1
  71. package/docs/examples/README.md +1 -1
  72. package/docs/examples/START-HERE.md +14 -14
  73. package/docs/examples/example-bindings.json +11 -11
  74. package/docs/examples/full-design-blocked/README.md +4 -6
  75. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/{planning/tasks.md → task.md} +20 -15
  76. package/docs/examples/local-handoff/README.md +8 -11
  77. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/handoff/pr-brief.md +31 -0
  78. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/{planning/tasks.md → task.md} +18 -13
  79. package/docs/examples/pdca-loop/README.md +6 -9
  80. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/handoff/pr-brief.md +9 -11
  81. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/{planning/tasks.md → task.md} +18 -13
  82. package/docs/examples/scripts/check-example-bindings.sh +11 -62
  83. package/docs/guides/artifact-contract.md +10 -36
  84. package/docs/guides/getting-started.md +8 -7
  85. package/docs/guides/getting-started.zh-CN.md +8 -7
  86. package/docs/guides/minimize-artifacts.md +16 -116
  87. package/docs/guides/project-postmortem.md +14 -71
  88. package/lib/compiler/__tests__/skills-registry.test.js +9 -8
  89. package/lib/compiler/resource-copier.js +29 -0
  90. package/lib/skill-runtime/__tests__/archive-change.test.js +2 -2
  91. package/lib/skill-runtime/__tests__/benchmark-skills.test.js +109 -0
  92. package/lib/skill-runtime/__tests__/cli-bootstrap.integration.test.js +14 -4
  93. package/lib/skill-runtime/errors.js +3 -3
  94. package/lib/skill-runtime/index.js +5 -23
  95. package/lib/skill-runtime/paths.js +5 -52
  96. package/lib/skill-runtime/query-registry.js +4 -4
  97. package/lib/skill-runtime/query.js +89 -201
  98. package/lib/skill-runtime/store.js +4 -40
  99. package/lib/skill-runtime/trace.js +2 -2
  100. package/package.json +5 -7
  101. package/.claude/skills/cc-act/assets/PROJECT_POSTMORTEM_PRINCIPLES_TEMPLATE.md +0 -29
  102. package/.claude/skills/cc-act/assets/RELEASE_NOTE_TEMPLATE.md +0 -54
  103. package/.claude/skills/cc-act/scripts/generate-status-report.sh +0 -92
  104. package/.claude/skills/cc-act/scripts/sync-act-docs.sh +0 -355
  105. package/.claude/skills/cc-check/assets/REPORT_CARD_TEMPLATE.json +0 -234
  106. package/.claude/skills/cc-check/scripts/render-report-card.js +0 -438
  107. package/.claude/skills/cc-check/scripts/verify-gate.sh +0 -85
  108. package/.claude/skills/cc-do/scripts/build-task-context.sh +0 -175
  109. package/.claude/skills/cc-do/scripts/record-review-decision.sh +0 -88
  110. package/.claude/skills/cc-do/scripts/recover-workflow.sh +0 -82
  111. package/.claude/skills/cc-do/scripts/run-problem-analysis.sh +0 -70
  112. package/.claude/skills/cc-do/scripts/verify-task-gates.sh +0 -109
  113. package/.claude/skills/cc-do/scripts/write-task-checkpoint.sh +0 -92
  114. package/.claude/skills/cc-investigate/assets/TASK_MANIFEST_TEMPLATE.json +0 -225
  115. package/.claude/skills/cc-plan/assets/TASK_MANIFEST_TEMPLATE.json +0 -179
  116. package/.claude/skills/cc-spec-init/assets/CHANGE_META_TEMPLATE.json +0 -28
  117. package/.claude/skills/cc-spec-init/scripts/validate-spec-links.sh +0 -45
  118. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/design.md +0 -234
  119. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/task-manifest.json +0 -488
  120. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/review/report-card.json +0 -189
  121. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/handoff/resume-index.md +0 -39
  122. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/handoff/status.md +0 -29
  123. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/design.md +0 -123
  124. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/task-manifest.json +0 -292
  125. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/review/report-card.json +0 -136
  126. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/handoff/status.md +0 -29
  127. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/design.md +0 -124
  128. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/task-manifest.json +0 -292
  129. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/review/report-card.json +0 -136
  130. package/docs/get-shit-done-strategy-audit.md +0 -518
  131. package/docs/skill-runtime-migration.md +0 -46
  132. package/lib/skill-runtime/__tests__/approve.test.js +0 -92
  133. package/lib/skill-runtime/__tests__/autopilot.test.js +0 -253
  134. package/lib/skill-runtime/__tests__/benchmark-artifacts.test.js +0 -165
  135. package/lib/skill-runtime/__tests__/delegation.test.js +0 -97
  136. package/lib/skill-runtime/__tests__/dispatch.test.js +0 -237
  137. package/lib/skill-runtime/__tests__/intent.test.js +0 -203
  138. package/lib/skill-runtime/__tests__/lifecycle.test.js +0 -169
  139. package/lib/skill-runtime/__tests__/planner.tdd.test.js +0 -331
  140. package/lib/skill-runtime/__tests__/prepare-pr.test.js +0 -126
  141. package/lib/skill-runtime/__tests__/query.test.js +0 -860
  142. package/lib/skill-runtime/__tests__/readiness.test.js +0 -53
  143. package/lib/skill-runtime/__tests__/release.test.js +0 -85
  144. package/lib/skill-runtime/__tests__/review-check-integration.test.js +0 -148
  145. package/lib/skill-runtime/__tests__/review-records.test.js +0 -619
  146. package/lib/skill-runtime/__tests__/runtime.integration.test.js +0 -351
  147. package/lib/skill-runtime/__tests__/schemas.test.js +0 -337
  148. package/lib/skill-runtime/__tests__/task-contract-migrate.test.js +0 -137
  149. package/lib/skill-runtime/__tests__/task-contract.test.js +0 -783
  150. package/lib/skill-runtime/__tests__/team-state.test.js +0 -51
  151. package/lib/skill-runtime/__tests__/verify-artifacts.test.js +0 -203
  152. package/lib/skill-runtime/__tests__/worker-run.test.js +0 -275
  153. package/lib/skill-runtime/__tests__/worker.test.js +0 -56
  154. package/lib/skill-runtime/__tests__/workflow-context-legacy-fallback.test.js +0 -31
  155. package/lib/skill-runtime/__tests__/workflow-context.test.js +0 -98
  156. package/lib/skill-runtime/artifacts.js +0 -88
  157. package/lib/skill-runtime/context-index.js +0 -545
  158. package/lib/skill-runtime/delegation.js +0 -533
  159. package/lib/skill-runtime/intent.js +0 -309
  160. package/lib/skill-runtime/lifecycle.js +0 -294
  161. package/lib/skill-runtime/operations/CLAUDE.md +0 -19
  162. package/lib/skill-runtime/operations/approve.js +0 -81
  163. package/lib/skill-runtime/operations/autopilot-core.js +0 -337
  164. package/lib/skill-runtime/operations/autopilot-execution.js +0 -307
  165. package/lib/skill-runtime/operations/autopilot-shared.js +0 -48
  166. package/lib/skill-runtime/operations/autopilot.js +0 -163
  167. package/lib/skill-runtime/operations/dispatch.js +0 -416
  168. package/lib/skill-runtime/operations/init.js +0 -60
  169. package/lib/skill-runtime/operations/janitor.js +0 -61
  170. package/lib/skill-runtime/operations/plan.js +0 -59
  171. package/lib/skill-runtime/operations/prepare-pr.js +0 -25
  172. package/lib/skill-runtime/operations/release.js +0 -99
  173. package/lib/skill-runtime/operations/resume.js +0 -126
  174. package/lib/skill-runtime/operations/review-records.js +0 -265
  175. package/lib/skill-runtime/operations/snapshot.js +0 -45
  176. package/lib/skill-runtime/operations/task-contract.js +0 -524
  177. package/lib/skill-runtime/operations/verify.js +0 -170
  178. package/lib/skill-runtime/operations/worker-run.js +0 -531
  179. package/lib/skill-runtime/operations/worker.js +0 -33
  180. package/lib/skill-runtime/planner.js +0 -539
  181. package/lib/skill-runtime/readiness.js +0 -84
  182. package/lib/skill-runtime/review-records.js +0 -123
  183. package/lib/skill-runtime/review.js +0 -855
  184. package/lib/skill-runtime/schemas.js +0 -746
  185. package/lib/skill-runtime/task-contract.js +0 -187
  186. package/lib/skill-runtime/team-state.js +0 -122
  187. package/lib/skill-runtime/workflow-context.js +0 -748
@@ -1,127 +1,33 @@
1
1
  # CC-Do Playbook
2
2
 
3
- ## Visible State Machine
3
+ ## State Machine
4
4
 
5
5
  `cc-plan | cc-investigate -> cc-do -> cc-check`
6
6
 
7
- - Enter from: an approved `planning/design.md` or `planning/analysis.md` with frozen tasks.
8
- - Stay in: `cc-do` while there are ready tasks, current task state is clear, and the design contract still holds.
9
- - Exit to: `cc-check` once the current task set has red/green/review evidence and no hidden execution gaps remain.
10
- - Reroute to: `cc-investigate` if repeated failures prove the root-cause contract is wrong, or `cc-plan` if the requirement design itself is wrong.
11
-
12
- ## Quick Triage
13
-
14
- 开始前先把当前执行局面归到 4 类之一:
15
-
16
- - `implement`: 已有 ready task,可直接进入 TDD
17
- - `resume`: task 状态或 Git 工作区显示中断,需要续做
18
- - `repair-from-investigation`: `planning/analysis.md` 已冻结,可直接修
19
- - `reroute-cc-investigate`: bug 根因未明,回调查入口
20
- - `review-fix`: scope 不变,只修 review 指向的问题
21
-
22
- 如果这一步归不清,说明当前上下文还没组装好,不准开始实现。
23
-
24
- ## Execution Loop
25
-
26
- 1. 读取 `task-manifest.json`,先用 `scripts/select-ready-tasks.sh` 找出当前 ready tasks 和当前 wave。
27
- 2. 如果有多于一个 ready task,要先跑 `scripts/detect-file-conflicts.sh`;有共享触点、父子路径触点或依赖关系就退回串行。
28
- 3. 对每个要执行的 task,先用 `workflow-context` 和完整 task block 组装上下文;只有恢复卡住时才运行 `scripts/build-task-context.sh`,且它只输出 stdout。
29
- 4. 如果当前任务来自 `cc-investigate`,把 `planning/analysis.md` 当成上游合同,不准一边做一边重开调查。
30
- 5. 进入 TDD 闭环:先红,再绿,再重构。
31
- 6. 每个关键节点都留下客观证据:代码 diff、Git 状态、验证命令输出、review verdict;失败或 debug 才写 CLI event。
32
- 7. 任务实现后,先过 `spec review`,再过 `code review`,review 不通过就回到实现。
33
- 8. 两道 review 门都通过后,才能把任务标成完成,并把结果留给 `cc-check`。
34
- 9. quick lane 只允许减少叙事,不允许减少 current task、verification、handoff 和 review gates。
35
-
36
- ## Local Kit
37
-
38
- - 恢复时看 `references/execution-recovery.md`
39
- - 并行分配时看 `references/parallel-dispatch.md`
40
- - 需要判断当前任务时用 `scripts/check-task-status.sh`
41
- - 需要找 ready task 时用 `scripts/select-ready-tasks.sh`
42
- - 需要组装任务上下文时用 `scripts/build-task-context.sh`
43
- - 不要写 checkpoint;`scripts/write-task-checkpoint.sh` 只是旧兼容入口,默认不生成 checkpoint 文件
44
- - 需要写 review 门结果时用 `scripts/record-review-decision.sh`
45
- - 需要校验任务闭环时用 `scripts/verify-task-gates.sh`
46
- - 需要勾选任务时用 `scripts/mark-task-complete.sh`
47
- - 需要确认并行安全时用 `scripts/detect-file-conflicts.sh`
48
- - bug 根因没冻结时,退出当前执行并回 `cc-investigate`
49
-
50
- ## TDD Standard
51
-
52
- 1. 先写失败测试,再运行到红。
53
- 2. 确认红灯是预期失败,不是测试写错、fixture 缺失或环境没接上。
54
- 3. 确认红灯通过公共 seam 证明行为缺失,而不是测私有函数、内部调用次数或临时结构。
55
- 4. 确认 mock 只发生在系统边界;内部协作者不 mock。
56
- 5. 确认测试名像规格说明,一个 Red 只证明一个逻辑行为,结果从公共验证路径读回。
57
- 6. 只写让当前测试转绿的最小实现,不提前实现未来测试尚未要求的分支、状态或 API。
58
- 7. 绿后才允许重构。
59
- 8. 重构后必须保持绿,并说明处理了重复、长方法、浅模块、feature envy、primitive obsession、命名、三层以上分支或其它具体坏味道。
60
- 9. 测试没先红过,或红灯不是公共 seam 上的行为失败,就不能宣称这次变更受 TDD 保护。
61
-
62
- ## TDD Exception Rule
63
-
64
- 只有这些场景允许跳过 fail-first:
65
-
66
- - throwaway prototype
67
- - 纯生成文件
68
- - 纯配置变更
69
- - 上游明确禁止写测试的探索步骤
70
-
71
- 每个例外都要写入当前 task block 或 manifest task context:
72
-
73
- - `tddException.reason`
74
- - `tddException.risk`
75
- - `tddException.alternativeEvidence`
76
-
77
- 没有例外记录,就按违规处理,回到 Red。
7
+ `cc-do` edits code. It does not create process files.
78
8
 
79
9
  ## Task Gates
80
10
 
81
- 任务只有在下面顺序全部成立后,才算完成:
82
-
83
- 1. `red_failed`: 已观察到预期失败
84
- 2. `red_reason_verified`: 红灯原因与目标行为缺失一致
85
- 3. `red_seam_verified`: 红灯通过公共接口、调用方流程、CLI/API/UI 或真实边界进入系统
86
- 4. `red_behavior_verified`: 测试断言用户或调用方可观察行为,不断言内部实现细节
87
- 5. `mock_boundary_verified`: mock 只在系统边界,内部协作者没有被 mock
88
- 6. `green_passed`: 当前任务实现转绿,且实现只覆盖当前红灯要求的最小行为
89
- 7. `refactor_done` 或 `refactor_not_needed`
90
- 8. `refactor_green`: 重构后相关测试仍绿,且没有在 Red 状态做结构清理
91
- 9. `spec_review_pass`
92
- 10. `code_review_pass`
93
-
94
- 任何一门失败,都回到实现,不准直接跨过去。
95
-
96
- ## Parallel Dispatch Rule
97
-
98
- 只有满足全部条件,才能并行:
99
-
100
- 1. 任务处于当前 active phase
101
- 2. `dependsOn` 已全部满足
102
- 3. 任务显式允许并行,例如 `[P]`
103
- 4. `touches` / `files` 不冲突,且父路径 / 子路径也不重叠
104
- 5. submodule touches 已被标出;触达 submodule 的任务不能默认拿普通 worktree 隔离
105
- 6. 每个 subagent 都拿到了自己的 task context
11
+ 1. Task selected from `task.md`
12
+ 2. Red observed or TDD exception recorded
13
+ 3. Green observed
14
+ 4. Refactor complete or unnecessary
15
+ 5. Verification run
16
+ 6. `mark-task-complete.sh` updates `task.md`
17
+ 7. Git commit created
106
18
 
107
- 少一条,都按顺序执行。
19
+ ## Recovery
108
20
 
109
- ## Root Cause Protocol
21
+ Recover from Git and `task.md`:
110
22
 
111
- - 先复现,再猜原因
112
- - 先读 `planning/analysis.md`,再改代码
113
- - 先守住修复边界,再做最小实现
114
- - 两次失败后回看证据
115
- - 三次失败后先回 `cc-investigate`,再决定是否需要 `cc-plan`
23
+ - current branch
24
+ - latest commits
25
+ - dirty files
26
+ - completed checkboxes
27
+ - next unchecked task
116
28
 
117
- ## Recovery Standard
29
+ Do not recover from process files. Only `task.md`, Git, and current repo truth count.
118
30
 
119
- 至少留下这些恢复信息:
31
+ ## Commit Rule
120
32
 
121
- - 当前任务 ID
122
- - 当前 active phase / ready tasks
123
- - 已完成什么
124
- - 卡在哪里
125
- - 下一步唯一动作
126
- - 相关文件 / 命令 / 观察
127
- - 最近一次 Red/Green/Review 到了哪一站
33
+ Every completed task or execution environment gets its own commit. Split by behavior or layer when needed, but do not leave completed work uncommitted between stages.
@@ -1,66 +1,47 @@
1
1
  ---
2
2
  name: cc-do
3
- version: 1.6.7
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.
3
+ version: 1.7.1
4
+ description: Use when implementing frozen tasks, resuming interrupted work, applying an investigation handoff, or fixing review feedback inside the approved scope.
5
5
  triggers:
6
6
  - 开始做 T003
7
7
  - 继续上次做到一半的任务
8
- - 按 planning/tasks.md 开始实现
8
+ - 按 task.md 开始实现
9
9
  - 修这个 review comment
10
10
  - implement this task
11
11
  - resume this requirement
12
- - repair this investigated bug
13
12
  reads:
14
13
  - PLAYBOOK.md
15
- - CHANGELOG.md
16
14
  - references/execution-recovery.md
17
15
  - references/parallel-dispatch.md
18
16
  - docs/guides/project-postmortem.md
17
+ - ../cc-dev/scripts/resolve-cc-devflow.sh
19
18
  writes:
20
- - path: devflow/changes/<change-key>/execution/tasks/<task-id>/events.jsonl
19
+ - path: devflow/changes/<change-key>/task.md
21
20
  durability: durable
22
- required: false
23
- when: debug mode is enabled or the task execution fails
24
- - path: devflow/changes/<change-key>/execution/team-state.json
25
- durability: durable
26
- required: false
27
- when: execution mode uses delegated or team workers
28
- - path: devflow/changes/<change-key>/meta/change-state.json
29
- durability: durable
30
- required: false
31
- when: pause, resume, dispatch, or quick-lane state changes
21
+ required: true
22
+ when: task checkbox/status changes
32
23
  effects:
33
24
  - code changes
34
25
  - test changes
35
- - task status updates in planning/tasks.md and planning/task-manifest.json
26
+ - Git commit after each completed execution environment or task slice
36
27
  entry_gate:
37
- - Run `cc-devflow query workflow-context --change <changeId> --change-key <changeKey> --data-only --no-trace --compact` first and follow its context-index `packetOnly`, `mustNotForget`, `sourceHashes`, `defaultOpen`, `currentTask`, `commandsToTrust`, and `openWhen.conditions` fields before opening deep artifacts.
38
- - Read planning/design.md or planning/analysis.md, then planning/tasks.md, planning/task-manifest.json, change-meta.json, related capability specs, current Git state, and CLI logs only when the workflow context says the deep section is needed.
39
- - Select only ready tasks whose dependencies, wave, touched paths, and file ownership are clear.
40
- - Reject parallel execution when touched paths overlap by exact path or parent/child path; submodule touches must be isolated unless the task explicitly owns that submodule.
41
- - If the current task cannot be restated from canonical artifacts, run a context reset before coding.
42
- - Before each single-task execution, run a quick Project Postmortem search against `devflow/postmortems` using the task's touched files, capability, failure class, and model-risk terms; apply applicable reminders to the code path and mention only blocking/failure facts in CLI events.
43
- - "Validate the current task's TDD shape before coding: spec-style test name, one logical behavior, public verification path, allowed boundary mocks, Green minimality guard, and refactor candidates."
28
+ - Resolve the CLI with `../cc-dev/scripts/resolve-cc-devflow.sh require query workflow-context config`.
29
+ - Run `query workflow-context --change <changeId> --change-key <changeKey> --data-only --no-trace --compact`.
30
+ - Read `task.md`, current Git status, and only the code/tests needed by the current task.
31
+ - Reject execution if the task cannot be restated from `task.md` and repo evidence.
44
32
  exit_criteria:
45
- - The current task has red/green evidence, public-seam test quality evidence, review evidence, and synchronized task status.
46
- - Red evidence proves one observable behavior through a public verification path; Green evidence shows only the minimal production change; Refactor evidence names the concrete smell removed or says why none was needed.
47
- - The completed task was closed through `scripts/mark-task-complete.sh`; manual checkbox/status edits are not valid completion evidence.
48
- - Execution leaves the next verifier enough code, Git, task-status, verification-command, and CLI-log truth to judge the task without chat memory.
49
- - The honest next step is cc-check or an explicit reroute.
33
+ - Current task has Red/Green evidence or a recorded TDD exception in `task.md`.
34
+ - Verification commands have been run or explicitly blocked.
35
+ - Task status is updated through `scripts/mark-task-complete.sh`.
36
+ - The completed task/environment is committed to Git.
37
+ - No process file is created beyond `task.md` updates and Git commits.
50
38
  reroutes:
51
- - when: Three failed repair attempts or new evidence show the investigation contract is wrong.
39
+ - when: New evidence disproves root cause.
52
40
  target: cc-investigate
53
- - when: New evidence shows the requirement design or scope contract is wrong.
41
+ - when: New evidence breaks scope or design.
54
42
  target: cc-plan
55
- - when: Implementation and reviews are complete for the current task set.
43
+ - when: Implementation and review feedback are complete.
56
44
  target: cc-check
57
- recovery_modes:
58
- - name: resume-from-task-state
59
- when: Work was interrupted but the current design contract is still valid.
60
- action: Reload workflow-context, planning/tasks.md, task-manifest.json, current Git state, and CLI logs; continue from the first pending or failed task.
61
- - name: context-reset
62
- when: The conversation history is noisy, stale, or cannot reproduce the exact task state.
63
- action: Discard chat memory, reread planning/design.md or planning/analysis.md plus planning/tasks.md/planning/task-manifest.json, current Git state, and CLI logs, then restate the next action before coding.
64
45
  tool_budget:
65
46
  read_files: 9
66
47
  search_steps: 6
@@ -69,66 +50,15 @@ tool_budget:
69
50
 
70
51
  # CC-Do
71
52
 
72
- > [PROTOCOL]: 变更时同步更新 `version`、`CHANGELOG.md`、相关模板/脚本引用,然后检查 `CLAUDE.md`
73
-
74
- ## Role
75
-
76
- `cc-do` 是 PDCA 里的 `Do`。
77
-
78
- 同时它也是 IDCA / DDCA 里的 `Do`。
79
-
80
- 它只做一件事:沿着已经冻结的任务,把代码真正做出来,并把执行证据留到足够让别人接手、复盘、复验。
81
-
82
- ## Runtime Output Policy
83
-
84
- 写入任何 durable Markdown 或 JSON metadata 前,先运行 `cc-devflow config resolve --format policy`。
85
-
86
- - `Output language` 是机器约束;如果失败或 debug CLI 日志需要人类可读摘要,必须记录并遵守它。
87
- - `agent_preferences` 是用户偏好建议,只影响表达方式和结构选择,不覆盖本 Skill 的工作流边界。
88
- - 如果配置解析失败,先修配置或向用户说明阻塞,不要用默认语言继续生成正式文档。
89
-
90
- 上游冻结合同可以来自两条路:
91
-
92
- - `cc-plan` 产出的 `planning/design.md`
93
- - `cc-investigate` 产出的 `planning/analysis.md`
94
-
95
- ## Read First
53
+ `cc-do` PDCA / IDCA 的 `Do`。它只执行 `task.md` 中已经冻结的任务。
96
54
 
97
- 1. `PLAYBOOK.md`
98
- 2. `CHANGELOG.md`
99
- 3. `references/execution-recovery.md`
100
- 4. `references/parallel-dispatch.md`
101
- 5. `docs/guides/project-postmortem.md`
55
+ 默认只更新:
102
56
 
103
- ## Use This Skill When
57
+ - 代码和测试
58
+ - `devflow/changes/<change-key>/task.md` 中的任务状态
59
+ - Git commit
104
60
 
105
- - 要实现 `planning/tasks.md` / `planning/task-manifest.json`
106
- - 执行被中断,需要恢复
107
- - bug 根因已经在 `cc-investigate` 里冻结,准备开始修
108
- - review feedback 要落成代码
109
-
110
- 如果方案还没冻结、任务边界还没定,停下并回 `cc-plan` 或 `cc-investigate`。
111
-
112
- ## Quick Start
113
-
114
- 先判断现在是哪一种执行局面,再开始编码:
115
-
116
- | 现实状态 | 先走什么路径 |
117
- | --- | --- |
118
- | 已有 ready task,直接实现 | `implement` |
119
- | 上次做到一半,需要继续 | `resume` |
120
- | bug 根因已冻结 | `repair-from-investigation` |
121
- | bug 还没搞清根因 | reroute 到 `cc-investigate` |
122
- | 收到 review comment,要在既定范围内修正 | `review-fix` |
123
-
124
- 如果连“当前 task 是什么”都说不清,先别写代码,先跑 `cc-devflow query workflow-context`。只有它的 `openWhen` 指向 scheduling 或 recovery 时,才继续跑 `scripts/select-ready-tasks.sh`;`scripts/build-task-context.sh` 只能输出 stdout,不得生成 `context.md`。
125
-
126
- ## Harness Contract
127
-
128
- - Allowed actions: implement ready tasks, debug inside frozen scope, update task status through the completion script, and apply review feedback that does not reopen design.
129
- - Forbidden actions: re-planning the requirement in place, blindly rerunning the whole requirement, or delegating tasks without full task context.
130
- - Required evidence: every task must leave objective code/Git/test evidence; blocked or failed work may leave compact CLI events, but must not create AI-written process files.
131
- - 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`.
61
+ 不要生成额外过程文件或 JSON 文档。失败和阻塞写在对用户的响应里;需要长期保留的失败教训交给 `cc-act` incident postmortem。
132
62
 
133
63
  ## TDD Iron Law
134
64
 
@@ -136,150 +66,23 @@ tool_budget:
136
66
  NO PRODUCTION CODE WITHOUT A FAILING TEST FIRST
137
67
  ```
138
68
 
139
- `cc-do` 默认采用测试先行的执行纪律:
140
-
141
- 1. Red:先写一个最小失败测试,运行并确认它因为目标行为缺失而失败。
142
- 2. Green:只写让当前失败测试通过的最小生产代码。
143
- 3. Refactor:只有 Green 之后才能清理命名、重复、结构和坏味道。
144
- 4. Record:任务状态只通过 `mark-task-complete.sh` 同步到 `planning/tasks.md` 与 `planning/task-manifest.json`;失败或 debug 时才写 `events.jsonl`。
145
-
146
- Red 不是形式上的红,而是公共 seam 上的行为缺失证明。测试必须通过公共接口、调用方流程、CLI/API/UI 路径或其它真实边界进入系统;只验证私有函数、内部调用次数、临时数据结构或 mock 自己控制的内部协作者,不算 TDD 证据。
147
-
148
- 一个 Red 只证明一个逻辑行为。测试名要像规格说明,而不是实现步骤;结果要从同一类公共入口读回。直接查数据库、读内部状态、扫描临时文件或绕过 API 来证明行为,只在那个边界本身就是被测对象时成立。
149
-
150
- 例外只能用于 throwaway prototype、纯生成文件、纯配置改动;例外必须写在当前 task block 或 manifest task context 中,包含原因、风险和替代验证命令。测试第一次就绿,说明测试没有证明新行为,必须修测试而不是继续写生产代码。
151
-
152
- 禁止水平切片:不要先写一批测试,再写一批实现。每次只推进一个 tracer bullet:一个可观察行为的 Red -> 让它变绿的最小实现 -> 必要重构 -> 记录证据,然后再进入下一个行为。
153
-
154
- 测试数据也必须诚实。fixture 只提供当前行为需要的最小输入;partial fixture、类型断言、mock payload 或 generated stub 必须写清哪些字段是真实 contract,哪些只是测试填充。不能用 `as`、`any`、双重 cast、缺字段 partial mock 或 test-only method 掩盖 seam 设计问题。
155
-
156
- Green 不是顺手把未来行为都做掉。只写当前红灯要求的最小生产代码;如果需要新接口,优先保持小接口深模块,依赖从调用方传入,外部 boundary adapter 拆成具体操作,而不是用一个 generic fetcher 把复杂条件推给 mock。
157
-
158
- Refactor 只能发生在 Green 之后。优先处理当前 slice 暴露出的重复、长方法、浅模块、feature envy、primitive obsession、命名混乱、三层以上分支和新代码揭开的旧代码坏味道;没被当前绿色测试保护的扩张性整理,回到 `cc-plan` 或后续任务。
159
-
160
- ## Entry Gate
161
-
162
- 1. 先运行 `cc-devflow query workflow-context --change <changeId> --change-key <changeKey> --data-only --no-trace --compact`,把 `nextAction.skill == "cc-do"` 和 `currentTask.id` 作为执行入口。
163
- 2. 先只用 `workflow-context.progressiveDisclosure.packetOnly` 和 `mustNotForget` 做导航与护栏,必要时打开 `defaultOpen` 的 section / JSON refs;如果 `sourceHashes` 不匹配、命令缺失、scope/依赖/触点不确定,必须按 `openWhen.conditions` 打开 `deepOpen`,不能靠猜。
164
- 3. 先用 `workflow-context.queues.readyTasks` 判断现在到底哪几个任务真的 ready;需要 shell 复核时再跑 `scripts/select-ready-tasks.sh`。
165
- 4. 只锁定当前 ready task,或一组经依赖、wave、精确触点与父子路径触点校验后可并行的 ready tasks。
166
- 5. 如果这次来自 `cc-investigate`,必须把 `planning/analysis.md` 当成 canonical contract,而不是一边实现一边重新调查。
167
- 6. 没有任务上下文,不准把任务扔给 subagent;先用 `workflow-context.currentTask`,不够时再用 `scripts/build-task-context.sh` 从 canonical artifacts 组装上下文。
168
- 7. 如果 `task-manifest.json.metadata.lane == "quick"`,仍然必须有 current task、verification、task status 和唯一 next action;quick 只缩短文档密度,不跳过证据。
169
- 8. 如果仓库含 `.gitmodules` 或 manifest 提供 `submodulePaths`,先用 `scripts/detect-file-conflicts.sh` 标出 `submoduleTouches`;只有触达该 submodule 的任务失去默认 worktree 隔离资格,未触达任务不能被无辜串行化。
170
- 9. 每个单 task 开工前,用当前 task 的 touched files、capability、错误类型、模型风险词快速检索 `devflow/postmortems`;命中时把相关原则转成当前 task 的 guardrail。不要为 no-match 生成过程文件。
69
+ 允许例外:纯配置、纯生成文件、throwaway prototype、用户明确禁止测试。例外必须写进当前 task block。
171
70
 
172
71
  ## Loop
173
72
 
174
- 1. 读取当前任务,而不是重新发明任务。
175
- 2. 先执行当前 task 的 Project Postmortem quick search;如果命中同类 incident,先打开对应 incident 的 Prevention Summary 和 Git Evidence,再开始 Red。
176
- 3. 依赖没满足前,不准提前做下游任务;不同 wave 之间不允许抢跑。
177
- 4. 没有明确并行资格,不准把多个实现任务同时推进;`touches` 父子路径重叠也算同一执行表面。
178
- 5. `fail-first`:先写失败测试,先看见预期红,再写生产代码。
179
- 6. 如果红灯不是预期失败(语法错、fixture 错、测试没连上),先修测试直到它正确失败。
180
- 7. 如果红灯通过错误 seam 得到,比如私有方法、内部调用次数、mock 内部协作者,先修测试 seam,不准进入 Green。
181
- 8. 如果红灯只断言实现形状、直接查内部状态或一次证明多个逻辑行为,先改测试,不准进入 Green
182
- 9. 按 `Red -> Green -> Refactor` 推进,Green 只允许最小实现,不预铺未来测试尚未要求的分支、状态或 API。
183
- 10. 如果当前 Red 需要新的 fixture 或 mock,先证明它仍从公共 seam 触发真实行为;fixture 缺字段、类型强转或内部 mock 都要写入 `tdd.testQuality.fixtureRisk` 或先修 seam。
184
- 11. Refactor 后必须重跑相关测试,保持 Green;Red 状态下不重构。
185
- 12. 每次推进都以代码 diff、Git 状态、验证命令输出和 task 状态为真相源;只有失败、阻塞或 debug 需要机器日志时才写 `events.jsonl`。
186
- 13. 任务实现后,先过 `spec review`,再过 `code review`,两道门都过才算任务收口;这里只验证 spec delta,不回写长期 spec。
187
- 14. 当前任务完成后,把可验证证据留给 `cc-check`。
188
-
189
- ## Output
190
-
191
- - 代码变更
192
- - 测试变更
193
- - `planning/tasks.md` 与 `planning/task-manifest.json` 的 task 状态
194
- - `devflow/changes/<change-key>/execution/tasks/<task-id>/events.jsonl`(仅 debug / failed 默认保留;CLI 自动日志,不写叙事 Markdown)
195
- - `planning/task-manifest.json` 里的 task review verdict
196
-
197
- ## Good Output
198
-
199
- - 当前 task 一眼可见,执行者不用从聊天记录里猜目标
200
- - 当前 wave、ready tasks、parallel candidates、touch conflict verdict 和 submoduleTouches 一眼可见
201
- - 至少留下一次明确的 tracer bullet Red/Green/Refactor 证据,且 Red 是公共 seam 上的预期行为失败
202
- - Red 证据说明测试名、单一行为、公共验证路径和为何不是实现细节测试
203
- - Green 证据说明 minimality guard:本轮只满足当前红灯,没有提前实现未来分支
204
- - Refactor 证据说明清掉了哪个具体坏味道,或者为什么当前 slice 不需要 refactor
205
- - 测试 fixture 说明真实 contract 字段和测试填充字段,没有用类型欺骗或内部 mock 制造假绿
206
- - task status、Git diff、验证命令和必要 CLI 日志足够让下一位接手者恢复
207
- - quick lane 也有 mini manifest、verification 和唯一 next action,不靠聊天记录继续
208
- - reviewer 能顺着 review 记录和验证命令复盘这次实现
209
-
210
- ## Bundled Resources
211
-
212
- - 变更记录:`CHANGELOG.md`
213
- - 执行 / 恢复规则:`references/execution-recovery.md`
214
- - 并行分配准则:`references/parallel-dispatch.md`
215
- - 恢复分析:`scripts/recover-workflow.sh`
216
- - 任务状态:`scripts/check-task-status.sh`
217
- - ready 任务选择:`scripts/select-ready-tasks.sh`
218
- - 任务上下文组装:`scripts/build-task-context.sh`(stdout only,不落盘)
219
- - 旧 checkpoint 兼容入口:`scripts/write-task-checkpoint.sh`(不写 checkpoint,只在失败 / debug 时写事件)
220
- - review 记录:`scripts/record-review-decision.sh`
221
- - 任务闭环校验:`scripts/verify-task-gates.sh`
222
- - 任务勾选:`scripts/mark-task-complete.sh`
223
- - 文件冲突:`scripts/detect-file-conflicts.sh`
224
-
225
- ## Working Rules
226
-
227
- 1. 没有根因,不准修 bug。
228
- 2. 没有任务边界,不准无界发散。
229
- 3. 没有失败测试,不准写生产代码。
230
- 4. 测试如果第一次就绿,说明你没证明任何东西,先修测试。
231
- 5. 红灯原因必须和目标行为缺失一致;红灯如果只是测试写错,不算 TDD 证据。
232
- 6. 红灯必须验证公共接口上的行为;实现细节测试、私有方法测试、内部调用次数断言都要先退回 Red 修正。
233
- 7. Mock 只能放在系统边界;如果必须 mock 内部协作者才能测试,说明 seam 或设计合同有问题。
234
- 8. 一个 Red 只证明一个逻辑行为;bulk Red 或测试名描述实现步骤,都先退回测试设计。
235
- 9. Green 只写当前红灯需要的最小实现;预铺未来功能、兼容分支或宽接口都算越界。
236
- 10. Red 时不重构;Refactor 只在相关测试已绿后处理当前 slice 暴露的坏味道。
237
- 11. 先过 `spec review`,再过 `code review`,顺序不能反。
238
- 12. 不在 `cc-do` 里改 capability spec 正文;这里只产出实现证据和 spec 对齐证据。
239
- 13. 失败和阻塞都要留下恢复证据。
240
- 14. 给 subagent 的输入必须包含:当前进度、当前任务全文、依赖状态、必读文件、验收标准、可信命令。
241
- 15. 三次失败修补后必须先质疑调查合同或设计合同,而不是继续堆补丁。
242
- 16. 完成任务后必须调用 `scripts/mark-task-complete.sh` 同步 `planning/task-manifest.json` 和 `planning/tasks.md`;禁止手工改 checkbox、status、currentTaskId 来冒充完成。
243
- 17. 如果 `mark-task-complete.sh` 失败,说明 review gate 或任务依赖还没闭合;先修证据,再重跑脚本,不准绕过。
244
-
245
- ## Task Status Protocol
246
-
247
- ClaudeCode / Codex 执行 `cc-do` 时必须把任务状态当成状态机,不是普通 Markdown TODO。
248
-
249
- 1. 开始前用 `planning/task-manifest.json.currentTaskId` 或 ready-task 脚本确认当前任务。
250
- 2. 执行时读取完整 task block,包含 Goal、TDD phase、Files、Read first、Verification、Evidence、test seam、mock boundary、minimality / refactor 字段。
251
- 3. 完成验证和 review gate 后运行完成脚本:
252
-
253
- ```bash
254
- SCRIPT_ROOT=".claude/skills/cc-do/scripts"
255
- if [[ ! -d "$SCRIPT_ROOT" && -d ".codex/skills/cc-do/scripts" ]]; then
256
- SCRIPT_ROOT=".codex/skills/cc-do/scripts"
257
- fi
258
- bash "$SCRIPT_ROOT/mark-task-complete.sh" --manifest devflow/changes/<change-key>/planning/task-manifest.json --tasks devflow/changes/<change-key>/planning/tasks.md --task <task-id>
259
- ```
260
-
261
- 4. 脚本会先跑任务 gate,再同步 manifest、checkbox、`currentTaskId` 和整体状态。不要手动改这些字段。
262
- 5. 如果任务不能完成,只在失败 / debug 需要时写 CLI event;不要生成过程 Markdown,也不要把失败任务标成完成。
263
-
264
- ## Exit Criteria
265
-
266
- - 当前任务有 Red/Green 证据
267
- - 当前任务有 `spec review` / `code review` 两道门证据
268
- - 恢复点可从 `planning/tasks.md`、`planning/task-manifest.json`、Git 状态和必要 CLI 日志判断
269
- - 阻塞原因已写清楚
270
- - 下一步应进入 `cc-check`,或明确退回 `cc-investigate` / `cc-plan`
73
+ 1. 从 `task.md` 选择第一个未完成且依赖满足的任务;必要时用 `scripts/select-ready-tasks.sh` 复核。
74
+ 2. 读取当前任务涉及的最小代码和测试。
75
+ 3. Red:写最小失败测试,确认失败原因就是目标行为缺失。
76
+ 4. Green:写最小实现,不预铺未来分支。
77
+ 5. Refactor:只清理当前 slice 暴露出的坏味道,保持测试绿。
78
+ 6. Review:自查 scope、公共 seam、mock 边界、错误路径和文档影响。
79
+ 7. Complete:运行 `scripts/mark-task-complete.sh --tasks devflow/changes/<change-key>/task.md --task <task-id>`。
80
+ 8. Commit:每个任务或执行环境完成后提交 Git commit
271
81
 
272
- ## Do Not
82
+ ## Parallel Rule
273
83
 
274
- - 不在这里重开方案讨论
275
- - 不把一次修复膨胀成重写整个模块
276
- - 不把依赖任务和被依赖任务同时并行
277
- - 不把没有当前进度的任务直接丢给 subagent
278
- - 三层以上判断说明上游合同该回炉
84
+ 只有任务显式允许并行、依赖已满足、触碰路径无重叠、且每个执行环境都能独立提交时,才并行。否则串行。
279
85
 
280
- ## Companion Files
86
+ ## Exit
281
87
 
282
- - 深入剧本:`PLAYBOOK.md`
283
- - 变更记录:`CHANGELOG.md`
284
- - 执行规则:`references/execution-recovery.md`
285
- - 并行规则:`references/parallel-dispatch.md`
88
+ 退出时报告任务 ID、验证命令、commit hash、剩余任务或下一步 `cc-check`。不要写过程文件。
@@ -1,114 +1,20 @@
1
- # Execution And Recovery
1
+ # Execution Recovery
2
2
 
3
- ## Minimum Runtime Truth
3
+ Recover from:
4
4
 
5
- - 当前 requirement / change ID
6
- - 当前 task ID
7
- - 当前 task status
8
- - 当前 active phase
9
- - 当前 ready tasks
10
- - 当前 wave / parallel candidates / touch conflict verdict
11
- - submoduleTouches(如适用)
12
- - 当前 review gates(spec / code)
13
- - 已完成证据
14
- - 阻塞点
15
- - 下一步唯一动作
5
+ - Git branch
6
+ - Git status
7
+ - recent commits
8
+ - `task.md`
9
+ - current test output
16
10
 
17
- ## Recovery Rule
11
+ Do not recover from process files. They are not part of the workflow.
18
12
 
19
- 恢复时只回答 3 件事:
13
+ ## Resume Steps
20
14
 
21
- 1. 现在停在哪
22
- 2. 为什么停在这
23
- 3. 下一步必须先做什么
24
-
25
- 如果这三件事不能只靠规范产物、Git 状态和 CLI 日志回答,就先做 context reset,不准继续依赖聊天记忆。
26
-
27
- ## Runtime Layout
28
-
29
- 默认执行真相来自:
30
-
31
- - 代码和测试 diff
32
- - Git 状态
33
- - `planning/tasks.md` 的 checkbox
34
- - `planning/task-manifest.json` 的 task status / reviews / currentTaskId
35
- - `devflow/changes/<change-key>/execution/tasks/<task-id>/events.jsonl`(仅 debug / failed 默认保留;CLI 自动日志)
36
- - `planning/task-manifest.json` 里的 `tasks[*].reviews`
37
-
38
- 不得生成 `context.md`、`checkpoint.json`、review markdown 或其它 AI 手写过程文件。需要复盘时重新读取代码、Git、task 状态和 CLI 自动日志。
39
-
40
- ## Optional Event Spine
41
-
42
- `events.jsonl` 只在 debug 或 failed 时存在。存在时可以包含这些事件:
43
-
44
- 1. `context_ready`
45
- 2. `red_failed`
46
- 3. `red_reason_verified`
47
- 4. `red_seam_verified`
48
- 5. `red_behavior_verified`
49
- 6. `mock_boundary_verified`
50
- 7. `green_passed`
51
- 8. `refactor_done` 或 `refactor_not_needed`
52
- 9. `refactor_green`
53
- 10. `spec_review_pass`
54
- 11. `code_review_pass`
55
-
56
- 如果 `events.jsonl` 没开启,使用 manifest task status、`tasks.md` checkbox、review verdict 和验证命令输出恢复。
57
-
58
- ## Task Evidence Fields
59
-
60
- 当前 task block / manifest task / 验证输出至少能回答:
61
-
62
- - `red.command`
63
- - `red.exitStatus`
64
- - `red.expectedFailure`
65
- - `red.testSeam`
66
- - `red.behaviorAsserted`
67
- - `red.specStyleTestName`
68
- - `red.oneLogicalBehavior`
69
- - `red.publicVerificationPath`
70
- - `red.allowedMocks`
71
- - `red.implementationDetailRisk`
72
- - `green.command`
73
- - `green.exitStatus`
74
- - `green.minimalityGuard`
75
- - `refactor.status`
76
- - `refactor.candidates`
77
- - `refactor.greenCommand`
78
- - `testQuality.usesPublicInterface`
79
- - `testQuality.describesBehavior`
80
- - `testQuality.specStyleName`
81
- - `testQuality.verifiesThroughPublicPath`
82
- - `testQuality.noBulkRed`
83
- - `testQuality.survivesInternalRefactor`
84
- - `testQuality.mocksOnlySystemBoundaries`
85
- - `review.spec.status`
86
- - `review.code.status`
87
-
88
- 如果跳过 TDD,必须有 `tddException` 或 task-level exception 说明,并写清替代验证。没有这些字段时,恢复执行先补证据,不准直接继续实现。
89
-
90
- ## Bug Rule
91
-
92
- - 先复现
93
- - 再收证据
94
- - 再下根因判断
95
- - 最后改代码
96
-
97
- ## Local Recovery Ladder
98
-
99
- 1. 先重试当前命令或当前 task,而不是重跑整条 requirement
100
- 2. 两次失败后回看证据链、task block、Git diff 和 CLI 日志
101
- 3. 三次失败后默认怀疑上游合同:根因漂移回 `cc-investigate`,范围 / 设计漂移回 `cc-plan`
102
-
103
- ## Subagent Rule
104
-
105
- 给 subagent 的上下文至少包含:
106
-
107
- - 当前任务全文
108
- - 当前进度与 manifest task status
109
- - 已满足 / 未满足的依赖
110
- - 必读文件
111
- - 验收标准
112
- - 验证命令
113
- - 不做项 / 边界
114
- - quick lane 是否仍有 mini manifest、verification 和唯一 next action
15
+ 1. Read `task.md`.
16
+ 2. Run `git status --short`.
17
+ 3. Inspect recent commits.
18
+ 4. Select the first unchecked task.
19
+ 5. Re-run the task's verification command if previous output is stale.
20
+ 6. Continue or reroute.