cc-devflow 4.5.5 → 4.5.7

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 (73) hide show
  1. package/.claude/skills/cc-act/PLAYBOOK.md +2 -2
  2. package/.claude/skills/cc-act/SKILL.md +2 -2
  3. package/.claude/skills/cc-act/scripts/{archive-requirement.sh → archive-change.sh} +7 -7
  4. package/.claude/skills/cc-investigate/CHANGELOG.md +5 -0
  5. package/.claude/skills/cc-investigate/SKILL.md +2 -2
  6. package/.claude/skills/cc-plan/CHANGELOG.md +34 -0
  7. package/.claude/skills/cc-plan/PLAYBOOK.md +22 -17
  8. package/.claude/skills/cc-plan/SKILL.md +135 -12
  9. package/.claude/skills/cc-plan/assets/DESIGN_TEMPLATE.md +51 -0
  10. package/.claude/skills/cc-plan/assets/TASKS_TEMPLATE.md +2 -0
  11. package/.claude/skills/cc-plan/assets/TASK_MANIFEST_TEMPLATE.json +66 -3
  12. package/.claude/skills/cc-plan/assets/TINY_DESIGN_TEMPLATE.md +37 -0
  13. package/.claude/skills/cc-plan/references/planning-contract.md +33 -10
  14. package/.claude/skills/cc-plan/scripts/next-change-key.sh +78 -0
  15. package/.claude/skills/cc-review/CHANGELOG.md +7 -0
  16. package/.claude/skills/cc-review/PLAYBOOK.md +54 -0
  17. package/.claude/skills/cc-review/SKILL.md +173 -0
  18. package/.claude/skills/cc-review/references/e2e-and-plugin-verification.md +81 -0
  19. package/.claude/skills/cc-review/references/implementation-review-branch.md +115 -0
  20. package/.claude/skills/cc-review/references/plan-review-branch.md +116 -0
  21. package/.claude/skills/cc-review/references/review-methods.md +126 -0
  22. package/.claude/skills/cc-roadmap/CHANGELOG.md +6 -0
  23. package/.claude/skills/cc-roadmap/SKILL.md +102 -8
  24. package/.claude/skills/cc-roadmap/assets/BACKLOG_TEMPLATE.md +3 -0
  25. package/.claude/skills/cc-roadmap/assets/ROADMAP_TEMPLATE.md +23 -0
  26. package/.claude/skills/cc-roadmap/assets/TRACKING_TEMPLATE.json +20 -1
  27. package/.claude/skills/cc-roadmap/references/roadmap-dialogue.md +28 -13
  28. package/.claude/skills/cc-roadmap/scripts/lib/roadmap-tracking/markdown.js +18 -0
  29. package/.claude/skills/cc-roadmap/scripts/lib/roadmap-tracking/schema.js +8 -0
  30. package/CHANGELOG.md +21 -0
  31. package/README.md +10 -5
  32. package/README.zh-CN.md +10 -5
  33. package/bin/cc-devflow-cli.js +135 -2
  34. package/config/distributable-skills.json +2 -0
  35. package/docs/CLAUDE.md +1 -1
  36. package/docs/examples/example-bindings.json +5 -4
  37. package/docs/examples/full-design-blocked/BACKLOG.md +1 -1
  38. package/docs/examples/full-design-blocked/README.md +1 -1
  39. package/docs/examples/full-design-blocked/ROADMAP.md +16 -1
  40. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/design.md +42 -1
  41. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/task-manifest.json +345 -65
  42. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/tasks.md +2 -1
  43. package/docs/examples/full-design-blocked/roadmap.json +18 -2
  44. package/docs/examples/local-handoff/BACKLOG.md +1 -1
  45. package/docs/examples/local-handoff/README.md +1 -1
  46. package/docs/examples/local-handoff/ROADMAP.md +16 -1
  47. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/design.md +34 -1
  48. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/task-manifest.json +197 -39
  49. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/tasks.md +2 -1
  50. package/docs/examples/local-handoff/roadmap.json +16 -2
  51. package/docs/examples/pdca-loop/BACKLOG.md +1 -1
  52. package/docs/examples/pdca-loop/README.md +1 -1
  53. package/docs/examples/pdca-loop/ROADMAP.md +16 -1
  54. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/design.md +34 -1
  55. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/task-manifest.json +89 -8
  56. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/tasks.md +2 -1
  57. package/docs/examples/pdca-loop/roadmap.json +16 -2
  58. package/docs/examples/scripts/check-example-bindings.sh +2 -0
  59. package/docs/guides/getting-started.md +13 -10
  60. package/docs/guides/getting-started.zh-CN.md +13 -10
  61. package/lib/skill-runtime/__tests__/archive-change.test.js +124 -0
  62. package/lib/skill-runtime/__tests__/autopilot.test.js +13 -10
  63. package/lib/skill-runtime/__tests__/cli-bootstrap.integration.test.js +1 -0
  64. package/lib/skill-runtime/__tests__/paths.test.js +106 -1
  65. package/lib/skill-runtime/__tests__/query.test.js +49 -0
  66. package/lib/skill-runtime/archive-change.js +64 -0
  67. package/lib/skill-runtime/artifacts.js +2 -2
  68. package/lib/skill-runtime/intent.js +14 -14
  69. package/lib/skill-runtime/operations/autopilot-shared.js +4 -4
  70. package/lib/skill-runtime/paths.js +60 -7
  71. package/lib/skill-runtime/query-registry.js +3 -3
  72. package/lib/skill-runtime/query.js +30 -30
  73. package/package.json +2 -1
