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.
- package/.claude/skills/cc-act/CHANGELOG.md +13 -0
- package/.claude/skills/cc-act/PLAYBOOK.md +7 -1
- package/.claude/skills/cc-act/SKILL.md +22 -5
- package/.claude/skills/cc-act/assets/PR_BRIEF_TEMPLATE.md +15 -1
- package/.claude/skills/cc-act/assets/RELEASE_NOTE_TEMPLATE.md +10 -1
- package/.claude/skills/cc-act/references/closure-contract.md +3 -0
- package/.claude/skills/cc-act/scripts/cc-act-common.sh +27 -1
- package/.claude/skills/cc-act/scripts/render-pr-brief.sh +31 -0
- package/.claude/skills/cc-act/scripts/verify-act-gate.sh +6 -0
- package/.claude/skills/cc-check/CHANGELOG.md +12 -0
- package/.claude/skills/cc-check/PLAYBOOK.md +34 -7
- package/.claude/skills/cc-check/SKILL.md +25 -6
- package/.claude/skills/cc-check/assets/REPORT_CARD_TEMPLATE.json +43 -0
- package/.claude/skills/cc-check/references/gate-contract.md +11 -0
- package/.claude/skills/cc-check/references/review-contract.md +17 -1
- package/.claude/skills/cc-check/scripts/render-report-card.js +37 -0
- package/.claude/skills/cc-check/scripts/verify-gate.sh +7 -0
- package/.claude/skills/cc-do/CHANGELOG.md +12 -0
- package/.claude/skills/cc-do/PLAYBOOK.md +14 -9
- package/.claude/skills/cc-do/SKILL.md +24 -13
- package/.claude/skills/cc-do/references/execution-recovery.md +16 -5
- package/.claude/skills/cc-do/scripts/verify-task-gates.sh +19 -6
- package/.claude/skills/cc-do/scripts/write-task-checkpoint.sh +14 -2
- package/.claude/skills/cc-investigate/CHANGELOG.md +18 -0
- package/.claude/skills/cc-investigate/PLAYBOOK.md +28 -13
- package/.claude/skills/cc-investigate/SKILL.md +78 -20
- package/.claude/skills/cc-investigate/assets/ANALYSIS_TEMPLATE.md +38 -3
- package/.claude/skills/cc-investigate/assets/TASKS_TEMPLATE.md +9 -4
- package/.claude/skills/cc-investigate/assets/TASK_MANIFEST_TEMPLATE.json +41 -2
- package/.claude/skills/cc-investigate/references/investigation-contract.md +46 -0
- package/.claude/skills/cc-plan/CHANGELOG.md +26 -0
- package/.claude/skills/cc-plan/PLAYBOOK.md +18 -6
- package/.claude/skills/cc-plan/SKILL.md +72 -34
- package/.claude/skills/cc-plan/assets/DESIGN_TEMPLATE.md +30 -3
- package/.claude/skills/cc-plan/assets/TASKS_TEMPLATE.md +28 -0
- package/.claude/skills/cc-plan/assets/TASK_MANIFEST_TEMPLATE.json +46 -1
- package/.claude/skills/cc-plan/assets/TINY_DESIGN_TEMPLATE.md +24 -0
- package/.claude/skills/cc-plan/references/planning-contract.md +18 -4
- package/.claude/skills/cc-roadmap/CHANGELOG.md +14 -0
- package/.claude/skills/cc-roadmap/PLAYBOOK.md +10 -7
- package/.claude/skills/cc-roadmap/SKILL.md +43 -23
- package/.claude/skills/cc-roadmap/assets/BACKLOG_TEMPLATE.md +10 -0
- package/.claude/skills/cc-roadmap/assets/ROADMAP_TEMPLATE.md +15 -0
- package/.claude/skills/cc-roadmap/assets/TRACKING_TEMPLATE.json +1 -1
- package/.claude/skills/cc-roadmap/references/roadmap-dialogue.md +11 -7
- package/.claude/skills/cc-simplify/CHANGELOG.md +6 -0
- package/.claude/skills/cc-simplify/SKILL.md +10 -1
- package/.claude/skills/cc-spec-init/CHANGELOG.md +6 -0
- package/.claude/skills/cc-spec-init/SKILL.md +14 -1
- package/CHANGELOG.md +21 -0
- package/README.md +10 -2
- package/README.zh-CN.md +10 -2
- package/docs/examples/example-bindings.json +7 -7
- package/docs/examples/full-design-blocked/BACKLOG.md +1 -1
- package/docs/examples/full-design-blocked/README.md +1 -1
- package/docs/examples/full-design-blocked/ROADMAP.md +1 -1
- package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/design.md +1 -1
- package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/tasks.md +1 -1
- package/docs/examples/full-design-blocked/roadmap-tracking.json +1 -1
- package/docs/examples/local-handoff/BACKLOG.md +1 -1
- package/docs/examples/local-handoff/README.md +1 -1
- package/docs/examples/local-handoff/ROADMAP.md +1 -1
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/design.md +1 -1
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/tasks.md +1 -1
- package/docs/examples/local-handoff/roadmap-tracking.json +1 -1
- package/docs/examples/pdca-loop/BACKLOG.md +1 -1
- package/docs/examples/pdca-loop/README.md +1 -1
- package/docs/examples/pdca-loop/ROADMAP.md +1 -1
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/design.md +1 -1
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/task-manifest.json +2 -2
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/tasks.md +1 -1
- package/docs/examples/pdca-loop/roadmap-tracking.json +1 -1
- package/docs/skill-strategy-audit.md +48 -0
- package/lib/skill-runtime/__tests__/runtime.integration.test.js +19 -1
- package/lib/skill-runtime/schemas.js +11 -1
- package/package.json +1 -1
|
@@ -40,6 +40,16 @@
|
|
|
40
40
|
- Intentional gaps:
|
|
41
41
|
- Spec sync target:
|
|
42
42
|
|
|
43
|
+
## Domain Language & Durable Decisions
|
|
44
|
+
|
|
45
|
+
- Language sources loaded:
|
|
46
|
+
- Canonical terms used:
|
|
47
|
+
- Terms avoided / aliases:
|
|
48
|
+
- Language conflicts:
|
|
49
|
+
- Native decision sources loaded:
|
|
50
|
+
- Capability spec / roadmap decision conflicts:
|
|
51
|
+
- Decisions worth long-term capability spec sync:
|
|
52
|
+
|
|
43
53
|
## Requirement Snapshot
|
|
44
54
|
|
|
45
55
|
- Raw ask:
|
|
@@ -101,6 +111,14 @@
|
|
|
101
111
|
- Error handling:
|
|
102
112
|
- Rollout / migration:
|
|
103
113
|
|
|
114
|
+
## Interface / Deep Module Check
|
|
115
|
+
|
|
116
|
+
| Surface | Callers | Public operations | Complexity hidden | Misuse risk | Shape decision |
|
|
117
|
+
|---------|---------|-------------------|-------------------|-------------|----------------|
|
|
118
|
+
| | | | | | |
|
|
119
|
+
|
|
120
|
+
> 新增或改动公共接口时,优先小接口深模块。若有两个合理形态,写清为什么没有选择另一个。
|
|
121
|
+
|
|
104
122
|
## Implementation Decision Horizon
|
|
105
123
|
|
|
106
124
|
| Phase | Decision `cc-do` would otherwise hit | Frozen answer | Evidence / owner |
|
|
@@ -142,6 +160,11 @@
|
|
|
142
160
|
|
|
143
161
|
- Test framework source:
|
|
144
162
|
- First failing tests:
|
|
163
|
+
- Test seams / public interfaces:
|
|
164
|
+
- Behavior assertions:
|
|
165
|
+
- Mock boundaries:
|
|
166
|
+
- Feedback loop types:
|
|
167
|
+
- Tracer bullet order:
|
|
145
168
|
- Red/Green/Refactor task chain:
|
|
146
169
|
- TDD exceptions:
|
|
147
170
|
- Regression tests required:
|
|
@@ -154,9 +177,9 @@
|
|
|
154
177
|
|
|
155
178
|
## Test Coverage Map
|
|
156
179
|
|
|
157
|
-
| Code path / user flow | Existing coverage | Quality | Required test | Level | Regression? |
|
|
158
|
-
|
|
159
|
-
| | | strong / happy-path-only / smoke-only / missing | | unit / integration / e2e / eval | Yes / No |
|
|
180
|
+
| Code path / user flow | Public seam | Behavior asserted | Existing coverage | Quality | Required test | Level | Mock boundary | Implementation-detail risk | Regression? |
|
|
181
|
+
|-----------------------|-------------|-------------------|-------------------|---------|---------------|-------|---------------|----------------------------|-------------|
|
|
182
|
+
| | | | | strong / happy-path-only / smoke-only / missing | | unit / integration / e2e / eval | none / system boundary | low / medium / high | Yes / No |
|
|
160
183
|
|
|
161
184
|
## Error & Rescue Map
|
|
162
185
|
|
|
@@ -200,10 +223,14 @@
|
|
|
200
223
|
- Ambiguity scan:
|
|
201
224
|
- Feasibility scan:
|
|
202
225
|
- Source alignment:
|
|
226
|
+
- Domain language scan:
|
|
203
227
|
- Implementation surface scan:
|
|
228
|
+
- Interface depth scan:
|
|
204
229
|
- Decision horizon scan:
|
|
205
230
|
- Error & rescue scan:
|
|
206
231
|
- Test framework / regression scan:
|
|
232
|
+
- Test seam / mock boundary scan:
|
|
233
|
+
- Tracer bullet scan:
|
|
207
234
|
- UI / interaction review summary:
|
|
208
235
|
- DX / operator review summary:
|
|
209
236
|
- Test-first readiness:
|
|
@@ -17,10 +17,15 @@
|
|
|
17
17
|
- Execution mode: `single-path` | `parallel-ready`
|
|
18
18
|
- Frozen decisions:
|
|
19
19
|
- Capability specs:
|
|
20
|
+
- Canonical language / terms:
|
|
20
21
|
- Read first:
|
|
21
22
|
- Commands to trust:
|
|
22
23
|
- Test framework source:
|
|
24
|
+
- Test seam policy: Red tasks verify behavior through public interfaces, caller flows, CLI/API/UI paths, or other real seams.
|
|
25
|
+
- Mock boundary policy: mock only system boundaries; do not mock internal collaborators owned by this codebase.
|
|
26
|
+
- Feedback loop ladder: automated test -> HTTP/curl -> CLI fixture -> browser script -> trace replay -> harness -> property/fuzz -> differential -> HITL.
|
|
23
27
|
- TDD plan: `Red -> Green -> Refactor`
|
|
28
|
+
- Tracer bullet plan: one observable behavior at a time; no horizontal "all tests first, all code later" slice
|
|
24
29
|
- TDD exceptions: none | list exception reason, risk, replacement evidence, follow-up
|
|
25
30
|
- Regression tests: required | not applicable, with reason
|
|
26
31
|
- Do not re-decide:
|
|
@@ -36,6 +41,14 @@
|
|
|
36
41
|
|
|
37
42
|
> 这张表是执行边界,不是装饰。任务拆分必须沿着这些职责走,不能让 `cc-do` 临场重切文件归属。
|
|
38
43
|
|
|
44
|
+
## Tracer Bullet Map
|
|
45
|
+
|
|
46
|
+
| Slice | Observable behavior | Public test seam | Feedback loop | Red task | Green task | Refactor / evidence | Why vertical |
|
|
47
|
+
|-------|---------------------|------------------|---------------|----------|------------|---------------------|--------------|
|
|
48
|
+
| Slice 1 | | | automated test | T001 | T002 | T005 | |
|
|
49
|
+
|
|
50
|
+
> 每个 slice 必须能独立证明一个端到端行为,不要按“只改数据层 / 只改 UI 层”横切。
|
|
51
|
+
|
|
39
52
|
## Phase 1: Foundation
|
|
40
53
|
|
|
41
54
|
- [ ] T001 [TEST] Write the first failing test (dependsOn:none) `path/to/test`
|
|
@@ -46,6 +59,11 @@
|
|
|
46
59
|
Verification: `npm test -- path/to/test`
|
|
47
60
|
Evidence: failing output
|
|
48
61
|
Coverage: unit / integration / e2e / eval; regression: yes / no
|
|
62
|
+
Test seam: public interface / caller flow / CLI / API / UI / trace replay / harness
|
|
63
|
+
Behavior asserted: 描述用户或调用方可观察行为,不描述内部实现步骤
|
|
64
|
+
Allowed mocks: none / external API / time / randomness / filesystem / database boundary
|
|
65
|
+
Test quality guard: no private methods, no internal call-count assertions, no internal collaborator mocks
|
|
66
|
+
Vertical slice: Slice 1
|
|
49
67
|
Ready when: 没有上游依赖,且测试路径已经确定
|
|
50
68
|
|
|
51
69
|
- [ ] T002 [IMPL] Make the first test pass (dependsOn:T001) `path/to/file`
|
|
@@ -55,6 +73,7 @@
|
|
|
55
73
|
Read first: `design.md`, `path/to/test`
|
|
56
74
|
Verification: `npm test -- path/to/test`
|
|
57
75
|
Evidence: passing output + checkpoint
|
|
76
|
+
Vertical slice: Slice 1
|
|
58
77
|
Ready when: T001 已经见红,且当前 touched files 不和其他并行任务冲突
|
|
59
78
|
|
|
60
79
|
## Phase 2: Build
|
|
@@ -67,6 +86,11 @@
|
|
|
67
86
|
Verification: `npm test -- path/to/other.test`
|
|
68
87
|
Evidence: failing output
|
|
69
88
|
Coverage: unit / integration / e2e / eval; regression: yes / no
|
|
89
|
+
Test seam: public interface / caller flow / CLI / API / UI / trace replay / harness
|
|
90
|
+
Behavior asserted: 描述用户或调用方可观察行为,不描述内部实现步骤
|
|
91
|
+
Allowed mocks: none / external API / time / randomness / filesystem / database boundary
|
|
92
|
+
Test quality guard: no private methods, no internal call-count assertions, no internal collaborator mocks
|
|
93
|
+
Vertical slice: Slice 2
|
|
70
94
|
Ready when: T002 完成,且该测试覆盖的是独立行为
|
|
71
95
|
|
|
72
96
|
- [ ] T004 [P] [IMPL] Make the independent test pass (dependsOn:T003) `path/to/other-file`
|
|
@@ -76,6 +100,7 @@
|
|
|
76
100
|
Read first: `design.md`, `path/to/other.test`
|
|
77
101
|
Verification: `npm test -- path/to/other.test`
|
|
78
102
|
Evidence: passing output + review notes
|
|
103
|
+
Vertical slice: Slice 2
|
|
79
104
|
Ready when: T003 已经见红,且文件触点与其他 `[P]` 任务不冲突
|
|
80
105
|
|
|
81
106
|
## Phase 3: Verify
|
|
@@ -110,3 +135,6 @@
|
|
|
110
135
|
- 要留下什么证据给 `cc-check`
|
|
111
136
|
- 它处于 Red、Green、Refactor,还是明确的 TDD exception
|
|
112
137
|
- 测试框架依据来自哪里,回归测试是否被明确处理
|
|
138
|
+
- Red task 通过哪个公共 seam 证明行为缺失,允许 mock 的边界是什么
|
|
139
|
+
- 测试是否会在内部重构后继续成立,而不是绑定私有函数、调用次数或临时结构
|
|
140
|
+
- 它属于哪个 tracer bullet 垂直切片,完成后哪个可观察行为被证明
|
|
@@ -20,16 +20,41 @@
|
|
|
20
20
|
]
|
|
21
21
|
},
|
|
22
22
|
"planningMeta": {
|
|
23
|
-
"reqPlanSkillVersion": "3.
|
|
23
|
+
"reqPlanSkillVersion": "3.7.0",
|
|
24
24
|
"designVersion": "design.v1",
|
|
25
25
|
"approvedAt": "2026-04-15T12:00:00.000Z",
|
|
26
26
|
"approvedBy": "user",
|
|
27
27
|
"basedOnOption": "Option A"
|
|
28
28
|
},
|
|
29
|
+
"languageAndDecisions": {
|
|
30
|
+
"languageSources": [],
|
|
31
|
+
"canonicalTerms": [],
|
|
32
|
+
"languageConflicts": [],
|
|
33
|
+
"decisionDocs": [],
|
|
34
|
+
"adrOrSpecConflicts": []
|
|
35
|
+
},
|
|
29
36
|
"executionDiscipline": {
|
|
30
37
|
"default": "red-green-refactor",
|
|
38
|
+
"taskShape": "vertical-tracer-bullets",
|
|
31
39
|
"testFirstRequired": true,
|
|
32
40
|
"testFrameworkSource": "",
|
|
41
|
+
"testQualityPolicy": {
|
|
42
|
+
"publicInterfaceRequired": true,
|
|
43
|
+
"behaviorAssertionRequired": true,
|
|
44
|
+
"mockBoundary": "system-boundaries-only",
|
|
45
|
+
"implementationDetailTests": "blocked",
|
|
46
|
+
"feedbackLoopPreference": [
|
|
47
|
+
"automated-test",
|
|
48
|
+
"http-curl",
|
|
49
|
+
"cli-fixture",
|
|
50
|
+
"browser-script",
|
|
51
|
+
"trace-replay",
|
|
52
|
+
"throwaway-harness",
|
|
53
|
+
"property-fuzz",
|
|
54
|
+
"differential-loop",
|
|
55
|
+
"hitl-script"
|
|
56
|
+
]
|
|
57
|
+
},
|
|
33
58
|
"regressionTestsRequired": [],
|
|
34
59
|
"tddExceptions": []
|
|
35
60
|
},
|
|
@@ -67,6 +92,26 @@
|
|
|
67
92
|
"phase": 1,
|
|
68
93
|
"status": "pending",
|
|
69
94
|
"tddPhase": "red",
|
|
95
|
+
"verticalSlice": "Slice 1",
|
|
96
|
+
"testSeam": {
|
|
97
|
+
"entry": "public interface / caller flow / CLI / API / UI / trace replay / harness",
|
|
98
|
+
"behaviorAsserted": "The user or caller observable behavior that should exist",
|
|
99
|
+
"implementationDetailRisk": "low"
|
|
100
|
+
},
|
|
101
|
+
"feedbackLoop": {
|
|
102
|
+
"type": "automated-test",
|
|
103
|
+
"determinism": "deterministic",
|
|
104
|
+
"expectedFailure": "Fails because the target behavior is missing"
|
|
105
|
+
},
|
|
106
|
+
"allowedMocks": [
|
|
107
|
+
"external API / time / randomness / filesystem / database boundary"
|
|
108
|
+
],
|
|
109
|
+
"testQuality": {
|
|
110
|
+
"usesPublicInterface": true,
|
|
111
|
+
"describesBehavior": true,
|
|
112
|
+
"survivesInternalRefactor": true,
|
|
113
|
+
"mocksOnlySystemBoundaries": true
|
|
114
|
+
},
|
|
70
115
|
"dependsOn": [],
|
|
71
116
|
"parallel": false,
|
|
72
117
|
"touches": [
|
|
@@ -32,6 +32,13 @@
|
|
|
32
32
|
- Current gaps:
|
|
33
33
|
- Spec sync target:
|
|
34
34
|
|
|
35
|
+
## Domain Language & Decisions
|
|
36
|
+
|
|
37
|
+
- Language sources loaded:
|
|
38
|
+
- Canonical terms used:
|
|
39
|
+
- Language / spec decision conflicts:
|
|
40
|
+
- Decisions worth long-term spec sync:
|
|
41
|
+
|
|
35
42
|
## Frozen Design Card
|
|
36
43
|
|
|
37
44
|
- Change:
|
|
@@ -45,6 +52,14 @@
|
|
|
45
52
|
|
|
46
53
|
> `tiny-design` 是短设计,不是免设计。没有明确批准状态、验证证据和升级触发条件,就不能继续拆任务。
|
|
47
54
|
|
|
55
|
+
## Interface Shape
|
|
56
|
+
|
|
57
|
+
- Callers:
|
|
58
|
+
- Public operations:
|
|
59
|
+
- Complexity hidden:
|
|
60
|
+
- Misuse risk:
|
|
61
|
+
- Why this stays simple:
|
|
62
|
+
|
|
48
63
|
## Implementation Surface Map
|
|
49
64
|
|
|
50
65
|
| Surface | Responsibility | Why here | Coupling risk |
|
|
@@ -55,6 +70,11 @@
|
|
|
55
70
|
|
|
56
71
|
- Test framework source:
|
|
57
72
|
- First failing test:
|
|
73
|
+
- Test seam / public interface:
|
|
74
|
+
- Behavior asserted:
|
|
75
|
+
- Mock boundary:
|
|
76
|
+
- Feedback loop type:
|
|
77
|
+
- Tracer bullet order:
|
|
58
78
|
- Green implementation check:
|
|
59
79
|
- Refactor checkpoint:
|
|
60
80
|
- TDD exceptions:
|
|
@@ -84,8 +104,12 @@
|
|
|
84
104
|
- Scope scan:
|
|
85
105
|
- Ambiguity scan:
|
|
86
106
|
- Feasibility scan:
|
|
107
|
+
- Domain language scan:
|
|
87
108
|
- Implementation surface scan:
|
|
109
|
+
- Interface depth scan:
|
|
88
110
|
- Test framework / regression scan:
|
|
111
|
+
- Test seam / mock boundary scan:
|
|
112
|
+
- Tracer bullet scan:
|
|
89
113
|
- Test-first readiness:
|
|
90
114
|
- Review calibration:
|
|
91
115
|
- Final recommendation:
|
|
@@ -15,8 +15,12 @@
|
|
|
15
15
|
11. 每个计划必须先找 existing leverage,再决定新增实现;重复已有能力属于 planning 失败。
|
|
16
16
|
12. 同 blast radius 内的完整边界默认纳入,defer 必须写入 `NOT in scope` 和原因。
|
|
17
17
|
13. 如果推荐方案挑战用户原始方向,必须标成 `user challenge`,不能自动改写用户意图。
|
|
18
|
-
14. 行为变更的具体任务默认采用测试先行;没有 Red/Green/Refactor
|
|
18
|
+
14. 行为变更的具体任务默认采用测试先行;没有 Red/Green/Refactor 链、公共测试 seam、行为断言、mock 边界或 TDD exception,不允许交给 `cc-do`。
|
|
19
19
|
15. 新 change 目录必须是 `REQ-<number>-<description>` 或 `FIX-<number>-<description>`,不能用小写 `req-*` / `bug-*` 或纯描述目录。
|
|
20
|
+
16. 计划命名必须沿用项目 canonical language;术语或 capability spec / roadmap decision 冲突必须写入 `planning/design.md`,不能在任务里发明第二套语言。
|
|
21
|
+
17. 行为变更任务必须按 tracer bullet 垂直切片组织:一个可观察行为对应一组 Red/Green/Refactor 任务。
|
|
22
|
+
18. Red 任务必须通过公共接口、调用方流程、CLI/API/UI 路径或其它真实 seam 证明行为缺失。
|
|
23
|
+
19. Mock 只能发生在系统边界;mock 内部协作者、私有方法或调用次数属于测试设计失败。
|
|
20
24
|
|
|
21
25
|
## Design Modes
|
|
22
26
|
|
|
@@ -43,11 +47,17 @@
|
|
|
43
47
|
|
|
44
48
|
- 目标
|
|
45
49
|
- TDD phase:`red` / `green` / `refactor` / `exception`
|
|
50
|
+
- Vertical slice / tracer bullet
|
|
51
|
+
- Test seam / public interface
|
|
52
|
+
- Behavior asserted
|
|
53
|
+
- Mock boundary
|
|
54
|
+
- Feedback loop type
|
|
46
55
|
- 涉及文件
|
|
47
56
|
- 验证方式
|
|
48
57
|
- 完成证据
|
|
49
58
|
|
|
50
59
|
行为变更任务必须先有 `[TEST]` 红灯任务,再有 `[IMPL]` 绿灯任务,最后有 `[REFACTOR]` 或明确 refactor checkpoint。纯文档、纯配置、纯生成文件、throwaway prototype 可以例外,但必须写明原因、风险和替代验证。
|
|
60
|
+
不要把计划拆成水平层:一批测试、一批服务、一批 UI。每个切片完成后都应该能证明一个真实行为。
|
|
51
61
|
|
|
52
62
|
## Review Gate
|
|
53
63
|
|
|
@@ -62,9 +72,13 @@
|
|
|
62
72
|
7. Existing leverage map
|
|
63
73
|
8. Scope / complexity challenge
|
|
64
74
|
9. Test diagram and failure modes
|
|
65
|
-
10.
|
|
66
|
-
11.
|
|
67
|
-
12.
|
|
75
|
+
10. Domain language / spec decision conflict scan
|
|
76
|
+
11. Interface depth scan
|
|
77
|
+
12. Test seam / mock boundary scan
|
|
78
|
+
13. Tracer bullet scan
|
|
79
|
+
14. NOT in scope
|
|
80
|
+
15. Test-first readiness
|
|
81
|
+
16. Final recommendation
|
|
68
82
|
|
|
69
83
|
如有 UI scope,再补 design review 结论。
|
|
70
84
|
如有 developer-facing scope,再补 DX review 结论。
|
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Roadmap Skill Changelog
|
|
2
2
|
|
|
3
|
+
## v4.4.1 - 2026-04-28
|
|
4
|
+
|
|
5
|
+
- clarify that roadmap language and durable decisions come from cc-devflow native sources: `devflow/specs/`, roadmap/backlog, historical design/analysis, and change metadata
|
|
6
|
+
- remove external context/architecture-decision files from the standard roadmap contract so non-native documentation ecosystems stay optional rather than canonical
|
|
7
|
+
- update roadmap/backlog templates and dialogue prompts to route durable decisions into capability spec deltas, roadmap decision notes, and downstream design handoff
|
|
8
|
+
|
|
9
|
+
## v4.4.0 - 2026-04-28
|
|
10
|
+
|
|
11
|
+
- absorb strategic grilling discipline into roadmap work: one route-changing question at a time, recommended answer with evidence, and no user question when repo evidence can answer
|
|
12
|
+
- require domain language and durable decision scans before naming stages, capabilities, roadmap items, or backlog handoffs
|
|
13
|
+
- add language / spec decision conflict gates so route recommendations expose terminology and decision drift instead of creating a second conceptual system
|
|
14
|
+
- update roadmap and backlog templates with domain-language and durable-decision handoff sections for downstream `cc-plan`
|
|
15
|
+
- update tracking template skill version to match the enhanced roadmap contract
|
|
16
|
+
|
|
3
17
|
## v4.3.4 - 2026-04-28
|
|
4
18
|
|
|
5
19
|
- add planning posture and evidence maturity routing so roadmap questions match idea, user, paying, infra, or recovery contexts
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
7. 多个独立子系统混在一个目标里时,先拆阶段和 `RM` 候选,不要继续追问实现细节。
|
|
20
20
|
8. 先判断 planning posture 和 evidence maturity,再决定追问哪些问题;不要用同一套问题硬套 idea、已有用户、付费客户、infra 和 recovery 场景。
|
|
21
21
|
9. developer-facing / operator-facing 路线必须写清 target user、time to first value、magic moment 和 adoption bottleneck。
|
|
22
|
+
10. 先对齐 `devflow/specs/`、roadmap/backlog 和历史 design decision,再命名 stage、capability、RM 和 backlog;术语或决策冲突必须成为显式路线风险。
|
|
22
23
|
|
|
23
24
|
## Local Kit
|
|
24
25
|
|
|
@@ -37,12 +38,13 @@
|
|
|
37
38
|
|
|
38
39
|
1. 现有 `devflow/ROADMAP.md` / `devflow/BACKLOG.md`
|
|
39
40
|
2. `CLAUDE.md`、`README*`、`TODOS.md`
|
|
40
|
-
3.
|
|
41
|
-
4.
|
|
42
|
-
5.
|
|
43
|
-
6.
|
|
44
|
-
7.
|
|
45
|
-
8.
|
|
41
|
+
3. 项目语言和持久决策:`devflow/specs/INDEX.md`、相关 capability specs、当前 roadmap/backlog、历史 `planning/design.md` / `planning/analysis.md`、`change-meta.json`、长期 design decision
|
|
42
|
+
4. 最近相关 docs / specs / plans
|
|
43
|
+
5. 最近相关提交、当前工作树状态、正在推进的 requirement
|
|
44
|
+
6. 现实 forcing functions:deadline、distribution、资源、依赖、当前卡点
|
|
45
|
+
7. planning posture:startup / internal / hackathon / OSS / research / learning / side-project / infrastructure
|
|
46
|
+
8. evidence maturity:idea / has users / paying users / internal sponsor / infra-only / recovery
|
|
47
|
+
9. developer / operator adoption 线索:目标人、first success path、TTHW / time to first value、debug / upgrade 卡点
|
|
46
48
|
|
|
47
49
|
先把这些材料压成 `Context Snapshot`,再追问用户。
|
|
48
50
|
|
|
@@ -63,7 +65,7 @@
|
|
|
63
65
|
8. 当前最大的 adoption / trust / delivery 卡点是什么
|
|
64
66
|
9. 成功与失败的判断信号是什么
|
|
65
67
|
|
|
66
|
-
第一轮答案之后做 framing check
|
|
68
|
+
第一轮答案之后做 framing check:术语是否具体、是否沿用项目 canonical language、用户是否可命名、pain 是否来自真实行为、status quo 是否明确、需求证据是否强过“感兴趣”。如果答案虚,先收紧问题,不要急着定路线。
|
|
67
69
|
|
|
68
70
|
## Evidence-Maturity Routing
|
|
69
71
|
|
|
@@ -146,6 +148,7 @@
|
|
|
146
148
|
6. 本次版本相比上一版到底改了什么
|
|
147
149
|
7. 问题路由是否匹配 planning posture / evidence maturity
|
|
148
150
|
8. developer-facing / operator-facing item 是否能说明 first value 为什么会发生
|
|
151
|
+
9. stage / RM / capability 命名是否沿用项目语言,或明确记录了需要重开的 language / spec / roadmap decision 冲突
|
|
149
152
|
|
|
150
153
|
## Versioning
|
|
151
154
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: cc-roadmap
|
|
3
|
-
version: 4.
|
|
3
|
+
version: 4.4.1
|
|
4
4
|
description: "Use when defining, resetting, or narrowing project direction, stage order, or backlog priority before a concrete requirement enters the PDCA loop."
|
|
5
5
|
triggers:
|
|
6
6
|
- "帮我定路线图"
|
|
@@ -31,6 +31,7 @@ writes:
|
|
|
31
31
|
when: "roadmap/backlog tracking is maintained through bundled helper scripts"
|
|
32
32
|
entry_gate:
|
|
33
33
|
- "Read current roadmap, backlog, related capability specs, and surrounding repo context before proposing direction."
|
|
34
|
+
- "Load cc-devflow native language and durable-decision sources (`devflow/specs/`, current roadmap/backlog, prior `planning/design.md` or `planning/analysis.md`, and `change-meta.json`) before naming stages, capabilities, users, or backlog items."
|
|
34
35
|
- "Confirm this is a project-direction problem, not a single requirement execution problem."
|
|
35
36
|
- "Classify planning posture and evidence maturity before selecting the route or forcing questions."
|
|
36
37
|
- "If the ask contains multiple independent subsystems, decompose them into stages and RM candidates before refining any implementation detail."
|
|
@@ -114,7 +115,8 @@ tool_budget:
|
|
|
114
115
|
2. 先判断这是“项目方向问题”还是“单 requirement 执行问题”。
|
|
115
116
|
3. 如果输入是多个独立子系统的混合目标,先拆成阶段和 `RM` 候选;不要继续追问某个子系统的实现细节。
|
|
116
117
|
4. 先做一次上下文扫描,不能跳过现有事实直接写愿景。
|
|
117
|
-
5.
|
|
118
|
+
5. 先读取 cc-devflow 原生项目语言与持久决策:`devflow/specs/INDEX.md`、相关 capability specs、`devflow/ROADMAP.md`、`devflow/BACKLOG.md`、历史 `planning/design.md` / `planning/analysis.md` 和 `change-meta.json`;不存在时静默跳过,但术语或决策冲突必须写进 roadmap。
|
|
119
|
+
6. 方向没被批准前,不准把 roadmap 偷偷下放成实现任务。
|
|
118
120
|
|
|
119
121
|
## Context Sweep
|
|
120
122
|
|
|
@@ -122,13 +124,14 @@ tool_budget:
|
|
|
122
124
|
|
|
123
125
|
1. 当前 `devflow/ROADMAP.md` / `devflow/BACKLOG.md` 的主线、版本、已停放事项。
|
|
124
126
|
2. `devflow/specs/INDEX.md` 与相关 capability specs 的边界、状态、open gaps。
|
|
125
|
-
3.
|
|
126
|
-
4.
|
|
127
|
-
5.
|
|
128
|
-
6.
|
|
129
|
-
7.
|
|
130
|
-
8.
|
|
131
|
-
9.
|
|
127
|
+
3. 项目语言 / 决策上下文:`devflow/specs/INDEX.md`、相关 capability specs、当前 roadmap/backlog、历史 `planning/design.md` / `planning/analysis.md`、`change-meta.json` 和长期 design decision。
|
|
128
|
+
4. `CLAUDE.md`、`README*`、`TODOS.md`、最近相关 docs / specs / plans。
|
|
129
|
+
5. 最近相关提交、当前分支脏状态、正在进行中的 requirement。
|
|
130
|
+
6. 真实 forcing functions:deadline、发布窗口、资源上限、依赖、distribution、adoption / trust / delivery 卡点。
|
|
131
|
+
7. 当前项目最强的现实证据,以及仍然只能靠假设的空白。
|
|
132
|
+
8. Planning posture:startup / internal / hackathon / OSS / research / learning / side-project / infrastructure。
|
|
133
|
+
9. Evidence maturity:idea / has users / paying users / internal sponsor / infra-only / recovery。
|
|
134
|
+
10. 如果是 developer-facing 或 operator-facing 能力,补齐 target developer/operator、time to first value、magic moment、install / run / debug / upgrade 卡点。
|
|
132
135
|
|
|
133
136
|
先把这些材料压成一个 `Context Snapshot`,再开始追问用户。
|
|
134
137
|
|
|
@@ -144,7 +147,18 @@ tool_budget:
|
|
|
144
147
|
| infra-only | 当前瓶颈、调用方、现有 workaround、复用边界、迁移/回滚约束 | 伪装成用户访谈的问题 |
|
|
145
148
|
| recovery / trust gap | 事故证据、恢复路径、最小可信修复、停止继续扩张的 kill signal | 新功能愿景 |
|
|
146
149
|
|
|
147
|
-
第一轮回答后必须做 framing check
|
|
150
|
+
第一轮回答后必须做 framing check:术语是否具体、是否沿用项目 canonical language、用户是否可命名、痛点是否有行为证据、status quo 是否真实、需求是否只是兴趣。发现答案虚,要先收紧问题,再谈路线。
|
|
151
|
+
|
|
152
|
+
## Strategic Grilling Protocol
|
|
153
|
+
|
|
154
|
+
`cc-roadmap` 的 brainstorm 不是开放式聊天,而是路线决策树压缩:
|
|
155
|
+
|
|
156
|
+
1. 一次只推进一个会改变阶段顺序或 backlog 优先级的关键未知点。
|
|
157
|
+
2. 每个问题必须附带推荐答案、证据来源、以及如果用户反对会改变哪条路线。
|
|
158
|
+
3. 能从 repo、roadmap/backlog、capability spec、历史 design/analysis、最近提交、真实运行证据里得到答案时,先查证,不问用户。
|
|
159
|
+
4. 模糊或冲突的术语要压成 canonical term;如果 `devflow/specs/`、roadmap/backlog 或历史 design/analysis 已有定义,路线图必须沿用。
|
|
160
|
+
5. 每条路线都要用一个具体 scenario 压测:谁在什么约束下,今天如何绕路,Stage 1 完成后哪一步不再发生。
|
|
161
|
+
6. 硬决策才沉淀:只有 hard to reverse、surprising without context、real trade-off 三者同时成立,才进入 capability spec delta、roadmap decision note 或本次 design decision log。
|
|
148
162
|
|
|
149
163
|
## Session Protocol
|
|
150
164
|
|
|
@@ -156,7 +170,7 @@ tool_budget:
|
|
|
156
170
|
6. 如果一个方向里有多个可独立交付的子系统,先写清 decomposition:哪些合并为同一阶段,哪些拆成独立 `RM`,为什么。
|
|
157
171
|
7. 只冻结 1-3 个阶段。每个阶段都必须有 goal、why now、dependencies、exit signal、kill signal、non-goals。
|
|
158
172
|
8. 把 `RM` 之间的硬依赖压成显式 dependency graph,并标出 parallel-ready wave;不要把“最好按这个顺序做”伪装成 blocker。
|
|
159
|
-
9. backlog 只保留会真的进入下一轮 `cc-plan` 的事项,每项都要带成功信号、下一决策、`Primary Capability`、`Secondary Capabilities`、`Expected Spec Delta
|
|
173
|
+
9. backlog 只保留会真的进入下一轮 `cc-plan` 的事项,每项都要带成功信号、下一决策、`Primary Capability`、`Secondary Capabilities`、`Expected Spec Delta`、canonical language handoff、`Depends On` 与 `Parallel With`。
|
|
160
174
|
10. 用户没批准,不进入 `cc-plan`。
|
|
161
175
|
|
|
162
176
|
## Route Selection Rule
|
|
@@ -194,25 +208,27 @@ tool_budget:
|
|
|
194
208
|
7. deadline / team / budget / dependency / distribution 的硬约束是什么
|
|
195
209
|
8. 当前最大的 adoption、trust、delivery 卡点是什么
|
|
196
210
|
9. 这个 roadmap 成功与失败各自用什么信号判断
|
|
211
|
+
10. 当前路线里哪些核心名词已经有 canonical definition,哪些术语仍然冲突或含糊
|
|
197
212
|
|
|
198
213
|
如果这是 developer-facing / operator-facing roadmap,再补 4 件事:
|
|
199
214
|
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
215
|
+
11. 目标开发者 / 操作者是谁
|
|
216
|
+
12. 从第一次接触到第一次成功输出需要多久
|
|
217
|
+
13. 让他们觉得“这东西真的有用”的 magic moment 是什么
|
|
218
|
+
14. install / run / debug / upgrade / handoff 中哪个环节最可能让 adoption 失败
|
|
204
219
|
|
|
205
220
|
## Approval Gates
|
|
206
221
|
|
|
207
222
|
1. 没有 `Context Snapshot`,不准给路线推荐。
|
|
208
223
|
2. 没有 planning posture、evidence maturity 和 framing check,不准给路线推荐。
|
|
209
|
-
3. 没有
|
|
210
|
-
4. 没有
|
|
211
|
-
5.
|
|
212
|
-
6.
|
|
213
|
-
7. 没有
|
|
214
|
-
8.
|
|
215
|
-
9.
|
|
224
|
+
3. 没有 native language / durable decision scan,不准给路线推荐;如果缺少 `devflow/specs/` 或历史决策材料,写成 `not present`,不要假装已对齐。
|
|
225
|
+
4. 没有 2-3 条路线对比,不准直接拍脑袋定主线。
|
|
226
|
+
5. 没有 exit signal / kill signal / non-goals,不算阶段冻结。
|
|
227
|
+
6. 没有明确成功信号和下一决策,不准把事项放进 `Ready For Req-Plan`。
|
|
228
|
+
7. developer-facing / operator-facing item 没有 target user、time to first value 或 adoption bottleneck,不准标成 ready。
|
|
229
|
+
8. 没有 `RM dependency graph` 或 parallel-ready wave,不准宣称事项可以并发推进。
|
|
230
|
+
9. 没有独立子系统拆分判断,不准把大而混杂的方向伪装成单一主线。
|
|
231
|
+
10. 没有用户批准,不准把 roadmap item 下放到 `cc-plan`。
|
|
216
232
|
|
|
217
233
|
## Review Loop
|
|
218
234
|
|
|
@@ -228,6 +244,8 @@ tool_budget:
|
|
|
228
244
|
8. Handoff scan:第一批 roadmap item 是否已经自然长成可进入 `cc-plan` 的对象。
|
|
229
245
|
9. Evidence maturity scan:问题路由是否匹配 idea / user / paying / infra / recovery 状态,还是拿同一套问题硬套所有项目。
|
|
230
246
|
10. Adoption scan:developer-facing / operator-facing item 是否写清目标人、time to first value、magic moment 和 adoption bottleneck。
|
|
247
|
+
11. Domain language scan:stage、capability、RM title、backlog handoff 是否沿用项目语言;冲突是否显式交给下一轮决策。
|
|
248
|
+
12. Durable decision scan:路线是否违背既有 capability spec、roadmap decision 或历史 design decision;如需重开,是否说明为什么值得重开。
|
|
231
249
|
|
|
232
250
|
## Output
|
|
233
251
|
|
|
@@ -244,6 +262,7 @@ tool_budget:
|
|
|
244
262
|
3. 哪个 signal 说明这一仗赢了
|
|
245
263
|
4. 哪些 backlog 项已经真的 ready for `cc-plan`
|
|
246
264
|
5. 哪些 `RM` 必须串行,哪些已经可以并行开会话
|
|
265
|
+
6. 哪些项目术语 / capability spec / roadmap decision 会随第一批 backlog 传给 `cc-plan`
|
|
247
266
|
|
|
248
267
|
## Versioning
|
|
249
268
|
|
|
@@ -285,7 +304,8 @@ tool_budget:
|
|
|
285
304
|
2. 没有现实证据时必须明确写成 assumption,而不是偷偷当事实。
|
|
286
305
|
3. `devflow/ROADMAP.md` 是方向真相源,`devflow/BACKLOG.md` 是进入下一轮规划的缓冲区。
|
|
287
306
|
4. 决策理由必须保留下来,方便以后重跑时比较版本差异。
|
|
288
|
-
5.
|
|
307
|
+
5. 路线图里的术语必须沿用项目语言;没有 canonical term 时写 assumption,不要创造第二套概念系统。
|
|
308
|
+
6. 不要为了显得完整而写 6 个阶段,能打赢下一仗比画完整战争图更重要。
|
|
289
309
|
|
|
290
310
|
## Do Not
|
|
291
311
|
|
|
@@ -31,6 +31,14 @@
|
|
|
31
31
|
- Magic moment:
|
|
32
32
|
- Adoption bottleneck:
|
|
33
33
|
|
|
34
|
+
## Domain Handoff
|
|
35
|
+
|
|
36
|
+
- Language sources loaded:
|
|
37
|
+
- Canonical terms for next `cc-plan`:
|
|
38
|
+
- Terms to avoid:
|
|
39
|
+
- Capability spec / roadmap decisions to preserve:
|
|
40
|
+
- Language / decision conflicts to resolve:
|
|
41
|
+
|
|
34
42
|
## Ready For Req-Plan
|
|
35
43
|
|
|
36
44
|
- RM-001:
|
|
@@ -48,6 +56,8 @@
|
|
|
48
56
|
- Time to first value:
|
|
49
57
|
- Magic moment:
|
|
50
58
|
- Adoption bottleneck:
|
|
59
|
+
- Canonical terms:
|
|
60
|
+
- Capability spec / roadmap context:
|
|
51
61
|
- Required context to load:
|
|
52
62
|
- Depends On:
|
|
53
63
|
- Parallel With:
|
|
@@ -33,6 +33,11 @@
|
|
|
33
33
|
- Time to first value:
|
|
34
34
|
- Magic moment:
|
|
35
35
|
- Install / run / debug / upgrade bottleneck:
|
|
36
|
+
- Language sources loaded:
|
|
37
|
+
- Canonical terms:
|
|
38
|
+
- Language conflicts:
|
|
39
|
+
- Durable decision sources loaded:
|
|
40
|
+
- Spec / roadmap decision conflicts:
|
|
36
41
|
- Known unknowns:
|
|
37
42
|
- Relevant capabilities:
|
|
38
43
|
|
|
@@ -72,6 +77,15 @@
|
|
|
72
77
|
- What we refuse to build yet:
|
|
73
78
|
- 6-12 month pull:
|
|
74
79
|
|
|
80
|
+
## Native Language & Durable Decisions
|
|
81
|
+
|
|
82
|
+
- Canonical terms this roadmap uses:
|
|
83
|
+
- Terms avoided / aliases:
|
|
84
|
+
- Existing capability spec / roadmap decisions preserved:
|
|
85
|
+
- Capability spec / roadmap decisions reopened:
|
|
86
|
+
- Decisions worth capability spec sync:
|
|
87
|
+
- Handoff notes for `cc-plan`:
|
|
88
|
+
|
|
75
89
|
## Evidence-Maturity Routing
|
|
76
90
|
|
|
77
91
|
- Planning posture:
|
|
@@ -176,6 +190,7 @@ flowchart LR
|
|
|
176
190
|
- Rejected path A:
|
|
177
191
|
- Rejected path B:
|
|
178
192
|
- Rejected maturity route:
|
|
193
|
+
- Language / spec decision conflicts:
|
|
179
194
|
- Developer / operator adoption assumptions:
|
|
180
195
|
- Open assumptions to verify next:
|
|
181
196
|
- What changed in this version:
|
|
@@ -2,23 +2,26 @@
|
|
|
2
2
|
|
|
3
3
|
## Order
|
|
4
4
|
|
|
5
|
-
0. 先做 `Context Snapshot`:现有 roadmap / backlog
|
|
5
|
+
0. 先做 `Context Snapshot`:现有 roadmap / backlog、capability specs、历史 design/analysis、最近提交、forcing functions、项目语言 / durable decisions
|
|
6
6
|
1. 用户是谁
|
|
7
7
|
2. 今天靠什么笨办法活着
|
|
8
8
|
3. 最强需求证据是什么
|
|
9
9
|
4. 为什么现在必须解决
|
|
10
10
|
5. deadline / capacity / dependency / distribution 约束是什么
|
|
11
11
|
6. 当前最大的 adoption / trust / delivery 卡点是什么
|
|
12
|
-
7.
|
|
13
|
-
8.
|
|
14
|
-
9.
|
|
15
|
-
10.
|
|
16
|
-
11.
|
|
17
|
-
12.
|
|
12
|
+
7. 核心术语是否已有 canonical definition,是否和现有 capability spec / roadmap decision 冲突
|
|
13
|
+
8. 最窄突破口是什么
|
|
14
|
+
9. 6-12 个月后会长成什么
|
|
15
|
+
10. 给出 2-3 条路线图形状并明确推荐
|
|
16
|
+
11. 冻结 1-3 个阶段,写 exit signal / kill signal / non-goals
|
|
17
|
+
12. 画出 `RM dependency graph`,标出串行主链和 parallel-ready wave
|
|
18
|
+
13. 标出哪些事项真的 ready for `cc-plan`
|
|
18
19
|
|
|
19
20
|
## Question Rules
|
|
20
21
|
|
|
21
22
|
- 一次只推进一个关键未知点
|
|
23
|
+
- 每个问题附带推荐答案、证据来源,以及用户反对时会改变哪条路线
|
|
24
|
+
- 能从 repo / capability spec / roadmap / design / git history 得到答案时先查证,不问用户
|
|
22
25
|
- 没证据时明确写 assumption
|
|
23
26
|
- 用户没批准前,不把事项偷下放成 requirement
|
|
24
27
|
|
|
@@ -35,3 +38,4 @@
|
|
|
35
38
|
- `RM` 必须带 `Depends On`,并在 roadmap 里显式画出 dependency graph
|
|
36
39
|
- backlog 只收下一轮真会进入 `cc-plan` 的事项
|
|
37
40
|
- ready 项必须带成功信号、下一决策、`Depends On`、`Parallel With`
|
|
41
|
+
- ready 项必须带 canonical terms、capability spec context 或明确的 language / decision conflict
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# CC-Simplify Skill Changelog
|
|
2
2
|
|
|
3
|
+
## v1.4.0 - 2026-04-28
|
|
4
|
+
|
|
5
|
+
- add deep-module architecture review checks for shallow wrappers, hypothetical seams, and complexity that should move behind a smaller interface
|
|
6
|
+
- require architecture findings to pass a deletion test before cleanup deletes, keeps, or reshapes a module or helper
|
|
7
|
+
- preserve capability invariants and public contracts when evaluating pass-through abstractions
|
|
8
|
+
|
|
3
9
|
## v1.3.0 - 2026-04-28
|
|
4
10
|
|
|
5
11
|
- add scope-aware Codex reviewer dispatch with small-diff skip rules and conditional security, API contract, release, frontend performance, and red-team facets
|