cc-devflow 4.5.0 → 4.5.2

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 (75) hide show
  1. package/.claude/skills/cc-act/CHANGELOG.md +14 -0
  2. package/.claude/skills/cc-act/PLAYBOOK.md +26 -1
  3. package/.claude/skills/cc-act/SKILL.md +36 -7
  4. package/.claude/skills/cc-act/assets/PR_BRIEF_TEMPLATE.md +20 -0
  5. package/.claude/skills/cc-act/references/closure-contract.md +8 -0
  6. package/.claude/skills/cc-act/scripts/cc-act-common.sh +6 -1
  7. package/.claude/skills/cc-act/scripts/render-pr-brief.sh +99 -0
  8. package/.claude/skills/cc-act/scripts/verify-act-gate.sh +17 -1
  9. package/.claude/skills/cc-check/CHANGELOG.md +14 -0
  10. package/.claude/skills/cc-check/PLAYBOOK.md +101 -1
  11. package/.claude/skills/cc-check/SKILL.md +128 -7
  12. package/.claude/skills/cc-check/assets/REPORT_CARD_TEMPLATE.json +121 -1
  13. package/.claude/skills/cc-check/references/review-contract.md +88 -0
  14. package/.claude/skills/cc-check/scripts/render-report-card.js +172 -5
  15. package/.claude/skills/cc-check/scripts/verify-gate.sh +21 -0
  16. package/.claude/skills/cc-investigate/CHANGELOG.md +13 -0
  17. package/.claude/skills/cc-investigate/PLAYBOOK.md +105 -4
  18. package/.claude/skills/cc-investigate/SKILL.md +185 -8
  19. package/.claude/skills/cc-investigate/assets/ANALYSIS_TEMPLATE.md +77 -3
  20. package/.claude/skills/cc-investigate/assets/TASKS_TEMPLATE.md +10 -3
  21. package/.claude/skills/cc-investigate/assets/TASK_MANIFEST_TEMPLATE.json +102 -1
  22. package/.claude/skills/cc-investigate/references/investigation-contract.md +146 -0
  23. package/.claude/skills/cc-plan/CHANGELOG.md +14 -0
  24. package/.claude/skills/cc-plan/PLAYBOOK.md +19 -2
  25. package/.claude/skills/cc-plan/SKILL.md +52 -20
  26. package/.claude/skills/cc-plan/assets/DESIGN_TEMPLATE.md +70 -1
  27. package/.claude/skills/cc-plan/assets/TASKS_TEMPLATE.md +13 -0
  28. package/.claude/skills/cc-plan/assets/TASK_MANIFEST_TEMPLATE.json +3 -1
  29. package/.claude/skills/cc-plan/assets/TINY_DESIGN_TEMPLATE.md +22 -0
  30. package/.claude/skills/cc-roadmap/CHANGELOG.md +12 -0
  31. package/.claude/skills/cc-roadmap/PLAYBOOK.md +24 -1
  32. package/.claude/skills/cc-roadmap/SKILL.md +50 -15
  33. package/.claude/skills/cc-roadmap/assets/BACKLOG_TEMPLATE.md +15 -0
  34. package/.claude/skills/cc-roadmap/assets/ROADMAP_TEMPLATE.md +37 -0
  35. package/.claude/skills/cc-roadmap/assets/TRACKING_TEMPLATE.json +2 -1
  36. package/.claude/skills/cc-simplify/CHANGELOG.md +15 -0
  37. package/.claude/skills/cc-simplify/SKILL.md +255 -35
  38. package/CHANGELOG.md +36 -0
  39. package/CODE_OF_CONDUCT.md +39 -0
  40. package/CODE_OF_CONDUCT.zh-CN.md +39 -0
  41. package/CONTRIBUTING.md +195 -0
  42. package/CONTRIBUTING.zh-CN.md +195 -0
  43. package/README.md +141 -150
  44. package/README.zh-CN.md +144 -148
  45. package/SECURITY.md +56 -0
  46. package/SECURITY.zh-CN.md +56 -0
  47. package/docs/examples/example-bindings.json +6 -6
  48. package/docs/examples/full-design-blocked/BACKLOG.md +1 -1
  49. package/docs/examples/full-design-blocked/README.md +1 -1
  50. package/docs/examples/full-design-blocked/ROADMAP.md +1 -1
  51. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/design.md +1 -1
  52. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/tasks.md +1 -1
  53. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/review/report-card.json +140 -3
  54. package/docs/examples/full-design-blocked/roadmap-tracking.json +1 -1
  55. package/docs/examples/local-handoff/BACKLOG.md +1 -1
  56. package/docs/examples/local-handoff/README.md +1 -1
  57. package/docs/examples/local-handoff/ROADMAP.md +1 -1
  58. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/design.md +1 -1
  59. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/tasks.md +1 -1
  60. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/review/report-card.json +92 -0
  61. package/docs/examples/local-handoff/roadmap-tracking.json +1 -1
  62. package/docs/examples/pdca-loop/BACKLOG.md +1 -1
  63. package/docs/examples/pdca-loop/README.md +1 -1
  64. package/docs/examples/pdca-loop/ROADMAP.md +1 -1
  65. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/handoff/pr-brief.md +20 -0
  66. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/design.md +1 -1
  67. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/task-manifest.json +2 -2
  68. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/tasks.md +1 -1
  69. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/review/report-card.json +92 -0
  70. package/docs/examples/pdca-loop/roadmap-tracking.json +1 -1
  71. package/docs/guides/getting-started.md +5 -0
  72. package/docs/guides/getting-started.zh-CN.md +5 -0
  73. package/lib/skill-runtime/review.js +64 -1
  74. package/lib/skill-runtime/schemas.js +150 -3
  75. package/package.json +7 -1
