cc-devflow 4.5.9 → 4.5.10

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 (121) hide show
  1. package/.claude/skills/cc-act/CHANGELOG.md +6 -0
  2. package/.claude/skills/cc-act/SKILL.md +12 -10
  3. package/.claude/skills/cc-act/assets/PR_BRIEF_TEMPLATE.md +1 -1
  4. package/.claude/skills/cc-act/references/closure-contract.md +1 -1
  5. package/.claude/skills/cc-act/references/git-commit-guidelines.md +1 -1
  6. package/.claude/skills/cc-check/CHANGELOG.md +17 -0
  7. package/.claude/skills/cc-check/PLAYBOOK.md +1 -0
  8. package/.claude/skills/cc-check/SKILL.md +9 -5
  9. package/.claude/skills/cc-check/references/review-contract.md +7 -0
  10. package/.claude/skills/cc-check/scripts/render-report-card.js +6 -1
  11. package/.claude/skills/cc-dev/CHANGELOG.md +5 -0
  12. package/.claude/skills/cc-dev/SKILL.md +26 -1
  13. package/.claude/skills/cc-do/CHANGELOG.md +12 -0
  14. package/.claude/skills/cc-do/PLAYBOOK.md +7 -7
  15. package/.claude/skills/cc-do/SKILL.md +35 -37
  16. package/.claude/skills/cc-do/references/execution-recovery.md +18 -13
  17. package/.claude/skills/cc-do/scripts/build-task-context.sh +4 -17
  18. package/.claude/skills/cc-do/scripts/record-review-decision.sh +4 -5
  19. package/.claude/skills/cc-do/scripts/recover-workflow.sh +9 -11
  20. package/.claude/skills/cc-do/scripts/verify-task-gates.sh +12 -10
  21. package/.claude/skills/cc-do/scripts/write-task-checkpoint.sh +7 -29
  22. package/.claude/skills/cc-investigate/CHANGELOG.md +17 -0
  23. package/.claude/skills/cc-investigate/PLAYBOOK.md +6 -5
  24. package/.claude/skills/cc-investigate/SKILL.md +56 -44
  25. package/.claude/skills/cc-investigate/assets/TASKS_TEMPLATE.md +48 -5
  26. package/.claude/skills/cc-investigate/assets/TASK_MANIFEST_TEMPLATE.json +4 -3
  27. package/.claude/skills/cc-investigate/assets/{ANALYSIS_TEMPLATE.md → legacy/ANALYSIS_TEMPLATE.md} +1 -0
  28. package/.claude/skills/cc-investigate/references/investigation-contract.md +2 -2
  29. package/.claude/skills/cc-investigate/scripts/bootstrap-analysis.sh +1 -1
  30. package/.claude/skills/cc-plan/CHANGELOG.md +19 -0
  31. package/.claude/skills/cc-plan/PLAYBOOK.md +55 -53
  32. package/.claude/skills/cc-plan/SKILL.md +101 -85
  33. package/.claude/skills/cc-plan/assets/TASKS_TEMPLATE.md +47 -14
  34. package/.claude/skills/cc-plan/assets/TASK_MANIFEST_TEMPLATE.json +4 -2
  35. package/.claude/skills/cc-plan/assets/{DESIGN_TEMPLATE.md → legacy/DESIGN_TEMPLATE.md} +1 -0
  36. package/.claude/skills/cc-plan/assets/{TINY_DESIGN_TEMPLATE.md → legacy/TINY_DESIGN_TEMPLATE.md} +1 -1
  37. package/.claude/skills/cc-plan/references/planning-contract.md +11 -10
  38. package/.claude/skills/cc-review/CHANGELOG.md +6 -0
  39. package/.claude/skills/cc-review/PLAYBOOK.md +9 -11
  40. package/.claude/skills/cc-review/SKILL.md +37 -61
  41. package/.claude/skills/cc-review/references/e2e-and-plugin-verification.md +1 -1
  42. package/.claude/skills/cc-review/references/implementation-review-branch.md +5 -5
  43. package/.claude/skills/cc-review/references/plan-review-branch.md +1 -1
  44. package/.claude/skills/cc-review/references/review-methods.md +4 -4
  45. package/.claude/skills/cc-review/scripts/collect-review-context.sh +14 -7
  46. package/CHANGELOG.md +16 -0
  47. package/CONTRIBUTING.md +40 -4
  48. package/CONTRIBUTING.zh-CN.md +40 -4
  49. package/README.md +20 -8
  50. package/README.zh-CN.md +20 -8
  51. package/bin/cc-devflow-cli.js +293 -36
  52. package/docs/examples/START-HERE.md +5 -4
  53. package/docs/examples/example-bindings.json +8 -8
  54. package/docs/examples/full-design-blocked/README.md +2 -2
  55. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/design.md +2 -1
  56. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/task-manifest.json +3 -2
  57. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/tasks.md +11 -8
  58. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/review/report-card.json +4 -4
  59. package/docs/examples/local-handoff/README.md +2 -2
  60. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/design.md +2 -1
  61. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/task-manifest.json +3 -2
  62. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/tasks.md +9 -6
  63. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/review/report-card.json +1 -1
  64. package/docs/examples/pdca-loop/README.md +2 -2
  65. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/handoff/pr-brief.md +2 -2
  66. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/design.md +2 -1
  67. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/task-manifest.json +2 -1
  68. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/tasks.md +9 -6
  69. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/review/report-card.json +1 -1
  70. package/docs/examples/scripts/check-example-bindings.sh +2 -0
  71. package/docs/get-shit-done-strategy-audit.md +22 -22
  72. package/docs/guides/artifact-contract.md +1 -1
  73. package/docs/guides/getting-started.md +10 -8
  74. package/docs/guides/getting-started.zh-CN.md +10 -8
  75. package/docs/guides/minimize-artifacts.md +123 -0
  76. package/lib/compiler/__tests__/skills-registry.test.js +2 -2
  77. package/lib/skill-runtime/CLAUDE.md +1 -1
  78. package/lib/skill-runtime/__tests__/autopilot.test.js +42 -6
  79. package/lib/skill-runtime/__tests__/benchmark-artifacts.test.js +165 -0
  80. package/lib/skill-runtime/__tests__/cli-bootstrap.integration.test.js +2 -2
  81. package/lib/skill-runtime/__tests__/dispatch.test.js +8 -38
  82. package/lib/skill-runtime/__tests__/intent.test.js +4 -20
  83. package/lib/skill-runtime/__tests__/lifecycle.test.js +1 -1
  84. package/lib/skill-runtime/__tests__/paths.test.js +7 -1
  85. package/lib/skill-runtime/__tests__/planner.tdd.test.js +61 -0
  86. package/lib/skill-runtime/__tests__/prepare-pr.test.js +3 -16
  87. package/lib/skill-runtime/__tests__/query.test.js +388 -7
  88. package/lib/skill-runtime/__tests__/review-check-integration.test.js +148 -0
  89. package/lib/skill-runtime/__tests__/review-records.test.js +619 -0
  90. package/lib/skill-runtime/__tests__/runtime.integration.test.js +64 -23
  91. package/lib/skill-runtime/__tests__/schemas.test.js +43 -0
  92. package/lib/skill-runtime/__tests__/task-contract-migrate.test.js +137 -0
  93. package/lib/skill-runtime/__tests__/task-contract.test.js +783 -0
  94. package/lib/skill-runtime/__tests__/verify-artifacts.test.js +203 -0
  95. package/lib/skill-runtime/__tests__/worker-run.test.js +4 -11
  96. package/lib/skill-runtime/__tests__/workflow-context-legacy-fallback.test.js +31 -0
  97. package/lib/skill-runtime/__tests__/workflow-context.test.js +98 -0
  98. package/lib/skill-runtime/artifacts.js +0 -5
  99. package/lib/skill-runtime/context-index.js +545 -0
  100. package/lib/skill-runtime/intent.js +9 -33
  101. package/lib/skill-runtime/lifecycle.js +1 -1
  102. package/lib/skill-runtime/operations/CLAUDE.md +2 -2
  103. package/lib/skill-runtime/operations/dispatch.js +4 -42
  104. package/lib/skill-runtime/operations/init.js +2 -6
  105. package/lib/skill-runtime/operations/janitor.js +2 -18
  106. package/lib/skill-runtime/operations/resume.js +21 -38
  107. package/lib/skill-runtime/operations/review-records.js +265 -0
  108. package/lib/skill-runtime/operations/snapshot.js +1 -1
  109. package/lib/skill-runtime/operations/task-contract.js +524 -0
  110. package/lib/skill-runtime/operations/worker-run.js +2 -30
  111. package/lib/skill-runtime/paths.js +4 -4
  112. package/lib/skill-runtime/planner.js +24 -11
  113. package/lib/skill-runtime/query-registry.js +2 -2
  114. package/lib/skill-runtime/query.js +15 -2
  115. package/lib/skill-runtime/review-records.js +123 -0
  116. package/lib/skill-runtime/review.js +246 -11
  117. package/lib/skill-runtime/schemas.js +174 -12
  118. package/lib/skill-runtime/store.js +0 -10
  119. package/lib/skill-runtime/task-contract.js +187 -0
  120. package/lib/skill-runtime/workflow-context.js +748 -0
  121. package/package.json +7 -4