@@ -6,7 +6,7 @@
6
6
  "requirementId": "REQ-003",
7
7
  "requirementVersion": "REQ-003.v1",
8
8
  "planningMeta": {
9
- "reqPlanSkillVersion": "3.7.5",
9
+ "reqPlanSkillVersion": "3.8.1",
10
10
  "designVersion": "design.v1",
11
11
  "approvedAt": "2026-04-16T13:10:00.000Z",
12
12
  "approvedBy": "user",
@@ -14,21 +14,102 @@
14
14
  "requirementBrief": {
15
15
  "problemStatement": "Admins can review audit summary rows in the UI, but weekly reporting requires manual copying.",
16
16
  "solutionSummary": "Add a CSV download action for the currently visible audit summary rows.",
17
- "actors": ["workspace admin reviewing weekly activity"],
17
+ "actors": [
18
+ "workspace admin reviewing weekly activity"
19
+ ],
18
20
  "userStories": [
19
21
  {
20
22
  "id": "US-001",
21
23
  "actor": "workspace admin",
22
24
  "want": "download visible audit summary rows as CSV",
23
25
  "benefit": "include them in weekly reporting without manual copying",
24
- "acceptance": ["Panel behavior test proves the export action uses current summary rows"]
26
+ "acceptance": [
27
+ "Panel behavior test proves the export action uses current summary rows"
28
+ ]
25
29
  }
26
30
  ],
27
31
  "edgeOrRecoveryStories": [],
28
- "implementationDecisions": ["Export only rows already visible in the panel", "Keep CSV as the only output format"],
29
- "testingDecisions": ["Test through the admin panel action and visible row data"],
30
- "outOfScope": ["JSON export", "scheduled reporting", "shared reporting backend"],
31
- "furtherNotes": ["Richer machine-readable exports should become a separate requirement"]
32
+ "implementationDecisions": [
33
+ "Export only rows already visible in the panel",
34
+ "Keep CSV as the only output format"
35
+ ],
36
+ "testingDecisions": [
37
+ "Test through the admin panel action and visible row data"
38
+ ],
39
+ "outOfScope": [
40
+ "JSON export",
41
+ "scheduled reporting",
42
+ "shared reporting backend"
43
+ ],
44
+ "furtherNotes": [
45
+ "Richer machine-readable exports should become a separate requirement"
46
+ ]
47
+ },
48
+ "externalBestPractice": {
49
+ "needed": false,
50
+ "decisionStatus": "not-needed",
51
+ "decisionQuestionId": "",
52
+ "privacyGuard": "generalized terms only; no project names, private requirements, customer names, secrets, logs, or proprietary concepts",
53
+ "generalizedSearchTerms": [],
54
+ "sourcesChecked": [],
55
+ "conventionalWisdom": "",
56
+ "currentDiscourse": "",
57
+ "repoFitVerdict": "skipped",
58
+ "designImpacts": [],
59
+ "skippedReason": "the local handoff exports existing visible rows and does not introduce a new reporting standard"
60
+ },
61
+ "decisionQuestions": [
62
+ {
63
+ "questionId": "D1",
64
+ "gate": "approach-approval",
65
+ "knownEvidence": [
66
+ "Existing admin panel already owns the visible summary rows",
67
+ "No reporting backend is needed for the first useful export"
68
+ ],
69
+ "recommendation": "Approve the tiny-design CSV export",
70
+ "options": [
71
+ {
72
+ "id": "A",
73
+ "label": "Tiny design CSV export",
74
+ "recommended": true,
75
+ "completeness": "8/10",
76
+ "good": "Solves weekly reporting friction with the current panel data",
77
+ "costRisk": "Does not handle JSON, scheduling, or shared reporting contracts"
78
+ },
79
+ {
80
+ "id": "B",
81
+ "label": "Shared reporting pipeline",
82
+ "recommended": false,
83
+ "completeness": "10/10",
84
+ "good": "Could support more formats and future scheduled reports",
85
+ "costRisk": "Creates a larger platform surface before the local export is proven"
86
+ }
87
+ ],
88
+ "userChoice": "A",
89
+ "impact": "cc-do exports only visible rows from the current panel and avoids new reporting contracts",
90
+ "status": "answered"
91
+ }
92
+ ],
93
+ "aiLeverageDecisionLens": {
94
+ "realUserOrOperator": "workspace admin preparing weekly review notes",
95
+ "statusQuoWorkaround": "manual copy of visible audit rows",
96
+ "humanTeamEffortForFullScope": "about one day for an engineer to implement, test, and document the local export",
97
+ "ccAgentEffortForFullScope": "about 30 minutes for visible-row CSV export plus targeted test and lint",
98
+ "aiCompressionRatio": "roughly 10x for the bounded local export path",
99
+ "completeLakeBoundary": "visible-row CSV export, panel action, current data source, targeted panel test, and lint",
100
+ "oceanBoundary": "JSON export, scheduled reporting, shared reporting backend, and cross-panel reporting platform",
101
+ "scopeRecommendation": "boil-lake",
102
+ "costModel": {
103
+ "agentTime": "low",
104
+ "humanReviewTime": "low",
105
+ "verificationCost": "targeted panel test plus lint",
106
+ "maintenanceCost": "low while scoped to visible rows",
107
+ "failureCost": "admins keep copying rows manually",
108
+ "reversibility": "reversible UI action"
109
+ },
110
+ "verdict": "boil-lake",
111
+ "missingEvidenceOrPivotReason": "",
112
+ "impactOnApprovedDirection": "complete the local visible-row export lake while deferring reporting platform work"
32
113
  }
33
114
  },
