cc-devflow 4.5.4 → 4.5.6
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 +6 -0
- package/.claude/skills/cc-act/PLAYBOOK.md +21 -5
- package/.claude/skills/cc-act/SKILL.md +21 -11
- package/.claude/skills/cc-act/assets/PR_BRIEF_TEMPLATE.md +10 -0
- package/.claude/skills/cc-act/assets/RELEASE_NOTE_TEMPLATE.md +8 -0
- package/.claude/skills/cc-act/references/closure-contract.md +3 -0
- package/.claude/skills/cc-act/scripts/cc-act-common.sh +48 -0
- package/.claude/skills/cc-act/scripts/generate-status-report.sh +3 -0
- package/.claude/skills/cc-act/scripts/render-pr-brief.sh +6 -0
- package/.claude/skills/cc-act/scripts/sync-act-docs.sh +13 -0
- package/.claude/skills/cc-do/CHANGELOG.md +6 -0
- package/.claude/skills/cc-do/PLAYBOOK.md +7 -6
- package/.claude/skills/cc-do/SKILL.md +27 -12
- package/.claude/skills/cc-do/references/execution-recovery.md +9 -0
- package/.claude/skills/cc-investigate/CHANGELOG.md +6 -0
- package/.claude/skills/cc-investigate/PLAYBOOK.md +5 -1
- package/.claude/skills/cc-investigate/SKILL.md +22 -5
- package/.claude/skills/cc-investigate/assets/ANALYSIS_TEMPLATE.md +14 -0
- package/.claude/skills/cc-investigate/assets/TASKS_TEMPLATE.md +1 -0
- package/.claude/skills/cc-investigate/assets/TASK_MANIFEST_TEMPLATE.json +9 -1
- package/.claude/skills/cc-investigate/references/investigation-contract.md +2 -0
- package/.claude/skills/cc-plan/CHANGELOG.md +35 -0
- package/.claude/skills/cc-plan/PLAYBOOK.md +41 -19
- package/.claude/skills/cc-plan/SKILL.md +132 -47
- package/.claude/skills/cc-plan/assets/DESIGN_TEMPLATE.md +77 -3
- package/.claude/skills/cc-plan/assets/TASKS_TEMPLATE.md +28 -5
- package/.claude/skills/cc-plan/assets/TASK_MANIFEST_TEMPLATE.json +84 -3
- package/.claude/skills/cc-plan/assets/TINY_DESIGN_TEMPLATE.md +51 -0
- package/.claude/skills/cc-plan/references/planning-contract.md +47 -15
- package/.claude/skills/cc-roadmap/CHANGELOG.md +12 -0
- package/.claude/skills/cc-roadmap/PLAYBOOK.md +15 -9
- package/.claude/skills/cc-roadmap/SKILL.md +22 -16
- package/.claude/skills/cc-roadmap/assets/BACKLOG_TEMPLATE.md +3 -1
- package/.claude/skills/cc-roadmap/assets/ROADMAP_TEMPLATE.md +11 -1
- package/.claude/skills/cc-roadmap/assets/TRACKING_TEMPLATE.json +57 -10
- package/.claude/skills/cc-roadmap/scripts/lib/roadmap-tracking/markdown.js +68 -3
- package/.claude/skills/cc-roadmap/scripts/lib/roadmap-tracking/schema.js +120 -0
- package/.claude/skills/cc-roadmap/scripts/lib/roadmap-tracking/store.js +25 -1
- package/.claude/skills/cc-roadmap/scripts/locate-roadmap-item.sh +13 -5
- package/.claude/skills/cc-roadmap/scripts/roadmap-tracking.js +3 -3
- package/.claude/skills/cc-roadmap/scripts/sync-roadmap-progress.sh +3 -3
- package/CHANGELOG.md +19 -0
- package/README.md +5 -5
- package/README.zh-CN.md +5 -5
- package/bin/cc-devflow-cli.js +16 -2
- package/docs/CLAUDE.md +1 -1
- package/docs/examples/START-HERE.md +3 -3
- package/docs/examples/example-bindings.json +26 -9
- package/docs/examples/full-design-blocked/BACKLOG.md +4 -2
- package/docs/examples/full-design-blocked/README.md +4 -4
- package/docs/examples/full-design-blocked/ROADMAP.md +16 -2
- package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/design.md +47 -1
- package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/task-manifest.json +97 -0
- package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/tasks.md +8 -1
- package/docs/examples/full-design-blocked/roadmap.json +123 -0
- package/docs/examples/local-handoff/BACKLOG.md +4 -2
- package/docs/examples/local-handoff/README.md +4 -4
- package/docs/examples/local-handoff/ROADMAP.md +16 -2
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/design.md +26 -1
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/task-manifest.json +55 -0
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/tasks.md +8 -1
- package/docs/examples/local-handoff/roadmap.json +121 -0
- package/docs/examples/pdca-loop/BACKLOG.md +4 -2
- package/docs/examples/pdca-loop/README.md +4 -4
- package/docs/examples/pdca-loop/ROADMAP.md +16 -2
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/design.md +26 -1
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/task-manifest.json +51 -3
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/tasks.md +8 -1
- package/docs/examples/pdca-loop/roadmap.json +191 -0
- package/docs/examples/scripts/check-example-bindings.sh +7 -4
- package/docs/guides/getting-started.md +2 -2
- package/docs/guides/getting-started.zh-CN.md +2 -2
- package/lib/compiler/__tests__/skills-registry.test.js +17 -3
- package/lib/skill-runtime/__tests__/autopilot.test.js +13 -10
- package/lib/skill-runtime/__tests__/cli-bootstrap.integration.test.js +9 -1
- package/lib/skill-runtime/__tests__/paths.test.js +25 -0
- package/lib/skill-runtime/__tests__/query.test.js +49 -0
- package/lib/skill-runtime/artifacts.js +2 -2
- package/lib/skill-runtime/intent.js +14 -14
- package/lib/skill-runtime/operations/autopilot-shared.js +4 -4
- package/lib/skill-runtime/paths.js +28 -7
- package/lib/skill-runtime/query-registry.js +3 -3
- package/lib/skill-runtime/query.js +30 -30
- package/package.json +1 -1
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
- Enter from: a bug, regression, or broken requirement whose root cause is still unclear.
|
|
8
8
|
- Stay in: `cc-investigate` until `planning/analysis.md` and the repair handoff are both frozen.
|
|
9
|
-
- Exit to: `cc-do` only after root cause
|
|
9
|
+
- Exit to: `cc-do` only after root cause, repair boundary, and source roadmap progress are explicit in canonical artifacts.
|
|
10
10
|
- Reroute to: `cc-plan` for scope/design truth changes, or `roadmap` for project-level priority decisions.
|
|
11
11
|
|
|
12
12
|
## Core Rules
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
9. 多组件、深层调用、flaky 问题必须先补边界探针、反向追踪或条件等待证据。
|
|
23
23
|
10. diagnose-only 只能输出根因、owner、风险和 next action,不能把未修复状态标成完成。
|
|
24
24
|
11. workflow forensics 先分类 artifact / git / state / tool / permission / process failure,再决定是否进入修复。
|
|
25
|
+
12. 退出前必须跑 Roadmap Sync Gate:`implementation drift`、`missing spec truth`、`roadmap mismatch` 三种结论都要让 source RM 的状态和 next action 跟上。
|
|
25
26
|
|
|
26
27
|
## Iron Law
|
|
27
28
|
|
|
@@ -36,6 +37,7 @@ root-cause contract 至少包含:稳定复现或缩小后的可验证症状、
|
|
|
36
37
|
- `planning/analysis.md`
|
|
37
38
|
- `planning/tasks.md`
|
|
38
39
|
- `planning/task-manifest.json`
|
|
40
|
+
- `change-meta.json`
|
|
39
41
|
|
|
40
42
|
## Investigation Standard
|
|
41
43
|
|
|
@@ -159,6 +161,7 @@ root-cause contract 至少包含:稳定复现或缩小后的可验证症状、
|
|
|
159
161
|
- 模板在 `assets/`
|
|
160
162
|
- 调查契约在 `references/investigation-contract.md`
|
|
161
163
|
- 需要分析骨架时用 `scripts/bootstrap-analysis.sh`
|
|
164
|
+
- Roadmap 回写使用 `../cc-roadmap/scripts/locate-roadmap-item.sh` 和 `../cc-roadmap/scripts/sync-roadmap-progress.sh`
|
|
162
165
|
|
|
163
166
|
## Exit Rule
|
|
164
167
|
|
|
@@ -170,3 +173,4 @@ root-cause contract 至少包含:稳定复现或缩小后的可验证症状、
|
|
|
170
173
|
- 用什么命令证明修好了
|
|
171
174
|
|
|
172
175
|
这次调查才算合格。
|
|
176
|
+
如果 source RM 仍然停在旧 status、旧 progress 或旧 REQ/FIX 绑定,说明本次 `cc-investigate` 没有真正退出。
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: cc-investigate
|
|
3
|
-
version: 1.2.
|
|
3
|
+
version: 1.2.2
|
|
4
4
|
description: "Use when a bug, regression, broken task, or unexpected behavior needs root-cause investigation, reproducible evidence, and a frozen repair handoff before cc-do resumes coding."
|
|
5
5
|
triggers:
|
|
6
6
|
- "帮我查这个 bug"
|
|
@@ -17,6 +17,8 @@ reads:
|
|
|
17
17
|
- "assets/ANALYSIS_TEMPLATE.md"
|
|
18
18
|
- "assets/TASKS_TEMPLATE.md"
|
|
19
19
|
- "assets/TASK_MANIFEST_TEMPLATE.json"
|
|
20
|
+
- "../cc-roadmap/scripts/locate-roadmap-item.sh"
|
|
21
|
+
- "../cc-roadmap/scripts/sync-roadmap-progress.sh"
|
|
20
22
|
writes:
|
|
21
23
|
- path: "devflow/changes/<change-key>/planning/analysis.md"
|
|
22
24
|
durability: "durable"
|
|
@@ -30,6 +32,8 @@ writes:
|
|
|
30
32
|
- path: "devflow/changes/<change-key>/change-meta.json"
|
|
31
33
|
durability: "durable"
|
|
32
34
|
required: true
|
|
35
|
+
effects:
|
|
36
|
+
- source roadmap progress sync when investigation freezes, reroutes, or diagnoses a roadmap mismatch
|
|
33
37
|
entry_gate:
|
|
34
38
|
- "Read the current bug report, existing requirement artifacts, relevant code, tests, and recent history before forming any hypothesis."
|
|
35
39
|
- "Use a FIX-<number>-<description> change key for new bug-fix investigations."
|
|
@@ -39,11 +43,13 @@ entry_gate:
|
|
|
39
43
|
- "For multi-component, deep-stack, or flaky symptoms, record boundary probes, backward trace, or condition-wait evidence before declaring the root cause."
|
|
40
44
|
- "For performance regressions, collect a baseline or profile signal before treating logs as evidence."
|
|
41
45
|
- "Do not write production code here; this stage ends with planning/analysis.md plus executable repair tasks for cc-do."
|
|
46
|
+
- "Before exit, locate the source RM in `devflow/roadmap.json`, `devflow/ROADMAP.md`, optional `devflow/BACKLOG.md`, or legacy `devflow/roadmap-tracking.json`; the repair handoff must not leave roadmap progress stale."
|
|
42
47
|
exit_criteria:
|
|
43
48
|
- "planning/analysis.md records symptom, reproduction, evidence chain, boundary probes or backward trace when applicable, pattern analysis, tested hypotheses, confirmed root cause, and repair boundary."
|
|
44
49
|
- "diagnose-only outcomes clearly stop before implementation while preserving root cause, owner, and next action."
|
|
45
50
|
- "workflow forensics classify artifact, git, state, or tool failures before repair tasks are generated."
|
|
46
51
|
- "planning/tasks.md and planning/task-manifest.json are explicit enough that cc-do can repair the bug without chat memory."
|
|
52
|
+
- "The source roadmap item has been synchronized with the investigation outcome, or `planning/analysis.md` and `change-meta.json` record why no roadmap update is valid."
|
|
47
53
|
- "The honest next step is cc-do, cc-plan, or roadmap."
|
|
48
54
|
reroutes:
|
|
49
55
|
- when: "The issue is actually a new feature, a scope redesign, or a product decision instead of a bug investigation."
|
|
@@ -60,9 +66,9 @@ recovery_modes:
|
|
|
60
66
|
when: "New execution evidence disproves the current root-cause contract or widens the suspected blast radius."
|
|
61
67
|
action: "Reopen planning/analysis.md, update the evidence chain, and regenerate repair tasks only after the new root cause is frozen."
|
|
62
68
|
tool_budget:
|
|
63
|
-
read_files:
|
|
69
|
+
read_files: 11
|
|
64
70
|
search_steps: 6
|
|
65
|
-
shell_commands:
|
|
71
|
+
shell_commands: 7
|
|
66
72
|
---
|
|
67
73
|
|
|
68
74
|
# CC-Investigate
|
|
@@ -151,7 +157,7 @@ NO REPAIR WITHOUT A FROZEN ROOT-CAUSE CONTRACT
|
|
|
151
157
|
|
|
152
158
|
## Harness Contract
|
|
153
159
|
|
|
154
|
-
- Allowed actions: reproduce, collect evidence, trace code paths, test hypotheses, freeze root cause,
|
|
160
|
+
- Allowed actions: reproduce, collect evidence, trace code paths, test hypotheses, freeze root cause, write `planning/analysis.md`, `planning/tasks.md`, `planning/task-manifest.json`, and `change-meta.json`, then run the final roadmap progress sync for the source RM.
|
|
155
161
|
- Forbidden actions: writing production code, disguising guesses as root cause, or skipping directly from symptoms to repair.
|
|
156
162
|
- Required evidence: every root-cause claim must point to reproduction evidence, code facts, recent history, or explicit user confirmation.
|
|
157
163
|
- Reroute rule: product/scope changes go to `cc-plan`; strategy questions go to `roadmap`; only confirmed repair handoff goes to `cc-do`.
|
|
@@ -233,7 +239,13 @@ diagnose-only 仍然写 `planning/analysis.md`,但 `planning/tasks.md` 只能
|
|
|
233
239
|
- 写清正确测试缝隙:测试是否覆盖真实触发链;如果没有正确 seam,这本身就是需要记录的架构事实
|
|
234
240
|
- 写明 affected module、allowed files、forbidden files、blast radius estimate;超过 5 个文件默认拆分或 reroute
|
|
235
241
|
- 输出 `planning/tasks.md` + `planning/task-manifest.json` + `change-meta.json`
|
|
236
|
-
8. **
|
|
242
|
+
8. **Roadmap sync**
|
|
243
|
+
- 用 `locate-roadmap-item.sh` 定位 source RM;找不到时在 `analysis.md` 和 `change-meta.json.roadmapSync` 写 `no-source-rm`
|
|
244
|
+
- `implementation drift`:回写 source RM 为 `Repair planned` 或等价调查完成状态,绑定 `FIX-*`,进度保持在可执行修复前的真实百分比
|
|
245
|
+
- `missing spec truth`:回写 source RM 的 expected spec delta 或 follow-up,必要时 reroute 到 `cc-plan`
|
|
246
|
+
- `roadmap mismatch`:不要直接进入修复;先把 mismatch 写回 roadmap / backlog,下一步写 `roadmap` 或 `cc-plan`
|
|
247
|
+
- 使用 `sync-roadmap-progress.sh` 更新 `devflow/roadmap.json`,并重新生成 `devflow/ROADMAP.md` / `devflow/BACKLOG.md`
|
|
248
|
+
9. **Hand off**
|
|
237
249
|
- 下一步明确写成 `cc-do`
|
|
238
250
|
- 如果 repair contract 越过当前 requirement,就 reroute 到 `cc-plan`
|
|
239
251
|
- 如果是 diagnose-only,下一步写成 human action、monitoring、backlog、`cc-plan` 或 `cc-do`,但不得标记实现完成
|
|
@@ -430,6 +442,7 @@ flaky bug 的目标不是立刻 100% 复现,而是提高复现率直到可调
|
|
|
430
442
|
- 正确测试缝隙写清楚,不用浅层测试制造假安全
|
|
431
443
|
- `planning/tasks.md` 只包含修复任务,不夹带新需求
|
|
432
444
|
- 如果应该回 `cc-plan`,理由写清楚,不假装还能继续 patch
|
|
445
|
+
- Roadmap Sync Gate 必须在 handoff 前闭合:source RM 绑定的 `FIX-*`、调查状态、spec diagnosis 和 next action 不能停留在聊天里。
|
|
433
446
|
|
|
434
447
|
## Bundled Resources
|
|
435
448
|
|
|
@@ -439,6 +452,8 @@ flaky bug 的目标不是立刻 100% 复现,而是提高复现率直到可调
|
|
|
439
452
|
- 修复任务模板:`assets/TASKS_TEMPLATE.md`
|
|
440
453
|
- manifest 模板:`assets/TASK_MANIFEST_TEMPLATE.json`
|
|
441
454
|
- 分析骨架:`scripts/bootstrap-analysis.sh`
|
|
455
|
+
- Roadmap 定位:`../cc-roadmap/scripts/locate-roadmap-item.sh`
|
|
456
|
+
- Roadmap 回写:`../cc-roadmap/scripts/sync-roadmap-progress.sh`
|
|
442
457
|
|
|
443
458
|
## Working Rules
|
|
444
459
|
|
|
@@ -452,11 +467,13 @@ flaky bug 的目标不是立刻 100% 复现,而是提高复现率直到可调
|
|
|
452
467
|
8. 外部调研必须先脱敏,调研结论必须回到本仓库证据验证。
|
|
453
468
|
9. 修复触点超过 5 个文件时,默认先拆分或 reroute,不把大重构伪装成 bug fix。
|
|
454
469
|
10. 好的调查不是“找了很多可能性”,而是把错误世界缩成一个可信的 repair contract。
|
|
470
|
+
11. Roadmap 相关文件以 `devflow/roadmap.json` 为真相源,`devflow/ROADMAP.md` / `devflow/BACKLOG.md` 只是投影;不要再写旧式 `devflow/roadmap/*` 路径。
|
|
455
471
|
|
|
456
472
|
## Exit Criteria
|
|
457
473
|
|
|
458
474
|
- `planning/analysis.md` 已冻结症状、复现、证据链、根因和修复边界
|
|
459
475
|
- `planning/tasks.md` / `planning/task-manifest.json` 可直接交给 `cc-do`
|
|
476
|
+
- Roadmap Sync Gate 已闭合:source RM 已回写调查结果 / reroute,或 no-op reason 已落盘
|
|
460
477
|
- 下一步唯一答案是 `cc-do`、`cc-plan` 或 `roadmap`
|
|
461
478
|
|
|
462
479
|
## Do Not
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
- Output language:
|
|
9
9
|
- Source roadmap item:
|
|
10
10
|
- Source roadmap version:
|
|
11
|
+
- Roadmap sync status:
|
|
11
12
|
- Incident / bug ID:
|
|
12
13
|
- Primary capability:
|
|
13
14
|
- Related capability specs:
|
|
@@ -181,6 +182,18 @@
|
|
|
181
182
|
- Verification after fix:
|
|
182
183
|
- Why this can enter `cc-do`:
|
|
183
184
|
|
|
185
|
+
## Roadmap Sync Gate
|
|
186
|
+
|
|
187
|
+
- Source RM:
|
|
188
|
+
- Locate command:
|
|
189
|
+
- Sync command:
|
|
190
|
+
- Updated files: `devflow/roadmap.json`, `devflow/ROADMAP.md`, optional `devflow/BACKLOG.md`
|
|
191
|
+
- Spec diagnosis effect: `implementation drift` | `missing spec truth` | `roadmap mismatch`
|
|
192
|
+
- Status after sync: `Repair planned` | `Reroute to cc-plan` | `Reroute to roadmap` | `No source RM`
|
|
193
|
+
- Progress after sync:
|
|
194
|
+
- No-op reason:
|
|
195
|
+
- Blocking mismatch:
|
|
196
|
+
|
|
184
197
|
## Review Gate
|
|
185
198
|
|
|
186
199
|
- Repro stable:
|
|
@@ -192,4 +205,5 @@
|
|
|
192
205
|
- Diagnose-only verdict if applicable:
|
|
193
206
|
- Correct test seam identified:
|
|
194
207
|
- Repair scope still belongs to this requirement:
|
|
208
|
+
- Roadmap sync closed:
|
|
195
209
|
- If not, reroute:
|
|
@@ -9,6 +9,14 @@
|
|
|
9
9
|
"itemId": "RM-001",
|
|
10
10
|
"roadmapVersion": "1.0",
|
|
11
11
|
"roadmapSkillVersion": "2.1.0",
|
|
12
|
+
"syncStatus": "pending",
|
|
13
|
+
"syncCommand": ".claude/skills/cc-roadmap/scripts/sync-roadmap-progress.sh --rm RM-001 --status \"Repair planned\" --req FIX-XXX --progress 0%",
|
|
14
|
+
"updatedFiles": [
|
|
15
|
+
"devflow/roadmap.json",
|
|
16
|
+
"devflow/ROADMAP.md",
|
|
17
|
+
"devflow/BACKLOG.md"
|
|
18
|
+
],
|
|
19
|
+
"noOpReason": "",
|
|
12
20
|
"sourceStage": "Stage 1",
|
|
13
21
|
"successSignal": "The broken behavior is reproducible and then fixed without widening scope",
|
|
14
22
|
"killSignal": "Repair requires reopening product scope or redesigning unrelated modules",
|
|
@@ -20,7 +28,7 @@
|
|
|
20
28
|
]
|
|
21
29
|
},
|
|
22
30
|
"planningMeta": {
|
|
23
|
-
"ccInvestigateSkillVersion": "1.
|
|
31
|
+
"ccInvestigateSkillVersion": "1.2.2",
|
|
24
32
|
"analysisVersion": "analysis.v1",
|
|
25
33
|
"approvedAt": "2026-04-17T12:00:00.000Z",
|
|
26
34
|
"approvedBy": "user",
|
|
@@ -30,12 +30,14 @@
|
|
|
30
30
|
- root cause class
|
|
31
31
|
- repair boundary
|
|
32
32
|
- blast radius
|
|
33
|
+
- roadmap sync status
|
|
33
34
|
|
|
34
35
|
## Output Shape
|
|
35
36
|
|
|
36
37
|
- `planning/analysis.md` 是人类真相源
|
|
37
38
|
- `planning/tasks.md` 是修复 handoff
|
|
38
39
|
- `planning/task-manifest.json` 是执行真相源
|
|
40
|
+
- `change-meta.json` 必须记录 roadmap sync status、spec diagnosis 和 no-op reason / updated files
|
|
39
41
|
|
|
40
42
|
## Root-Cause Hypothesis
|
|
41
43
|
|
|
@@ -1,5 +1,40 @@
|
|
|
1
1
|
# CC-Plan Skill Changelog
|
|
2
2
|
|
|
3
|
+
## v3.7.7 - 2026-05-08
|
|
4
|
+
|
|
5
|
+
- treat the full `REQ/FIX-<number>-<description>` change key as identity so duplicate numbers from parallel worktrees are valid
|
|
6
|
+
- stop requiring local planning to resequence or rename changes solely because another worktree used the same numeric suffix
|
|
7
|
+
- make runtime path resolution fail clearly when a bare `REQ/FIX-<number>` is ambiguous and no explicit `changeKey` was supplied
|
|
8
|
+
|
|
9
|
+
## v3.7.6 - 2026-05-06
|
|
10
|
+
|
|
11
|
+
- add a fixed Decision Question Protocol so user-facing planning gates use numbered questions, recommendations, options, impact, and STOP instead of free-form prose
|
|
12
|
+
- record required user decisions in `planning/design.md` and `task-manifest.json.planningMeta.decisionQuestions`
|
|
13
|
+
- update design, tiny-design, manifest, and example bindings for the new decision-question contract
|
|
14
|
+
|
|
15
|
+
## v3.7.5 - 2026-05-06
|
|
16
|
+
|
|
17
|
+
- absorb the external TDD skill's interface-testability details into native planning: injected dependencies, returned results, concrete boundary operations, and small-interface/deep-implementation checks
|
|
18
|
+
- require Red task handoff to include spec-style test names, one logical behavior, public verification paths, and no bulk Red slices
|
|
19
|
+
- update design, tiny-design, tasks, and manifest templates with Green minimality guards and concrete refactor candidate fields
|
|
20
|
+
|
|
21
|
+
## v3.7.4 - 2026-05-06
|
|
22
|
+
|
|
23
|
+
- clarify that `REQ-*` and `FIX-*` are independent numbering namespaces, so the same numeric suffix can exist under both prefixes
|
|
24
|
+
- require new `REQ` numbers to increment from existing `REQ-*` directories and new `FIX` numbers to increment from existing `FIX-*` directories
|
|
25
|
+
|
|
26
|
+
## v3.7.3 - 2026-05-06
|
|
27
|
+
|
|
28
|
+
- add PRD-grade requirement brief fields to `cc-plan` design and execution handoff
|
|
29
|
+
- require user-perspective problem / solution, user stories, implementation decisions, testing decisions, out-of-scope, and further notes to live inside `planning/design.md` instead of a new `PRD.md`
|
|
30
|
+
- add `planningMeta.requirementBrief` to the manifest template and refresh example artifacts for `cc-plan@3.7.3`
|
|
31
|
+
|
|
32
|
+
## v3.7.2 - 2026-05-06
|
|
33
|
+
|
|
34
|
+
- add a Roadmap Sync Gate so approved planning runs must reconcile the source RM before handing off to `cc-do`
|
|
35
|
+
- document `locate-roadmap-item.sh` and `sync-roadmap-progress.sh` as the canonical way to update `devflow/roadmap.json` and regenerate `ROADMAP.md` / `BACKLOG.md`
|
|
36
|
+
- update design, tiny-design, tasks, and manifest templates with roadmap sync status fields
|
|
37
|
+
|
|
3
38
|
## v3.7.1 - 2026-04-29
|
|
4
39
|
|
|
5
40
|
- add ambiguity, review loop, source evidence, and external document conflict contracts
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
- Enter from: an approved roadmap item, requirement, or bug that still needs design.
|
|
8
8
|
- Stay in: `cc-plan` until the approved design and executable task breakdown are both frozen.
|
|
9
|
-
- Exit to: `cc-do` only after `planning/design.md` is approved
|
|
9
|
+
- Exit to: `cc-do` only after `planning/design.md` is approved, `planning/tasks.md` plus `planning/task-manifest.json` are generated, and the source roadmap progress is synchronized or explicitly marked no-op.
|
|
10
10
|
- Reroute to: `roadmap` if the conversation expands back into project strategy.
|
|
11
11
|
|
|
12
12
|
## Core Rules
|
|
@@ -18,8 +18,8 @@
|
|
|
18
18
|
5. 版本、来源、冻结决策必须可追踪。
|
|
19
19
|
6. 机械决策自动落盘;taste decision 和 user challenge 必须显式交给用户拍板。
|
|
20
20
|
7. 同 blast radius 内的完整边界优先做完,跨系统或无证据扩张才 defer。
|
|
21
|
-
8. 具体执行计划默认测试先行;没有 Red/Green/Refactor
|
|
22
|
-
9. 新 change 目录必须使用 `REQ-<number>-<description>` 或 `FIX-<number>-<description
|
|
21
|
+
8. 具体执行计划默认测试先行;没有 Red/Green/Refactor 链、spec-style test name、公共测试 seam、行为断言、mock 边界或 TDD exception,不准交给 `cc-do`。
|
|
22
|
+
9. 新 change 目录必须使用 `REQ-<number>-<description>` 或 `FIX-<number>-<description>`;`REQ` 和 `FIX` 各自递增自己的编号,跨前缀同号不是冲突;并行工作树造成同前缀同号时,完整 change key 靠描述区分;旧小写目录只读兼容,不再作为新输出。
|
|
23
23
|
10. 原始需求跨多个独立子系统时,先拆回 roadmap / 多个 REQ/FIX;不要把一个大杂烩压成单个计划。
|
|
24
24
|
11. `tiny-design` 仍然必须被批准,它只是短设计,不是跳过设计。
|
|
25
25
|
12. 非 trivial 方案必须至少比较 `minimal viable` 和 `ideal architecture` 两种角色,小方案没有天然优先权。
|
|
@@ -29,12 +29,17 @@
|
|
|
29
29
|
16. 先对齐项目语言和持久决策,再命名 capability、模块、接口、测试和任务;术语冲突必须显式暴露。
|
|
30
30
|
17. 行为变更按 tracer bullet 垂直切片推进,不能把任务水平切成“先测试层、再服务层、最后 UI 层”。
|
|
31
31
|
18. WHAT/WHY ambiguity、外部文档冲突、source trust boundary 和 review loop 上限必须在设计 gate 内闭合;模糊需求不能靠 `cc-do` 临场解释。
|
|
32
|
+
19. 退出前必须跑 Roadmap Sync Gate:`devflow/roadmap.json` 是真相源,`devflow/ROADMAP.md` 和 `devflow/BACKLOG.md` 只是投影;source RM 存在就回写,找不到才记录 no-op。
|
|
33
|
+
20. PRD 的结构要吸收进 `planning/design.md`:用户视角的问题和方案、完整 user stories、实现决策、测试决策、out-of-scope 和 further notes;不要默认创建独立 `PRD.md`。
|
|
34
|
+
21. 接口可测性必须在计划阶段解决:依赖尽量注入,结果尽量可返回和断言,系统边界 adapter 拆成具体操作,避免让测试用条件分支 mock 一个万能 fetcher。
|
|
35
|
+
22. 需要用户判断时必须走固定 `D<N>` Decision Question:证据、推荐、2-3 个互斥选项、影响和 STOP 都要出现,答案写回 design / manifest。
|
|
32
36
|
|
|
33
37
|
## Required Outputs
|
|
34
38
|
|
|
35
39
|
- `planning/design.md`
|
|
36
40
|
- `planning/tasks.md`
|
|
37
41
|
- `planning/task-manifest.json`
|
|
42
|
+
- `change-meta.json`
|
|
38
43
|
|
|
39
44
|
## Local Kit
|
|
40
45
|
|
|
@@ -42,13 +47,14 @@
|
|
|
42
47
|
- 任务结构解析在 `scripts/parse-task-dependencies.js`
|
|
43
48
|
- 计划边界和 placeholder 红线见 `references/planning-contract.md`
|
|
44
49
|
- 变更版本时同步 `CHANGELOG.md`,必要时用 `scripts/bump-skill-version.sh`
|
|
50
|
+
- Roadmap 回写使用 `../cc-roadmap/scripts/locate-roadmap-item.sh` 和 `../cc-roadmap/scripts/sync-roadmap-progress.sh`
|
|
45
51
|
|
|
46
52
|
## Planning Standard
|
|
47
53
|
|
|
48
54
|
1. 一份 `planning/design.md` 讲清 clarification、方案、review 和 final gate。
|
|
49
55
|
2. 一份 `planning/tasks.md` 讲清执行任务和 handoff。
|
|
50
56
|
3. `planning/task-manifest.json` 只做机器真相源,不再重复人类叙事。
|
|
51
|
-
4. 先固定 canonical change key:需求用 `REQ-*`,修复用 `FIX
|
|
57
|
+
4. 先固定 canonical change key:需求用 `REQ-*`,修复用 `FIX-*`,编号只在同前缀内取最大值后递增;并行 PR 已经产生同号时不强制重排,完整 key 的描述承担身份区分。
|
|
52
58
|
5. 推荐方案获批前,不得生成 `planning/tasks.md`。
|
|
53
59
|
6. `planning/tasks.md` 之前,`planning/design.md` 内的 review gate 必须闭合。
|
|
54
60
|
7. 每个任务都要写清:
|
|
@@ -61,26 +67,32 @@
|
|
|
61
67
|
- 完成证据
|
|
62
68
|
8. `planning/tasks.md` 顶部必须写清 frozen decisions、commands to trust、do-not-re-decide。
|
|
63
69
|
9. `planning/task-manifest.json` 必须是 `cc-do` 的真相源,而不是装饰文件。
|
|
64
|
-
10. `
|
|
65
|
-
11. `planning/design.md`
|
|
66
|
-
12. `
|
|
67
|
-
13. `
|
|
68
|
-
14.
|
|
69
|
-
15.
|
|
70
|
-
16.
|
|
71
|
-
17.
|
|
72
|
-
18.
|
|
73
|
-
19.
|
|
74
|
-
20.
|
|
75
|
-
21.
|
|
76
|
-
22.
|
|
77
|
-
23.
|
|
70
|
+
10. `change-meta.json` 必须记录 `roadmapSync`:status、updatedFiles、command、no-op reason 或阻塞原因。
|
|
71
|
+
11. `planning/design.md` 必须包含 `Existing Leverage`、`NOT in scope`、`Failure Modes`、`Test Diagram`,除非明确说明为什么不适用。
|
|
72
|
+
12. `planning/design.md` 或 `planning/tasks.md` 必须包含 implementation surface map:文件、职责、归属理由、耦合风险。
|
|
73
|
+
13. `full-design` 必须包含 implementation decision horizon 和 error/rescue map;不适用时写清 N/A 理由。
|
|
74
|
+
14. `planning/design.md` 必须包含 assumptions preview、ambiguity gate、source trust boundary、external conflict buckets 和 bounded review loop。
|
|
75
|
+
15. `planning/design.md` 必须包含 PRD-grade brief:Problem Statement、Solution、actors / user stories、Implementation Decisions、Testing Decisions、Out of Scope 和 Further Notes。
|
|
76
|
+
16. `planning/design.md` 必须包含 Decision Questions:哪些问题问过、推荐项、用户选择、影响、是否已写入任务。
|
|
77
|
+
17. 新 artifact、CLI、包、容器、文档入口必须在计划阶段写清分发和 discoverability,不准到 `cc-act` 才发现没人能用。
|
|
78
|
+
18. 行为变更任务必须拆成 `[TEST] -> [IMPL] -> [REFACTOR]` 或写明 TDD exception;不能用“实现并测试”混成一个任务。
|
|
79
|
+
19. 行为变更任务必须按一个 observable behavior 一条 tracer bullet 链组织,不能先批量写红灯再批量实现。
|
|
80
|
+
20. 回归测试不能 defer。修改既有行为且缺少覆盖时,必须先计划 regression test。
|
|
81
|
+
21. Red 任务必须验证公共接口上的行为,不验证私有函数、内部调用次数或临时数据结构。
|
|
82
|
+
22. Mock 只能放在系统边界;如果测试必须 mock 自己控制的模块,说明 seam 或接口设计还没压平。
|
|
83
|
+
23. 找不到正确 seam 时,先计划 exploratory spike 或设计修正,不能用假红灯冒充 TDD。
|
|
84
|
+
24. Red 任务必须说明 public verification path:从同一公共接口或用户可见路径读回结果。直接查 DB / 内部状态只在该边界本身就是被测对象时允许。
|
|
85
|
+
25. Green 任务必须写 minimality guard:只做当前红灯要求的最少实现,不预铺未来测试尚未要求的分支、状态或 API。
|
|
86
|
+
26. Refactor 任务必须列候选坏味道:重复、长方法、浅模块、feature envy、primitive obsession、命名、三层以上分支,以及新代码暴露出的旧代码问题。
|
|
87
|
+
27. UI scope 要写 design completeness score 和 loading / empty / error / success / partial 状态。
|
|
88
|
+
28. developer/operator-facing scope 要写 target persona、time to first value、magic moment 和 install / run / debug / upgrade 风险。
|
|
89
|
+
29. Review gate 只拦会导致实现错误、执行卡住、范围越界、验证缺失的问题;文字偏好和 nice-to-have 只能作为 advisory。
|
|
78
90
|
|
|
79
91
|
## Approval Flow
|
|
80
92
|
|
|
81
93
|
1. 先写 `Source Handoff` 和 requirement framing。
|
|
82
94
|
2. 在 `planning/design.md` 里记录备选方案和推荐。
|
|
83
|
-
3.
|
|
95
|
+
3. 用户批准推荐方案后,再冻结正式设计;批准必须来自固定 Decision Question 或明确用户指令。
|
|
84
96
|
4. 在 `planning/design.md` 里完成 review loop 与 final gate。
|
|
85
97
|
5. gate 通过后,再拆 `planning/tasks.md` 与 `planning/task-manifest.json`。
|
|
86
98
|
|
|
@@ -89,6 +101,9 @@
|
|
|
89
101
|
计划内的工程审查至少回答:
|
|
90
102
|
|
|
91
103
|
- 现有代码已经解决了哪些子问题?
|
|
104
|
+
- 用户视角的问题和方案是否已经能独立发布成 issue / PRD brief?
|
|
105
|
+
- user stories 是否覆盖主要 actor、happy path、edge/recovery、operator/DX 行为,而不是只写一条 happy path?
|
|
106
|
+
- 实现决策和测试决策是否写成 durable 模块责任、接口契约和行为验收,而不是短期文件行号?
|
|
92
107
|
- 最小完整方案触达哪些文件,为什么没有更小边界?
|
|
93
108
|
- 数据流、状态流或执行流怎么走?
|
|
94
109
|
- 每个会触达的文件职责是什么,为什么属于这个文件,而不是另一个平行位置?
|
|
@@ -96,18 +111,24 @@
|
|
|
96
111
|
- foundation / core / integration / polish 阶段哪些决策已经冻结,哪些仍是 blocked question?
|
|
97
112
|
- 核心语言是否沿用 `devflow/specs/`、roadmap handoff 或历史 design/analysis,是否存在 language conflict?
|
|
98
113
|
- 新增接口是否是小接口深模块,复杂度是否被藏在正确边界里?
|
|
114
|
+
- 新增接口是否天然可测:依赖注入而不是内部创建,返回可断言结果而不是只有副作用,边界 adapter 是否是具体操作而不是 generic fetcher?
|
|
99
115
|
- 每条 failure path 的 rescue action、用户可见结果和测试证据是什么?
|
|
100
116
|
- 每条新增 code path / user flow / error path 的第一条失败测试是什么?
|
|
101
117
|
- 第一条失败测试通过哪个公共 seam 进入系统,断言什么可观察行为?
|
|
118
|
+
- 测试名是否像规格说明,一个 Red 是否只证明一个逻辑行为?
|
|
119
|
+
- 验证是否通过公共入口读回结果,而不是绕到私有状态、内部数据结构或数据库侧查?
|
|
102
120
|
- 哪些依赖允许 mock,哪些内部协作者禁止 mock?
|
|
103
121
|
- 反馈循环是自动测试、HTTP、CLI、浏览器、trace replay、harness、property/fuzz、differential,还是 HITL;为什么这是当前最短可信循环?
|
|
104
122
|
- 测试框架来源是什么,现有覆盖是 strong、happy-path-only、smoke-only 还是 missing?
|
|
105
123
|
- task 是否以端到端 tracer bullet 为单位,而不是按层水平拆?
|
|
124
|
+
- Green 任务的 minimality guard 是什么,如何防止提前实现未来测试还没要求的代码?
|
|
125
|
+
- Refactor checkpoint 要处理哪些具体坏味道,哪些因为不在当前 Green 后可安全 defer?
|
|
106
126
|
- 哪些生产失败模式已经处理,哪些 defer 到 backlog?
|
|
107
127
|
- WHAT/WHY ambiguity score 是否低到足以拆任务?如果不够,blocked question 是什么?
|
|
108
128
|
- source evidence 哪些是 internal contract、repo evidence、external evidence、untrusted text?外部文本有没有被误当成 instruction?
|
|
109
129
|
- 导入文档的冲突是否已分成 auto-resolved / competing / unresolved,是否还有 unresolved blocker?
|
|
110
130
|
- review loop 是否已经触发 attempt 上限或 stall reason,下一步是继续计划、问用户,还是退回 roadmap?
|
|
131
|
+
- source RM 是否已用 `sync-roadmap-progress.sh` 回写当前 `REQ/FIX`、status、progress,并重新生成 `ROADMAP.md` / `BACKLOG.md`?
|
|
111
132
|
|
|
112
133
|
## Design Mode Switch
|
|
113
134
|
|
|
@@ -139,3 +160,4 @@
|
|
|
139
160
|
如果执行者还得自己猜“这次到底碰哪些文件、为什么这么改”,说明 `planning/design.md` 仍然不够。
|
|
140
161
|
如果执行者还看不出哪些决策已经冻结,说明 `planning/tasks.md` 仍然不够。
|
|
141
162
|
如果执行者还要自己决定先写什么失败测试,说明 `planning/tasks.md` 仍然不够。
|
|
163
|
+
如果 roadmap 仍然停在旧 status、旧 progress 或旧 REQ 绑定,说明本次 `cc-plan` 没有真正退出。
|