cc-devflow 4.5.10 → 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 (187) hide show
  1. package/.claude/skills/cc-act/CHANGELOG.md +23 -0
  2. package/.claude/skills/cc-act/PLAYBOOK.md +17 -269
  3. package/.claude/skills/cc-act/SKILL.md +38 -418
  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 +24 -0
  15. package/.claude/skills/cc-check/PLAYBOOK.md +19 -273
  16. package/.claude/skills/cc-check/SKILL.md +33 -454
  17. package/.claude/skills/cc-check/references/review-contract.md +12 -147
  18. package/.claude/skills/cc-dev/CHANGELOG.md +20 -0
  19. package/.claude/skills/cc-dev/PLAYBOOK.md +1 -1
  20. package/.claude/skills/cc-dev/SKILL.md +52 -130
  21. package/.claude/skills/cc-dev/scripts/resolve-cc-devflow.sh +181 -0
  22. package/.claude/skills/cc-do/CHANGELOG.md +17 -0
  23. package/.claude/skills/cc-do/PLAYBOOK.md +19 -113
  24. package/.claude/skills/cc-do/SKILL.md +39 -236
  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 +23 -0
  31. package/.claude/skills/cc-investigate/PLAYBOOK.md +20 -180
  32. package/.claude/skills/cc-investigate/SKILL.md +65 -513
  33. package/.claude/skills/cc-investigate/assets/TASKS_TEMPLATE.md +48 -95
  34. package/.claude/skills/cc-investigate/references/investigation-contract.md +14 -217
  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 +29 -0
  39. package/.claude/skills/cc-plan/PLAYBOOK.md +22 -161
  40. package/.claude/skills/cc-plan/SKILL.md +47 -640
  41. package/.claude/skills/cc-plan/assets/TASKS_TEMPLATE.md +30 -225
  42. package/.claude/skills/cc-plan/references/planning-contract.md +24 -160
  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 +27 -0
  65. package/README.md +5 -3
  66. package/README.zh-CN.md +5 -3
  67. package/bin/cc-devflow-cli.js +20 -260
  68. package/bin/cc-devflow.js +44 -7
  69. package/docs/commands/README.md +1 -1
  70. package/docs/commands/README.zh-CN.md +1 -1
  71. package/docs/examples/README.md +1 -1
  72. package/docs/examples/START-HERE.md +14 -14
  73. package/docs/examples/example-bindings.json +11 -11
  74. package/docs/examples/full-design-blocked/README.md +4 -6
  75. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/{planning/tasks.md → task.md} +20 -15
  76. package/docs/examples/local-handoff/README.md +8 -11
  77. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/handoff/pr-brief.md +31 -0
  78. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/{planning/tasks.md → task.md} +18 -13
  79. package/docs/examples/pdca-loop/README.md +6 -9
  80. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/handoff/pr-brief.md +9 -11
  81. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/{planning/tasks.md → task.md} +18 -13
  82. package/docs/examples/scripts/check-example-bindings.sh +11 -62
  83. package/docs/guides/artifact-contract.md +10 -36
  84. package/docs/guides/getting-started.md +8 -7
  85. package/docs/guides/getting-started.zh-CN.md +8 -7
  86. package/docs/guides/minimize-artifacts.md +16 -116
  87. package/docs/guides/project-postmortem.md +14 -71
  88. package/lib/compiler/__tests__/skills-registry.test.js +9 -8
  89. package/lib/compiler/resource-copier.js +29 -0
  90. package/lib/skill-runtime/__tests__/archive-change.test.js +2 -2
  91. package/lib/skill-runtime/__tests__/benchmark-skills.test.js +109 -0
  92. package/lib/skill-runtime/__tests__/cli-bootstrap.integration.test.js +14 -4
  93. package/lib/skill-runtime/errors.js +3 -3
  94. package/lib/skill-runtime/index.js +5 -23
  95. package/lib/skill-runtime/paths.js +5 -52
  96. package/lib/skill-runtime/query-registry.js +4 -4
  97. package/lib/skill-runtime/query.js +89 -201
  98. package/lib/skill-runtime/store.js +4 -40
  99. package/lib/skill-runtime/trace.js +2 -2
  100. package/package.json +5 -7
  101. package/.claude/skills/cc-act/assets/PROJECT_POSTMORTEM_PRINCIPLES_TEMPLATE.md +0 -29
  102. package/.claude/skills/cc-act/assets/RELEASE_NOTE_TEMPLATE.md +0 -54
  103. package/.claude/skills/cc-act/scripts/generate-status-report.sh +0 -92
  104. package/.claude/skills/cc-act/scripts/sync-act-docs.sh +0 -355
  105. package/.claude/skills/cc-check/assets/REPORT_CARD_TEMPLATE.json +0 -234
  106. package/.claude/skills/cc-check/scripts/render-report-card.js +0 -438
  107. package/.claude/skills/cc-check/scripts/verify-gate.sh +0 -85
  108. package/.claude/skills/cc-do/scripts/build-task-context.sh +0 -175
  109. package/.claude/skills/cc-do/scripts/record-review-decision.sh +0 -88
  110. package/.claude/skills/cc-do/scripts/recover-workflow.sh +0 -82
  111. package/.claude/skills/cc-do/scripts/run-problem-analysis.sh +0 -70
  112. package/.claude/skills/cc-do/scripts/verify-task-gates.sh +0 -109
  113. package/.claude/skills/cc-do/scripts/write-task-checkpoint.sh +0 -92
  114. package/.claude/skills/cc-investigate/assets/TASK_MANIFEST_TEMPLATE.json +0 -225
  115. package/.claude/skills/cc-plan/assets/TASK_MANIFEST_TEMPLATE.json +0 -179
  116. package/.claude/skills/cc-spec-init/assets/CHANGE_META_TEMPLATE.json +0 -28
  117. package/.claude/skills/cc-spec-init/scripts/validate-spec-links.sh +0 -45
  118. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/design.md +0 -234
  119. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/task-manifest.json +0 -488
  120. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/review/report-card.json +0 -189
  121. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/handoff/resume-index.md +0 -39
  122. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/handoff/status.md +0 -29
  123. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/design.md +0 -123
  124. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/task-manifest.json +0 -292
  125. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/review/report-card.json +0 -136
  126. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/handoff/status.md +0 -29
  127. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/design.md +0 -124
  128. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/task-manifest.json +0 -292
  129. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/review/report-card.json +0 -136
  130. package/docs/get-shit-done-strategy-audit.md +0 -518
  131. package/docs/skill-runtime-migration.md +0 -46
  132. package/lib/skill-runtime/__tests__/approve.test.js +0 -92
  133. package/lib/skill-runtime/__tests__/autopilot.test.js +0 -253
  134. package/lib/skill-runtime/__tests__/benchmark-artifacts.test.js +0 -165
  135. package/lib/skill-runtime/__tests__/delegation.test.js +0 -97
  136. package/lib/skill-runtime/__tests__/dispatch.test.js +0 -237
  137. package/lib/skill-runtime/__tests__/intent.test.js +0 -203
  138. package/lib/skill-runtime/__tests__/lifecycle.test.js +0 -169
  139. package/lib/skill-runtime/__tests__/planner.tdd.test.js +0 -331
  140. package/lib/skill-runtime/__tests__/prepare-pr.test.js +0 -126
  141. package/lib/skill-runtime/__tests__/query.test.js +0 -860
  142. package/lib/skill-runtime/__tests__/readiness.test.js +0 -53
  143. package/lib/skill-runtime/__tests__/release.test.js +0 -85
  144. package/lib/skill-runtime/__tests__/review-check-integration.test.js +0 -148
  145. package/lib/skill-runtime/__tests__/review-records.test.js +0 -619
  146. package/lib/skill-runtime/__tests__/runtime.integration.test.js +0 -351
  147. package/lib/skill-runtime/__tests__/schemas.test.js +0 -337
  148. package/lib/skill-runtime/__tests__/task-contract-migrate.test.js +0 -137
  149. package/lib/skill-runtime/__tests__/task-contract.test.js +0 -783
  150. package/lib/skill-runtime/__tests__/team-state.test.js +0 -51
  151. package/lib/skill-runtime/__tests__/verify-artifacts.test.js +0 -203
  152. package/lib/skill-runtime/__tests__/worker-run.test.js +0 -275
  153. package/lib/skill-runtime/__tests__/worker.test.js +0 -56
  154. package/lib/skill-runtime/__tests__/workflow-context-legacy-fallback.test.js +0 -31
  155. package/lib/skill-runtime/__tests__/workflow-context.test.js +0 -98
  156. package/lib/skill-runtime/artifacts.js +0 -88
  157. package/lib/skill-runtime/context-index.js +0 -545
  158. package/lib/skill-runtime/delegation.js +0 -533
  159. package/lib/skill-runtime/intent.js +0 -309
  160. package/lib/skill-runtime/lifecycle.js +0 -294
  161. package/lib/skill-runtime/operations/CLAUDE.md +0 -19
  162. package/lib/skill-runtime/operations/approve.js +0 -81
  163. package/lib/skill-runtime/operations/autopilot-core.js +0 -337
  164. package/lib/skill-runtime/operations/autopilot-execution.js +0 -307
  165. package/lib/skill-runtime/operations/autopilot-shared.js +0 -48
  166. package/lib/skill-runtime/operations/autopilot.js +0 -163
  167. package/lib/skill-runtime/operations/dispatch.js +0 -416
  168. package/lib/skill-runtime/operations/init.js +0 -60
  169. package/lib/skill-runtime/operations/janitor.js +0 -61
  170. package/lib/skill-runtime/operations/plan.js +0 -59
  171. package/lib/skill-runtime/operations/prepare-pr.js +0 -25
  172. package/lib/skill-runtime/operations/release.js +0 -99
  173. package/lib/skill-runtime/operations/resume.js +0 -126
  174. package/lib/skill-runtime/operations/review-records.js +0 -265
  175. package/lib/skill-runtime/operations/snapshot.js +0 -45
  176. package/lib/skill-runtime/operations/task-contract.js +0 -524
  177. package/lib/skill-runtime/operations/verify.js +0 -170
  178. package/lib/skill-runtime/operations/worker-run.js +0 -531
  179. package/lib/skill-runtime/operations/worker.js +0 -33
  180. package/lib/skill-runtime/planner.js +0 -539
  181. package/lib/skill-runtime/readiness.js +0 -84
  182. package/lib/skill-runtime/review-records.js +0 -123
  183. package/lib/skill-runtime/review.js +0 -855
  184. package/lib/skill-runtime/schemas.js +0 -746
  185. package/lib/skill-runtime/task-contract.js +0 -187
  186. package/lib/skill-runtime/team-state.js +0 -122
  187. 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.0`
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.0",
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
- }