@@ -6,8 +6,9 @@
6
6
  "documentLanguage": ""
7
7
  },
8
8
  "planningMeta": {
9
- "ccInvestigateSkillVersion": "1.4.1",
9
+ "ccInvestigateSkillVersion": "1.5.0",
10
10
  "analysisVersion": "analysis.v1",
11
+ "workBranch": "FIX/XXX-short-bug-name",
11
12
  "approvedAt": "2026-04-17T12:00:00.000Z",
12
13
  "basedOnRootCause": "Root cause sentence"
13
14
  },
@@ -35,7 +36,7 @@
35
36
  "configuration drift",
36
37
  "timing guess / flaky wait"
37
38
  ],
38
- "notes": "Pattern evidence belongs in planning/analysis.md"
39
+ "notes": "Pattern evidence belongs in planning/tasks.md#Root Cause Contract"
39
40
  },
40
41
  "boundaryProbes": [
41
42
  {
@@ -63,7 +64,7 @@
63
64
  "symptomSite": "User-visible failure, command, UI state, log, or bad artifact",
64
65
  "firstBadState": "First field, artifact, cache entry, queue message, config, response, or memory object that becomes invalid",
65
66
  "firstBadStateEvidence": [
66
- "Boundary probe or trace evidence from planning/analysis.md"
67
+ "Boundary probe or trace evidence from planning/tasks.md#Root Cause Contract"
67
68
  ],
68
69
  "violatedContract": "Schema, invariant, API contract, state transition, trust boundary, or timing condition violated",
69
70
  "originalTrigger": "User action, command, event, recent diff, config change, or external response that created the first bad state",
@@ -5,6 +5,7 @@
5
5
  - Requirement version:
6
6
  - Analysis version:
7
7
  - Investigate skill version:
8
+ - Work branch:
8
9
  - Output language:
9
10
  - Source roadmap item:
10
11
  - Source roadmap version:
@@ -35,8 +35,8 @@
35
35
 
36
36
  ## Output Shape
37
37
 
38
- - `planning/analysis.md` 是人类真相源
39
- - `planning/tasks.md` 是修复 handoff
38
+ - `planning/tasks.md#Root Cause Contract` 是人类真相源
39
+ - `planning/tasks.md` 的 task blocks 是修复 handoff
40
40
  - `planning/task-manifest.json` 是执行真相源
41
41
  - `change-meta.json` 必须记录 roadmap sync status、spec diagnosis 和 no-op reason / updated files
42
42
 
@@ -3,7 +3,7 @@
3
3
  set -euo pipefail
4
4
 
5
5
  ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
6
- TEMPLATE="$ROOT_DIR/assets/ANALYSIS_TEMPLATE.md"
6
+ TEMPLATE="$ROOT_DIR/assets/legacy/ANALYSIS_TEMPLATE.md"
7
7
  REQ_DIR=""
8
8
 
9
9
  usage() {
@@ -1,5 +1,24 @@
1
1
  # CC-Plan Skill Changelog
2
2
 
3
+ ## v3.9.0 - 2026-05-13
4
+
5
+ - collapse the default planning artifact surface to `planning/tasks.md` plus CLI-generated `task-manifest.json` and `change-meta.json`
6
+ - move the human-authored design contract into `planning/tasks.md#Contract Summary` so `planning/design.md` is legacy fallback only
7
+ - archive legacy design templates under `assets/legacy/` and keep new task handoffs rooted in `assets/TASKS_TEMPLATE.md`
8
+ - ban generated execution process files from new task plans: no `context.md`, `checkpoint.json`, review markdown, or AI-written process notes under `execution/tasks`
9
+
10
+ ## v3.8.7 - 2026-05-13
11
+
12
+ - add the Worktree Branch Contract so new `REQ` / `FIX` planning anchors detached worktrees to `REQ/<task>` or `FIX/<task>` before artifacts are written
13
+ - treat planning on `main` / the default branch as a setup blocker instead of allowing the main checkout to accumulate feature state
14
+ - require design, tasks, and change metadata to record the canonical work branch for downstream `cc-do`
15
+
16
+ ## v3.8.6 - 2026-05-12
17
+
18
+ - require generated execution handoffs to start from `cc-devflow query workflow-context` so progressive disclosure is runtime-derived, not chat memory
19
+ - make the compact context packet the default bridge from planning into `cc-do`, `cc-check`, and `cc-act`
20
+ - keep deep planning sections available only behind explicit open conditions such as scope drift, scheduling conflict, recovery, or delivery
21
+
3
22
  ## v3.8.5 - 2026-05-11
4
23
 
5
24
  - add the Project Postmortem Recall Gate so plans search `devflow/postmortems` before freezing direction
@@ -5,8 +5,8 @@
5
5
  `roadmap -> cc-plan -> cc-do`
6
6
 
7
7
  - Enter from: an approved roadmap item, requirement, or bug that still needs design.
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, `planning/tasks.md` plus `planning/task-manifest.json` are generated, and the source roadmap progress is synchronized or explicitly marked no-op.
8
+ - Stay in: `cc-plan` until `planning/tasks.md#Contract Summary` and executable task blocks are both frozen.
9
+ - Exit to: `cc-do` only after `planning/tasks.md` plus CLI-generated `planning/task-manifest.json` are ready, 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
@@ -14,38 +14,39 @@
14
14
  1. 先读上游 handoff,再写 planning 结论。
15
15
  2. 没有证据时写 assumption,不准冒充事实。
16
16
  3. 一次只推进一个关键未知点。
17
- 4. `planning/design.md` 和 `planning/tasks.md` 必须足够让执行者脱离当前会话继续工作。
17
+ 4. `planning/tasks.md` 必须足够让执行者脱离当前会话继续工作。
18
18
  5. 版本、来源、冻结决策必须可追踪。
19
19
  6. 机械决策自动落盘;taste decision 和 user challenge 必须显式交给用户拍板。
20
20
  7. 同 blast radius 内的完整边界优先做完,跨系统或无证据扩张才 defer。
21
21
  8. 具体执行计划默认测试先行;没有 Red/Green/Refactor 链、spec-style test name、公共测试 seam、行为断言、mock 边界或 TDD exception,不准交给 `cc-do`。
22
22
  9. 新 change 目录必须通过 `cc-devflow next-change-key --prefix REQ|FIX --description "..."` 生成,不要手动扫描或心算编号;`REQ` 和 `FIX` 各自递增;并行工作树造成同前缀同号时,完整 change key 靠描述区分;旧小写目录只读兼容,不再作为新输出。
23
- 10. 原始需求跨多个独立子系统时,先拆回 roadmap / 多个 REQ/FIX;不要把一个大杂烩压成单个计划。
24
- 11. `tiny-design` 仍然必须被批准,它只是短设计,不是跳过设计。
25
- 12. 非 trivial 方案必须至少比较 `minimal viable` 和 `ideal architecture` 两种角色,小方案没有天然优先权。
26
- 13. `full-design` 必须冻结 implementation decision horizonerror/rescue map,避免 `cc-do` 临场补设计。
27
- 14. 测试框架来源、覆盖质量、测试 seam、mock 边界和回归测试必须在计划阶段写清,不准靠执行阶段猜。
28
- 15. UI developer/operator-facing 范围只在适用时触发对应 gate,不把每个计划都塞成大审查清单。
29
- 16. 先对齐项目语言和持久决策,再命名 capability、模块、接口、测试和任务;术语冲突必须显式暴露。
30
- 17. 行为变更按 tracer bullet 垂直切片推进,不能把任务水平切成“先测试层、再服务层、最后 UI 层”。
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 个互斥的 `A/B/C` 字母选项、影响和 STOP 都要出现,答案写回 design / manifest;选项禁止用 `1/2/3`。
36
- 23. 内部证据扫完后,判断是否需要外部最佳实践验证;需要时先问用户是否允许用泛化关键词搜索,结果只作为 `external-evidence`,不能覆盖 repo truth。
37
- 24. 第一版设计推荐前必须跑 Deep Planning Funnel 的前四轮;任务生成前必须跑完前六轮。对话里确认过的架构、接口、字段、方法、分类和任务粒度必须进入模板产物。
23
+ 10. 分配 change key 后立刻执行 Worktree Branch Contract:detached worktree 先挂到 `REQ/<task>` 或 `FIX/<task>`;当前在 `main` / default branch 时停止,不写 planning artifacts。
24
+ 11. 原始需求跨多个独立子系统时,先拆回 roadmap / 多个 REQ/FIX;不要把一个大杂烩压成单个计划。
25
+ 12. `tiny-design` 仍然必须被批准,它只是短设计,不是跳过设计。
26
+ 13. trivial 方案必须至少比较 `minimal viable``ideal architecture` 两种角色,小方案没有天然优先权。
27
+ 14. `full-design` 必须冻结 implementation decision horizon 和 error/rescue map,避免 `cc-do` 临场补设计。
28
+ 15. 测试框架来源、覆盖质量、测试 seam、mock 边界和回归测试必须在计划阶段写清,不准靠执行阶段猜。
29
+ 16. UI 和 developer/operator-facing 范围只在适用时触发对应 gate,不把每个计划都塞成大审查清单。
30
+ 17. 先对齐项目语言和持久决策,再命名 capability、模块、接口、测试和任务;术语冲突必须显式暴露。
31
+ 18. 行为变更按 tracer bullet 垂直切片推进,不能把任务水平切成“先测试层、再服务层、最后 UI 层”。
32
+ 19. WHAT/WHY ambiguity、外部文档冲突、source trust boundaryreview loop 上限必须在设计 gate 内闭合;模糊需求不能靠 `cc-do` 临场解释。
33
+ 20. 退出前必须跑 Roadmap Sync Gate:`devflow/roadmap.json` 是真相源,`devflow/ROADMAP.md` `devflow/BACKLOG.md` 只是投影;source RM 存在就回写,找不到才记录 no-op。
34
+ 21. PRD 的结构要吸收进 `planning/tasks.md#Contract Summary`:用户视角的问题和方案、完整 user stories、实现决策、测试决策、out-of-scope 和 further notes;不要默认创建独立 `PRD.md`。
35
+ 22. 接口可测性必须在计划阶段解决:依赖尽量注入,结果尽量可返回和断言,系统边界 adapter 拆成具体操作,避免让测试用条件分支 mock 一个万能 fetcher。
36
+ 23. 需要用户判断时必须走固定 `D<N>` Decision Question:证据、推荐、2-3 个互斥的 `A/B/C` 字母选项、影响和 STOP 都要出现,答案写回 design / manifest;选项禁止用 `1/2/3`。
37
+ 24. 内部证据扫完后,判断是否需要外部最佳实践验证;需要时先问用户是否允许用泛化关键词搜索,结果只作为 `external-evidence`,不能覆盖 repo truth。
38
+ 25. 第一版设计推荐前必须跑 Deep Planning Funnel 的前四轮;任务生成前必须跑完前六轮。对话里确认过的架构、接口、字段、方法、分类和任务粒度必须进入模板产物。
38
39
 
39
40
  ## Required Outputs
40
41
 
41
- - `planning/design.md`
42
42
  - `planning/tasks.md`
43
43
  - `planning/task-manifest.json`
44
44
  - `change-meta.json`
45
45
 
46
46
  ## Local Kit
47
47
 
48
- - 模板全部在 `assets/`
48
+ - 默认模板在 `assets/TASKS_TEMPLATE.md` 和 `assets/TASK_MANIFEST_TEMPLATE.json`
49
+ - 旧设计模板在 `assets/legacy/`,只用于 legacy fallback / migration
49
50
  - 任务结构解析在 `scripts/parse-task-dependencies.js`
50
51
  - 计划边界和 placeholder 红线见 `references/planning-contract.md`
51
52
  - 变更版本时同步 `CHANGELOG.md`,必要时用 `scripts/bump-skill-version.sh`
@@ -53,13 +54,14 @@
53
54
 
54
55
  ## Planning Standard
55
56
 
56
- 1. 一份 `planning/design.md` 讲清 clarification、方案、review 和 final gate。
57
- 2. 一份 `planning/tasks.md` 讲清执行任务和 handoff。
57
+ 1. 一份 `planning/tasks.md#Contract Summary` 讲清 clarification、方案、review 和 final gate。
58
+ 2. 同一份 `planning/tasks.md` 讲清执行任务和 handoff。
58
59
  3. `planning/task-manifest.json` 只做机器真相源,不再重复人类叙事。
59
60
  4. 先运行 `cc-devflow next-change-key --prefix REQ|FIX --description "..."` 获取 canonical change key;不要手动扫描目录或心算编号。并行 PR 产生同号时不强制重排,完整 key 的描述承担身份区分。
60
- 5. 推荐方案获批前,不得生成 `planning/tasks.md`。
61
- 6. `planning/tasks.md` 之前,`planning/design.md` 内的 review gate 必须闭合。
62
- 7. 每个任务都要写清:
61
+ 5. 立刻检查并锚定 work branch:detached worktree 创建 / 切换到 `REQ/<task>` 或 `FIX/<task>`;`main` / default branch 是 setup blocker。
62
+ 6. 推荐方案获批前,不得生成执行 task blocks。
63
+ 7. 进入任务拆分前,`planning/tasks.md#Contract Summary` 内的 review gate 必须闭合。
64
+ 8. 每个任务都要写清:
63
65
  - 目标
64
66
  - TDD phase:`red` / `green` / `refactor` / `exception`
65
67
  - dependsOn / 是否允许并行
@@ -67,40 +69,40 @@
67
69
  - 必读上下文
68
70
  - 验证方式
69
71
  - 完成证据
70
- 8. `planning/tasks.md` 顶部必须写清 frozen decisions、commands to trust、do-not-re-decide。
71
- 9. `planning/task-manifest.json` 必须是 `cc-do` 的真相源,而不是装饰文件。
72
- 10. `change-meta.json` 必须记录 `roadmapSync`:status、updatedFiles、command、no-op reason 或阻塞原因。
73
- 11. `planning/design.md` 必须包含 `Existing Leverage`、`NOT in scope`、`Failure Modes`、`Test Diagram`,除非明确说明为什么不适用。
74
- 12. `planning/design.md` 或 `planning/tasks.md` 必须包含 implementation surface map:文件、职责、归属理由、耦合风险。
75
- 13. `full-design` 必须包含 implementation decision horizon 和 error/rescue map;不适用时写清 N/A 理由。
76
- 14. `planning/design.md` 必须包含 assumptions preview、ambiguity gate、source trust boundary、external best-practice validation、external conflict buckets 和 bounded review loop。
77
- 15. `planning/design.md` 必须包含 Deep Planning Funnel:requirement reality、system shape、interface/data contract、abstraction/encapsulation、execution architecture、task contract、final approval。
78
- 16. `planning/design.md` 必须包含 PRD-grade brief:Problem Statement、Solution、actors / user stories、Implementation Decisions、Testing Decisions、Out of Scope 和 Further Notes。
79
- 17. `planning/design.md` 必须包含 Decision Questions:哪些问题问过、推荐项、用户选择、影响、是否已写入任务。
80
- 18. `planning/design.md` 必须包含 External Best-Practice Validation:是否需要、是否获用户允许、泛化搜索词、来源、conventional wisdom、repo-fit verdict、设计影响和跳过原因。
81
- 19. 新 artifact、CLI、包、容器、文档入口必须在计划阶段写清分发和 discoverability,不准到 `cc-act` 才发现没人能用。
82
- 20. 行为变更任务必须拆成 `[TEST] -> [IMPL] -> [REFACTOR]` 或写明 TDD exception;不能用“实现并测试”混成一个任务。
83
- 21. 行为变更任务必须按一个 observable behavior 一条 tracer bullet 链组织,不能先批量写红灯再批量实现。
84
- 22. 每个任务必须有 task contract:对应 user story / edge story、文件职责、方法或接口、关键字段、输入输出、失败路径、验证和完成脚本。
85
- 23. 回归测试不能 defer。修改既有行为且缺少覆盖时,必须先计划 regression test。
86
- 24. Red 任务必须验证公共接口上的行为,不验证私有函数、内部调用次数或临时数据结构。
87
- 25. Mock 只能放在系统边界;如果测试必须 mock 自己控制的模块,说明 seam 或接口设计还没压平。
88
- 26. 找不到正确 seam 时,先计划 exploratory spike 或设计修正,不能用假红灯冒充 TDD。
89
- 27. Red 任务必须说明 public verification path:从同一公共接口或用户可见路径读回结果。直接查 DB / 内部状态只在该边界本身就是被测对象时允许。
90
- 28. Green 任务必须写 minimality guard:只做当前红灯要求的最少实现,不预铺未来测试尚未要求的分支、状态或 API。
91
- 29. Refactor 任务必须列候选坏味道:重复、长方法、浅模块、feature envy、primitive obsession、命名、三层以上分支,以及新代码暴露出的旧代码问题。
92
- 30. UI scope 要写 design completeness score 和 loading / empty / error / success / partial 状态。
93
- 31. developer/operator-facing scope 要写 target persona、time to first value、magic moment 和 install / run / debug / upgrade 风险。
72
+ 9. `planning/tasks.md` 顶部必须写清 frozen decisions、commands to trust、do-not-re-decide。
73
+ 10. `planning/task-manifest.json` 必须是 `cc-do` 的真相源,而不是装饰文件。
74
+ 11. `change-meta.json` 必须记录 `roadmapSync`:status、updatedFiles、command、no-op reason 或阻塞原因。
75
+ 12. `planning/tasks.md#Contract Summary` 必须包含 `Existing Leverage`、`NOT in scope`、`Failure Modes`、`Test Diagram`,除非明确说明为什么不适用。
76
+ 13. `planning/tasks.md` 必须包含 implementation surface map:文件、职责、归属理由、耦合风险。
77
+ 14. `full-design` 必须包含 implementation decision horizon 和 error/rescue map;不适用时写清 N/A 理由。
78
+ 15. `planning/tasks.md#Contract Summary` 必须包含 assumptions preview、ambiguity gate、source trust boundary、external best-practice validation、external conflict buckets 和 bounded review loop。
79
+ 16. `planning/tasks.md#Contract Summary` 必须包含 Deep Planning Funnel:requirement reality、system shape、interface/data contract、abstraction/encapsulation、execution architecture、task contract、final approval。
80
+ 17. `planning/tasks.md#Contract Summary` 必须包含 PRD-grade brief:Problem Statement、Solution、actors / user stories、Implementation Decisions、Testing Decisions、Out of Scope 和 Further Notes。
81
+ 18. `planning/tasks.md#Contract Summary` 必须包含 Decision Questions:哪些问题问过、推荐项、用户选择、影响、是否已写入任务。
82
+ 19. `planning/tasks.md#Contract Summary` 必须包含 External Best-Practice Validation:是否需要、是否获用户允许、泛化搜索词、来源、conventional wisdom、repo-fit verdict、设计影响和跳过原因。
83
+ 20. 新 artifact、CLI、包、容器、文档入口必须在计划阶段写清分发和 discoverability,不准到 `cc-act` 才发现没人能用。
84
+ 21. 行为变更任务必须拆成 `[TEST] -> [IMPL] -> [REFACTOR]` 或写明 TDD exception;不能用“实现并测试”混成一个任务。
85
+ 22. 行为变更任务必须按一个 observable behavior 一条 tracer bullet 链组织,不能先批量写红灯再批量实现。
86
+ 23. 每个任务必须有 task contract:对应 user story / edge story、文件职责、方法或接口、关键字段、输入输出、失败路径、验证和完成脚本。
87
+ 24. 回归测试不能 defer。修改既有行为且缺少覆盖时,必须先计划 regression test。
88
+ 25. Red 任务必须验证公共接口上的行为,不验证私有函数、内部调用次数或临时数据结构。
89
+ 26. Mock 只能放在系统边界;如果测试必须 mock 自己控制的模块,说明 seam 或接口设计还没压平。
90
+ 27. 找不到正确 seam 时,先计划 exploratory spike 或设计修正,不能用假红灯冒充 TDD。
91
+ 28. Red 任务必须说明 public verification path:从同一公共接口或用户可见路径读回结果。直接查 DB / 内部状态只在该边界本身就是被测对象时允许。
92
+ 29. Green 任务必须写 minimality guard:只做当前红灯要求的最少实现,不预铺未来测试尚未要求的分支、状态或 API。
93
+ 30. Refactor 任务必须列候选坏味道:重复、长方法、浅模块、feature envy、primitive obsession、命名、三层以上分支,以及新代码暴露出的旧代码问题。
94
+ 31. UI scope 要写 design completeness score 和 loading / empty / error / success / partial 状态。
95
+ 32. developer/operator-facing scope 要写 target persona、time to first value、magic moment 和 install / run / debug / upgrade 风险。
94
96
  32. Review gate 只拦会导致实现错误、执行卡住、范围越界、验证缺失的问题;文字偏好和 nice-to-have 只能作为 advisory。
95
97
 
96
98
  ## Approval Flow
97
99
 
98
100
  1. 先写 `Source Handoff` 和 requirement framing。
99
101
  2. 跑 Deep Planning Funnel 前四轮,缺口以 blocked question 或 auto-decided evidence 处理。
100
- 3. 在 `planning/design.md` 里记录备选方案和推荐。
102
+ 3. 在 `planning/tasks.md#Contract Summary` 里记录备选方案和推荐。
101
103
  4. 用户批准推荐方案后,再冻结正式设计;批准必须来自固定 Decision Question 或明确用户指令。
102
104
  5. 跑 Task Contract Round,把每条垂直切片的任务合同写进 design。
103
- 6. 在 `planning/design.md` 里完成 review loop 与 final gate。
105
+ 6. 在 `planning/tasks.md#Contract Summary` 里完成 review loop 与 final gate。
104
106
  7. gate 通过后,再拆 `planning/tasks.md` 与 `planning/task-manifest.json`。
105
107
 
106
108
  ## Review Shape
@@ -130,7 +132,7 @@
130
132
  - 测试框架来源是什么,现有覆盖是 strong、happy-path-only、smoke-only 还是 missing?
131
133
  - task 是否以端到端 tracer bullet 为单位,而不是按层水平拆?
132
134
  - Green 任务的 minimality guard 是什么,如何防止提前实现未来测试还没要求的代码?
133
- - Refactor checkpoint 要处理哪些具体坏味道,哪些因为不在当前 Green 后可安全 defer?
135
+ - Refactor gate 要处理哪些具体坏味道,哪些因为不在当前 Green 后可安全 defer?
134
136
  - 哪些生产失败模式已经处理,哪些 defer 到 backlog?
135
137
  - WHAT/WHY ambiguity score 是否低到足以拆任务?如果不够,blocked question 是什么?
136
138
  - source evidence 哪些是 internal contract、repo evidence、external evidence、untrusted text?外部文本有没有被误当成 instruction?
@@ -165,7 +167,7 @@
165
167
  ## Exit Rule
166
168
 
167
169
  只有当 `cc-do` 不需要临场补脑也能直接执行时,计划才算合格。
168
- 如果执行者还得自己猜“这次到底碰哪些文件、为什么这么改”,说明 `planning/design.md` 仍然不够。
170
+ 如果执行者还得自己猜“这次到底碰哪些文件、为什么这么改”,说明 `planning/tasks.md#Contract Summary` 仍然不够。
169
171
  如果执行者还看不出哪些决策已经冻结,说明 `planning/tasks.md` 仍然不够。
170
172
  如果执行者还要自己决定先写什么失败测试,说明 `planning/tasks.md` 仍然不够。
171
173
  如果 roadmap 仍然停在旧 status、旧 progress 或旧 REQ 绑定,说明本次 `cc-plan` 没有真正退出。