cc-devflow 4.5.11 → 4.5.12

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 (185) hide show
  1. package/.claude/skills/cc-act/CHANGELOG.md +18 -0
  2. package/.claude/skills/cc-act/PLAYBOOK.md +17 -269
  3. package/.claude/skills/cc-act/SKILL.md +38 -425
  4. package/.claude/skills/cc-act/assets/PROJECT_POSTMORTEM_INDEX_TEMPLATE.md +2 -13
  5. package/.claude/skills/cc-act/assets/PROJECT_POSTMORTEM_TEMPLATE.md +1 -9
  6. package/.claude/skills/cc-act/assets/PR_BRIEF_TEMPLATE.md +21 -177
  7. package/.claude/skills/cc-act/references/closure-contract.md +12 -63
  8. package/.claude/skills/cc-act/references/git-commit-guidelines.md +5 -5
  9. package/.claude/skills/cc-act/scripts/cc-act-common.sh +5 -322
  10. package/.claude/skills/cc-act/scripts/detect-ship-target.sh +11 -2
  11. package/.claude/skills/cc-act/scripts/inspect-git-index.sh +58 -0
  12. package/.claude/skills/cc-act/scripts/render-pr-brief.sh +40 -440
  13. package/.claude/skills/cc-act/scripts/verify-act-gate.sh +10 -50
  14. package/.claude/skills/cc-check/CHANGELOG.md +18 -0
  15. package/.claude/skills/cc-check/PLAYBOOK.md +19 -273
  16. package/.claude/skills/cc-check/SKILL.md +33 -456
  17. package/.claude/skills/cc-check/references/review-contract.md +12 -147
  18. package/.claude/skills/cc-dev/CHANGELOG.md +15 -0
  19. package/.claude/skills/cc-dev/PLAYBOOK.md +1 -1
  20. package/.claude/skills/cc-dev/SKILL.md +52 -137
  21. package/.claude/skills/cc-dev/scripts/resolve-cc-devflow.sh +181 -0
  22. package/.claude/skills/cc-do/CHANGELOG.md +11 -0
  23. package/.claude/skills/cc-do/PLAYBOOK.md +19 -113
  24. package/.claude/skills/cc-do/SKILL.md +39 -245
  25. package/.claude/skills/cc-do/references/execution-recovery.md +15 -109
  26. package/.claude/skills/cc-do/scripts/cc-do-common.sh +5 -57
  27. package/.claude/skills/cc-do/scripts/check-task-status.sh +35 -65
  28. package/.claude/skills/cc-do/scripts/mark-task-complete.sh +9 -46
  29. package/.claude/skills/cc-do/scripts/select-ready-tasks.sh +29 -97
  30. package/.claude/skills/cc-investigate/CHANGELOG.md +16 -0
  31. package/.claude/skills/cc-investigate/PLAYBOOK.md +20 -180
  32. package/.claude/skills/cc-investigate/SKILL.md +64 -246
  33. package/.claude/skills/cc-investigate/assets/TASKS_TEMPLATE.md +48 -98
  34. package/.claude/skills/cc-investigate/references/investigation-contract.md +14 -218
  35. package/.claude/skills/cc-next/CHANGELOG.md +6 -0
  36. package/.claude/skills/cc-next/PLAYBOOK.md +12 -8
  37. package/.claude/skills/cc-next/SKILL.md +34 -140
  38. package/.claude/skills/cc-plan/CHANGELOG.md +16 -0
  39. package/.claude/skills/cc-plan/PLAYBOOK.md +22 -161
  40. package/.claude/skills/cc-plan/SKILL.md +45 -295
  41. package/.claude/skills/cc-plan/assets/TASKS_TEMPLATE.md +30 -228
  42. package/.claude/skills/cc-plan/references/planning-contract.md +24 -161
  43. package/.claude/skills/cc-plan/scripts/next-change-key.sh +8 -44
  44. package/.claude/skills/cc-plan/scripts/parse-task-dependencies.js +2 -2
  45. package/.claude/skills/cc-plan/scripts/validate-scope.sh +1 -1
  46. package/.claude/skills/cc-pr-land/SKILL.md +14 -114
  47. package/.claude/skills/cc-pr-review/CHANGELOG.md +4 -0
  48. package/.claude/skills/cc-pr-review/SKILL.md +20 -103
  49. package/.claude/skills/cc-review/CHANGELOG.md +17 -0
  50. package/.claude/skills/cc-review/PLAYBOOK.md +13 -86
  51. package/.claude/skills/cc-review/SKILL.md +53 -241
  52. package/.claude/skills/cc-review/references/e2e-and-plugin-verification.md +2 -2
  53. package/.claude/skills/cc-review/references/implementation-review-branch.md +7 -147
  54. package/.claude/skills/cc-review/references/plan-review-branch.md +5 -147
  55. package/.claude/skills/cc-review/references/review-methods.md +10 -218
  56. package/.claude/skills/cc-review/scripts/collect-review-context.sh +4 -63
  57. package/.claude/skills/cc-roadmap/PLAYBOOK.md +1 -1
  58. package/.claude/skills/cc-roadmap/SKILL.md +3 -3
  59. package/.claude/skills/cc-simplify/CHANGELOG.md +7 -0
  60. package/.claude/skills/cc-simplify/SKILL.md +26 -21
  61. package/.claude/skills/cc-spec-init/PLAYBOOK.md +12 -48
  62. package/.claude/skills/cc-spec-init/SKILL.md +29 -132
  63. package/.claude/skills/cc-spec-init/references/spec-contract.md +8 -17
  64. package/CHANGELOG.md +13 -0
  65. package/bin/cc-devflow-cli.js +20 -260
  66. package/bin/cc-devflow.js +44 -7
  67. package/docs/commands/README.md +1 -1
  68. package/docs/commands/README.zh-CN.md +1 -1
  69. package/docs/examples/README.md +1 -1
  70. package/docs/examples/START-HERE.md +14 -15
  71. package/docs/examples/example-bindings.json +11 -11
  72. package/docs/examples/full-design-blocked/README.md +4 -6
  73. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/{planning/tasks.md → task.md} +20 -15
  74. package/docs/examples/local-handoff/README.md +8 -11
  75. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/handoff/pr-brief.md +31 -0
  76. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/{planning/tasks.md → task.md} +18 -13
  77. package/docs/examples/pdca-loop/README.md +6 -9
  78. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/handoff/pr-brief.md +9 -11
  79. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/{planning/tasks.md → task.md} +18 -13
  80. package/docs/examples/scripts/check-example-bindings.sh +11 -62
  81. package/docs/guides/artifact-contract.md +10 -40
  82. package/docs/guides/getting-started.md +8 -8
  83. package/docs/guides/getting-started.zh-CN.md +8 -8
  84. package/docs/guides/minimize-artifacts.md +16 -130
  85. package/docs/guides/project-postmortem.md +14 -71
  86. package/lib/compiler/__tests__/skills-registry.test.js +9 -8
  87. package/lib/compiler/resource-copier.js +29 -0
  88. package/lib/skill-runtime/__tests__/archive-change.test.js +2 -2
  89. package/lib/skill-runtime/__tests__/benchmark-skills.test.js +3 -3
  90. package/lib/skill-runtime/__tests__/cli-bootstrap.integration.test.js +14 -4
  91. package/lib/skill-runtime/errors.js +3 -3
  92. package/lib/skill-runtime/index.js +5 -23
  93. package/lib/skill-runtime/paths.js +5 -52
  94. package/lib/skill-runtime/query-registry.js +4 -4
  95. package/lib/skill-runtime/query.js +89 -201
  96. package/lib/skill-runtime/store.js +4 -40
  97. package/lib/skill-runtime/trace.js +2 -2
  98. package/package.json +2 -5
  99. package/.claude/skills/cc-act/assets/PROJECT_POSTMORTEM_PRINCIPLES_TEMPLATE.md +0 -29
  100. package/.claude/skills/cc-act/assets/RELEASE_NOTE_TEMPLATE.md +0 -54
  101. package/.claude/skills/cc-act/scripts/generate-status-report.sh +0 -92
  102. package/.claude/skills/cc-act/scripts/sync-act-docs.sh +0 -355
  103. package/.claude/skills/cc-check/assets/REPORT_CARD_TEMPLATE.json +0 -234
  104. package/.claude/skills/cc-check/scripts/render-report-card.js +0 -438
  105. package/.claude/skills/cc-check/scripts/verify-gate.sh +0 -85
  106. package/.claude/skills/cc-do/scripts/build-task-context.sh +0 -175
  107. package/.claude/skills/cc-do/scripts/record-review-decision.sh +0 -88
  108. package/.claude/skills/cc-do/scripts/recover-workflow.sh +0 -82
  109. package/.claude/skills/cc-do/scripts/run-problem-analysis.sh +0 -70
  110. package/.claude/skills/cc-do/scripts/verify-task-gates.sh +0 -109
  111. package/.claude/skills/cc-do/scripts/write-task-checkpoint.sh +0 -92
  112. package/.claude/skills/cc-investigate/assets/TASK_MANIFEST_TEMPLATE.json +0 -224
  113. package/.claude/skills/cc-plan/assets/TASK_MANIFEST_TEMPLATE.json +0 -178
  114. package/.claude/skills/cc-spec-init/assets/CHANGE_META_TEMPLATE.json +0 -28
  115. package/.claude/skills/cc-spec-init/scripts/validate-spec-links.sh +0 -45
  116. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/design.md +0 -234
  117. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/task-manifest.json +0 -488
  118. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/review/report-card.json +0 -189
  119. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/handoff/resume-index.md +0 -39
  120. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/handoff/status.md +0 -29
  121. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/design.md +0 -123
  122. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/task-manifest.json +0 -292
  123. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/review/report-card.json +0 -136
  124. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/handoff/status.md +0 -29
  125. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/design.md +0 -124
  126. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/task-manifest.json +0 -292
  127. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/review/report-card.json +0 -136
  128. package/docs/get-shit-done-strategy-audit.md +0 -518
  129. package/docs/skill-runtime-migration.md +0 -46
  130. package/lib/skill-runtime/__tests__/approve.test.js +0 -92
  131. package/lib/skill-runtime/__tests__/autopilot.test.js +0 -253
  132. package/lib/skill-runtime/__tests__/benchmark-artifacts.test.js +0 -165
  133. package/lib/skill-runtime/__tests__/delegation.test.js +0 -97
  134. package/lib/skill-runtime/__tests__/dispatch.test.js +0 -237
  135. package/lib/skill-runtime/__tests__/intent.test.js +0 -203
  136. package/lib/skill-runtime/__tests__/lifecycle.test.js +0 -169
  137. package/lib/skill-runtime/__tests__/planner.tdd.test.js +0 -331
  138. package/lib/skill-runtime/__tests__/prepare-pr.test.js +0 -126
  139. package/lib/skill-runtime/__tests__/query.test.js +0 -860
  140. package/lib/skill-runtime/__tests__/readiness.test.js +0 -53
  141. package/lib/skill-runtime/__tests__/release.test.js +0 -85
  142. package/lib/skill-runtime/__tests__/review-check-integration.test.js +0 -148
  143. package/lib/skill-runtime/__tests__/review-records.test.js +0 -619
  144. package/lib/skill-runtime/__tests__/runtime.integration.test.js +0 -351
  145. package/lib/skill-runtime/__tests__/schemas.test.js +0 -337
  146. package/lib/skill-runtime/__tests__/task-contract-migrate.test.js +0 -137
  147. package/lib/skill-runtime/__tests__/task-contract.test.js +0 -874
  148. package/lib/skill-runtime/__tests__/team-state.test.js +0 -51
  149. package/lib/skill-runtime/__tests__/verify-artifacts.test.js +0 -203
  150. package/lib/skill-runtime/__tests__/worker-run.test.js +0 -275
  151. package/lib/skill-runtime/__tests__/worker.test.js +0 -56
  152. package/lib/skill-runtime/__tests__/workflow-context-legacy-fallback.test.js +0 -31
  153. package/lib/skill-runtime/__tests__/workflow-context.test.js +0 -98
  154. package/lib/skill-runtime/artifacts.js +0 -88
  155. package/lib/skill-runtime/context-index.js +0 -545
  156. package/lib/skill-runtime/delegation.js +0 -533
  157. package/lib/skill-runtime/intent.js +0 -309
  158. package/lib/skill-runtime/lifecycle.js +0 -294
  159. package/lib/skill-runtime/operations/CLAUDE.md +0 -19
  160. package/lib/skill-runtime/operations/approve.js +0 -81
  161. package/lib/skill-runtime/operations/autopilot-core.js +0 -337
  162. package/lib/skill-runtime/operations/autopilot-execution.js +0 -307
  163. package/lib/skill-runtime/operations/autopilot-shared.js +0 -48
  164. package/lib/skill-runtime/operations/autopilot.js +0 -163
  165. package/lib/skill-runtime/operations/dispatch.js +0 -416
  166. package/lib/skill-runtime/operations/init.js +0 -60
  167. package/lib/skill-runtime/operations/janitor.js +0 -61
  168. package/lib/skill-runtime/operations/plan.js +0 -59
  169. package/lib/skill-runtime/operations/prepare-pr.js +0 -25
  170. package/lib/skill-runtime/operations/release.js +0 -99
  171. package/lib/skill-runtime/operations/resume.js +0 -126
  172. package/lib/skill-runtime/operations/review-records.js +0 -265
  173. package/lib/skill-runtime/operations/snapshot.js +0 -45
  174. package/lib/skill-runtime/operations/task-contract.js +0 -593
  175. package/lib/skill-runtime/operations/verify.js +0 -170
  176. package/lib/skill-runtime/operations/worker-run.js +0 -531
  177. package/lib/skill-runtime/operations/worker.js +0 -33
  178. package/lib/skill-runtime/planner.js +0 -539
  179. package/lib/skill-runtime/readiness.js +0 -84
  180. package/lib/skill-runtime/review-records.js +0 -123
  181. package/lib/skill-runtime/review.js +0 -855
  182. package/lib/skill-runtime/schemas.js +0 -746
  183. package/lib/skill-runtime/task-contract.js +0 -188
  184. package/lib/skill-runtime/team-state.js +0 -122
  185. package/lib/skill-runtime/workflow-context.js +0 -748
