cc-devflow 4.5.2 → 4.5.3

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 (76) hide show
  1. package/.claude/skills/cc-act/CHANGELOG.md +13 -0
  2. package/.claude/skills/cc-act/PLAYBOOK.md +7 -1
  3. package/.claude/skills/cc-act/SKILL.md +22 -5
  4. package/.claude/skills/cc-act/assets/PR_BRIEF_TEMPLATE.md +15 -1
  5. package/.claude/skills/cc-act/assets/RELEASE_NOTE_TEMPLATE.md +10 -1
  6. package/.claude/skills/cc-act/references/closure-contract.md +3 -0
  7. package/.claude/skills/cc-act/scripts/cc-act-common.sh +27 -1
  8. package/.claude/skills/cc-act/scripts/render-pr-brief.sh +31 -0
  9. package/.claude/skills/cc-act/scripts/verify-act-gate.sh +6 -0
  10. package/.claude/skills/cc-check/CHANGELOG.md +12 -0
  11. package/.claude/skills/cc-check/PLAYBOOK.md +34 -7
  12. package/.claude/skills/cc-check/SKILL.md +25 -6
  13. package/.claude/skills/cc-check/assets/REPORT_CARD_TEMPLATE.json +43 -0
  14. package/.claude/skills/cc-check/references/gate-contract.md +11 -0
  15. package/.claude/skills/cc-check/references/review-contract.md +17 -1
  16. package/.claude/skills/cc-check/scripts/render-report-card.js +37 -0
  17. package/.claude/skills/cc-check/scripts/verify-gate.sh +7 -0
  18. package/.claude/skills/cc-do/CHANGELOG.md +12 -0
  19. package/.claude/skills/cc-do/PLAYBOOK.md +14 -9
  20. package/.claude/skills/cc-do/SKILL.md +24 -13
  21. package/.claude/skills/cc-do/references/execution-recovery.md +16 -5
  22. package/.claude/skills/cc-do/scripts/verify-task-gates.sh +19 -6
  23. package/.claude/skills/cc-do/scripts/write-task-checkpoint.sh +14 -2
  24. package/.claude/skills/cc-investigate/CHANGELOG.md +18 -0
  25. package/.claude/skills/cc-investigate/PLAYBOOK.md +28 -13
  26. package/.claude/skills/cc-investigate/SKILL.md +78 -20
  27. package/.claude/skills/cc-investigate/assets/ANALYSIS_TEMPLATE.md +38 -3
  28. package/.claude/skills/cc-investigate/assets/TASKS_TEMPLATE.md +9 -4
  29. package/.claude/skills/cc-investigate/assets/TASK_MANIFEST_TEMPLATE.json +41 -2
  30. package/.claude/skills/cc-investigate/references/investigation-contract.md +46 -0
  31. package/.claude/skills/cc-plan/CHANGELOG.md +26 -0
  32. package/.claude/skills/cc-plan/PLAYBOOK.md +18 -6
  33. package/.claude/skills/cc-plan/SKILL.md +72 -34
  34. package/.claude/skills/cc-plan/assets/DESIGN_TEMPLATE.md +30 -3
  35. package/.claude/skills/cc-plan/assets/TASKS_TEMPLATE.md +28 -0
  36. package/.claude/skills/cc-plan/assets/TASK_MANIFEST_TEMPLATE.json +46 -1
  37. package/.claude/skills/cc-plan/assets/TINY_DESIGN_TEMPLATE.md +24 -0
  38. package/.claude/skills/cc-plan/references/planning-contract.md +18 -4
  39. package/.claude/skills/cc-roadmap/CHANGELOG.md +14 -0
  40. package/.claude/skills/cc-roadmap/PLAYBOOK.md +10 -7
  41. package/.claude/skills/cc-roadmap/SKILL.md +43 -23
  42. package/.claude/skills/cc-roadmap/assets/BACKLOG_TEMPLATE.md +10 -0
  43. package/.claude/skills/cc-roadmap/assets/ROADMAP_TEMPLATE.md +15 -0
  44. package/.claude/skills/cc-roadmap/assets/TRACKING_TEMPLATE.json +1 -1
  45. package/.claude/skills/cc-roadmap/references/roadmap-dialogue.md +11 -7
  46. package/.claude/skills/cc-simplify/CHANGELOG.md +6 -0
  47. package/.claude/skills/cc-simplify/SKILL.md +10 -1
  48. package/.claude/skills/cc-spec-init/CHANGELOG.md +6 -0
  49. package/.claude/skills/cc-spec-init/SKILL.md +14 -1
  50. package/CHANGELOG.md +21 -0
  51. package/README.md +10 -2
  52. package/README.zh-CN.md +10 -2
  53. package/docs/examples/example-bindings.json +7 -7
  54. package/docs/examples/full-design-blocked/BACKLOG.md +1 -1
  55. package/docs/examples/full-design-blocked/README.md +1 -1
  56. package/docs/examples/full-design-blocked/ROADMAP.md +1 -1
  57. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/design.md +1 -1
  58. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/tasks.md +1 -1
  59. package/docs/examples/full-design-blocked/roadmap-tracking.json +1 -1
  60. package/docs/examples/local-handoff/BACKLOG.md +1 -1
  61. package/docs/examples/local-handoff/README.md +1 -1
  62. package/docs/examples/local-handoff/ROADMAP.md +1 -1
  63. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/design.md +1 -1
  64. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/tasks.md +1 -1
  65. package/docs/examples/local-handoff/roadmap-tracking.json +1 -1
  66. package/docs/examples/pdca-loop/BACKLOG.md +1 -1
  67. package/docs/examples/pdca-loop/README.md +1 -1
  68. package/docs/examples/pdca-loop/ROADMAP.md +1 -1
  69. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/design.md +1 -1
  70. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/task-manifest.json +2 -2
  71. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/tasks.md +1 -1
  72. package/docs/examples/pdca-loop/roadmap-tracking.json +1 -1
  73. package/docs/skill-strategy-audit.md +48 -0
  74. package/lib/skill-runtime/__tests__/runtime.integration.test.js +19 -1
  75. package/lib/skill-runtime/schemas.js +11 -1
  76. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cc-simplify