@@ -3,6 +3,74 @@
3
3
  "verdict": "blocked",
4
4
  "overall": "fail",
5
5
  "summary": "verdict=blocked quick=2/2 strict=0/0 review=blocked",
6
+ "specAlignment": "blocked",
7
+ "specDeltaVerified": false,
8
+ "specSyncReady": false,
9
+ "runtime": {
10
+ "status": "blocked",
11
+ "failureOwnership": [
12
+ {
13
+ "failure": "requirement semantics cannot be proven from current design",
14
+ "classification": "ambiguous",
15
+ "touchedByDiff": true,
16
+ "evidence": "duplicate-email and seat-limit outcomes lack a frozen row matrix",
17
+ "action": "reroute-cc-plan",
18
+ "status": "open"
19
+ }
20
+ ]
21
+ },
22
+ "claimEvidence": [
23
+ {
24
+ "claim": "tests-pass",
25
+ "requiredProof": "fresh targeted test command with exit 0",
26
+ "commandOrArtifact": "npm test -- src/invite/bulk-import.test.ts",
27
+ "exitStatus": 0,
28
+ "keyObservation": "targeted bulk invite rule tests passed",
29
+ "status": "pass"
30
+ },
31
+ {
32
+ "claim": "requirements-met",
33
+ "requiredProof": "line-by-line planning/tasks.md and task-manifest.json checklist",
34
+ "commandOrArtifact": "planning/design.md + planning/task-manifest.json",
35
+ "exitStatus": null,
36
+ "keyObservation": "duplicate-email and seat-limit semantics are still underspecified",
37
+ "status": "blocked"
38
+ }
39
+ ],
40
+ "qa": {
41
+ "status": "blocked",
42
+ "regressionProof": [],
43
+ "testQuality": [
44
+ {
45
+ "area": "bulk-invite-rules",
46
+ "checksRealBehavior": true,
47
+ "mockBoundary": "none",
48
+ "testOnlyProductionApi": false,
49
+ "status": "pass"
50
+ }
51
+ ],
52
+ "coverageAudit": {
53
+ "status": "blocked",
54
+ "coveragePct": null,
55
+ "pathMap": ["bulk invite parser", "admin panel happy path"],
56
+ "gaps": ["duplicate-email row semantics", "seat-limit partial-failure semantics"],
57
+ "testsAdded": ["src/invite/bulk-import.test.ts", "src/admin/BulkInvitePanel.test.tsx"],
58
+ "e2eRequired": true,
59
+ "evalRequired": false,
60
+ "qualityStars": "★"
61
+ },
62
+ "browserEvidence": {
63
+ "status": "skipped",
64
+ "mode": "not-applicable",
65
+ "affectedRoutes": [],
66
+ "screenshots": [],
67
+ "consoleErrors": [],
68
+ "healthScore": null,
69
+ "issues": [],
70
+ "skipReason": "design contract is blocked before browser QA can prove the intended behavior"
71
+ },
72
+ "tddException": "design contract is incomplete, so tests cannot prove final requirement semantics yet"
73
+ },
6
74
  "quickGates": [
7
75
  {
8
76
  "name": "bulk-rule-tests",
@@ -22,10 +90,35 @@
22
90
  "status": "blocked",
23
91
  "summary": "The implementation evidence is real, but the requirement-level design contract is still incomplete",
24
92
  "details": "Diff review found that duplicate-email and seat-limit semantics are still not frozen tightly enough to trust the current implementation as the requirement truth.",
93
+ "freshness": {
94
+ "status": "fresh",
95
+ "reviewedCommit": "example-head",
96
+ "currentCommit": "example-head",
97
+ "commitsSinceReview": 0,
98
+ "staleReason": ""
99
+ },
100
+ "qualityScore": 6,
101
+ "specialistReviews": [
102
+ {
103
+ "name": "testing",
104
+ "status": "blocked",
105
+ "required": true,
106
+ "summary": "tests are real but cannot cover semantics that are not frozen in design",
107
+ "skipReason": "",
108
+ "findings": []
109
+ }
110
+ ],
25
111
  "taskReviews": {
26
112
  "status": "pass",
27
113
  "required": true,
28
114
  "summary": "All completed tasks carry spec/code proof",
115
+ "reviewPacket": {
116
+ "baseSha": "example-base",
117
+ "headSha": "example-head",
118
+ "requirements": "planning/tasks.md",
119
+ "implemented": "bulk invite import implementation",
120
+ "reviewerContext": "task manifest plus current implementation evidence"
121
+ },
29
122
  "reviewers": [],
30
123
  "findings": []
31
124
  },
@@ -33,20 +126,64 @@
33
126
  "status": "blocked",
34
127
  "required": false,
35
128
  "summary": "Requirement-level review says the row-outcome matrix must be reopened in planning",
129
+ "reviewPacket": {
130
+ "baseSha": "example-base",
131
+ "headSha": "example-head",
132
+ "requirements": "planning/design.md",
133
+ "implemented": "bulk invite import implementation",
134
+ "reviewerContext": "requirement diff, plan completion, scope drift, docs staleness"
135
+ },
36
136
  "reviewers": [],
37
137
  "findings": [
38
- "duplicate-email behavior is still underspecified",
39
- "seat-limit partial-failure semantics are not frozen in design.md"
138
+ {
139
+ "severity": "important",
140
+ "confidence": "high",
141
+ "source": "diff-review",
142
+ "summary": "duplicate-email behavior is still underspecified",
143
+ "evidence": "planning/design.md does not freeze row-level duplicate semantics",
144
+ "action": "reroute-cc-plan",
145
+ "triageStatus": "clarification-needed",
146
+ "confidenceScore": 9,
147
+ "fingerprint": "diff-review:bulk-invite:duplicate-email-semantics",
148
+ "displayTier": "blocking",
149
+ "suppressionReason": null
150
+ },
151
+ {
152
+ "severity": "important",
153
+ "confidence": "high",
154
+ "source": "diff-review",
155
+ "summary": "seat-limit partial-failure semantics are not frozen in design.md",
156
+ "evidence": "planning/design.md lacks accepted row-outcome matrix",
157
+ "action": "reroute-cc-plan",
158
+ "triageStatus": "clarification-needed",
159
+ "confidenceScore": 9,
160
+ "fingerprint": "diff-review:bulk-invite:seat-limit-partial-failure",
161
+ "displayTier": "blocking",
162
+ "suppressionReason": null
163
+ }
40
164
  ]
41
165
  },
42
166
  "findings": [
43
- "The current code may be locally green while still violating the intended admin trust model"
167
+ {
168
+ "severity": "important",
169
+ "confidence": "medium",
170
+ "source": "diff-review",
171
+ "summary": "The current code may be locally green while still violating the intended admin trust model",
172
+ "evidence": "tests pass but requirement claim remains blocked by design ambiguity",
173
+ "action": "reroute-cc-plan",
174
+ "triageStatus": "clarification-needed",
175
+ "confidenceScore": 7,
176
+ "fingerprint": "diff-review:bulk-invite:trust-model-ambiguous",
177
+ "displayTier": "warning",
178
+ "suppressionReason": null
179
+ }
44
180
  ]
45
181
  },