34
115
  "currentTaskId": null,
@@ -41,19 +122,45 @@
41
122
  "phase": 1,
42
123
  "parallel": false,
43
124
  "dependsOn": [],
44
- "touches": ["audit-summary", "tests"],
45
- "files": ["src/admin/AuditSummaryPanel.test.tsx"],
46
- "run": ["npm test -- src/admin/AuditSummaryPanel.test.tsx"],
47
- "checks": ["test fails before implementation"],
48
- "acceptance": ["the missing download action is reproduced as a failing test"],
49
- "verification": ["npm test -- src/admin/AuditSummaryPanel.test.tsx"],
50
- "evidence": ["failing test output"],
125
+ "touches": [
126
+ "audit-summary",
127
+ "tests"
128
+ ],
129
+ "files": [
130
+ "src/admin/AuditSummaryPanel.test.tsx"
131
+ ],
132
+ "run": [
133
+ "npm test -- src/admin/AuditSummaryPanel.test.tsx"
134
+ ],
135
+ "checks": [
136
+ "test fails before implementation"
137
+ ],
138
+ "acceptance": [
139
+ "the missing download action is reproduced as a failing test"
140
+ ],
141
+ "verification": [
142
+ "npm test -- src/admin/AuditSummaryPanel.test.tsx"
143
+ ],
144
+ "evidence": [
145
+ "failing test output"
146
+ ],
51
147
  "context": {
52
- "readFiles": ["design.md", "tasks.md", "src/admin/AuditSummaryPanel.tsx"],
53
- "commands": ["npm test -- src/admin/AuditSummaryPanel.test.tsx"],
54
- "notes": ["stay inside the current audit summary panel"]
148
+ "readFiles": [
149
+ "design.md",
150
+ "tasks.md",
151
+ "src/admin/AuditSummaryPanel.tsx"
152
+ ],
153
+ "commands": [
154
+ "npm test -- src/admin/AuditSummaryPanel.test.tsx"
155
+ ],
156
+ "notes": [
157
+ "stay inside the current audit summary panel"
158
+ ]
159
+ },
160
+ "reviews": {
161
+ "spec": "pass",
162
+ "code": "pass"
55
163
  },