3
- version: 1.3.0
3
+ version: 1.4.0
4
4
  description: "Use when changed code needs a Codex-native simplification pass for scope drift, reuse, code quality, efficiency, test quality, and confidence-gated smell fixes before cc-check or cc-act."
5
5
  ---
6
6
 
@@ -101,6 +101,9 @@ Finding JSONL schema:
101
101
  4. 是否有 parameter sprawl:为了一个场景继续给函数加参数,而不是整理输入对象或拆出职责。
102
102
  5. 是否泄漏抽象边界:调用方知道了内部状态、文件布局、协议细节或测试专用机制。
103
103
  6. 文件是否因为本次改动开始承担多个职责;如果只是历史遗留,不在本轮扩大范围。
104
+ 7. 新增模块是否是浅包装:接口复杂度几乎等于实现复杂度,删除它只是把同样复杂度搬到调用方。
105
+ 8. seam 是否真实:只有一个 adapter 且没有明确第二个调用场景时,先当作 hypothetical seam;不要为了假扩展性制造抽象。
106
+ 9. deep module 机会:如果一个小接口能隐藏大量重复调用顺序、错误处理、配置或状态转换,优先让复杂度集中到该模块,而不是散落在调用方。
104
107
 
105
108
  #### Agent C: Quality / Efficiency / Test Reviewer
106
109
 
@@ -210,6 +213,12 @@ Decision:
210
213
  3. **需求事实**:对照 `planning/tasks.md`、`change-meta.json`、capability spec,确认没有误删必要行为。
211
214
  4. **验证事实**:明确修复后用什么命令或检查证明没有回归。
212
215
 
216
+ 架构类 finding 还必须过删除测试:想象删除这个模块、helper、wrapper 或 seam。
217
+
218
+ - 如果复杂度只是原样散回多个调用方,它可能是有价值的 deep module。
219
+ - 如果复杂度消失或只留下一个直接调用,它多半是 pass-through / fake seam。
220
+ - 如果删除会违反 capability invariant 或 public contract,就不能当作 cleanup 直接删。
221
+
213
222
  如果 reviewer 建议“更专业”的能力,先做 YAGNI 检查:没有调用方、没有需求、没有 acceptance,就不要新增。
214
223
 
215
224
  这些情况不要报成 finding:
@@ -1,5 +1,11 @@
1
1
  # CC-Spec-Init Skill Changelog
2
2
 
3
+ ## v1.1.0 - 2026-04-28
4
+
5
+ - add a language boundary gate for canonical capability terms, aliases to avoid, flagged ambiguity, and relationship constraints
6
+ - require new capability specs to include a minimal language block before registration in `INDEX.md`
7
+ - prevent implementation names from becoming capability truth unless they already represent stable public domain language
8
+
3
9
  ## v1.0.1 - 2026-04-27
4
10
 
5
11
  - require capability specs, spec indexes, and change metadata to resolve the runtime output policy before writing durable artifacts
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cc-spec-init
3
- version: 1.0.1
3
+ version: 1.1.0
4
4
  description: Use when you need to initialize capability specs under `devflow/specs/`, create or evolve capability truth sources, generate `change-meta.json`, or validate roadmap/change/spec links before roadmap, planning, or closeout work continues.
5
5
  ---
6
6
 