46
182
  "blockingFindings": [
47
183
  "design: duplicate-email row handling is not frozen tightly enough",
48
184
  "design: seat-limit partial-failure semantics must be reopened in cc-plan"
49
185
  ],
186
+ "gaps": ["duplicate-email row handling", "seat-limit partial-failure semantics"],
50
187
  "reroute": "cc-plan",
51
188
  "timestamp": "2026-04-16T12:15:00.000Z"
52
189
  }
@@ -3,7 +3,7 @@
3
3
  "lastSyncedAt": "2026-04-19",
4
4
  "backlogMeta": {
5
5
  "roadmapVersion": "roadmap.v2",
6
- "skillVersion": "4.3.2",
6
+ "skillVersion": "4.3.4",
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.2`
6
+ - Skill version: `4.3.4`
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.2`, `cc-plan@3.5.4`, `cc-do@1.5.2`, `cc-check@1.8.2`, `cc-act@1.6.2`
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`
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.2`
6
+ - Skill version: `4.3.4`
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.4`
7
+ - CC-Plan skill version: `3.5.6`
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.4`
7
+ - CC-Plan skill version: `3.5.6`
8
8
  - Source roadmap item: `RM-020`
9
9
  - Source roadmap version: `roadmap.v3`
10
10
 
@@ -3,6 +3,65 @@
3
3
  "verdict": "pass",
4
4
  "overall": "pass",
5
5
  "summary": "verdict=pass quick=2/2 strict=0/0 review=pass",
6
+ "specAlignment": "pass",
7
+ "specDeltaVerified": true,
8
+ "specSyncReady": true,
9
+ "runtime": {
10
+ "status": "pass",
11
+ "failureOwnership": []
12
+ },
13
+ "claimEvidence": [
14
+ {
15
+ "claim": "tests-pass",
16
+ "requiredProof": "fresh targeted test command with exit 0",
17
+ "commandOrArtifact": "npm test -- src/admin/AuditSummaryPanel.test.tsx",
18
+ "exitStatus": 0,
19
+ "keyObservation": "audit summary panel targeted tests passed",
20
+ "status": "pass"
21
+ },
22
+ {
23
+ "claim": "requirements-met",
24
+ "requiredProof": "line-by-line planning/tasks.md and task-manifest.json checklist",
25
+ "commandOrArtifact": "planning/tasks.md + planning/task-manifest.json",
26
+ "exitStatus": null,
27
+ "keyObservation": "approved tiny-design scope completed",
28
+ "status": "pass"
29
+ }
30
+ ],
31
+ "qa": {
32
+ "status": "pass",
33
+ "regressionProof": [],
34
+ "testQuality": [
35
+ {
36
+ "area": "audit-summary-panel",
37
+ "checksRealBehavior": true,
38
+ "mockBoundary": "none",
39
+ "testOnlyProductionApi": false,
40
+ "status": "pass"
41
+ }
42
+ ],
43
+ "coverageAudit": {
44
+ "status": "pass",
45
+ "coveragePct": 80,
46
+ "pathMap": ["audit summary render path", "empty audit state"],
47
+ "gaps": [],
48
+ "testsAdded": ["src/admin/AuditSummaryPanel.test.tsx"],
49
+ "e2eRequired": false,
50
+ "evalRequired": false,
51
+ "qualityStars": "★★"
52
+ },
53
+ "browserEvidence": {
54
+ "status": "skipped",
55
+ "mode": "not-applicable",
56
+ "affectedRoutes": [],
57
+ "screenshots": [],
58
+ "consoleErrors": [],
59
+ "healthScore": null,
60
+ "issues": [],
61
+ "skipReason": "local handoff example records component evidence without a live browser fixture"
62
+ },
63
+ "tddException": null
64
+ },
6
65
  "quickGates": [
7
66
  {
8
67
  "name": "targeted-tests",
@@ -22,10 +81,35 @@
22
81
  "status": "pass",
23
82
  "summary": "Task review proof and requirement-level diff review both passed",
24
83
  "details": "The diff stayed inside the approved tiny-design scope and verification evidence is fresh.",
84
+ "freshness": {
85
+ "status": "fresh",
86
+ "reviewedCommit": "example-head",
87
+ "currentCommit": "example-head",
88
+ "commitsSinceReview": 0,
89
+ "staleReason": ""
90
+ },
91
+ "qualityScore": 9,
92
+ "specialistReviews": [
93
+ {
94
+ "name": "testing",
95
+ "status": "pass",
96
+ "required": true,
97
+ "summary": "targeted tests cover the audit summary behavior for this example",
98
+ "skipReason": "",
99
+ "findings": []
100
+ }
101
+ ],
25
102
  "taskReviews": {
26
103
  "status": "pass",
27
104
  "required": true,
28
105
  "summary": "All completed tasks carry spec/code proof",
106
+ "reviewPacket": {
107
+ "baseSha": "example-base",
108
+ "headSha": "example-head",
109
+ "requirements": "planning/tasks.md",
110
+ "implemented": "audit log export summary view",
111
+ "reviewerContext": "task manifest plus changed audit panel files"
112
+ },
29
113
  "reviewers": [],
30
114
  "findings": []
31
115
  },
@@ -33,12 +117,20 @@
33
117
  "status": "pass",
34
118
  "required": false,
35
119
  "summary": "No blocking requirement-level findings",
120
+ "reviewPacket": {
121
+ "baseSha": "example-base",
122
+ "headSha": "example-head",
123
+ "requirements": "planning/design.md",
124
+ "implemented": "audit log export summary view",
125
+ "reviewerContext": "requirement diff, plan completion, scope drift, docs staleness"
126
+ },
36
127
  "reviewers": [],
37
128
  "findings": []
38
129
  },
39
130
  "findings": []
40
131
  },
41
132
  "blockingFindings": [],
133
+ "gaps": [],
42
134
  "reroute": "none",
43
135
  "timestamp": "2026-04-16T14:30:00.000Z"
44
136
  }