56
- "reviews": { "spec": "pass", "code": "pass" },
57
164
  "status": "passed",
58
165
  "attempts": 1,
59
166
  "maxRetries": 1
@@ -64,20 +171,48 @@
64
171
  "type": "IMPL",
65
172
  "phase": 1,
66
173
  "parallel": false,
67
- "dependsOn": ["T001"],
68
- "touches": ["audit-summary"],
69
- "files": ["src/admin/AuditSummaryPanel.tsx"],
70
- "run": ["npm test -- src/admin/AuditSummaryPanel.test.tsx"],
71
- "checks": ["panel test passes"],
72
- "acceptance": ["admins can trigger a CSV download from the existing summary panel"],
73
- "verification": ["npm test -- src/admin/AuditSummaryPanel.test.tsx"],
74
- "evidence": ["passing test output", "checkpoint summary"],
174
+ "dependsOn": [
175
+ "T001"
176
+ ],
177
+ "touches": [
178
+ "audit-summary"
179
+ ],
180
+ "files": [
181
+ "src/admin/AuditSummaryPanel.tsx"
182
+ ],
183
+ "run": [
184
+ "npm test -- src/admin/AuditSummaryPanel.test.tsx"
185
+ ],
186
+ "checks": [
187
+ "panel test passes"
188
+ ],
189
+ "acceptance": [
190
+ "admins can trigger a CSV download from the existing summary panel"
191
+ ],
192
+ "verification": [
193
+ "npm test -- src/admin/AuditSummaryPanel.test.tsx"
194
+ ],
195
+ "evidence": [
196
+ "passing test output",
197
+ "checkpoint summary"
198
+ ],
75
199
  "context": {
76
- "readFiles": ["design.md", "tasks.md", "src/admin/AuditSummaryPanel.test.tsx"],
77
- "commands": ["npm test -- src/admin/AuditSummaryPanel.test.tsx"],
78
- "notes": ["reuse visible summary rows as the export source"]
200
+ "readFiles": [
201
+ "design.md",
202
+ "tasks.md",
203
+ "src/admin/AuditSummaryPanel.test.tsx"
204
+ ],
205
+ "commands": [
206
+ "npm test -- src/admin/AuditSummaryPanel.test.tsx"
207
+ ],
208
+ "notes": [
209
+ "reuse visible summary rows as the export source"
210
+ ]
211
+ },
212
+ "reviews": {
213
+ "spec": "pass",
214
+ "code": "pass"
79
215
  },
80
- "reviews": { "spec": "pass", "code": "pass" },
81
216
  "status": "passed",
82
217
  "attempts": 1,
83
218
  "maxRetries": 1
@@ -88,29 +223,52 @@
88
223
  "type": "OTHER",
89
224
  "phase": 2,
90
225
  "parallel": false,
91
- "dependsOn": ["T002"],
92
- "touches": ["quality-gates"],
93
- "files": ["src/admin/AuditSummaryPanel.tsx", "src/admin/AuditSummaryPanel.test.tsx"],
226
+ "dependsOn": [
227
+ "T002"
228
+ ],
229
+ "touches": [
230
+ "quality-gates"
231
+ ],
232
+ "files": [
233
+ "src/admin/AuditSummaryPanel.tsx",
234
+ "src/admin/AuditSummaryPanel.test.tsx"
235
+ ],
94
236
  "run": [
95
237
  "npm test -- src/admin/AuditSummaryPanel.test.tsx",
96
238
  "npm run lint -- src/admin/AuditSummaryPanel.tsx"
97
239
  ],
98
- "checks": ["targeted tests pass", "lint passes"],
99
- "acceptance": ["fresh verification evidence exists for local handoff"],
240
+ "checks": [
241
+ "targeted tests pass",
242
+ "lint passes"
243
+ ],
244
+ "acceptance": [
245
+ "fresh verification evidence exists for local handoff"
246
+ ],
100
247
  "verification": [
101
248
  "npm test -- src/admin/AuditSummaryPanel.test.tsx",
102
249
  "npm run lint -- src/admin/AuditSummaryPanel.tsx"
103
250
  ],
