cc-devflow 4.5.14 → 4.5.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/skills/cc-act/CHANGELOG.md +5 -0
- package/.claude/skills/cc-act/SKILL.md +2 -2
- package/.claude/skills/cc-act/assets/PR_BRIEF_TEMPLATE.md +3 -0
- package/.claude/skills/cc-act/scripts/render-pr-brief.sh +113 -33
- package/.claude/skills/cc-check/SKILL.md +0 -1
- package/.claude/skills/cc-dev/CHANGELOG.md +5 -0
- package/.claude/skills/cc-dev/PLAYBOOK.md +6 -3
- package/.claude/skills/cc-dev/SKILL.md +11 -8
- package/.claude/skills/cc-dev/scripts/ensure-work-branch.sh +117 -0
- package/.claude/skills/cc-dev/scripts/prepare-change-worktree.sh +135 -0
- package/.claude/skills/cc-dev/scripts/resolve-cc-devflow.sh +8 -26
- package/.claude/skills/cc-do/SKILL.md +1 -2
- package/.claude/skills/cc-investigate/CHANGELOG.md +15 -0
- package/.claude/skills/cc-investigate/SKILL.md +86 -9
- package/.claude/skills/cc-investigate/assets/TASKS_TEMPLATE.md +57 -1
- package/.claude/skills/cc-investigate/references/investigation-contract.md +1 -0
- package/.claude/skills/cc-plan/CHANGELOG.md +23 -0
- package/.claude/skills/cc-plan/PLAYBOOK.md +8 -5
- package/.claude/skills/cc-plan/SKILL.md +91 -20
- package/.claude/skills/cc-plan/assets/TASKS_TEMPLATE.md +59 -8
- package/.claude/skills/cc-plan/references/planning-contract.md +15 -9
- package/.claude/skills/cc-pr-review/CHANGELOG.md +9 -0
- package/.claude/skills/cc-pr-review/PLAYBOOK.md +3 -0
- package/.claude/skills/cc-pr-review/SKILL.md +30 -1
- package/.claude/skills/cc-review/CHANGELOG.md +10 -0
- package/.claude/skills/cc-review/SKILL.md +53 -9
- package/.claude/skills/cc-review/references/implementation-review-branch.md +1 -0
- package/.claude/skills/cc-review/references/plan-review-branch.md +1 -0
- package/.claude/skills/cc-review/references/review-methods.md +30 -0
- package/.claude/skills/cc-roadmap/CHANGELOG.md +6 -0
- package/.claude/skills/cc-roadmap/SKILL.md +1 -1
- package/.claude/skills/cc-roadmap/scripts/lib/roadmap-tracking/markdown.js +274 -69
- package/.claude/skills/cc-roadmap/scripts/lib/roadmap-tracking/schema.js +69 -15
- package/CHANGELOG.md +18 -0
- package/README.md +3 -4
- package/README.zh-CN.md +3 -4
- package/bin/cc-devflow-cli.js +8 -94
- package/docs/examples/example-bindings.json +8 -8
- package/docs/examples/full-design-blocked/BACKLOG.md +12 -1
- package/docs/examples/full-design-blocked/README.md +1 -1
- package/docs/examples/full-design-blocked/ROADMAP.md +2 -2
- package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/task.md +39 -5
- package/docs/examples/full-design-blocked/roadmap.json +7 -2
- package/docs/examples/local-handoff/BACKLOG.md +12 -1
- package/docs/examples/local-handoff/README.md +1 -1
- package/docs/examples/local-handoff/ROADMAP.md +2 -2
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/task.md +39 -5
- package/docs/examples/local-handoff/roadmap.json +7 -2
- package/docs/examples/pdca-loop/BACKLOG.md +12 -1
- package/docs/examples/pdca-loop/README.md +1 -1
- package/docs/examples/pdca-loop/ROADMAP.md +2 -2
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/task.md +39 -5
- package/docs/examples/pdca-loop/roadmap.json +7 -2
- package/lib/skill-runtime/CLAUDE.md +1 -1
- package/lib/skill-runtime/__tests__/cli-bootstrap.integration.test.js +2 -1
- package/lib/skill-runtime/__tests__/config.test.js +7 -2
- package/lib/skill-runtime/config.js +38 -6
- package/lib/skill-runtime/index.js +1 -9
- package/package.json +1 -1
- package/lib/skill-runtime/errors.js +0 -39
- package/lib/skill-runtime/query-registry.js +0 -101
- package/lib/skill-runtime/query.js +0 -126
- package/lib/skill-runtime/trace.js +0 -22
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: cc-investigate
|
|
3
|
-
version: 1.6.
|
|
3
|
+
version: 1.6.5
|
|
4
4
|
description: Use when a bug, regression, broken task, or unexpected behavior needs root-cause investigation before coding resumes.
|
|
5
5
|
triggers:
|
|
6
6
|
- 帮我查这个 bug
|
|
@@ -15,6 +15,8 @@ reads:
|
|
|
15
15
|
- docs/guides/project-postmortem.md
|
|
16
16
|
- assets/TASKS_TEMPLATE.md
|
|
17
17
|
- ../cc-dev/scripts/resolve-cc-devflow.sh
|
|
18
|
+
- ../cc-dev/scripts/prepare-change-worktree.sh
|
|
19
|
+
- ../cc-dev/scripts/ensure-work-branch.sh
|
|
18
20
|
- ../cc-roadmap/scripts/locate-roadmap-item.sh
|
|
19
21
|
- ../cc-roadmap/scripts/sync-roadmap-progress.sh
|
|
20
22
|
writes:
|
|
@@ -25,9 +27,10 @@ effects:
|
|
|
25
27
|
- roadmap progress sync when a source item exists
|
|
26
28
|
- Git commit after the Investigate stage is complete
|
|
27
29
|
entry_gate:
|
|
28
|
-
- Resolve the CLI with `../cc-dev/scripts/resolve-cc-devflow.sh require
|
|
30
|
+
- Resolve the CLI with `../cc-dev/scripts/resolve-cc-devflow.sh require next-change-key config`.
|
|
29
31
|
- Assign a FIX change key through `next-change-key --prefix FIX --description "<short bug name>"`.
|
|
30
|
-
-
|
|
32
|
+
- Prepare an isolated FIX worktree before writing `task.md`; keep the main checkout on `main`.
|
|
33
|
+
- Enforce the Worktree Branch Contract inside the returned FIX worktree.
|
|
31
34
|
- Reproduce or build the closest honest feedback loop before naming root cause.
|
|
32
35
|
- Classify the investigation mode before tracing: reproduce-first, diff-trace, boundary-probe, backward-trace, reference-compare, condition-wait, workflow-forensics, performance, or diagnose-only.
|
|
33
36
|
- Search relevant code, logs, recent history, and project postmortems before declaring the bug novel.
|
|
@@ -35,6 +38,7 @@ entry_gate:
|
|
|
35
38
|
exit_criteria:
|
|
36
39
|
- "`task.md#Root Cause Contract` proves symptom site, first bad state, violated contract, original trigger, counterfactual proof, and escape reason."
|
|
37
40
|
- "`task.md#Root Cause Contract` records investigation mode, feedback loop, evidence chain, tested hypotheses, boundary/backward/reference evidence when applicable, correct test seam, and diagnose-only boundary when applicable."
|
|
41
|
+
- "`task.md#Root Cause Contract` contains ASCII Branch Chain Analysis trees for problem chain, solution chain, and impact chain, tracing upstream root cause and downstream blast radius to the deepest proven prompt/code/provider/data source; tree connector characters stay ASCII while node text follows the configured output language."
|
|
38
42
|
- "`task.md` contains the repair tasks needed by `cc-do`."
|
|
39
43
|
- "Evidence gaps produce Evidence Request, diagnose-only, or reroute tasks instead of fake repair tasks."
|
|
40
44
|
- "No process file is created beyond `task.md`."
|
|
@@ -74,12 +78,13 @@ NO REPAIR WITHOUT A FROZEN ROOT-CAUSE CONTRACT
|
|
|
74
78
|
## Investigation Loop
|
|
75
79
|
|
|
76
80
|
1. Classify:复现优先、diff trace、boundary probe、flaky、performance、workflow forensics 或 diagnose-only。
|
|
77
|
-
2.
|
|
78
|
-
3.
|
|
79
|
-
4.
|
|
80
|
-
5.
|
|
81
|
-
6.
|
|
82
|
-
7.
|
|
81
|
+
2. Anchor:分配 FIX change key 后运行 `../cc-dev/scripts/prepare-change-worktree.sh --change-key <FIX-...>`,从主 checkout 创建或复用独立 FIX worktree;进入返回的 `WORKTREE_PATH` 后必须得到 exact-case `FIX/...` 分支。大小写碰撞或目标分支不匹配都是 setup blocker。
|
|
82
|
+
3. Reproduce:用测试、脚本、日志、浏览器路径或最小 harness 证明同一个症状。
|
|
83
|
+
4. Trace:找到 first bad state,而不是只给 symptom guard。
|
|
84
|
+
5. Hypothesize:列候选,写证伪方法,逐个打掉。
|
|
85
|
+
6. Prove:完成 Root Cause Proof Ladder。
|
|
86
|
+
7. Freeze:把根因、ASCII Branch Chain Analysis、修复边界、测试 seam、allowed/forbidden files 写进 `task.md`。
|
|
87
|
+
8. Commit:提交 Investigate 阶段,再交给 `cc-do`。
|
|
83
88
|
|
|
84
89
|
## Investigation Modes
|
|
85
90
|
|
|
@@ -111,6 +116,78 @@ NO REPAIR WITHOUT A FROZEN ROOT-CAUSE CONTRACT
|
|
|
111
116
|
9. Correct Test Seam:说明 regression test 是否覆盖真实触发链;只能测私有实现时,先记录设计缺口或 reroute。
|
|
112
117
|
10. Repair Boundary:affected module、allowed files、forbidden files、blast radius、split-or-reroute decision。
|
|
113
118
|
|
|
119
|
+
## ASCII Branch Chain Analysis
|
|
120
|
+
|
|
121
|
+
`task.md#Root Cause Contract` 必须包含 ASCII 分叉树代码块。调查要先向上追坏状态来源,再向下追影响面,最后把修复路径也画出来。
|
|
122
|
+
|
|
123
|
+
Language rule:
|
|
124
|
+
|
|
125
|
+
- Tree structure tokens must stay ASCII: `|--`, `` `-- ``, `|`, spaces, and plain punctuation.
|
|
126
|
+
- Node labels, placeholder text, explanations, and evidence summaries must follow `Output language` in `task.md`.
|
|
127
|
+
- If `Output language` is unset, use the current conversation language and record the assumption.
|
|
128
|
+
- Do not hard-code English labels such as `Problem Chain` when the configured output language is not English.
|
|
129
|
+
- Use the Label table as the shared source for chain titles, node labels, and placeholder text.
|
|
130
|
+
|
|
131
|
+
Label table:
|
|
132
|
+
|
|
133
|
+
| Semantic slot | en | zh-CN |
|
|
134
|
+
| --- | --- | --- |
|
|
135
|
+
| problemChain | Problem Chain | 问题链 |
|
|
136
|
+
| symptomMarker | SYMPTOM | 症状 |
|
|
137
|
+
| failureSite | Failure site | 失败位置 |
|
|
138
|
+
| directCaller | direct caller | 直接调用方 |
|
|
139
|
+
| badValueState | bad value/state | 错误值或状态 |
|
|
140
|
+
| upstreamOrigin | Upstream origin | 上游源头 |
|
|
141
|
+
| codeSource | code source | 代码来源 |
|
|
142
|
+
| promptSource | prompt source | 提示词来源 |
|
|
143
|
+
| trigger | trigger | 触发条件 |
|
|
144
|
+
| rejectedSymptomFix | Rejected symptom fix | 已拒绝的症状修补 |
|
|
145
|
+
| solutionChain | Solution Chain | 解决链 |
|
|
146
|
+
| fixMarker | FIX | 修复 |
|
|
147
|
+
| firstBadStateRepair | First bad state repair | 首个错误状态修复 |
|
|
148
|
+
| contractRestored | Contract restored | 恢复的合同 |
|
|
149
|
+
| regressionSeam | Regression seam | 回归缝隙 |
|
|
150
|
+
| escapePrevention | Escape prevention | 逃逸预防 |
|
|
151
|
+
| impactChain | Impact Chain | 影响链 |
|
|
152
|
+
| blastRadiusMarker | BLAST RADIUS | 影响范围 |
|
|
153
|
+
| upstreamPreserved | Upstream preserved | 保持不变的上游 |
|
|
154
|
+
| downstreamAffected | Downstream affected | 受影响下游 |
|
|
155
|
+
| riskBranch | Risk branch | 风险分支 |
|
|
156
|
+
| verificationBranch | Verification branch | 验证分支 |
|
|
157
|
+
|
|
158
|
+
```text
|
|
159
|
+
<problemChain>
|
|
160
|
+
<symptomMarker>: <observed failure>
|
|
161
|
+
|-- <failureSite>: <file / command / UI / artifact>
|
|
162
|
+
| |-- <directCaller>: <caller>
|
|
163
|
+
| `-- <badValueState>: <first observed bad state>
|
|
164
|
+
|-- <upstreamOrigin>: <earliest proven creator>
|
|
165
|
+
| |-- <codeSource>: <file / function / config>
|
|
166
|
+
| |-- <promptSource>: <prompt / instruction / provider contract, or N/A>
|
|
167
|
+
| `-- <trigger>: <input / event / race / migration>
|
|
168
|
+
`-- <rejectedSymptomFix>: <why guard-at-failure is insufficient>
|
|
169
|
+
|
|
170
|
+
<solutionChain>
|
|
171
|
+
<fixMarker>: <minimal repair>
|
|
172
|
+
|-- <firstBadStateRepair>: <change>
|
|
173
|
+
|-- <contractRestored>: <invariant>
|
|
174
|
+
|-- <regressionSeam>: <test / harness / replay>
|
|
175
|
+
`-- <escapePrevention>: <guard / assertion / operator check>
|
|
176
|
+
|
|
177
|
+
<impactChain>
|
|
178
|
+
<blastRadiusMarker>: <affected behavior>
|
|
179
|
+
|-- <upstreamPreserved>: <contracts that must stay unchanged>
|
|
180
|
+
|-- <downstreamAffected>: <callers / artifacts / docs / release>
|
|
181
|
+
|-- <riskBranch>: <possible regression>
|
|
182
|
+
`-- <verificationBranch>: <commands / evidence>
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
规则:
|
|
186
|
+
|
|
187
|
+
- `Upstream origin` 必须追到最早被证据支持的制造点;如果最早点可能是提示词,必须写出精确 prompt / provider 合同位置。
|
|
188
|
+
- `Impact Chain` 必须覆盖下游调用方、artifact、operator 或用户可见行为;只列修复文件不合格。
|
|
189
|
+
- 缺 L2、L4 或 L5 时,树里写 `unknown -> Evidence Request`,并进入 diagnose-only / reroute。
|
|
190
|
+
|
|
114
191
|
## Root Cause Proof Ladder
|
|
115
192
|
|
|
116
193
|
- L1 Symptom Site
|
|
@@ -96,6 +96,62 @@ Correct Test Seam:
|
|
|
96
96
|
- Mock boundary:
|
|
97
97
|
- Private implementation assertions avoided:
|
|
98
98
|
|
|
99
|
+
ASCII Branch Chain Analysis:
|
|
100
|
+
Language rule: keep connector tokens ASCII; write node labels and evidence text in `Output language`.
|
|
101
|
+
|
|
102
|
+
Label table:
|
|
103
|
+
| Semantic slot | en | zh-CN |
|
|
104
|
+
| --- | --- | --- |
|
|
105
|
+
| problemChain | Problem Chain | 问题链 |
|
|
106
|
+
| symptomMarker | SYMPTOM | 症状 |
|
|
107
|
+
| failureSite | Failure site | 失败位置 |
|
|
108
|
+
| directCaller | direct caller | 直接调用方 |
|
|
109
|
+
| badValueState | bad value/state | 错误值或状态 |
|
|
110
|
+
| upstreamOrigin | Upstream origin | 上游源头 |
|
|
111
|
+
| codeSource | code source | 代码来源 |
|
|
112
|
+
| promptSource | prompt source | 提示词来源 |
|
|
113
|
+
| trigger | trigger | 触发条件 |
|
|
114
|
+
| rejectedSymptomFix | Rejected symptom fix | 已拒绝的症状修补 |
|
|
115
|
+
| solutionChain | Solution Chain | 解决链 |
|
|
116
|
+
| fixMarker | FIX | 修复 |
|
|
117
|
+
| firstBadStateRepair | First bad state repair | 首个错误状态修复 |
|
|
118
|
+
| contractRestored | Contract restored | 恢复的合同 |
|
|
119
|
+
| regressionSeam | Regression seam | 回归缝隙 |
|
|
120
|
+
| escapePrevention | Escape prevention | 逃逸预防 |
|
|
121
|
+
| impactChain | Impact Chain | 影响链 |
|
|
122
|
+
| blastRadiusMarker | BLAST RADIUS | 影响范围 |
|
|
123
|
+
| upstreamPreserved | Upstream preserved | 保持不变的上游 |
|
|
124
|
+
| downstreamAffected | Downstream affected | 受影响下游 |
|
|
125
|
+
| riskBranch | Risk branch | 风险分支 |
|
|
126
|
+
| verificationBranch | Verification branch | 验证分支 |
|
|
127
|
+
|
|
128
|
+
```text
|
|
129
|
+
<problemChain>
|
|
130
|
+
<symptomMarker>: <observed failure>
|
|
131
|
+
|-- <failureSite>: <file / command / UI / artifact>
|
|
132
|
+
| |-- <directCaller>: <caller>
|
|
133
|
+
| `-- <badValueState>: <first observed bad state>
|
|
134
|
+
|-- <upstreamOrigin>: <earliest proven creator>
|
|
135
|
+
| |-- <codeSource>: <file / function / config>
|
|
136
|
+
| |-- <promptSource>: <prompt / instruction / provider contract, or N/A>
|
|
137
|
+
| `-- <trigger>: <input / event / race / migration>
|
|
138
|
+
`-- <rejectedSymptomFix>: <why guard-at-failure is insufficient>
|
|
139
|
+
|
|
140
|
+
<solutionChain>
|
|
141
|
+
<fixMarker>: <minimal repair>
|
|
142
|
+
|-- <firstBadStateRepair>: <change>
|
|
143
|
+
|-- <contractRestored>: <invariant>
|
|
144
|
+
|-- <regressionSeam>: <test / harness / replay>
|
|
145
|
+
`-- <escapePrevention>: <guard / assertion / operator check>
|
|
146
|
+
|
|
147
|
+
<impactChain>
|
|
148
|
+
<blastRadiusMarker>: <affected behavior>
|
|
149
|
+
|-- <upstreamPreserved>: <contracts that must stay unchanged>
|
|
150
|
+
|-- <downstreamAffected>: <callers / artifacts / docs / release>
|
|
151
|
+
|-- <riskBranch>: <possible regression>
|
|
152
|
+
`-- <verificationBranch>: <commands / evidence>
|
|
153
|
+
```
|
|
154
|
+
|
|
99
155
|
Verification:
|
|
100
156
|
-
|
|
101
157
|
|
|
@@ -114,7 +170,7 @@ Risk / Escalate If:
|
|
|
114
170
|
|
|
115
171
|
Codex / ClaudeCode must treat this `task.md` as the only repair contract.
|
|
116
172
|
|
|
117
|
-
- CLI resolver: all workflow commands must run through `.claude/skills/cc-dev/scripts/resolve-cc-devflow.sh` or `.codex/skills/cc-dev/scripts/resolve-cc-devflow.sh`; if it cannot prove `
|
|
173
|
+
- CLI resolver: all workflow commands must run through `.claude/skills/cc-dev/scripts/resolve-cc-devflow.sh` or `.codex/skills/cc-dev/scripts/resolve-cc-devflow.sh`; if it cannot prove `next-change-key`, stop blocked.
|
|
118
174
|
- Do not generate process files beyond this `task.md`.
|
|
119
175
|
- Complete tasks with `scripts/mark-task-complete.sh --tasks devflow/changes/<change-key>/task.md --task <task-id>`.
|
|
120
176
|
- Stage commit rule: when PDCA or IDCA finishes in the current environment, commit the completed stage to Git.
|
|
@@ -1,5 +1,28 @@
|
|
|
1
1
|
# CC-Plan Skill Changelog
|
|
2
2
|
|
|
3
|
+
## v3.10.7 - 2026-05-17
|
|
4
|
+
|
|
5
|
+
- require new plans to prepare an isolated change worktree before writing `task.md`
|
|
6
|
+
- keep the main checkout bound to `main` instead of treating it as a branch-switching work surface
|
|
7
|
+
|
|
8
|
+
## v3.10.6 - 2026-05-17
|
|
9
|
+
|
|
10
|
+
- require ASCII branch-chain node labels and evidence text to follow `Output language` while keeping tree connector tokens ASCII
|
|
11
|
+
- replace hard-coded English branch-chain examples with an `en` / `zh-CN` label table and semantic slots
|
|
12
|
+
|
|
13
|
+
## v3.10.5 - 2026-05-17
|
|
14
|
+
|
|
15
|
+
- require ASCII Branch Chain Analysis in `task.md#Contract Summary` so requirement plans trace upstream sources, deepest affected code or prompt/provider layer, downstream business impact, and verification seams
|
|
16
|
+
- add the branch-chain section to the plan task template
|
|
17
|
+
|
|
18
|
+
## v3.10.4 - 2026-05-14
|
|
19
|
+
|
|
20
|
+
- require product discovery before engineering planning
|
|
21
|
+
|
|
22
|
+
## v3.10.3 - 2026-05-14
|
|
23
|
+
|
|
24
|
+
- add Second-Move Review before plan approval
|
|
25
|
+
|
|
3
26
|
## v3.10.2 - 2026-05-14
|
|
4
27
|
|
|
5
28
|
- restore the planning flow that was over-pruned during artifact minimization: requirement reality, system shape, interface/data contract, abstraction boundary, execution architecture, task contract, and final approval
|
|
@@ -14,10 +14,12 @@
|
|
|
14
14
|
2. Git commits record Plan completion; do not create process files beyond `task.md`.
|
|
15
15
|
3. Current branch must bind to the full change key before writing durable output.
|
|
16
16
|
4. The task list must let `cc-do` continue without chat memory.
|
|
17
|
-
5. Ask only decisions that change scope, design, task split, interface, or verification; otherwise choose from repo evidence.
|
|
18
|
-
6.
|
|
19
|
-
7.
|
|
20
|
-
8.
|
|
17
|
+
5. Ask only decisions that change product value, product shape, scope, design, task split, interface, or verification; otherwise choose from repo evidence.
|
|
18
|
+
6. Product/creative questions come before engineering questions when worth or shape is unclear.
|
|
19
|
+
7. Preserve planning thought inside `task.md#Contract Summary`: product/creative discovery, requirement reality, system shape, interface/data contract, abstraction boundary, execution architecture, task contract, Second-Move Review, and final approval.
|
|
20
|
+
8. Non-trivial plans complete Second-Move Review: first good move, simpler move, better architecture, selected move, and rejected tradeoff. Tiny plans still record why the short path is enough.
|
|
21
|
+
9. Non-trivial plans use at least two confirmation rounds unless source evidence already answers one: product/creative confirmation, then engineering/task confirmation.
|
|
22
|
+
10. User-facing decisions use `D<N>` questions with recommendation, options, impact, and STOP.
|
|
21
23
|
|
|
22
24
|
## Required Task Fields
|
|
23
25
|
|
|
@@ -37,10 +39,11 @@ Each task block includes:
|
|
|
37
39
|
`task.md#Contract Summary` includes:
|
|
38
40
|
|
|
39
41
|
- Source handoff and repo evidence
|
|
42
|
+
- Product/creative discovery: worth doing, desired product shape, narrowest wedge, 10x/better version, do-nothing consequence
|
|
40
43
|
- Requirement reality
|
|
41
44
|
- Decision questions and answers
|
|
42
45
|
- Planning flow table
|
|
43
|
-
-
|
|
46
|
+
- Second-Move Review when non-trivial
|
|
44
47
|
- Approved direction and non-goals
|
|
45
48
|
- User stories and edge stories
|
|
46
49
|
- Engineering review gate
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: cc-plan
|
|
3
|
-
version: 3.10.
|
|
3
|
+
version: 3.10.7
|
|
4
4
|
description: Use when a requirement, roadmap item, or bug needs scope clarification, design decisions, and executable task breakdown before coding starts.
|
|
5
5
|
triggers:
|
|
6
6
|
- 帮我规划这个需求
|
|
@@ -15,6 +15,8 @@ reads:
|
|
|
15
15
|
- assets/TASKS_TEMPLATE.md
|
|
16
16
|
- references/planning-contract.md
|
|
17
17
|
- ../cc-dev/scripts/resolve-cc-devflow.sh
|
|
18
|
+
- ../cc-dev/scripts/prepare-change-worktree.sh
|
|
19
|
+
- ../cc-dev/scripts/ensure-work-branch.sh
|
|
18
20
|
- ../cc-roadmap/scripts/locate-roadmap-item.sh
|
|
19
21
|
- ../cc-roadmap/scripts/sync-roadmap-progress.sh
|
|
20
22
|
writes:
|
|
@@ -25,16 +27,19 @@ effects:
|
|
|
25
27
|
- roadmap progress sync when a source item exists
|
|
26
28
|
- Git commit after the Plan stage is complete
|
|
27
29
|
entry_gate:
|
|
28
|
-
- Resolve the CLI with `../cc-dev/scripts/resolve-cc-devflow.sh require
|
|
30
|
+
- Resolve the CLI with `../cc-dev/scripts/resolve-cc-devflow.sh require next-change-key config` before workflow commands.
|
|
29
31
|
- Assign a canonical REQ/FIX change key through `next-change-key` before writing `task.md`.
|
|
30
|
-
-
|
|
32
|
+
- Prepare an isolated change worktree immediately after the change key exists; keep the main checkout on `main`.
|
|
33
|
+
- Enforce the Worktree Branch Contract inside the returned change worktree before writing `task.md`.
|
|
31
34
|
- Read repo evidence before asking the user: roadmap handoff, specs, relevant code/tests/docs, recent commits, and existing task truth when present.
|
|
32
|
-
- Run the planning flow before task generation: requirement reality, system shape, interface/data contract, abstraction boundary, execution architecture, task contract, and final approval.
|
|
35
|
+
- Run the planning flow before task generation: product/creative discovery, requirement reality, system shape, interface/data contract, abstraction boundary, execution architecture, task contract, Second-Move Review, and final approval.
|
|
33
36
|
- Ask with the Decision Question Protocol when the answer changes scope, design, implementation boundary, or verification.
|
|
34
37
|
exit_criteria:
|
|
35
38
|
- "`task.md#Contract Summary` states the approved solution, non-goals, frozen decisions, work branch, user stories, decision questions, planning-flow results, review gate, verification expectations, and open assumptions."
|
|
39
|
+
- "`task.md#Contract Summary` contains an ASCII Branch Chain Analysis for requirement impact and business impact, tracing upstream sources, current code path, deepest affected layer, downstream blast radius, and prompt/provider contracts when involved; tree connector characters stay ASCII while node text follows the configured output language."
|
|
36
40
|
- "`task.md` contains executable task blocks generated from `assets/TASKS_TEMPLATE.md`."
|
|
37
|
-
- "Non-trivial plans
|
|
41
|
+
- "Non-trivial plans complete product/creative discovery before engineering design: worth doing, desired product shape, narrowest wedge, 10x/better version, and do-nothing consequence."
|
|
42
|
+
- "Non-trivial plans complete Second-Move Review before approval: first good move, simpler move, better architecture, selected move, and rejected tradeoff."
|
|
38
43
|
- "User decisions that changed the plan were asked as D<N> questions and recorded in `task.md`."
|
|
39
44
|
- "No process file is created beyond `task.md`."
|
|
40
45
|
- "Source roadmap progress is synced or explicitly skipped in the final response."
|
|
@@ -60,12 +65,13 @@ tool_budget:
|
|
|
60
65
|
|
|
61
66
|
## Operating Contract
|
|
62
67
|
|
|
63
|
-
1. 先用 resolver 找到当前仓库的 `cc-devflow`,并确认支持 `
|
|
68
|
+
1. 先用 resolver 找到当前仓库的 `cc-devflow`,并确认支持 `next-change-key`、`config`。
|
|
64
69
|
2. 用 `next-change-key --prefix REQ|FIX --description "..."` 生成 `changeId` 和完整 `changeKey`,不要手动扫描编号。
|
|
65
|
-
3. 分配 change key
|
|
66
|
-
4.
|
|
67
|
-
5.
|
|
68
|
-
6.
|
|
70
|
+
3. 分配 change key 后立刻运行 `../cc-dev/scripts/prepare-change-worktree.sh --change-key <REQ/FIX-...>`,从主 checkout 创建或复用独立 change worktree;主目录必须继续绑定 `main`。
|
|
71
|
+
4. 进入脚本返回的 `WORKTREE_PATH` 后,再由 `../cc-dev/scripts/ensure-work-branch.sh --change-key <REQ/FIX-...>` 锚定 exact-case 分支:`REQ-003-copy-link` 对应 `REQ/003-copy-link`,`FIX-014-auth-race` 对应 `FIX/014-auth-race`。大小写碰撞或目标分支不匹配都是 setup blocker。
|
|
72
|
+
5. 写 task blocks 前先确认方案。tiny 计划仍要过 planning flow,只是更短。
|
|
73
|
+
6. `task.md` 必须包含 `Contract Summary`、ASCII Branch Chain Analysis、决策问题、planning flow、review gate、任务列表、验证命令、完成证据、禁止重决策事项和阶段 commit 要求。
|
|
74
|
+
7. 完成 Plan 后提交 Git commit。下一阶段从 Git history 和 `task.md` 恢复,不靠过程文件。
|
|
69
75
|
|
|
70
76
|
```bash
|
|
71
77
|
DEVFLOW=".claude/skills/cc-dev/scripts/resolve-cc-devflow.sh"
|
|
@@ -76,8 +82,11 @@ bash "$DEVFLOW" config resolve --format policy
|
|
|
76
82
|
|
|
77
83
|
- 用最小可逆方案解决真实需求,不扩张到假想未来。
|
|
78
84
|
- 缺证据就写 assumption,不伪装成事实。
|
|
79
|
-
-
|
|
85
|
+
- 工程计划前先做产品/创意确认:这个问题值不值得做,用户想得到什么体验,最窄可交付楔子是什么,10x / better version 是什么,不做会损失什么。
|
|
86
|
+
- 非 trivial 计划至少经过两轮用户确认:先确认产品价值和形态,再确认工程方案和任务合同;只有 roadmap / spec 已经给出等价证据时才能记录 skip reason。
|
|
87
|
+
- 第一手好方案不能直接冻结;非 trivial 计划必须过 Second-Move Review:先写 first good move,再找 simpler move 和 better architecture,最后选择一个当前可执行的 move。
|
|
80
88
|
- 计划先做上下文和设计判断,再拆 task;不能把架构、接口、字段、测试缝隙留给 `cc-do` 猜。
|
|
89
|
+
- 需求链路必须画成 ASCII 分叉树:从用户需求追到现有入口、调用方、状态/数据流、最深底层影响点,再向下游展开业务影响、风险和验证面。
|
|
81
90
|
- 用户视角必须清楚:真实用户 / operator、status quo、最痛失败场景、最小成功信号和非目标。
|
|
82
91
|
- 行为变更任务按 tracer bullet 写:`[TEST] -> [IMPL] -> [REFACTOR]`,不要水平切层。
|
|
83
92
|
- 每个任务写清目标、文件、依赖、TDD phase、读什么、怎么验证、完成证据。
|
|
@@ -87,19 +96,81 @@ bash "$DEVFLOW" config resolve --format policy
|
|
|
87
96
|
|
|
88
97
|
先把调查和引导结果写进 `task.md#Contract Summary`,再生成任务。不要把这些内容拆成其它过程文件。
|
|
89
98
|
|
|
90
|
-
1.
|
|
91
|
-
2.
|
|
92
|
-
3.
|
|
93
|
-
4.
|
|
94
|
-
5.
|
|
95
|
-
6.
|
|
96
|
-
7.
|
|
99
|
+
1. Product / Creative Discovery:确认这个问题值不值得做、目标体验、最窄楔子、10x / better version、do-nothing consequence;证据不足时先问用户,不先谈实现。
|
|
100
|
+
2. Requirement Reality:确认真实用户 / operator、当前 workaround、最痛失败场景、最小成功信号、非目标。
|
|
101
|
+
3. System Shape:确认现有代码链路、模块归属、状态 / 数据流、复用点、边界外系统和必须保留的不变量。
|
|
102
|
+
4. Interface / Data Contract:确认 public interface、调用方、输入输出、关键字段、错误形态、权限 / 边界和命名来源。
|
|
103
|
+
5. Abstraction Boundary:确认复杂度藏在哪个模块,哪些抽象被拒绝,哪些公共方法必须保持小而深。
|
|
104
|
+
6. Execution Architecture:确认 foundation、core logic、integration、polish/tests 阶段的冻结决策、文件职责、耦合风险和失败恢复。
|
|
105
|
+
7. Task Contract:确认每条 tracer bullet 的 user / edge story、Red test name、public seam、Green minimality guard、refactor candidates 和 2-5 分钟任务粒度。
|
|
106
|
+
8. Second-Move Review:记录 first good move、simpler move、better architecture、selected move 和 rejected tradeoff;tiny 计划可压成一句,非 trivial 计划必须说明为什么没有选择另一个好走法。
|
|
107
|
+
9. Final Approval:展示冻结方案和任务合同摘要;用户批准前不生成执行 task blocks。
|
|
108
|
+
|
|
109
|
+
`tiny-design` 可以把每轮压成一句话;`full-design` 必须保留足够证据让执行者不二次设计。任一轮 `blocked` 时,只能问一个 blocking question、拆回 roadmap / 多个 REQ/FIX,或记录用户明确接受的人工边界。非 trivial 计划的产品/创意确认和工程方案确认必须分成至少两次确认,不能一次性把所有问题塞给用户。
|
|
110
|
+
|
|
111
|
+
## ASCII Branch Chain Analysis
|
|
112
|
+
|
|
113
|
+
`task.md#Contract Summary` 必须包含一个 ASCII 分叉树代码块。它不是插图,是执行合同的一部分。
|
|
114
|
+
|
|
115
|
+
Language rule:
|
|
116
|
+
|
|
117
|
+
- Tree structure tokens must stay ASCII: `|--`, `` `-- ``, `|`, spaces, and plain punctuation.
|
|
118
|
+
- Node labels, placeholder text, explanations, and evidence summaries must follow `Output language` in `task.md`.
|
|
119
|
+
- If `Output language` is unset, use the current conversation language and record the assumption.
|
|
120
|
+
- Do not hard-code English labels such as `Requirement Impact Chain` when the configured output language is not English.
|
|
121
|
+
- Use the Label table as the shared source for chain titles, node labels, and placeholder text.
|
|
122
|
+
|
|
123
|
+
Label table:
|
|
124
|
+
|
|
125
|
+
| Semantic slot | en | zh-CN |
|
|
126
|
+
| --- | --- | --- |
|
|
127
|
+
| requirementChain | Requirement Impact Chain | 需求影响链 |
|
|
128
|
+
| requirementMarker | REQ | 需求 |
|
|
129
|
+
| upstreamSource | Upstream source | 上游来源 |
|
|
130
|
+
| currentCodePath | Current code path | 当前代码路径 |
|
|
131
|
+
| caller | caller | 调用方 |
|
|
132
|
+
| dataOrState | data or state | 数据或状态 |
|
|
133
|
+
| deepestAffectedLayer | deepest affected layer | 最深影响层 |
|
|
134
|
+
| requiredChange | Required change | 必要变更 |
|
|
135
|
+
| verificationSeam | Verification seam | 验证缝隙 |
|
|
136
|
+
| businessChain | Business Impact Chain | 业务影响链 |
|
|
137
|
+
| outcomeMarker | OUTCOME | 结果 |
|
|
138
|
+
| directBehaviorImpact | Direct behavior impact | 直接行为影响 |
|
|
139
|
+
| downstreamImpact | Downstream impact | 下游影响 |
|
|
140
|
+
| riskBranch | Risk branch | 风险分支 |
|
|
141
|
+
| nonGoalBranch | Non-goal branch | 非目标分支 |
|
|
97
142
|
|
|
98
|
-
|
|
143
|
+
```text
|
|
144
|
+
<requirementChain>
|
|
145
|
+
<requirementMarker>: <user-visible change>
|
|
146
|
+
|-- <upstreamSource>: <roadmap / issue / user request / existing task>
|
|
147
|
+
|-- <currentCodePath>: <entry>
|
|
148
|
+
| |-- <caller>: <file / command / UI / API>
|
|
149
|
+
| |-- <dataOrState>: <field / config / artifact>
|
|
150
|
+
| `-- <deepestAffectedLayer>: <module / prompt / provider contract / storage>
|
|
151
|
+
|-- <requiredChange>: <smallest behavior delta>
|
|
152
|
+
`-- <verificationSeam>: <public test / command / artifact>
|
|
153
|
+
|
|
154
|
+
<businessChain>
|
|
155
|
+
<outcomeMarker>: <operator / user value>
|
|
156
|
+
|-- <directBehaviorImpact>: <what changes for user>
|
|
157
|
+
|-- <downstreamImpact>: <consumers / docs / examples / release>
|
|
158
|
+
|-- <riskBranch>: <regression / migration / support / cost>
|
|
159
|
+
`-- <nonGoalBranch>: <explicitly not changed>
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
规则:
|
|
163
|
+
|
|
164
|
+
- 先向上追来源,再向下追影响面;不要只写目标文件列表。
|
|
165
|
+
- 必须找到“最深底层会影响的链路”:数据模型、状态机、CLI/runtime、prompt、provider contract、存储或外部边界。
|
|
166
|
+
- 若需求影响提示词、agent 指令、provider 参数、生成 artifact,树里必须写出精确 prompt/provider 合同位置。
|
|
167
|
+
- 没有证据的分支写 `unknown -> Evidence Request`,不能伪装成已确认。
|
|
99
168
|
|
|
100
169
|
## Decision Question Protocol
|
|
101
170
|
|
|
102
171
|
只在答案会改变范围、方案、接口、任务切分或验证口径时提问。能从 repo evidence、roadmap、spec、测试或 git history 确认的,不问用户。
|
|
172
|
+
提问前先做一次 Second-Move Review:这个问题是否能由 repo evidence 回答,是否把用户拉进实现细节,是否有更高质量的问题能一次冻结更多下游决策。
|
|
173
|
+
产品/创意问题优先于工程问题。若“值不值得做”或“做成什么样”仍不清楚,只问产品/创意层 D<N>;不要提前问文件、接口、字段、测试实现。
|
|
103
174
|
|
|
104
175
|
固定格式:
|
|
105
176
|
|
|
@@ -131,7 +202,7 @@ STOP: wait for the user answer before continuing.
|
|
|
131
202
|
|
|
132
203
|
1. Existing leverage map:每个子问题先映射到现有代码、脚本、spec、模板或测试。
|
|
133
204
|
2. Scope challenge:超过 8 个文件、2 个新 service/class、或跨模块连锁时,说明为什么不是过度设计。
|
|
134
|
-
3.
|
|
205
|
+
3. Second-Move Review:非 trivial 方案必须比较 first good move、simpler move、better architecture,并说明 selected move 与 rejected tradeoff。
|
|
135
206
|
4. Domain language check:核心名词、文件名、测试名、任务标题对齐项目真相;没有来源就写 assumption。
|
|
136
207
|
5. Interface depth check:公共面小而深,复杂度藏进模块内部,边界 adapter 是具体操作而不是 generic catch-all。
|
|
137
208
|
6. Test seam check:Red 任务从公共接口、调用方流程或用户可见路径证明行为;不要测私有实现细节。
|
|
@@ -26,6 +26,14 @@ Source Handoff:
|
|
|
26
26
|
- Existing leverage:
|
|
27
27
|
- Canonical language:
|
|
28
28
|
|
|
29
|
+
Product / Creative Discovery:
|
|
30
|
+
- Worth doing because:
|
|
31
|
+
- Desired product shape:
|
|
32
|
+
- Narrowest wedge:
|
|
33
|
+
- 10x / better version:
|
|
34
|
+
- Do-nothing consequence:
|
|
35
|
+
- Product confirmation rounds:
|
|
36
|
+
|
|
29
37
|
Requirement Reality:
|
|
30
38
|
- User / operator:
|
|
31
39
|
- Status quo workaround:
|
|
@@ -41,19 +49,22 @@ Decision Questions:
|
|
|
41
49
|
Planning Flow:
|
|
42
50
|
| Round | Status | Evidence / decision | Opens task? |
|
|
43
51
|
|-------|--------|---------------------|-------------|
|
|
52
|
+
| Product / Creative Discovery | confirmed | | |
|
|
44
53
|
| Requirement Reality | confirmed | | |
|
|
45
54
|
| System Shape | confirmed | | |
|
|
46
55
|
| Interface / Data Contract | confirmed | | |
|
|
47
56
|
| Abstraction Boundary | confirmed | | |
|
|
48
57
|
| Execution Architecture | confirmed | | |
|
|
49
58
|
| Task Contract | confirmed | | |
|
|
59
|
+
| Second-Move Review | confirmed | | |
|
|
50
60
|
| Final Approval | confirmed | | yes |
|
|
51
61
|
|
|
52
|
-
|
|
53
|
-
-
|
|
54
|
-
-
|
|
55
|
-
-
|
|
56
|
-
-
|
|
62
|
+
Second-Move Review:
|
|
63
|
+
- First good move:
|
|
64
|
+
- Simpler move:
|
|
65
|
+
- Better architecture:
|
|
66
|
+
- Selected move:
|
|
67
|
+
- Rejected tradeoff:
|
|
57
68
|
|
|
58
69
|
Approved Direction:
|
|
59
70
|
-
|
|
@@ -71,6 +82,47 @@ Engineering Review Gate:
|
|
|
71
82
|
- Mock boundary:
|
|
72
83
|
- Feedback loop:
|
|
73
84
|
|
|
85
|
+
ASCII Branch Chain Analysis:
|
|
86
|
+
Language rule: keep connector tokens ASCII; write node labels and evidence text in `Output language`.
|
|
87
|
+
|
|
88
|
+
Label table:
|
|
89
|
+
| Semantic slot | en | zh-CN |
|
|
90
|
+
| --- | --- | --- |
|
|
91
|
+
| requirementChain | Requirement Impact Chain | 需求影响链 |
|
|
92
|
+
| requirementMarker | REQ | 需求 |
|
|
93
|
+
| upstreamSource | Upstream source | 上游来源 |
|
|
94
|
+
| currentCodePath | Current code path | 当前代码路径 |
|
|
95
|
+
| caller | caller | 调用方 |
|
|
96
|
+
| dataOrState | data or state | 数据或状态 |
|
|
97
|
+
| deepestAffectedLayer | deepest affected layer | 最深影响层 |
|
|
98
|
+
| requiredChange | Required change | 必要变更 |
|
|
99
|
+
| verificationSeam | Verification seam | 验证缝隙 |
|
|
100
|
+
| businessChain | Business Impact Chain | 业务影响链 |
|
|
101
|
+
| outcomeMarker | OUTCOME | 结果 |
|
|
102
|
+
| directBehaviorImpact | Direct behavior impact | 直接行为影响 |
|
|
103
|
+
| downstreamImpact | Downstream impact | 下游影响 |
|
|
104
|
+
| riskBranch | Risk branch | 风险分支 |
|
|
105
|
+
| nonGoalBranch | Non-goal branch | 非目标分支 |
|
|
106
|
+
|
|
107
|
+
```text
|
|
108
|
+
<requirementChain>
|
|
109
|
+
<requirementMarker>: <user-visible change>
|
|
110
|
+
|-- <upstreamSource>: <roadmap / issue / user request / existing task>
|
|
111
|
+
|-- <currentCodePath>: <entry>
|
|
112
|
+
| |-- <caller>: <file / command / UI / API>
|
|
113
|
+
| |-- <dataOrState>: <field / config / artifact>
|
|
114
|
+
| `-- <deepestAffectedLayer>: <module / prompt / provider contract / storage>
|
|
115
|
+
|-- <requiredChange>: <smallest behavior delta>
|
|
116
|
+
`-- <verificationSeam>: <public test / command / artifact>
|
|
117
|
+
|
|
118
|
+
<businessChain>
|
|
119
|
+
<outcomeMarker>: <operator / user value>
|
|
120
|
+
|-- <directBehaviorImpact>: <what changes for user>
|
|
121
|
+
|-- <downstreamImpact>: <consumers / docs / examples / release>
|
|
122
|
+
|-- <riskBranch>: <regression / migration / support / cost>
|
|
123
|
+
`-- <nonGoalBranch>: <explicitly not changed>
|
|
124
|
+
```
|
|
125
|
+
|
|
74
126
|
Acceptance:
|
|
75
127
|
-
|
|
76
128
|
|
|
@@ -84,7 +136,7 @@ Risk / Escalate If:
|
|
|
84
136
|
|
|
85
137
|
ClaudeCode / Codex 执行本计划时,必须把 `task.md` 当成唯一任务合同。
|
|
86
138
|
|
|
87
|
-
- CLI resolver: all workflow commands must run through `.claude/skills/cc-dev/scripts/resolve-cc-devflow.sh` or `.codex/skills/cc-dev/scripts/resolve-cc-devflow.sh`; if it cannot prove `
|
|
139
|
+
- CLI resolver: all workflow commands must run through `.claude/skills/cc-dev/scripts/resolve-cc-devflow.sh` or `.codex/skills/cc-dev/scripts/resolve-cc-devflow.sh`; if it cannot prove `next-change-key`, stop blocked.
|
|
88
140
|
- Task selection: use `scripts/select-ready-tasks.sh --tasks devflow/changes/<change-key>/task.md`.
|
|
89
141
|
- Completion: after Red/Green/Refactor evidence and review pass, run `scripts/mark-task-complete.sh --tasks devflow/changes/<change-key>/task.md --task <task-id>`.
|
|
90
142
|
- Stage commit rule: when PDCA or IDCA finishes in the current environment, commit the completed stage to Git.
|
|
@@ -95,8 +147,7 @@ DEVFLOW=".claude/skills/cc-dev/scripts/resolve-cc-devflow.sh"
|
|
|
95
147
|
if [[ ! -f "$DEVFLOW" && -f ".codex/skills/cc-dev/scripts/resolve-cc-devflow.sh" ]]; then
|
|
96
148
|
DEVFLOW=".codex/skills/cc-dev/scripts/resolve-cc-devflow.sh"
|
|
97
149
|
fi
|
|
98
|
-
bash "$DEVFLOW" require
|
|
99
|
-
bash "$DEVFLOW" query workflow-context --change <changeId> --change-key <changeKey> --cwd <repo-root> --data-only --no-trace --compact
|
|
150
|
+
bash "$DEVFLOW" require next-change-key
|
|
100
151
|
SCRIPT_ROOT=".claude/skills/cc-do/scripts"
|
|
101
152
|
if [[ ! -d "$SCRIPT_ROOT" && -d ".codex/skills/cc-do/scripts" ]]; then
|
|
102
153
|
SCRIPT_ROOT=".codex/skills/cc-do/scripts"
|
|
@@ -13,24 +13,30 @@
|
|
|
13
13
|
9. Placeholder tasks are invalid.
|
|
14
14
|
10. Behavior work uses tracer bullets and TDD unless an exception is recorded.
|
|
15
15
|
11. Roadmap sync, when needed, happens through roadmap files and Git commit, not change metadata.
|
|
16
|
+
12. Non-trivial plans complete Second-Move Review before approval; the first workable plan is not frozen until a simpler move and a better-architecture move have both been considered.
|
|
17
|
+
13. Non-trivial plans complete product/creative discovery before engineering design; if worth, shape, wedge, or 10x/better version is unclear, ask product questions before implementation questions.
|
|
18
|
+
14. Product/creative confirmation and engineering confirmation are separate rounds unless roadmap/spec evidence already answers one of them and `task.md` records the skip reason.
|
|
19
|
+
15. ASCII branch-chain connector tokens stay ASCII, but labels, evidence, and explanatory text follow `Output language`.
|
|
16
20
|
|
|
17
21
|
## Planning Flow
|
|
18
22
|
|
|
19
23
|
Every non-trivial plan confirms these rounds before task generation:
|
|
20
24
|
|
|
21
|
-
1.
|
|
22
|
-
2.
|
|
23
|
-
3.
|
|
24
|
-
4.
|
|
25
|
-
5.
|
|
26
|
-
6.
|
|
27
|
-
7.
|
|
25
|
+
1. Product/Creative Discovery: worth doing, desired product shape, narrowest wedge, 10x/better version, do-nothing consequence.
|
|
26
|
+
2. Requirement Reality: real user/operator, workaround, painful failure, smallest success signal, non-goals.
|
|
27
|
+
3. System Shape: existing code path, module owner, state/data flow, reuse point, boundary systems.
|
|
28
|
+
4. Interface/Data Contract: public seam, caller, input/output, fields, error shape, permission/boundary.
|
|
29
|
+
5. Abstraction Boundary: where complexity lives, rejected abstractions, public/private method split.
|
|
30
|
+
6. Execution Architecture: foundation/core/integration/polish decisions, file responsibility, failure recovery.
|
|
31
|
+
7. Task Contract: tracer bullets, Red test names, public seams, Green minimality, refactor candidates.
|
|
32
|
+
8. Second-Move Review: first good move, simpler move, better architecture, selected move, and rejected tradeoff.
|
|
33
|
+
9. Final Approval: approved option and task contract summary.
|
|
28
34
|
|
|
29
35
|
Tiny plans may compress a round to one evidence-backed line. Full designs must preserve enough detail that `cc-do` does not invent architecture, fields, interfaces, or tests.
|
|
30
36
|
|
|
31
37
|
## Decision Questions
|
|
32
38
|
|
|
33
|
-
Ask only when the answer changes scope, design, task split, interface, or verification. Use `D<N>` with known evidence, recommendation, 2-3 mutually exclusive options, impact, and a stop point. Record the answer in `task.md#Contract Summary`.
|
|
39
|
+
Ask only when the answer changes product value, product shape, scope, design, task split, interface, or verification. Before asking, run Second-Move Review on the question itself: can repo evidence answer it, is it too implementation-shaped for the user, and would a better question freeze more downstream decisions? Product/creative questions come before engineering questions when worth or shape is unclear. Use `D<N>` with known evidence, recommendation, 2-3 mutually exclusive options, impact, and a stop point. Record the answer in `task.md#Contract Summary`.
|
|
34
40
|
|
|
35
41
|
## Required Task Fields
|
|
36
42
|
|
|
@@ -47,4 +53,4 @@ Ask only when the answer changes scope, design, task split, interface, or verifi
|
|
|
47
53
|
|
|
48
54
|
## Review Gate
|
|
49
55
|
|
|
50
|
-
Before exit, check scope, existing leverage,
|
|
56
|
+
Before exit, check product/creative discovery, scope, existing leverage, Second-Move Review, domain language, interface depth, test seam, mock boundary, feedback loop, and failure modes. If the plan is not executable from `task.md`, it is not done.
|
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.1.3
|
|
4
|
+
|
|
5
|
+
- require ASCII PR Review Chain labels, findings, and evidence summaries to follow the PR/task/handoff output language while keeping connectors ASCII
|
|
6
|
+
- replace hard-coded English PR Review Chain examples with an `en` / `zh-CN` label table and semantic slots
|
|
7
|
+
|
|
8
|
+
## 1.1.2
|
|
9
|
+
|
|
10
|
+
- require ASCII PR Review Chains for non-trivial remote PR findings without creating local process files
|
|
11
|
+
|
|
3
12
|
## 1.1.1
|
|
4
13
|
|
|
5
14
|
- simplify PR review output persistence to a no-process-files rule
|