@@ -3,7 +3,7 @@
3
3
  "lastSyncedAt": "2026-04-19",
4
4
  "backlogMeta": {
5
5
  "roadmapVersion": "roadmap.v2",
6
- "skillVersion": "4.3.2",
6
+ "skillVersion": "4.3.4",
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.2`
6
+ - Skill version: `4.3.4`
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.2`, `cc-plan@3.5.4`, `cc-do@1.5.2`, `cc-check@1.8.2`, `cc-act@1.6.2`
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`
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.2`
6
+ - Skill version: `4.3.4`
7
7
  - Status: `active`
8
8
  - Last updated: `2026-04-15`
9
9
  - Owner / decider: `product-owner`
@@ -20,6 +20,25 @@
20
20
  - Base branch: `main`
21
21
  - PR / MR: not created yet
22
22
 
23
+ ## Review Range
24
+
25
+ - Reviewed base SHA: `example-base`
26
+ - Reviewed head SHA: `example-head`
27
+ - Review packet: `planning/tasks.md#T001-T003`; `planning/design.md`
28
+ - Finding triage: no findings
29
+ - QA / claim evidence: `qa=pass`, `tests-pass=pass`, `requirements-met=pass`
30
+
31
+ ## Readiness Dashboard
32
+
33
+ - Review freshness: `fresh`, reviewed `example-head`, current `example-head`
34
+ - Review quality: `qualityScore=9`
35
+ - Specialist review facets: `testing:pass`
36
+ - QA coverage: `status=pass`, gaps `0`, e2eRequired `false`
37
+ - Browser QA: `skipped`, example fixture uses targeted component evidence instead of a live browser
38
+ - Failure ownership: no open failures recorded
39
+ - Documentation release: README and CLAUDE unchanged for this scoped example
40
+ - PR body accuracy: regenerate the PR body from this brief, current report-card, and current diff
41
+
23
42
  ## Summary
24
43
 
25
44
  - removes a small but visible sharing friction in the beta flow
@@ -35,6 +54,7 @@
35
54
  ## Verification Evidence
36
55
 
37
56
  - `report-card.json` verdict: `pass`
57
+ - Merged-result verification: not applicable before merge
38
58
  - Fresh evidence:
39
59
  - `npm test -- src/features/share/ShareDialog.test.tsx`
40
60
  - `npm run lint -- src/features/share/ShareDialog.tsx`
@@ -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.4`
7
+ - CC-Plan skill version: `3.5.6`
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.2",
12
+ "roadmapSkillVersion": "4.3.4",
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.4",
25
+ "reqPlanSkillVersion": "3.5.6",
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.4`
7
+ - CC-Plan skill version: `3.5.6`
8
8
  - Source roadmap item: `RM-001`
9
9
  - Source roadmap version: `roadmap.v1`
10
10
 
@@ -3,6 +3,65 @@
3
3
  "verdict": "pass",
4
4
  "overall": "pass",
5
5
  "summary": "verdict=pass quick=2/2 strict=0/0 review=pass",
6
+ "specAlignment": "pass",
7
+ "specDeltaVerified": true,
8
+ "specSyncReady": true,
9
+ "runtime": {
10
+ "status": "pass",
11
+ "failureOwnership": []
12
+ },
13
+ "claimEvidence": [
14
+ {
15
+ "claim": "tests-pass",
16
+ "requiredProof": "fresh targeted test command with exit 0",
17
+ "commandOrArtifact": "npm test -- src/features/share/ShareDialog.test.tsx",
18
+ "exitStatus": 0,
19
+ "keyObservation": "share dialog targeted tests passed",
20
+ "status": "pass"
21
+ },
22
+ {
23
+ "claim": "requirements-met",
24
+ "requiredProof": "line-by-line planning/tasks.md and task-manifest.json checklist",
25
+ "commandOrArtifact": "planning/tasks.md + planning/task-manifest.json",
26
+ "exitStatus": null,
27
+ "keyObservation": "T001-T003 complete with spec/code review proof",
28
+ "status": "pass"
29
+ }
30
+ ],
31
+ "qa": {
32
+ "status": "pass",
33
+ "regressionProof": [],
34
+ "testQuality": [
35
+ {
36
+ "area": "share-dialog",
37
+ "checksRealBehavior": true,
38
+ "mockBoundary": "none",
39
+ "testOnlyProductionApi": false,
40
+ "status": "pass"
41
+ }
42
+ ],
43
+ "coverageAudit": {
44
+ "status": "pass",
45
+ "coveragePct": 80,
46
+ "pathMap": ["copy invite link success path", "clipboard fallback error path"],
47
+ "gaps": [],
48
+ "testsAdded": ["src/features/share/ShareDialog.test.tsx"],
49
+ "e2eRequired": false,
50
+ "evalRequired": false,
51
+ "qualityStars": "★★"
52
+ },
53
+ "browserEvidence": {
54
+ "status": "skipped",
55
+ "mode": "not-applicable",
56
+ "affectedRoutes": [],
57
+ "screenshots": [],
58
+ "consoleErrors": [],
59
+ "healthScore": null,
60
+ "issues": [],
61
+ "skipReason": "example fixture uses targeted component evidence instead of a live browser"
62
+ },
63
+ "tddException": null
64
+ },
6
65
  "quickGates": [
7
66
  {
8
67
  "name": "targeted-tests",
@@ -22,10 +81,35 @@
22
81
  "status": "pass",
23
82
  "summary": "Task review proof and requirement-level diff review both passed",
24
83
  "details": "T001-T003 have matching spec/code review proof and the diff stays inside the approved tiny-design boundary.",
84
+ "freshness": {
85
+ "status": "fresh",
86
+ "reviewedCommit": "example-head",
87
+ "currentCommit": "example-head",
88
+ "commitsSinceReview": 0,
89
+ "staleReason": ""
90
+ },
91
+ "qualityScore": 9,
92
+ "specialistReviews": [
93
+ {
94
+ "name": "testing",
95
+ "status": "pass",
96
+ "required": true,
97
+ "summary": "targeted tests cover the share dialog behavior for this example",
98
+ "skipReason": "",
99
+ "findings": []
100
+ }
101
+ ],
25
102
  "taskReviews": {
26
103
  "status": "pass",
27
104
  "required": true,
28
105
  "summary": "All completed tasks carry spec/code proof",
106
+ "reviewPacket": {
107
+ "baseSha": "example-base",
108
+ "headSha": "example-head",
109
+ "requirements": "planning/tasks.md#T001-T003",
110
+ "implemented": "copy invite link workflow",
111
+ "reviewerContext": "task manifest plus changed share dialog files"
112
+ },
29
113
  "reviewers": [],
30
114
  "findings": []
31
115
  },
@@ -33,12 +117,20 @@
33
117
  "status": "pass",
34
118
  "required": false,
35
119
  "summary": "No blocking requirement-level findings",
120
+ "reviewPacket": {
121
+ "baseSha": "example-base",
122
+ "headSha": "example-head",
123
+ "requirements": "planning/design.md",
124
+ "implemented": "copy invite link workflow",
125
+ "reviewerContext": "requirement diff, plan completion, scope drift, docs staleness"
126
+ },
36
127
  "reviewers": [],
37
128
  "findings": []
38
129
  },
39
130
  "findings": []
40
131
  },
41
132
  "blockingFindings": [],
133
+ "gaps": [],
42
134
  "reroute": "none",
43
135
  "timestamp": "2026-04-15T11:20:00.000Z"
44
136
  }