104
- "evidence": ["passing test output", "clean lint output"],
251
+ "evidence": [
252
+ "passing test output",
253
+ "clean lint output"
254
+ ],
105
255
  "context": {
106
- "readFiles": ["tasks.md", "task-manifest.json"],
256
+ "readFiles": [
257
+ "tasks.md",
258
+ "task-manifest.json"
259
+ ],
107
260
  "commands": [
108
261
  "npm test -- src/admin/AuditSummaryPanel.test.tsx",
109
262
  "npm run lint -- src/admin/AuditSummaryPanel.tsx"
110
263
  ],
111
- "notes": ["remote push is intentionally out of scope for this example"]
264
+ "notes": [
265
+ "remote push is intentionally out of scope for this example"
266
+ ]
267
+ },
268
+ "reviews": {
269
+ "spec": "pass",
270
+ "code": "pass"
112
271
  },
113
- "reviews": { "spec": "pass", "code": "pass" },
114
272
  "status": "passed",
115
273
  "attempts": 1,
116
274
  "maxRetries": 1
@@ -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.7.5`
7
+ - CC-Plan skill version: `3.8.1`
8
8
  - Source roadmap item: `RM-020`
9
9
  - Source roadmap version: `roadmap.v3`
10
10
 
@@ -22,6 +22,7 @@
22
22
  - Implementation decisions: export visible rows only, CSV only
23
23
  - Testing decisions: test through admin panel action and visible row data
24
24
  - Out of scope: JSON export, scheduled reporting, shared reporting backend
25
+ - AI Leverage Decision Lens: boil-lake; complete visible-row CSV export while keeping reporting-platform work outside the lake
25
26
  - Read first:
26
27
  - `design.md`
27
28
  - `src/admin/AuditSummaryPanel.tsx`
@@ -5,7 +5,7 @@
5
5
  },
6
6
  "meta": {
7
7
  "roadmapVersion": "roadmap.v2",
8
- "skillVersion": "5.0.0",
8
+ "skillVersion": "5.2.0",
9
9
  "status": "active",
10
10
  "lastUpdated": "2026-04-19",
11
11
  "currentFocusStage": "Stage 2"
@@ -14,7 +14,21 @@
14
14
  "planningPosture": "",
15
15
  "evidenceMaturity": "",
16
16
  "canonicalTerms": [],
17
- "durableDecisionSources": []
17
+ "durableDecisionSources": [],
18
+ "aiLeverageRouteLens": {
19
+ "realUserOrOperator": "workspace admin preparing weekly activity review notes",
20
+ "statusQuoWorkaround": "manual copy of visible audit rows into an internal note",
21
+ "humanTeamEffortForFullScope": "about one day for an engineer to implement, test, and document the local export",
22
+ "ccAgentEffortForFullScope": "about 30 minutes for visible-row CSV export plus targeted test and lint",
23
+ "aiCompressionRatio": "roughly 10x for the bounded local export path",
24
+ "completeLakeBoundary": "visible-row CSV export, panel action, current data source, targeted panel test, and lint",
25
+ "oceanBoundary": "JSON export, scheduled reporting, shared reporting backend, and cross-panel reporting platform",
26
+ "scopeRecommendation": "boil-lake",
27
+ "firstSuccessSignal": "admins finish weekly review without manual row copying",
28
+ "killSignal": "implementation requires shared reporting pipeline redesign",
29
+ "verdict": "boil-lake",
30
+ "missingEvidence": []
31
+ }
18
32
  },
19
33
  "evidence": [],
20
34
  "route": {
@@ -5,7 +5,7 @@
5
5
  ## Backlog Meta
6
6
 
7
7
  - Roadmap version: `roadmap.v1`
8
- - Skill version: `5.0.0`
8
+ - Skill version: `5.2.0`
9
9
  - Last synced: `2026-04-19`
10
10
  - Current focus stage: `Stage 1`
11
11
  - Roadmap state source: `roadmap.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@5.0.0`, `cc-plan@3.7.5`, `cc-do@1.6.2`, `cc-check@1.10.1`, `cc-act@1.8.2`
7
+ - Bound skills: `cc-roadmap@5.2.0`, `cc-plan@3.8.1`, `cc-do@1.6.2`, `cc-check@1.10.1`, `cc-act@1.8.2`
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: `5.0.0`
6
+ - Skill version: `5.2.0`
7
7
  - Status: `active`
8
8
  - Last updated: `2026-04-15`
9
9
  - Owner / decider: `product-owner`
@@ -36,6 +36,21 @@
36
36
  | Feasibility | Existing dialog already renders the URL and clipboard API is available | High | current UI behavior | This is a tiny patch, not a redesign |
37
37
  | Distribution | Successful sharing unlocks more beta seats | Med | product notes | A smoother invite loop increases activation |
38
38
 
39
+ ## AI Leverage Route Lens
40
+
41
+ - Real user / operator: workspace member sharing an invite during beta onboarding
42
+ - Status quo workaround: manually select and copy the visible invite URL
43
+ - Human-team effort for full scope: about half a day for one engineer including test and review
44
+ - CC / agent effort for full scope: about 20 minutes for a targeted UI patch plus test update
45
+ - AI compression ratio: roughly 10x for this bounded UI slice
46
+ - Complete-lake boundary: copy action, current invite URL source, copied-state feedback, and dialog behavior test
47
+ - Ocean boundary: backend invite generation, permissions, analytics, and clipboard fallback redesign
48
+ - Scope recommendation: `boil-lake`
49
+ - First success signal: users copy the invite link without asking support
50
+ - Kill signal: implementation requires backend or permission changes
51
+ - Verdict: `boil-lake`
52
+ - Missing evidence before ready-for-cc-plan: none
53
+
39
54
  ## Route Options
40
55
 
41
56
  | Shape | Why this could work | Why this may fail | Decision |
@@ -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.7.5`
7
+ - CC-Plan skill version: `3.8.1`
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
@@ -67,6 +67,30 @@
67
67
  - Risk: copied-state feedback may be too subtle for users