@@ -67,6 +67,7 @@ description: Use when you need to initialize capability specs under `devflow/spe
67
67
  2. 先判断你是在做 `bootstrap`、`create`、`update-links`、`split`、`merge` 还是 `deprecate`。
68
68
  3. 先锁定 capability 边界,再写模板;不要先写 prose 再猜结构。
69
69
  4. 先明确 primary capability,再允许 secondary capabilities 存在。
70
+ 5. 先检查命名是否已经有 canonical term;同义词、歧义词和关系约束没收口前,不要新建第二套 capability 名称。
70
71
 
71
72
  ## Session Protocol
72
73
 
@@ -80,6 +81,7 @@ description: Use when you need to initialize capability specs under `devflow/spe
80
81
  - 为当前已知 capability 写最小 spec
81
82
  3. 如果是新 capability:
82
83
  - 先写 capability 边界、约束、当前 truth、gaps
84
+ - 再写最小 language block:canonical term、definition、aliases to avoid、relationships、flagged ambiguities
83
85
  - 再登记到 `INDEX.md`
84
86
  4. 如果是 change 绑定:
85
87
  - 生成或更新 `change-meta.json`
@@ -91,6 +93,17 @@ description: Use when you need to initialize capability specs under `devflow/spe
91
93
  - `INDEX.md` 引到的 capability 文件都存在
92
94
  - `change-meta.json` 里的 capability 都能落到 spec
93
95
  - roadmap / backlog 里的 capability 引用仍可追踪
96
+ - 新 capability 的名称、aliases、relationships 没有和已有 spec 冲突
97
+
98
+ ## Language Boundary Gate
99
+
100
+ capability spec 是长期 truth source,命名必须比一次需求更稳定:
101
+
102
+ - canonical term:只选一个主名,优先沿用 roadmap、历史 design/analysis、代码公共接口和用户领域语言里已经稳定的词。
103
+ - aliases to avoid:记录容易混用的别名,说明为什么不能继续用。
104
+ - flagged ambiguity:同一个词指向两个概念时,必须写清拆分边界,必要时拆 capability。
105
+ - relationships:用一句话写清 capability 之间的拥有、依赖、生命周期、输入输出或互斥关系。
106
+ - implementation names:类名、文件名、函数名只有在它们已经是公共领域语言时才进入 spec;否则留在 change 设计里。
94
107
 
95
108
  ## Output
96
109
 
package/CHANGELOG.md CHANGED
@@ -9,6 +9,27 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
9
9
 
10
10
  ## [Unreleased]
11
11
 
12
+ ## [4.5.3] - 2026-04-29
13
+
14
+ ### Skill Strategy Integration
15
+
16
+ v4.5.3 absorbs the useful strategies from an external skill library into native
17
+ cc-devflow contracts, keeping the public workflow cohesive instead of adding
18
+ parallel skill surfaces.
19
+
20
+ ### Changed
21
+
22
+ - Added an external skill strategy audit and migrated the useful patterns into native cc-devflow contracts instead of copying external skill prose.
23
+ - Updated `cc-plan` to capture glossary deltas, compare non-trivial interface shapes, mark `AFK` / `HITL` vertical slices, and keep durable handoffs behavior-focused.
24
+ - Updated `cc-investigate` to sharpen feedback loops as investigation products and record prevention handoffs after root-cause freeze.
25
+ - Updated `cc-do` and `cc-check` to enforce tracer-bullet execution and review test fixture honesty around partial data, casts, stubs, and mocks.
26
+ - Updated `cc-simplify` to apply deep-module, deletion-test, and real-seam checks before accepting architecture cleanup findings.
27
+ - Updated `cc-act`, `cc-spec-init`, and `docs-sync` to harden issue handoffs, dangerous git action safety, capability language boundaries, and skill contract quality gates.
28
+ - Updated `cc-check` to require QA feedback-loop and behavior evidence for bugfix and user-visible behavior verification, including reproduction mode, determinism, expected/actual behavior, and test seam follow-ups.
29
+ - Updated `cc-act` to carry QA behavior evidence into PR briefs, handoffs, and release notes, and to write follow-ups as durable behavior briefs before roadmap/backlog writeback.
30
+ - Updated `cc-roadmap`, `cc-plan`, and `cc-investigate` to keep canonical language and durable decisions in cc-devflow-native sources: `devflow/specs/`, roadmap/backlog, design/analysis, and change metadata.
31
+ - Refreshed public examples and skill binding metadata for `cc-roadmap@4.4.1`, `cc-plan@3.7.0`, `cc-investigate@1.2.0`, `cc-do@1.6.0`, `cc-check@1.10.0`, `cc-act@1.8.0`, and `cc-spec-init@1.1.0`.
32
+
12
33
  ## [4.5.2] - 2026-04-28
13
34
 
14
35
  ### Skill Review Hardening
package/README.md CHANGED
@@ -76,9 +76,17 @@ Maintenance skills are shipped with the pack:
76
76
 
77
77
  ## Planning Quality Gates
78
78
 
79
- `cc-roadmap` now records planning posture and evidence maturity before recommending a route. That keeps idea-stage, active-user, paying-customer, infrastructure, and recovery work from being forced through the same questions. Developer-facing or operator-facing roadmap items also carry target user, time to first value, magic moment, and adoption bottleneck into `cc-plan`.
79
+ `cc-roadmap` now records planning posture, evidence maturity, canonical project language, and durable decision context before recommending a route. That keeps idea-stage, active-user, paying-customer, infrastructure, and recovery work from being forced through the same questions, and prevents roadmap items from inventing a second vocabulary. Developer-facing or operator-facing roadmap items also carry target user, time to first value, magic moment, adoption bottleneck, and domain handoff into `cc-plan`.
80
80
 
81
- `cc-plan` freezes more implementation decisions before `cc-do` starts. Non-trivial plans compare minimal viable and ideal architecture options, full designs include decision horizon plus error/rescue mapping, and test-first plans record test framework evidence, coverage quality, and mandatory regression tests when existing behavior changes.
81
+ Canonical language and durable decisions stay inside cc-devflow-native sources: `devflow/specs/`, `devflow/ROADMAP.md`, `devflow/BACKLOG.md`, `planning/design.md`, `planning/analysis.md`, and `change-meta.json`.
82
+
83
+ `cc-plan` freezes more implementation decisions before `cc-do` starts. Non-trivial plans compare minimal viable and ideal architecture options, full designs include decision horizon plus error/rescue mapping, and test-first plans record test framework evidence, public test seams, behavior assertions, mock boundaries, coverage quality, mandatory regression tests, interface depth, and vertical tracer-bullet slices when existing behavior changes.
84
+
85
+ ## Verification And Ship Gates
86
+
87
+ `cc-check` now treats QA as a feedback-loop problem, not only a green-test problem. Bugfix and behavior work records the loop used to prove reality, expected versus actual behavior, reproduction steps, test boundary quality, and architecture follow-ups when no clean public test seam exists.
88
+
89
+ `cc-act` carries that evidence into PR briefs, handoffs, and release notes. Follow-ups must be durable behavior briefs with current behavior, desired behavior, key interfaces, acceptance criteria, and explicit out-of-scope notes before they are written back to roadmap or backlog.
82
90
 
83
91
  ## Installation Modes
84
92
 
package/README.zh-CN.md CHANGED
@@ -76,9 +76,17 @@ npx cc-devflow@latest adapt --cwd /path/to/your/project --all
76
76
 
77
77
  ## 计划质量门禁
78
78
 
79
- `cc-roadmap` 现在会先记录 planning posture evidence maturity,再推荐路线。idea、已有用户、付费客户、infra、recovery 场景不会被套进同一组问题。面向开发者或操作者的 roadmap item 还会把目标用户、time to first value、magic moment 和 adoption bottleneck 交给 `cc-plan`。
79
+ `cc-roadmap` 现在会先记录 planning posture、evidence maturity、项目 canonical language 和持久决策上下文,再推荐路线。idea、已有用户、付费客户、infra、recovery 场景不会被套进同一组问题,也不会让 roadmap item 发明第二套词汇。面向开发者或操作者的 roadmap item 还会把目标用户、time to first value、magic moment、adoption bottleneck domain handoff 交给 `cc-plan`。
80
80
 
81
- `cc-plan` 会在 `cc-do` 开始前冻结更多实现决策。非 trivial 计划需要比较 minimal viableideal architecture,full-design 需要包含 implementation decision horizon 和 error/rescue map;测试计划要记录测试框架证据、覆盖质量,并在修改既有行为时强制规划 regression test。
81
+ Canonical language durable decisions 只收敛到 cc-devflow 原生真相源:`devflow/specs/`、`devflow/ROADMAP.md`、`devflow/BACKLOG.md`、`planning/design.md`、`planning/analysis.md``change-meta.json`。
82
+
83
+ `cc-plan` 会在 `cc-do` 开始前冻结更多实现决策。非 trivial 计划需要比较 minimal viable 和 ideal architecture,full-design 需要包含 implementation decision horizon 和 error/rescue map;测试计划要记录测试框架证据、public test seam、behavior assertion、mock boundary、覆盖质量、强制 regression test、interface depth 和 vertical tracer-bullet slices。
84
+
85
+ ## 验证与交付门禁
86
+
87
+ `cc-check` 现在把 QA 当成反馈环问题,而不是只看测试是否绿。Bugfix 和行为变更需要记录证明现实的 loop、expected / actual、复现步骤、测试边界质量;如果没有干净的 public test seam,要留下架构 follow-up。
88
+
89
+ `cc-act` 会把这些证据带进 PR brief、handoff 和 release note。Follow-up 必须写成 durable behavior brief,包含 current behavior、desired behavior、key interfaces、acceptance criteria 和 out-of-scope,再回写 roadmap 或 backlog。
82
90
 
83
91
  ## 安装方式
84
92
 
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "updatedAt": "2026-04-28",
3
3
  "skills": {
4
- "cc-roadmap": "4.3.4",
5
- "cc-plan": "3.5.6",
6
- "cc-investigate": "1.1.4",
7
- "cc-do": "1.5.2",
8
- "cc-check": "1.8.4",
9
- "cc-act": "1.6.4",
10
- "cc-spec-init": "1.0.1"
4
+ "cc-roadmap": "4.4.1",
5
+ "cc-plan": "3.7.0",
6
+ "cc-investigate": "1.2.0",
7
+ "cc-do": "1.6.0",
8
+ "cc-check": "1.10.0",
9
+ "cc-act": "1.8.0",
10
+ "cc-spec-init": "1.1.0"
11
11
  },
12
12
  "examples": [
13
13
  {
@@ -3,7 +3,7 @@
3
3
  ## Backlog Meta
4
4
 
5
5
  - Roadmap version: `roadmap.v2`
6
- - Skill version: `4.3.4`
6
+ - Skill version: `4.4.1`
7
7
  - Last synced: `2026-04-19`
8
8
  - Current focus stage: `Stage 2`
9
9
  - Tracking source: `roadmap-tracking.json`
@@ -4,7 +4,7 @@
4
4
 
5
5
  - Example version: `1.0.0`
6
6
  - Last reviewed: `2026-04-17`
7
- - Bound skills: `cc-roadmap@4.3.4`, `cc-plan@3.5.6`, `cc-do@1.5.2`, `cc-check@1.8.4`
7
+ - Bound skills: `cc-roadmap@4.4.1`, `cc-plan@3.7.0`, `cc-do@1.6.0`, `cc-check@1.10.0`
8
8
 
9
9
  This example shows a requirement that **looked executable**, but `cc-check` correctly stopped it and sent it back to `cc-plan`.
10
10
 
@@ -3,7 +3,7 @@
3
3
  ## Roadmap Meta
4
4
 
5
5
  - Roadmap version: `roadmap.v2`
6
- - Skill version: `4.3.4`
6
+ - Skill version: `4.4.1`
7
7
  - Status: `active`
8
8
  - Last updated: `2026-04-16`
9
9
  - Owner / decider: `product-owner`
@@ -4,7 +4,7 @@
4
4
 
5
5
  - Requirement version: `REQ-002.v2`
6
6
  - Design version: `design.v2`
7
- - CC-Plan skill version: `3.5.6`
7
+ - CC-Plan skill version: `3.7.0`
8
8
  - Requirement ID: `REQ-002`
9
9
  - Design mode: `full-design`
10
10
  - Why not `tiny-design`: the feature crosses import parsing, invite rules, billing limits, duplicate handling, and audit logging
@@ -4,7 +4,7 @@
4
4
 
5
5
  - Requirement version: `REQ-002.v2`
6
6
  - Design version: `design.v2`
7
- - CC-Plan skill version: `3.5.6`
7
+ - CC-Plan skill version: `3.7.0`
8
8
  - Source roadmap item: `RM-010`
9
9
  - Source roadmap version: `roadmap.v2`
10
10
 
@@ -3,7 +3,7 @@
3
3
  "lastSyncedAt": "2026-04-19",
4
4
  "backlogMeta": {
5
5
  "roadmapVersion": "roadmap.v2",
6
- "skillVersion": "4.3.4",
6
+ "skillVersion": "4.4.1",
7
7
  "currentFocusStage": "Stage 2"
8
8
  },
9
9
  "dependencyHandoff": {
@@ -3,7 +3,7 @@
3
3
  ## Backlog Meta
4
4
 
5
5
  - Roadmap version: `roadmap.v2`
6
- - Skill version: `4.3.4`
6
+ - Skill version: `4.4.1`
7
7
  - Last synced: `2026-04-19`
8
8
  - Current focus stage: `Stage 2`
9
9
  - Tracking source: `roadmap-tracking.json`
@@ -4,7 +4,7 @@
4
4
 
5
5
  - Example version: `1.0.0`
6
6
  - Last reviewed: `2026-04-17`
7
- - Bound skills: `cc-roadmap@4.3.4`, `cc-plan@3.5.6`, `cc-do@1.5.2`, `cc-check@1.8.4`, `cc-act@1.6.4`
7
+ - Bound skills: `cc-roadmap@4.4.1`, `cc-plan@3.7.0`, `cc-do@1.6.0`, `cc-check@1.10.0`, `cc-act@1.8.0`
8
8
 
9
9
  This example shows verified work that is **ready to move forward**, but `cc-act` still chooses `local-handoff`.
10
10
 
@@ -3,7 +3,7 @@
3
3
  ## Roadmap Meta
4
4
 
5
5
  - Roadmap version: `roadmap.v3`
6
- - Skill version: `4.3.4`
6
+ - Skill version: `4.4.1`
7
7
  - Status: `active`
8
8
  - Last updated: `2026-04-16`
9
9
  - Owner / decider: `product-owner`
@@ -4,7 +4,7 @@
4
4
 
5
5
  - Requirement version: `REQ-003.v1`
6
6
  - Design version: `design.v1`
7
- - CC-Plan skill version: `3.5.6`
7
+ - CC-Plan skill version: `3.7.0`
8
8
  - Requirement ID: `REQ-003`
9
9
  - Design mode: `tiny-design`
10
10
  - Why this stays `tiny-design`: the patch adds one export action inside the existing admin audit UI without changing data contracts
@@ -4,7 +4,7 @@
4
4
 
5
5
  - Requirement version: `REQ-003.v1`
6
6
  - Design version: `design.v1`
7
- - CC-Plan skill version: `3.5.6`
7
+ - CC-Plan skill version: `3.7.0`
8
8
  - Source roadmap item: `RM-020`
9
9
  - Source roadmap version: `roadmap.v3`
10
10
 
@@ -3,7 +3,7 @@
3
3
  "lastSyncedAt": "2026-04-19",
4
4
  "backlogMeta": {
5
5
  "roadmapVersion": "roadmap.v2",
6
- "skillVersion": "4.3.4",
6
+ "skillVersion": "4.4.1",
7
7
  "currentFocusStage": "Stage 2"
8
8
  },
9
9
  "dependencyHandoff": {
@@ -3,7 +3,7 @@
3
3
  ## Backlog Meta
4
4
 
5
5
  - Roadmap version: `roadmap.v1`
6
- - Skill version: `4.3.4`
6
+ - Skill version: `4.4.1`
7
7
  - Last synced: `2026-04-19`
8
8
  - Current focus stage: `Stage 1`
9
9
  - Tracking source: `roadmap-tracking.json`
@@ -4,7 +4,7 @@
4
4
 
5
5
  - Example version: `1.0.0`
6
6
  - Last reviewed: `2026-04-17`
7
- - Bound skills: `cc-roadmap@4.3.4`, `cc-plan@3.5.6`, `cc-do@1.5.2`, `cc-check@1.8.4`, `cc-act@1.6.4`
7
+ - Bound skills: `cc-roadmap@4.4.1`, `cc-plan@3.7.0`, `cc-do@1.6.0`, `cc-check@1.10.0`, `cc-act@1.8.0`
8
8
 
9
9
  This folder shows one minimal but complete `cc-roadmap -> cc-plan -> cc-do -> cc-check -> cc-act` loop.
10
10
 
@@ -3,7 +3,7 @@
3
3
  ## Roadmap Meta
4
4
 
5
5
  - Roadmap version: `roadmap.v1`
6
- - Skill version: `4.3.4`
6
+ - Skill version: `4.4.1`
7
7
  - Status: `active`
8
8
  - Last updated: `2026-04-15`
9
9
  - Owner / decider: `product-owner`
@@ -4,7 +4,7 @@
4
4
 
5
5
  - Requirement version: `REQ-001.v1`
6
6
  - Design version: `design.v1`
7
- - CC-Plan skill version: `3.5.6`
7
+ - CC-Plan skill version: `3.7.0`
8
8
  - Requirement ID: `REQ-001`
9
9
  - Design mode: `tiny-design`
10
10
  - Why this stays `tiny-design`: the patch is limited to an existing dialog and test file, with no API or data model changes
@@ -9,7 +9,7 @@
9
9
  "sourceRoadmap": {
10
10
  "itemId": "RM-001",
11
11
  "roadmapVersion": "roadmap.v1",
12
- "roadmapSkillVersion": "4.3.4",
12
+ "roadmapSkillVersion": "4.4.1",
13
13
  "sourceStage": "Stage 1",
14
14
  "successSignal": "Users can copy the invite link with one click",
15
15
  "killSignal": "The patch requires backend or permission changes",
@@ -22,7 +22,7 @@
22
22
  ]
23
23
  },
24
24
  "planningMeta": {
25
- "reqPlanSkillVersion": "3.5.6",
25
+ "reqPlanSkillVersion": "3.7.0",
26
26
  "designVersion": "design.v1",
27
27
  "approvedAt": "2026-04-15T10:05:00.000Z",
28
28
  "approvedBy": "user",
@@ -4,7 +4,7 @@
4
4
 
5
5
  - Requirement version: `REQ-001.v1`
6
6
  - Design version: `design.v1`
7
- - CC-Plan skill version: `3.5.6`
7
+ - CC-Plan skill version: `3.7.0`
8
8
  - Source roadmap item: `RM-001`
9
9
  - Source roadmap version: `roadmap.v1`
10
10
 
@@ -3,7 +3,7 @@
3
3
  "lastSyncedAt": "2026-04-19",
4
4
  "backlogMeta": {
5
5
  "roadmapVersion": "roadmap.v1",
6
- "skillVersion": "4.3.4",
6
+ "skillVersion": "4.4.1",
7
7
  "currentFocusStage": "Stage 1"
8
8
  },
9
9
  "dependencyHandoff": {
@@ -0,0 +1,48 @@
1
+ # External Skill Strategy Audit
2
+
3
+ 本审计覆盖 `/Users/dimon/001Area/80-CodeWorld/003-project/skills` 下的 22 个
4
+ `SKILL.md`。目标不是复制外部 skill,而是抽取能让 cc-devflow 原生 workflow
5
+ 更稳的策略,并把不适合迁移的部分明确跳过。
6
+
7
+ ## Migration Summary
8
+
9
+ | Source skill | Good strategy | cc-devflow target | Decision |
10
+ | --- | --- | --- | --- |
11
+ | `deprecated/design-an-interface` | "design it twice",用不同接口形态比较 depth、易用错点和隐藏复杂度 | `cc-plan` | 迁移为接口备选比较 gate,不迁移 parallel subagent 强制要求 |
12
+ | `deprecated/qa` | 用户视角 issue、轻量澄清、按可独立验证行为拆分 | `cc-act` / `cc-plan` | 迁移为 follow-up / issue handoff 的行为化规则 |
13
+ | `deprecated/request-refactor-plan` | 重构计划拆成 tiny commits,每步保持可运行 | `cc-plan` / `cc-act` | 迁移为 refactor slicing 和 bisectable commit 规则 |
14
+ | `deprecated/triage-issue` | 先查根因,再写 TDD fix plan,issue 不绑定易腐烂文件行号 | `cc-investigate` / `cc-plan` | 迁移为 repair contract 和 durable issue brief 规则 |
15
+ | `deprecated/ubiquitous-language` | canonical terms、aliases to avoid、ambiguity flag | `cc-spec-init` / `cc-plan` | 迁移为 capability/domain language glossary gate |
16
+ | `engineering/diagnose` | 反馈回路优先级、提高 flaky 复现率、假设必须可证伪、debug tag cleanup | `cc-investigate` | 已有大部分;补强 loop sharpening 和 postmortem handoff |
17
+ | `engineering/github-triage` | label state machine、needs-info 保留已确认事实、resume triage notes | `cc-act` | 迁移为远端 issue/PR closeout 的状态一致性规则 |
18
+ | `engineering/grill-with-docs` | 术语冲突立即叫停、具体场景压测、ADR 只记难逆/意外/真实取舍 | `cc-plan` | 已有大部分;补强 glossary update 和 ADR sparsity |
19
+ | `engineering/improve-codebase-architecture` | deep module、deletion test、one adapter vs two adapters、locality/leverage | `cc-simplify` / `cc-plan` | 迁移为架构坏味道确认清单 |
20
+ | `engineering/tdd` | 禁止水平切片,使用 tracer bullet 垂直 Red/Green 循环 | `cc-do` / `cc-plan` | 已有 planning 规则;补强执行阶段逐条 task 的 tracer bullet guard |
21
+ | `engineering/to-issues` | 独立可领的 vertical slices,HITL/AFK 标注,依赖顺序创建 | `cc-plan` / `cc-act` | 迁移为 task / follow-up 切片规则 |
22
+ | `engineering/to-prd` | 从现有上下文合成 PRD,测试决策只写行为和模块,不写短期文件路径 | `cc-plan` | 迁移为 design durable output 规则,不迁移 GitHub issue 自动创建 |
23
+ | `engineering/zoom-out` | 不熟悉区域时先上升一层,画模块和调用方地图 | `cc-roadmap` / `cc-plan` | 已被 context sweep 覆盖;仅作为审计备注 |
24
+ | `misc/git-guardrails-claude-code` | 阻断危险 git 动作,保留用户确认边界 | `cc-act` | 迁移为 destructive / publish action guard,不迁移 Claude hook 实现 |
25
+ | `misc/migrate-to-shoehorn` | 测试里的 partial fixture 要显式表达,不用不透明 cast 掩盖类型事实 | `cc-do` / `cc-check` | 迁移为通用 test fixture discipline,不绑定 shoehorn 依赖 |
26
+ | `misc/scaffold-exercises` | 生成目录后必须跑专用 lint,移动用 `git mv` 保留历史 | `cc-act` | 仅迁移验证/移动原则;课程目录规则不迁移 |
27
+ | `misc/setup-pre-commit` | 根据实际包管理器和已有 scripts 装配 hook,最后用真实 hook smoke | `cc-act` | 仅作为工具链变更验证参考,不迁移 Husky 方案 |
28
+ | `personal/edit-article` | 文档结构按依赖顺序组织,段落短、信息先后可追踪 | `docs-sync` | 迁移为 docs-sync 叙事顺序规则 |
29
+ | `personal/obsidian-vault` | index note、wikilink、反向查找的知识图谱维护 | none | 个人知识库规则,不迁移到 cc-devflow |
30
+ | `productivity/caveman` | 压缩沟通但保留精确技术事实,复杂步骤暂时恢复完整表达 | `cc-act` / output style | 作为输出风格参考,不写进 workflow 合约 |
31
+ | `productivity/grill-me` | 一次一个问题;能查代码就别问用户 | `cc-plan` | 已有规则;审计确认不重复迁移 |
32
+ | `productivity/write-a-skill` | description 是触发真相源;SKILL.md 要短,复杂内容下沉到 references/scripts | `docs-sync` | 迁移为 skill contract quality gate |
33
+
34
+ ## Implementation Order
35
+
36
+ 1. `cc-plan`: 吸收接口备选、领域语言、垂直切片和 durable design 输出规则。
37
+ 2. `cc-investigate`: 补强 feedback loop sharpening、flaky rate、postmortem handoff。
38
+ 3. `cc-do`: 补强 tracer bullet 执行和 test fixture discipline。
39
+ 4. `cc-simplify`: 增加 deep module / deletion test / adapter reality 检查。
40
+ 5. `cc-act`: 增加 issue/PR 状态、危险 git 动作、工具链验证和 durable follow-up 规则。
41
+ 6. `docs-sync`: 增加 skill 合约质量 gate 和文档依赖顺序检查。
42
+
43
+ ## Skip Rules
44
+
45
+ - 不迁移个人路径、个人 vault、课程目录命名、具体第三方测试依赖。
46
+ - 不把 deprecated skill 的 GitHub issue 自动创建行为搬进主流程;cc-devflow 仍以
47
+ durable local artifact 和可选 remote handoff 为主。
48
+ - 不新增一套平行 skill;所有迁移必须落回现有 `cc-*` workflow 语义。
@@ -204,7 +204,22 @@ describe('Skill runtime', () => {
204
204
  '--status',
205
205
  'passed',
206
206
  '--summary',
207
- 'task finished'
207
+ 'task finished',
208
+ '--tdd-json',
209
+ JSON.stringify({
210
+ red: {
211
+ testSeam: 'public helper command',
212
+ behaviorAsserted: 'checkpoint is written under execution/tasks',
213
+ allowedMocks: [],
214
+ implementationDetailRisk: 'low'
215
+ },
216
+ testQuality: {
217
+ usesPublicInterface: true,
218
+ describesBehavior: true,
219
+ survivesInternalRefactor: true,
220
+ mocksOnlySystemBoundaries: true
221
+ }
222
+ })
208
223
  ], { encoding: 'utf8' });
209
224
  expect(checkpoint.status).toBe(0);
210
225
 
@@ -245,6 +260,9 @@ describe('Skill runtime', () => {
245
260
  expect(verify.status).toBe(0);
246
261
 
247
262
  expect(fs.existsSync(path.join(change.tasksDir, 'T001', 'checkpoint.json'))).toBe(true);
263
+ const checkpointJson = JSON.parse(fs.readFileSync(path.join(change.tasksDir, 'T001', 'checkpoint.json'), 'utf8'));
264
+ expect(checkpointJson.tdd.red.testSeam).toBe('public helper command');
265
+ expect(checkpointJson.tdd.testQuality.usesPublicInterface).toBe(true);
248
266
  expect(fs.existsSync(path.join(repoRoot, '.harness', 'runtime', changeId))).toBe(false);
249
267
  expect(fs.existsSync(path.join(change.tasksDir, 'T001', 'checkpoint.md'))).toBe(false);
250
268
  expect(fs.existsSync(path.join(change.tasksDir, 'T001', 'review-spec.md'))).toBe(false);
@@ -247,6 +247,14 @@ const ManifestSchema = z.object({
247
247
  }
248
248
  });
249
249
 
250
+ const TddCheckpointEvidenceSchema = z.object({
251
+ red: z.record(z.any()).optional(),
252
+ green: z.record(z.any()).optional(),
253
+ refactor: z.record(z.any()).optional(),
254
+ feedbackLoop: z.record(z.any()).optional(),
255
+ testQuality: z.record(z.any()).optional()
256
+ }).passthrough();
257
+
250
258
  const CheckpointSchema = z.object({
251
259
  changeId: ChangeIdSchema,
252
260
  taskId: z.string().regex(TASK_ID_PATTERN),
@@ -257,7 +265,9 @@ const CheckpointSchema = z.object({
257
265
  error: z.string().default(''),
258
266
  outputExcerpt: z.string().default(''),
259
267
  timestamp: z.string().datetime(),
260
- attempt: z.number().int().min(0).default(0)
268
+ attempt: z.number().int().min(0).default(0),
269
+ tdd: TddCheckpointEvidenceSchema.optional(),
270
+ tddException: z.record(z.any()).optional()
261
271
  });
262
272
 
263
273
  const GateResultSchema = z.object({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cc-devflow",
3
- "version": "4.5.2",
3
+ "version": "4.5.3",
4
4
  "description": "Multi-platform CLI and skill pack for agent coding",
5
5
  "main": "bin/cc-devflow.js",
6
6
  "bin": {