@@ -3,7 +3,7 @@
3
3
  "lastSyncedAt": "2026-04-19",
4
4
  "backlogMeta": {
5
5
  "roadmapVersion": "roadmap.v1",
6
- "skillVersion": "4.3.2",
6
+ "skillVersion": "4.3.4",
7
7
  "currentFocusStage": "Stage 1"
8
8
  },
9
9
  "dependencyHandoff": {
@@ -98,6 +98,11 @@ Change truth lives in `devflow/changes/<change>/`.
98
98
  - Keep `change-state.json`, `change-meta.json`, planning docs, `task-manifest.json`, optional `team-state.json`, task `checkpoint.json`, `report-card.json`, and one final handoff file under each `devflow/changes/<change>/`.
99
99
  - Worker prompts, journals, assignments, and session logs belong under `devflow/workspaces/<change>/` as ephemeral scratch.
100
100
 
101
+ Planning handoffs should be evidence-rich before implementation starts:
102
+
103
+ - `cc-roadmap` records planning posture, evidence maturity, framing check, dependency graph, and any developer/operator adoption context.
104
+ - `cc-plan` records option roles, implementation surface, decision horizon, error/rescue map, test framework source, coverage quality, and regression-test requirements when they apply.
105
+
101
106
  Typical public contract fields:
102
107
 
103
108
  - `triggers`, `reads`, structured `writes`, `effects`
@@ -97,6 +97,11 @@ durable truth 分两层:
97
97
  - `devflow/changes/<change>/`:变更真相,保留 `change-state.json`、`change-meta.json`、planning 文档、`task-manifest.json`、可选 `team-state.json`、任务级 `checkpoint.json`、`report-card.json` 和唯一的最终 handoff 文件。
98
98
  - worker prompt、journal、assignment、session log 统一放到 `devflow/workspaces/<change>/`,作为 ephemeral scratch。
99
99
 
100
+ 进入实现前,planning handoff 应该先把证据写实:
101
+
102
+ - `cc-roadmap` 记录 planning posture、evidence maturity、framing check、依赖图,以及适用时的 developer/operator adoption context。
103
+ - `cc-plan` 记录 option roles、implementation surface、decision horizon、error/rescue map、测试框架来源、覆盖质量,以及适用时的 regression-test requirement。
104
+
100
105
  公开契约字段的典型形状:
101
106
 
102
107
  - `triggers`、`reads`、结构化 `writes`、`effects`