68
68
  - Mitigation: keep the first patch minimal and log a follow-up roadmap item if support friction remains
69
69
 
70
+ ## AI Leverage Decision Lens
71
+
72
+ - Real user / operator: workspace member sharing an invite
73
+ - Status quo workaround: manually select the visible invite URL
74
+ - Human-team effort for full scope: about half a day for one engineer including test and review
75
+ - CC / agent effort for full scope: about 20 minutes for a targeted UI patch plus test update
76
+ - AI compression ratio: roughly 10x for this bounded UI slice
77
+ - Complete-lake boundary: copy action, current invite URL source, copied-state feedback, and dialog behavior test
78
+ - Ocean boundary: invite generation, permissions, analytics, and clipboard fallback redesign
79
+ - Scope recommendation: `boil-lake`
80
+ - Cost model: low agent time, low human review time, targeted dialog test, no backend maintenance cost, reversible UI patch
81
+ - Verdict: `boil-lake`
82
+ - Missing evidence or pivot reason: none
83
+
84
+ ## External Best-Practice Validation
85
+
86
+ - Needed: No
87
+ - Decision status: not-needed
88
+ - Generalized search terms:
89
+ - Sources checked:
90
+ - Repo-fit verdict: skipped
91
+ - Changes to frozen design:
92
+ - Skipped reason: existing share-dialog behavior and repo tests are sufficient for the tiny design
93
+
70
94
  ## Review Gate
71
95
 
72
96
  - Placeholder scan: pass
@@ -75,8 +99,17 @@
75
99
  - Ambiguity scan: pass; execution does not need to re-decide button placement or clipboard source
76
100
  - Feasibility scan: pass; existing dialog and tests already cover the target surface
77
101
  - PRD brief scan: pass; problem, story, implementation decision, testing decision, and out-of-scope are durable
102
+ - AI Leverage Decision Lens scan: pass; bounded same-dialog lake is cheap enough to complete, not just render a happy-path button
103
+ - External best-practice scan: pass; not needed for a repo-local tiny design
104
+ - Decision question scan: pass; `D1` approved the tiny-design copy-action boundary
78
105
  - Final recommendation: approved as `tiny-design`
79
106
 
107
+ ## Decision Questions
108
+
109
+ | ID | Gate | Known evidence | Recommendation | User choice | Impact on `cc-do` | Status |
110
+ |----|------|----------------|----------------|-------------|-------------------|--------|
111
+ | D1 | approach-approval | Existing dialog already renders the invite URL and the change stays inside one UI/test surface | Approve the tiny-design copy action | Tiny design copy action | Keep implementation inside the share dialog; do not add backend or permission work | answered |
112
+
80
113
  ## Approval
81
114
 
82
115
  - User approval status: approved