@@ -1,124 +0,0 @@
1
- # DESIGN
2
-
3
- ## Document Meta
4
-
5
- - Requirement version: `REQ-001.v1`
6
- - Design version: `design.v1`
7
- - CC-Plan skill version: `3.9.2`
8
- - Work branch: `REQ/001-copy-invite-link`
9
- - Requirement ID: `REQ-001`
10
- - Design mode: `tiny-design`
11
- - Why this stays `tiny-design`: the patch is limited to an existing dialog and test file, with no API or data model changes
12
- - Approval status: `approved`
13
- - Source roadmap item: `RM-001`
14
- - Source roadmap version: `roadmap.v1`
15
-
16
- ## Source Handoff
17
-
18
- - Why now: Stage 1 needs the smallest possible share-flow win
19
- - Inherited success signal: a user can copy the invite link with one click
20
- - Inherited kill signal: if the patch requires backend or permission changes, reopen planning
21
- - Inherited non-goals: no invite role controls, no analytics, no dialog redesign
22
- - Upstream evidence: repeated support notes and observed manual copying
23
-
24
- ## Frozen Design Card
25
-
26
- - Change: add a `Copy invite link` button beside the existing read-only invite URL in the share dialog
27
- - Keep out: no new invite generation flow and no fallback redesign for unsupported browsers
28
- - Touched files:
29
- - `src/features/share/ShareDialog.tsx`
30
- - `src/features/share/ShareDialog.test.tsx`
31
- - Contract changes: none; reuse the existing invite link source and existing dialog props
32
- - Key decisions that `cc-do` must not re-decide:
33
- - use `navigator.clipboard.writeText`
34
- - keep the current invite URL source of truth
35
- - show a lightweight copied-state confirmation inside the current dialog
36
- - Upgrade trigger to `full-design`: if clipboard support requires new platform fallbacks, or if the patch spills into shared share-service contracts
37
-
38
- ## PRD-Grade Brief
39
-
40
- - Problem statement: users can see the invite URL, but copying it still requires manual selection and creates avoidable share-flow friction.
41
- - Solution summary: users get a one-click copy action in the existing share dialog and see lightweight confirmation after the link is copied.
42
- - Actors / personas:
43
- - workspace member sharing an invite
44
- - User stories:
45
- - US-001: As a workspace member, I want to copy the invite link with one click, so that I can share it without manually selecting text.
46
- - Implementation decisions:
47
- - Reuse the existing invite URL source and dialog props.
48
- - Keep clipboard behavior inside the current share dialog surface.
49
- - Testing decisions:
50
- - Test through the dialog behavior, not an internal helper.
51
- - Existing share-dialog tests are the prior art.
52
- - Out of scope: new invite generation, role controls, analytics, or clipboard fallback redesign.
53
- - Further notes: if confirmation remains unclear, open a separate UX requirement.
54
-
55
- ## Validation
56
-
57
- - Primary check: targeted dialog test proves the button renders and copies the current invite URL
58
- - Secondary checks:
59
- - existing share dialog tests remain green
60
- - lint stays green for the touched files
61
- - Evidence to collect:
62
- - failing test before implementation
63
- - passing targeted test after implementation
64
- - fresh gate output for `cc-check`
65
-
66
- ## Main Risk
67
-
68
- - Risk: copied-state feedback may be too subtle for users
69
- - Mitigation: keep the first patch minimal and log a follow-up roadmap item if support friction remains
70
-
71
- ## AI Leverage Decision Lens
72
-
73
- - Real user / operator: workspace member sharing an invite
74
- - Status quo workaround: manually select the visible invite URL
75
- - Human-team effort for full scope: about half a day for one engineer including test and review
76
- - CC / agent effort for full scope: about 20 minutes for a targeted UI patch plus test update
77
- - AI compression ratio: roughly 10x for this bounded UI slice
78
- - Complete-lake boundary: copy action, current invite URL source, copied-state feedback, and dialog behavior test
79
- - Ocean boundary: invite generation, permissions, analytics, and clipboard fallback redesign
80
- - Scope recommendation: `boil-lake`
81
- - Cost model: low agent time, low human review time, targeted dialog test, no backend maintenance cost, reversible UI patch
82
- - Verdict: `boil-lake`
83
- - Missing evidence or pivot reason: none
84
-
85
- ## External Best-Practice Validation
86
-
87
- - Needed: No
88
- - Decision status: not-needed
89
- - Generalized search terms:
90
- - Sources checked:
91
- - Repo-fit verdict: skipped
92
- - Changes to frozen design:
93
- - Skipped reason: existing share-dialog behavior and repo tests are sufficient for the tiny design
94
-
95
- ## Review Gate
96
-
97
- - Placeholder scan: pass
98
- - Consistency scan: pass; scope, files, and validation all point to the same tiny patch
99
- - Scope scan: pass; no backend, no permission work
100
- - Ambiguity scan: pass; execution does not need to re-decide button placement or clipboard source
101
- - Feasibility scan: pass; existing dialog and tests already cover the target surface
102
- - PRD brief scan: pass; problem, story, implementation decision, testing decision, and out-of-scope are durable
103
- - AI Leverage Decision Lens scan: pass; bounded same-dialog lake is cheap enough to complete, not just render a happy-path button
104
- - External best-practice scan: pass; not needed for a repo-local tiny design
105
- - Decision question scan: pass; `D1` approved the tiny-design copy-action boundary
106
- - Final recommendation: approved as `tiny-design`
107
-
108
- ## Decision Questions
109
-
110
- | ID | Gate | Known evidence | Recommendation | User choice | Impact on `cc-do` | Status |
111
- |----|------|----------------|----------------|-------------|-------------------|--------|
112
- | 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 |
113
-
114
- ## Approval
115
-
116
- - User approval status: approved
117
- - Deferred questions:
118
- - if copied-state feedback still feels weak, open a separate requirement for richer UX
119
-
120
- ## First-Read Test
121
-
122
- - This is clearly small because it stays inside one UI surface and one test surface
123
- - The upgrade path is explicit: any contract or fallback work forces `full-design`
124
- - `cc-do` should not need to ask where the URL comes from or how the copy action is triggered
@@ -1,292 +0,0 @@
1
- {
2
- "changeId": "REQ-001",
3
- "goal": "Add a one-click copy action to the existing share dialog without changing backend contracts.",
4
- "createdAt": "2026-04-15T10:00:00.000Z",
5
- "updatedAt": "2026-04-15T11:10:00.000Z",
6
- "requirementId": "REQ-001",
7
- "requirementVersion": "REQ-001.v1",
8
- "planningMeta": {
9
- "reqPlanSkillVersion": "3.9.2",
10
- "designVersion": "design.v1",
11
- "workBranch": "REQ/001-copy-invite-link",
12
- "approvedAt": "2026-04-15T10:05:00.000Z",
13
- "basedOnOption": "Tiny design card",
14
- "aiLeverageDecisionLens": {
15
- "realUserOrOperator": "workspace member sharing an invite",
16
- "statusQuoWorkaround": "manual selection and copy of the visible invite URL",
17
- "humanTeamEffortForFullScope": "about half a day for one engineer including test and review",
18
- "ccAgentEffortForFullScope": "about 20 minutes for a targeted UI patch plus test update",
19
- "aiCompressionRatio": "roughly 10x for this bounded UI slice",
20
- "completeLakeBoundary": "copy action, current invite URL source, copied-state feedback, and dialog behavior test",
21
- "oceanBoundary": "invite generation, permissions, analytics, or clipboard fallback redesign",
22
- "scopeRecommendation": "boil-lake",
23
- "costModel": {
24
- "agentTime": "low",
25
- "humanReviewTime": "low",
26
- "verificationCost": "targeted dialog test",
27
- "maintenanceCost": "low while scoped to the dialog",
28
- "failureCost": "sharing friction remains",
29
- "reversibility": "reversible UI patch"
30
- },
31
- "verdict": "boil-lake",
32
- "missingEvidenceOrPivotReason": "",
33
- "impactOnApprovedDirection": "cover the full same-dialog copy lake instead of only a happy-path button render"
34
- },
35
- "externalBestPractice": {
36
- "needed": false,
37
- "decisionStatus": "not-needed",
38
- "decisionQuestionId": "",
39
- "privacyGuard": "generalized terms only; no project names, private requirements, customer names, secrets, logs, or proprietary concepts",
40
- "generalizedSearchTerms": [],
41
- "sourcesChecked": [],
42
- "conventionalWisdom": "",
43
- "currentDiscourse": "",
44
- "repoFitVerdict": "skipped",
45
- "designImpacts": [],
46
- "skippedReason": "existing share-dialog behavior and repo tests are sufficient for the tiny design"
47
- },
48
- "decisionQuestions": [
49
- {
50
- "questionId": "D1",
51
- "gate": "approach-approval",
52
- "knownEvidence": [
53
- "Existing dialog already renders the invite URL",
54
- "The patch stays inside one UI/test surface"
55
- ],
56
- "recommendation": "Approve the tiny-design copy action",
57
- "options": [
58
- {
59
- "id": "A",
60
- "label": "Tiny design copy action",
61
- "recommended": true,
62
- "completeness": "8/10",
63
- "good": "Ships the visible user win with one dialog and one behavior test",
64
- "costRisk": "Leaves richer feedback and clipboard fallback work for later"
65
- },
66
- {
67
- "id": "B",
68
- "label": "Full share-flow redesign",
69
- "recommended": false,
70
- "completeness": "10/10",
71
- "good": "Could solve broader invite UX issues in one larger pass",
72
- "costRisk": "Expands beyond the roadmap wedge and touches unrelated share contracts"
73
- }
74
- ],
75
- "userChoice": "A",
76
- "impact": "cc-do keeps implementation inside the share dialog and avoids backend or permission work",
77
- "status": "answered"
78
- }
79
- ]
80
- },
81
- "currentTaskId": null,
82
- "tasks": [
83
- {
84
- "id": "T001",
85
- "title": "[TEST] Add a failing dialog test for the missing copy action",
86
- "type": "TEST",
87
- "phase": 1,
88
- "parallel": false,
89
- "dependsOn": [],
90
- "touches": [
91
- "share-dialog",
92
- "tests"
93
- ],
94
- "files": [
95
- "src/features/share/ShareDialog.test.tsx"
96
- ],
97
- "run": [
98
- "npm test -- src/features/share/ShareDialog.test.tsx"
99
- ],
100
- "checks": [
101
- "test fails before implementation"
102
- ],
103
- "acceptance": [
104
- "The missing copy action is reproduced as a failing test"
105
- ],
106
- "verification": [
107
- "npm test -- src/features/share/ShareDialog.test.tsx"
108
- ],
109
- "evidence": [
110
- "Failing test output"
111
- ],
112
- "context": {
113
- "readFiles": [
114
- "design.md",
115
- "tasks.md",
116
- "src/features/share/ShareDialog.tsx"
117
- ],
118
- "commands": [
119
- "npm test -- src/features/share/ShareDialog.test.tsx"
120
- ],
121
- "notes": [
122
- "Do not change share-service contracts in this task"
123
- ]
124
- },
125
- "reviews": {
126
- "spec": "pass",
127
- "code": "pass"
128
- },
129
- "status": "passed",
130
- "attempts": 1,
131
- "maxRetries": 1,
132
- "tddPhase": "red",
133
- "verticalSlice": "Slice 1",
134
- "testSeam": {
135
- "entry": "share dialog UI behavior",
136
- "behaviorAsserted": "The missing copy action is reproduced as a failing test",
137
- "specStyleTestName": "The missing copy action is reproduced as a failing test",
138
- "oneLogicalBehavior": true,
139
- "publicVerificationPath": "Run the share dialog test and observe the copy action through the rendered dialog",
140
- "implementationDetailRisk": "low"
141
- },
142
- "feedbackLoop": {
143
- "type": "automated-test",
144
- "determinism": "deterministic",
145
- "expectedFailure": "Fails before the behavior exists"
146
- }
147
- },
148
- {
149
- "id": "T002",
150
- "title": "[IMPL] Add the copy button and copied-state confirmation",
151
- "type": "IMPL",
152
- "phase": 1,
153
- "parallel": false,
154
- "dependsOn": [
155
- "T001"
156
- ],
157
- "touches": [
158
- "share-dialog"
159
- ],
160
- "files": [
161
- "src/features/share/ShareDialog.tsx"
162
- ],
163
- "run": [
164
- "npm test -- src/features/share/ShareDialog.test.tsx"
165
- ],
166
- "checks": [
167
- "dialog test passes after implementation"
168
- ],
169
- "acceptance": [
170
- "The dialog exposes a copy button and confirms the copied state"
171
- ],
172
- "verification": [
173
- "npm test -- src/features/share/ShareDialog.test.tsx"
174
- ],
175
- "evidence": [
176
- "Passing targeted test output",
177
- "Checkpoint summary"
178
- ],
179
- "context": {
180
- "readFiles": [
181
- "design.md",
182
- "tasks.md",
183
- "src/features/share/ShareDialog.test.tsx"
184
- ],
185
- "commands": [
186
- "npm test -- src/features/share/ShareDialog.test.tsx"
187
- ],
188
- "notes": [
189
- "Keep the patch inside the existing dialog"
190
- ]
191
- },
192
- "reviews": {
193
- "spec": "pass",
194
- "code": "pass"
195
- },
196
- "status": "passed",
197
- "attempts": 1,
198
- "maxRetries": 1,
199
- "tddPhase": "green",
200
- "verticalSlice": "Slice 2",
201
- "testSeam": {
202
- "entry": "share dialog UI behavior",
203
- "behaviorAsserted": "The dialog exposes a copy button and confirms the copied state",
204
- "specStyleTestName": "The dialog exposes a copy button and confirms the copied state",
205
- "oneLogicalBehavior": true,
206
- "publicVerificationPath": "Run the share dialog test and observe the copy action through the rendered dialog",
207
- "implementationDetailRisk": "low"
208
- },
209
- "feedbackLoop": {
210
- "type": "automated-test",
211
- "determinism": "deterministic",
212
- "expectedFailure": ""
213
- }
214
- },
215
- {
216
- "id": "T003",
217
- "title": "Run targeted checks and collect fresh evidence",
218
- "type": "OTHER",
219
- "phase": 2,
220
- "parallel": false,
221
- "dependsOn": [
222
- "T002"
223
- ],
224
- "touches": [
225
- "quality-gates"
226
- ],
227
- "files": [
228
- "src/features/share/ShareDialog.tsx",
229
- "src/features/share/ShareDialog.test.tsx"
230
- ],
231
- "run": [
232
- "npm test -- src/features/share/ShareDialog.test.tsx",
233
- "npm run lint -- src/features/share/ShareDialog.tsx"
234
- ],
235
- "checks": [
236
- "targeted test passes",
237
- "lint passes"
238
- ],
239
- "acceptance": [
240
- "Fresh verification evidence is ready for cc-check"
241
- ],
242
- "verification": [
243
- "npm test -- src/features/share/ShareDialog.test.tsx",
244
- "npm run lint -- src/features/share/ShareDialog.tsx"
245
- ],
246
- "evidence": [
247
- "Passing targeted test output",
248
- "Clean lint output"
249
- ],
250
- "context": {
251
- "readFiles": [
252
- "tasks.md",
253
- "task-manifest.json"
254
- ],
255
- "commands": [
256
- "npm test -- src/features/share/ShareDialog.test.tsx",
257
- "npm run lint -- src/features/share/ShareDialog.tsx"
258
- ],
259
- "notes": [
260
- "Collect only fresh evidence from this run"
261
- ]
262
- },
263
- "reviews": {
264
- "spec": "pass",
265
- "code": "pass"
266
- },
267
- "status": "passed",
268
- "attempts": 1,
269
- "maxRetries": 1,
270
- "tddPhase": "evidence",
271
- "verticalSlice": "Slice 3",
272
- "testSeam": {
273
- "entry": "share dialog UI behavior",
274
- "behaviorAsserted": "Fresh verification evidence is ready for cc-check",
275
- "specStyleTestName": "Fresh verification evidence is ready for cc-check",
276
- "oneLogicalBehavior": true,
277
- "publicVerificationPath": "Run the share dialog test and observe the copy action through the rendered dialog",
278
- "implementationDetailRisk": "low"
279
- },
280
- "feedbackLoop": {
281
- "type": "automated-test",
282
- "determinism": "deterministic",
283
- "expectedFailure": ""
284
- }
285
- }
286
- ],
287
- "metadata": {
288
- "source": "tasks.md",
289
- "generatedBy": "docs-example",
290
- "planVersion": 1
291
- }
292
- }
@@ -1,136 +0,0 @@
1
- {
2
- "changeId": "REQ-001",
3
- "verdict": "pass",
4
- "overall": "pass",
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
- },
65
- "quickGates": [
66
- {
67
- "name": "targeted-tests",
68
- "status": "pass",
69
- "command": "npm test -- src/features/share/ShareDialog.test.tsx",
70
- "summary": "share dialog targeted tests passed"
71
- },
72
- {
73
- "name": "lint",
74
- "status": "pass",
75
- "command": "npm run lint -- src/features/share/ShareDialog.tsx",
76
- "summary": "lint passed for the touched dialog file"
77
- }
78
- ],
79
- "strictGates": [],
80
- "review": {
81
- "status": "pass",
82
- "summary": "Task review proof and requirement-level diff review both passed",
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
- ],
102
- "taskReviews": {
103
- "status": "pass",
104
- "required": true,
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
- },
113
- "reviewers": [],
114
- "findings": []
115
- },
116
- "diffReview": {
117
- "status": "pass",
118
- "required": false,
119
- "summary": "No blocking requirement-level findings",
120
- "reviewPacket": {
121
- "baseSha": "example-base",
122
- "headSha": "example-head",
123
- "requirements": "planning/tasks.md#Contract Summary",
124
- "implemented": "copy invite link workflow",
125
- "reviewerContext": "requirement diff, plan completion, scope drift, docs staleness"
126
- },
127
- "reviewers": [],
128
- "findings": []
129
- },
130
- "findings": []
131
- },
132
- "blockingFindings": [],
133
- "gaps": [],
134
- "reroute": "none",
135
- "timestamp": "2026-04-15T11:20:00.000Z"
136
- }