@@ -9,7 +9,7 @@
9
9
  "sourceRoadmap": {
10
10
  "itemId": "RM-001",
11
11
  "roadmapVersion": "roadmap.v1",
12
- "roadmapSkillVersion": "5.0.0",
12
+ "roadmapSkillVersion": "5.2.0",
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.7.5",
25
+ "reqPlanSkillVersion": "3.8.1",
26
26
  "designVersion": "design.v1",
27
27
  "approvedAt": "2026-04-15T10:05:00.000Z",
28
28
  "approvedBy": "user",
@@ -30,21 +30,102 @@
30
30
  "requirementBrief": {
31
31
  "problemStatement": "Users can see the invite URL, but copying it still requires manual selection.",
32
32
  "solutionSummary": "Add a one-click copy action with lightweight confirmation inside the existing share dialog.",
33
- "actors": ["workspace member sharing an invite"],
33
+ "actors": [
34
+ "workspace member sharing an invite"
35
+ ],
34
36
  "userStories": [
35
37
  {
36
38
  "id": "US-001",
37
39
  "actor": "workspace member",
38
40
  "want": "copy the invite link with one click",
39
41
  "benefit": "share it without manually selecting text",
40
- "acceptance": ["Dialog behavior test proves the current invite URL is copied"]
42
+ "acceptance": [
43
+ "Dialog behavior test proves the current invite URL is copied"
44
+ ]
41
45
  }
42
46
  ],
43
47
  "edgeOrRecoveryStories": [],
44
- "implementationDecisions": ["Reuse the existing invite URL source and dialog props"],
45
- "testingDecisions": ["Test through the share dialog behavior, not an internal helper"],
46
- "outOfScope": ["invite generation", "role controls", "analytics", "clipboard fallback redesign"],
47
- "furtherNotes": ["Richer copied-state feedback is a separate UX requirement"]
48
+ "implementationDecisions": [
49
+ "Reuse the existing invite URL source and dialog props"
50
+ ],
51
+ "testingDecisions": [
52
+ "Test through the share dialog behavior, not an internal helper"
53
+ ],
54
+ "outOfScope": [
55
+ "invite generation",
56
+ "role controls",
57
+ "analytics",
58
+ "clipboard fallback redesign"
59
+ ],
60
+ "furtherNotes": [
61
+ "Richer copied-state feedback is a separate UX requirement"
62
+ ]
63
+ },
64
+ "externalBestPractice": {
65
+ "needed": false,
66
+ "decisionStatus": "not-needed",
67
+ "decisionQuestionId": "",
68
+ "privacyGuard": "generalized terms only; no project names, private requirements, customer names, secrets, logs, or proprietary concepts",
69
+ "generalizedSearchTerms": [],
70
+ "sourcesChecked": [],
71
+ "conventionalWisdom": "",
72
+ "currentDiscourse": "",
73
+ "repoFitVerdict": "skipped",
74
+ "designImpacts": [],
75
+ "skippedReason": "existing share-dialog behavior and repo tests are sufficient for the tiny design"
76
+ },
77
+ "decisionQuestions": [
78
+ {
79
+ "questionId": "D1",
80
+ "gate": "approach-approval",
81
+ "knownEvidence": [
82
+ "Existing dialog already renders the invite URL",
83
+ "The patch stays inside one UI/test surface"
84
+ ],
85
+ "recommendation": "Approve the tiny-design copy action",
86
+ "options": [
87
+ {
88
+ "id": "A",
89
+ "label": "Tiny design copy action",
90
+ "recommended": true,
91
+ "completeness": "8/10",
92
+ "good": "Ships the visible user win with one dialog and one behavior test",
93
+ "costRisk": "Leaves richer feedback and clipboard fallback work for later"
94
+ },
95
+ {
96
+ "id": "B",
97
+ "label": "Full share-flow redesign",
98
+ "recommended": false,
99
+ "completeness": "10/10",
100
+ "good": "Could solve broader invite UX issues in one larger pass",
101
+ "costRisk": "Expands beyond the roadmap wedge and touches unrelated share contracts"
102
+ }
103
+ ],
104
+ "userChoice": "A",
105
+ "impact": "cc-do keeps implementation inside the share dialog and avoids backend or permission work",
106
+ "status": "answered"
107
+ }
108
+ ],
109
+ "aiLeverageDecisionLens": {
110
+ "realUserOrOperator": "workspace member sharing an invite",
111
+ "statusQuoWorkaround": "manual selection and copy of the visible invite URL",
112
+ "humanTeamEffortForFullScope": "about half a day for one engineer including test and review",
113
+ "ccAgentEffortForFullScope": "about 20 minutes for a targeted UI patch plus test update",
114
+ "aiCompressionRatio": "roughly 10x for this bounded UI slice",
115
+ "completeLakeBoundary": "copy action, current invite URL source, copied-state feedback, and dialog behavior test",
116
+ "oceanBoundary": "invite generation, permissions, analytics, or clipboard fallback redesign",
117
+ "scopeRecommendation": "boil-lake",
118
+ "costModel": {
119
+ "agentTime": "low",
120
+ "humanReviewTime": "low",
121
+ "verificationCost": "targeted dialog test",
122
+ "maintenanceCost": "low while scoped to the dialog",
123
+ "failureCost": "sharing friction remains",
124
+ "reversibility": "reversible UI patch"
125
+ },
126
+ "verdict": "boil-lake",
127
+ "missingEvidenceOrPivotReason": "",
128
+ "impactOnApprovedDirection": "cover the full same-dialog copy lake instead of only a happy-path button render"
48
129
  }
49
130
  },
50
131
  "currentTaskId": null,
@@ -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.7.5`
7
+ - CC-Plan skill version: `3.8.1`
8
8
  - Source roadmap item: `RM-001`
9
9
  - Source roadmap version: `roadmap.v1`
10
10
 
@@ -23,6 +23,7 @@
23
23
  - Implementation decisions: reuse existing invite URL source and dialog props
24
24
  - Testing decisions: test through share dialog behavior
25
25
  - Out of scope: invite generation, role controls, analytics, clipboard fallback redesign
26
+ - AI Leverage Decision Lens: boil-lake; complete the bounded same-dialog copy lake instead of stopping at a happy-path button
26
27
  - Read first:
27
28
  - `design.md`
28
29
  - `src/features/share/ShareDialog.tsx`
@@ -5,7 +5,7 @@
5
5
  },
6
6
  "meta": {
7
7
  "roadmapVersion": "roadmap.v1",
8
- "skillVersion": "5.0.0",
8
+ "skillVersion": "5.2.0",
9
9
  "status": "active",
10
10
  "lastUpdated": "2026-04-19",
11
11
  "currentFocusStage": "Stage 1"
@@ -14,7 +14,21 @@
14
14
  "planningPosture": "",
15
15
  "evidenceMaturity": "",
16
16
  "canonicalTerms": [],
17
- "durableDecisionSources": []
17
+ "durableDecisionSources": [],
18
+ "aiLeverageRouteLens": {
19
+ "realUserOrOperator": "workspace member sharing an invite during beta onboarding",
20
+ "statusQuoWorkaround": "manual selection and copy of the visible invite URL",
21
+ "humanTeamEffortForFullScope": "about half a day for one engineer including test and review",
22
+ "ccAgentEffortForFullScope": "about 20 minutes for a targeted UI patch plus test update",
23
+ "aiCompressionRatio": "roughly 10x for this bounded UI slice",
24
+ "completeLakeBoundary": "copy action, current invite URL source, copied-state feedback, and dialog behavior test",
25
+ "oceanBoundary": "backend invite generation, permissions, analytics, and clipboard fallback redesign",
26
+ "scopeRecommendation": "boil-lake",
27
+ "firstSuccessSignal": "users copy the invite link without asking support",
28
+ "killSignal": "implementation requires backend or permission changes",
29
+ "verdict": "boil-lake",
30
+ "missingEvidence": []
31
+ }
18
32
  },
19
33
  "evidence": [],
20
34
  "route": {
@@ -38,6 +38,7 @@ ROADMAP_VERSION="$(skill_version cc-roadmap)"
38
38
  REQ_PLAN_VERSION="$(skill_version cc-plan)"
39
39
  INVESTIGATE_VERSION="$(skill_version cc-investigate)"
40
40
  REQ_DO_VERSION="$(skill_version cc-do)"
41
+ REQ_REVIEW_VERSION="$(skill_version cc-review)"
41
42
  REQ_CHECK_VERSION="$(skill_version cc-check)"
42
43
  REQ_ACT_VERSION="$(skill_version cc-act)"
43
44
 
@@ -46,6 +47,7 @@ for pair in \
46
47
  "cc-plan:$REQ_PLAN_VERSION" \
47
48
  "cc-investigate:$INVESTIGATE_VERSION" \
48
49
  "cc-do:$REQ_DO_VERSION" \
50
+ "cc-review:$REQ_REVIEW_VERSION" \
49
51
  "cc-check:$REQ_CHECK_VERSION" \
50
52
  "cc-act:$REQ_ACT_VERSION"
51
53
  do