cc-devflow 4.3.0 → 4.4.1

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 (575) hide show
  1. package/.claude/skills/cc-act/CHANGELOG.md +64 -0
  2. package/.claude/skills/cc-act/PLAYBOOK.md +212 -0
  3. package/.claude/skills/cc-act/SKILL.md +322 -0
  4. package/.claude/skills/cc-act/assets/PR_BRIEF_TEMPLATE.md +64 -0
  5. package/.claude/skills/cc-act/assets/RELEASE_NOTE_TEMPLATE.md +25 -0
  6. package/.claude/skills/cc-act/references/closure-contract.md +49 -0
  7. package/.claude/skills/cc-act/references/git-commit-guidelines.md +83 -0
  8. package/.claude/skills/cc-act/scripts/archive-requirement.sh +49 -0
  9. package/.claude/skills/cc-act/scripts/cc-act-common.sh +240 -0
  10. package/.claude/skills/cc-act/scripts/detect-ship-target.sh +82 -0
  11. package/.claude/skills/cc-act/scripts/generate-status-report.sh +83 -0
  12. package/.claude/skills/cc-act/scripts/render-pr-brief.sh +195 -0
  13. package/.claude/skills/cc-act/scripts/sync-act-docs.sh +315 -0
  14. package/.claude/skills/cc-act/scripts/verify-act-gate.sh +63 -0
  15. package/.claude/skills/cc-check/CHANGELOG.md +73 -0
  16. package/.claude/skills/cc-check/PLAYBOOK.md +153 -0
  17. package/.claude/skills/cc-check/SKILL.md +345 -0
  18. package/.claude/skills/cc-check/assets/REPORT_CARD_TEMPLATE.json +50 -0
  19. package/.claude/skills/cc-check/references/gate-contract.md +29 -0
  20. package/.claude/skills/cc-check/references/review-contract.md +45 -0
  21. package/.claude/skills/cc-check/scripts/render-report-card.js +229 -0
  22. package/.claude/skills/cc-check/scripts/run-quality-gates.sh +86 -0
  23. package/.claude/skills/cc-check/scripts/verify-gate.sh +57 -0
  24. package/.claude/skills/cc-do/CHANGELOG.md +49 -0
  25. package/.claude/skills/cc-do/PLAYBOOK.md +119 -0
  26. package/.claude/skills/cc-do/SKILL.md +216 -0
  27. package/.claude/skills/cc-do/references/execution-recovery.md +86 -0
  28. package/.claude/skills/cc-do/references/parallel-dispatch.md +80 -0
  29. package/.claude/skills/cc-do/scripts/build-task-context.sh +184 -0
  30. package/.claude/skills/cc-do/scripts/cc-do-common.sh +79 -0
  31. package/.claude/skills/cc-do/scripts/check-task-status.sh +92 -0
  32. package/.claude/skills/cc-do/scripts/detect-file-conflicts.sh +87 -0
  33. package/.claude/skills/cc-do/scripts/mark-task-complete.sh +119 -0
  34. package/.claude/skills/cc-do/scripts/record-review-decision.sh +89 -0
  35. package/.claude/skills/cc-do/scripts/recover-workflow.sh +84 -0
  36. package/.claude/skills/cc-do/scripts/run-problem-analysis.sh +70 -0
  37. package/.claude/skills/cc-do/scripts/select-ready-tasks.sh +135 -0
  38. package/.claude/skills/cc-do/scripts/verify-task-gates.sh +94 -0
  39. package/.claude/skills/cc-do/scripts/write-task-checkpoint.sh +102 -0
  40. package/.claude/skills/cc-investigate/CHANGELOG.md +26 -0
  41. package/.claude/skills/cc-investigate/PLAYBOOK.md +49 -0
  42. package/.claude/skills/cc-investigate/SKILL.md +221 -0
  43. package/.claude/skills/cc-investigate/assets/ANALYSIS_TEMPLATE.md +55 -0
  44. package/.claude/skills/cc-investigate/assets/TASKS_TEMPLATE.md +52 -0
  45. package/.claude/skills/cc-investigate/assets/TASK_MANIFEST_TEMPLATE.json +103 -0
  46. package/.claude/skills/cc-investigate/references/investigation-contract.md +28 -0
  47. package/.claude/skills/cc-investigate/scripts/bootstrap-analysis.sh +38 -0
  48. package/.claude/skills/cc-plan/CHANGELOG.md +99 -0
  49. package/.claude/skills/cc-plan/PLAYBOOK.md +106 -0
  50. package/.claude/skills/cc-plan/SKILL.md +325 -0
  51. package/.claude/skills/cc-plan/assets/DESIGN_TEMPLATE.md +155 -0
  52. package/.claude/skills/cc-plan/assets/TASKS_TEMPLATE.md +98 -0
  53. package/.claude/skills/cc-plan/assets/TASK_MANIFEST_TEMPLATE.json +108 -0
  54. package/.claude/skills/cc-plan/assets/TINY_DESIGN_TEMPLATE.md +79 -0
  55. package/.claude/skills/cc-plan/references/planning-contract.md +82 -0
  56. package/.claude/skills/cc-plan/scripts/bump-skill-version.sh +103 -0
  57. package/.claude/skills/cc-plan/scripts/parse-task-dependencies.js +75 -0
  58. package/.claude/skills/cc-plan/scripts/validate-scope.sh +78 -0
  59. package/.claude/skills/cc-roadmap/CHANGELOG.md +114 -0
  60. package/.claude/skills/cc-roadmap/PLAYBOOK.md +136 -0
  61. package/.claude/skills/cc-roadmap/SKILL.md +259 -0
  62. package/.claude/skills/cc-roadmap/assets/BACKLOG_TEMPLATE.md +45 -0
  63. package/.claude/skills/cc-roadmap/assets/ROADMAP_TEMPLATE.md +153 -0
  64. package/.claude/skills/cc-roadmap/assets/TRACKING_TEMPLATE.json +48 -0
  65. package/.claude/skills/cc-roadmap/references/roadmap-dialogue.md +37 -0
  66. package/.claude/skills/cc-roadmap/scripts/bump-skill-version.sh +103 -0
  67. package/.claude/skills/cc-roadmap/scripts/lib/roadmap-tracking/markdown.js +604 -0
  68. package/.claude/skills/cc-roadmap/scripts/lib/roadmap-tracking/query.js +63 -0
  69. package/.claude/skills/cc-roadmap/scripts/lib/roadmap-tracking/schema.js +245 -0
  70. package/.claude/skills/cc-roadmap/scripts/lib/roadmap-tracking/store.js +139 -0
  71. package/.claude/skills/cc-roadmap/scripts/locate-roadmap-item.sh +109 -0
  72. package/.claude/skills/cc-roadmap/scripts/roadmap-tracking.js +153 -0
  73. package/.claude/skills/cc-roadmap/scripts/sync-roadmap-progress.sh +100 -0
  74. package/.claude/skills/cc-simplify/CHANGELOG.md +10 -0
  75. package/.claude/skills/cc-simplify/SKILL.md +55 -0
  76. package/.claude/skills/cc-spec-init/CHANGELOG.md +7 -0
  77. package/.claude/skills/cc-spec-init/PLAYBOOK.md +55 -0
  78. package/.claude/skills/cc-spec-init/SKILL.md +127 -0
  79. package/.claude/skills/cc-spec-init/assets/CAPABILITY_TEMPLATE.md +63 -0
  80. package/.claude/skills/cc-spec-init/assets/CHANGE_META_TEMPLATE.json +25 -0
  81. package/.claude/skills/cc-spec-init/assets/INDEX_TEMPLATE.md +34 -0
  82. package/.claude/skills/cc-spec-init/references/spec-contract.md +22 -0
  83. package/.claude/skills/cc-spec-init/scripts/bootstrap-specs.sh +31 -0
  84. package/.claude/skills/cc-spec-init/scripts/validate-spec-links.sh +45 -0
  85. package/CHANGELOG.md +61 -4
  86. package/README.md +120 -756
  87. package/README.zh-CN.md +119 -756
  88. package/bin/adapt.js +2 -6
  89. package/bin/cc-devflow-cli.js +72 -177
  90. package/config/distributable-skills.json +24 -0
  91. package/docs/CLAUDE.md +10 -6
  92. package/docs/commands/README.md +19 -46
  93. package/docs/commands/README.zh-CN.md +25 -48
  94. package/docs/examples/BY-ARTIFACT.md +7 -0
  95. package/docs/examples/README.md +38 -0
  96. package/docs/examples/START-HERE.md +149 -0
  97. package/docs/examples/example-bindings.json +38 -0
  98. package/docs/examples/full-design-blocked/BACKLOG.md +45 -0
  99. package/docs/examples/full-design-blocked/README.md +55 -0
  100. package/docs/examples/full-design-blocked/ROADMAP.md +53 -0
  101. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/design.md +154 -0
  102. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/task-manifest.json +146 -0
  103. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/tasks.md +78 -0
  104. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/review/report-card.json +52 -0
  105. package/docs/examples/full-design-blocked/roadmap-tracking.json +50 -0
  106. package/docs/examples/local-handoff/BACKLOG.md +45 -0
  107. package/docs/examples/local-handoff/README.md +56 -0
  108. package/docs/examples/local-handoff/ROADMAP.md +45 -0
  109. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/handoff/resume-index.md +39 -0
  110. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/handoff/status.md +29 -0
  111. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/design.md +71 -0
  112. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/task-manifest.json +98 -0
  113. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/tasks.md +59 -0
  114. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/review/report-card.json +44 -0
  115. package/docs/examples/local-handoff/roadmap-tracking.json +48 -0
  116. package/docs/examples/pdca-loop/BACKLOG.md +46 -0
  117. package/docs/examples/pdca-loop/README.md +58 -0
  118. package/docs/examples/pdca-loop/ROADMAP.md +133 -0
  119. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/handoff/pr-brief.md +72 -0
  120. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/handoff/status.md +29 -0
  121. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/design.md +72 -0
  122. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/task-manifest.json +201 -0
  123. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/tasks.md +73 -0
  124. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/review/report-card.json +44 -0
  125. package/docs/examples/pdca-loop/roadmap-tracking.json +114 -0
  126. package/docs/examples/scripts/check-example-bindings.sh +116 -0
  127. package/docs/guides/getting-started.md +94 -129
  128. package/docs/guides/getting-started.zh-CN.md +103 -84
  129. package/docs/skill-runtime-migration.md +46 -0
  130. package/docs/v4.3.0-migration-guide.md +60 -225
  131. package/lib/compiler/CLAUDE.md +55 -84
  132. package/lib/compiler/__tests__/drift.test.js +1 -1
  133. package/lib/compiler/__tests__/errors.test.js +0 -1
  134. package/lib/compiler/__tests__/integration.test.js +49 -3
  135. package/lib/compiler/__tests__/manifest.test.js +0 -156
  136. package/lib/compiler/__tests__/parser.test.js +33 -104
  137. package/lib/compiler/__tests__/schemas.test.js +30 -34
  138. package/lib/compiler/__tests__/skills-registry.test.js +114 -0
  139. package/lib/compiler/__tests__/transformer.test.js +5 -9
  140. package/lib/compiler/emitters/antigravity-emitter.js +5 -213
  141. package/lib/compiler/emitters/base-emitter.js +3 -298
  142. package/lib/compiler/emitters/codex-emitter.js +4 -202
  143. package/lib/compiler/emitters/cursor-emitter.js +3 -287
  144. package/lib/compiler/emitters/qwen-emitter.js +4 -176
  145. package/lib/compiler/index.js +65 -345
  146. package/lib/compiler/manifest.js +6 -68
  147. package/lib/compiler/parser.js +31 -63
  148. package/lib/compiler/platforms.js +32 -277
  149. package/lib/compiler/resource-copier.js +176 -6
  150. package/lib/compiler/rules-emitters/__tests__/antigravity-rules-emitter.test.js +3 -3
  151. package/lib/compiler/rules-emitters/__tests__/cursor-rules-emitter.test.js +14 -4
  152. package/lib/compiler/rules-emitters/__tests__/qwen-rules-emitter.test.js +16 -7
  153. package/lib/compiler/rules-emitters/antigravity-rules-emitter.js +10 -15
  154. package/lib/compiler/rules-emitters/base-rules-emitter.js +5 -5
  155. package/lib/compiler/rules-emitters/cursor-rules-emitter.js +7 -12
  156. package/lib/compiler/rules-emitters/index.js +6 -3
  157. package/lib/compiler/rules-emitters/qwen-rules-emitter.js +7 -7
  158. package/lib/compiler/schemas.js +8 -4
  159. package/lib/compiler/skills-registry.js +213 -15
  160. package/lib/compiler/transformer.js +1 -1
  161. package/lib/skill-runtime/CLAUDE.md +19 -0
  162. package/lib/skill-runtime/__tests__/autopilot.test.js +210 -0
  163. package/lib/skill-runtime/__tests__/cli-bootstrap.integration.test.js +181 -0
  164. package/lib/skill-runtime/__tests__/delegation.test.js +97 -0
  165. package/lib/skill-runtime/__tests__/dispatch.test.js +267 -0
  166. package/lib/skill-runtime/__tests__/intent.test.js +219 -0
  167. package/lib/skill-runtime/__tests__/lifecycle.test.js +169 -0
  168. package/lib/skill-runtime/__tests__/paths.test.js +42 -0
  169. package/lib/skill-runtime/__tests__/planner.tdd.test.js +250 -0
  170. package/lib/skill-runtime/__tests__/prepare-pr.test.js +139 -0
  171. package/lib/skill-runtime/__tests__/query.test.js +284 -0
  172. package/lib/skill-runtime/__tests__/runtime.integration.test.js +279 -0
  173. package/lib/skill-runtime/__tests__/schemas.test.js +207 -0
  174. package/lib/skill-runtime/__tests__/team-state.test.js +51 -0
  175. package/lib/skill-runtime/__tests__/worker-run.test.js +253 -0
  176. package/lib/skill-runtime/__tests__/worker.test.js +56 -0
  177. package/lib/skill-runtime/artifacts.js +93 -0
  178. package/lib/skill-runtime/delegation.js +533 -0
  179. package/lib/skill-runtime/index.js +34 -0
  180. package/lib/skill-runtime/intent.js +333 -0
  181. package/lib/skill-runtime/lifecycle.js +294 -0
  182. package/lib/skill-runtime/operations/CLAUDE.md +19 -0
  183. package/lib/skill-runtime/operations/approve.js +66 -0
  184. package/lib/skill-runtime/operations/autopilot-core.js +337 -0
  185. package/lib/skill-runtime/operations/autopilot-execution.js +307 -0
  186. package/lib/skill-runtime/operations/autopilot-shared.js +48 -0
  187. package/lib/skill-runtime/operations/autopilot.js +163 -0
  188. package/lib/skill-runtime/operations/dispatch.js +454 -0
  189. package/lib/skill-runtime/operations/init.js +64 -0
  190. package/lib/{harness → skill-runtime}/operations/janitor.js +9 -6
  191. package/lib/skill-runtime/operations/plan.js +59 -0
  192. package/lib/skill-runtime/operations/prepare-pr.js +25 -0
  193. package/lib/skill-runtime/operations/release.js +96 -0
  194. package/lib/skill-runtime/operations/resume.js +143 -0
  195. package/lib/skill-runtime/operations/snapshot.js +45 -0
  196. package/lib/skill-runtime/operations/verify.js +170 -0
  197. package/lib/skill-runtime/operations/worker-run.js +529 -0
  198. package/lib/skill-runtime/operations/worker.js +33 -0
  199. package/lib/skill-runtime/paths.js +213 -0
  200. package/lib/skill-runtime/planner.js +519 -0
  201. package/lib/skill-runtime/query.js +157 -0
  202. package/lib/skill-runtime/review.js +557 -0
  203. package/lib/skill-runtime/schemas.js +400 -0
  204. package/lib/{harness → skill-runtime}/store.js +45 -30
  205. package/lib/skill-runtime/team-state.js +122 -0
  206. package/package.json +13 -11
  207. package/.claude/CLAUDE.md +0 -125
  208. package/.claude/agents/architecture-designer.md +0 -443
  209. package/.claude/agents/bug-analyzer.md +0 -381
  210. package/.claude/agents/checklist-agent.md +0 -175
  211. package/.claude/agents/clarify-analyst.md +0 -50
  212. package/.claude/agents/code-quality-reviewer.md +0 -205
  213. package/.claude/agents/code-reviewer.md +0 -71
  214. package/.claude/agents/codex-analyzer.md +0 -39
  215. package/.claude/agents/compatibility-checker.md +0 -579
  216. package/.claude/agents/consistency-checker.md +0 -532
  217. package/.claude/agents/dev-implementer.md +0 -195
  218. package/.claude/agents/flow-researcher.md +0 -132
  219. package/.claude/agents/impact-analyzer.md +0 -440
  220. package/.claude/agents/planner.md +0 -230
  221. package/.claude/agents/prd-writer.md +0 -320
  222. package/.claude/agents/project-guidelines-generator.md +0 -1329
  223. package/.claude/agents/qa-tester.md +0 -313
  224. package/.claude/agents/release-manager.md +0 -295
  225. package/.claude/agents/security-reviewer.md +0 -314
  226. package/.claude/agents/spec-reviewer.md +0 -221
  227. package/.claude/agents/style-guide-generator.md +0 -458
  228. package/.claude/agents/tech-architect.md +0 -516
  229. package/.claude/agents/ui-designer.md +0 -485
  230. package/.claude/commands/core/architecture.md +0 -459
  231. package/.claude/commands/core/guidelines.md +0 -511
  232. package/.claude/commands/core/roadmap.md +0 -468
  233. package/.claude/commands/core/style.md +0 -83
  234. package/.claude/commands/flow/CLAUDE.md +0 -24
  235. package/.claude/commands/flow/archive.md +0 -280
  236. package/.claude/commands/flow/constitution.md +0 -82
  237. package/.claude/commands/flow/context.md +0 -150
  238. package/.claude/commands/flow/delta.md +0 -245
  239. package/.claude/commands/flow/dev.md +0 -40
  240. package/.claude/commands/flow/fix.md +0 -217
  241. package/.claude/commands/flow/ideate.md +0 -214
  242. package/.claude/commands/flow/init.md +0 -38
  243. package/.claude/commands/flow/release.md +0 -36
  244. package/.claude/commands/flow/restart.md +0 -97
  245. package/.claude/commands/flow/spec.md +0 -36
  246. package/.claude/commands/flow/status.md +0 -64
  247. package/.claude/commands/flow/update.md +0 -111
  248. package/.claude/commands/flow/upgrade.md +0 -115
  249. package/.claude/commands/flow/verify.md +0 -37
  250. package/.claude/commands/flow/workspace.md +0 -155
  251. package/.claude/commands/util/cancel-ralph.md +0 -60
  252. package/.claude/commands/util/code-review.md +0 -58
  253. package/.claude/commands/util/git-commit.md +0 -422
  254. package/.claude/commands/util/problem-analyzer.md +0 -60
  255. package/.claude/config/quality-gates.yml +0 -305
  256. package/.claude/config/quality-rules.yml +0 -161
  257. package/.claude/docs/SPEC_KIT_CONSTITUTION_ANALYSIS.md +0 -426
  258. package/.claude/docs/design/consistency-conflict-detection-algorithms.md +0 -658
  259. package/.claude/docs/design/intent-driven-input-design.md +0 -380
  260. package/.claude/docs/design/prd-version-management-design.md +0 -437
  261. package/.claude/docs/examples/design-inspiration-pool.md +0 -59
  262. package/.claude/docs/examples/ui-prototype-constitution-checklist.md +0 -75
  263. package/.claude/docs/guides/INIT_TROUBLESHOOTING.md +0 -117
  264. package/.claude/docs/guides/NEW_TROUBLESHOOTING.md +0 -99
  265. package/.claude/docs/guides/ROADMAP_TROUBLESHOOTING.md +0 -188
  266. package/.claude/docs/guides/TASK_COMPLETION_MARKING.md +0 -338
  267. package/.claude/docs/guides/TEAM_MODE_GUIDE.md +0 -312
  268. package/.claude/docs/implementation-summary-v7.md +0 -449
  269. package/.claude/docs/spec-format-guide.md +0 -349
  270. package/.claude/docs/state-consolidation-design.md +0 -323
  271. package/.claude/docs/templates/ARCHITECTURE_TEMPLATE.md +0 -332
  272. package/.claude/docs/templates/ATTEMPT_TEMPLATE.md +0 -156
  273. package/.claude/docs/templates/BACKLOG_TEMPLATE.md +0 -261
  274. package/.claude/docs/templates/BRAINSTORM_TEMPLATE.md +0 -148
  275. package/.claude/docs/templates/CHECKLIST_TEMPLATE.md +0 -52
  276. package/.claude/docs/templates/CLARIFICATION_REPORT_TEMPLATE.md +0 -206
  277. package/.claude/docs/templates/CODE_REVIEW_TEMPLATE.md +0 -71
  278. package/.claude/docs/templates/DELTA_SPEC_TEMPLATE.md +0 -91
  279. package/.claude/docs/templates/DESIGN_DECISIONS_TEMPLATE.md +0 -151
  280. package/.claude/docs/templates/DESIGN_TEMPLATE.md +0 -157
  281. package/.claude/docs/templates/ERROR_LOG_TEMPLATE.md +0 -80
  282. package/.claude/docs/templates/INIT_FLOW_TEMPLATE.md +0 -198
  283. package/.claude/docs/templates/INTENT_CLARIFICATION_TEMPLATE.md +0 -57
  284. package/.claude/docs/templates/JOURNAL_TEMPLATE.md +0 -75
  285. package/.claude/docs/templates/NEW_ORCHESTRATION_TEMPLATE.md +0 -76
  286. package/.claude/docs/templates/PROPOSAL_TEMPLATE.md +0 -91
  287. package/.claude/docs/templates/RESEARCH_TEMPLATE.md +0 -276
  288. package/.claude/docs/templates/REVIEW-HIGH.md +0 -57
  289. package/.claude/docs/templates/ROADMAP_DIALOGUE_TEMPLATE.md +0 -198
  290. package/.claude/docs/templates/ROADMAP_TEMPLATE.md +0 -310
  291. package/.claude/docs/templates/SPEC_TEMPLATE_DELTA.md +0 -139
  292. package/.claude/docs/templates/SPEC_TEMPLATE_PROJECT.md +0 -93
  293. package/.claude/docs/templates/STYLE_TEMPLATE.md +0 -479
  294. package/.claude/docs/templates/UI_PROTOTYPE_TEMPLATE.md +0 -373
  295. package/.claude/docs/templates/_shared/CLAUDE.md +0 -36
  296. package/.claude/docs/templates/_shared/CONSTITUTION_CHECK.md +0 -125
  297. package/.claude/docs/templates/_shared/VALIDATION_CHECKLIST.md +0 -187
  298. package/.claude/docs/templates/_shared/YAML_FRONTMATTER.md +0 -164
  299. package/.claude/docs/templates/context/dev.jsonl.template +0 -6
  300. package/.claude/docs/templates/context/epic.jsonl.template +0 -5
  301. package/.claude/docs/templates/context/prd.jsonl.template +0 -4
  302. package/.claude/docs/templates/context/research.jsonl.template +0 -4
  303. package/.claude/docs/templates/context/review.jsonl.template +0 -5
  304. package/.claude/docs/templates/context/tech.jsonl.template +0 -5
  305. package/.claude/guides/agent-guides/agent-coordination-guide.md +0 -459
  306. package/.claude/guides/project-guidelines-system.md +0 -463
  307. package/.claude/guides/technical-guides/datetime-handling-guide.md +0 -563
  308. package/.claude/guides/technical-guides/git-github-guide.md +0 -642
  309. package/.claude/guides/technical-guides/test-execution-guide.md +0 -618
  310. package/.claude/guides/workflow-guides/bug-fix-orchestrator.md +0 -217
  311. package/.claude/guides/workflow-guides/flow-orchestrator.md +0 -48
  312. package/.claude/hooks/CLAUDE.md +0 -342
  313. package/.claude/hooks/checklist-gate.js +0 -397
  314. package/.claude/hooks/error-handling-reminder.sh +0 -12
  315. package/.claude/hooks/error-handling-reminder.ts +0 -459
  316. package/.claude/hooks/hooks.json +0 -15
  317. package/.claude/hooks/inject-agent-context.ts +0 -480
  318. package/.claude/hooks/inject-skill-context.ts +0 -359
  319. package/.claude/hooks/post-tool-use-tracker.sh +0 -280
  320. package/.claude/hooks/pre-tool-use-guardrail.sh +0 -36
  321. package/.claude/hooks/pre-tool-use-guardrail.ts +0 -342
  322. package/.claude/hooks/ralph-loop.ts +0 -931
  323. package/.claude/hooks/ralph-stop-hook.sh +0 -190
  324. package/.claude/hooks/skill-activation-prompt.sh +0 -36
  325. package/.claude/hooks/skill-activation-prompt.ts +0 -214
  326. package/.claude/hooks/state/skills-used-test-guard.json +0 -3
  327. package/.claude/hooks/task-completed-hook.ts +0 -593
  328. package/.claude/hooks/teammate-idle-hook.ts +0 -690
  329. package/.claude/hooks/types/team-types.d.ts +0 -238
  330. package/.claude/rules/devflow-conventions.md +0 -286
  331. package/.claude/rules/project-constitution.md +0 -1002
  332. package/.claude/rules/rationalization-library.md +0 -282
  333. package/.claude/schemas/constitution.schema.json +0 -43
  334. package/.claude/scripts/.claude/commands/flow/export-openspec.md +0 -221
  335. package/.claude/scripts/.claude/commands/flow/import-openspec.md +0 -171
  336. package/.claude/scripts/CLAUDE.md +0 -76
  337. package/.claude/scripts/__tests__/openspec.test.js +0 -212
  338. package/.claude/scripts/analyze-upgrade-impact.sh +0 -200
  339. package/.claude/scripts/archive-requirement.sh +0 -394
  340. package/.claude/scripts/calculate-checklist-completion.sh +0 -243
  341. package/.claude/scripts/calculate-quarter.sh +0 -206
  342. package/.claude/scripts/check-dependencies.sh +0 -409
  343. package/.claude/scripts/check-prerequisites.sh +0 -232
  344. package/.claude/scripts/check-task-status.sh +0 -288
  345. package/.claude/scripts/checklist-errors.sh +0 -131
  346. package/.claude/scripts/common.sh +0 -1102
  347. package/.claude/scripts/consolidate-research.sh +0 -182
  348. package/.claude/scripts/create-requirement.sh +0 -451
  349. package/.claude/scripts/delta-parser.ts +0 -637
  350. package/.claude/scripts/detect-file-conflicts.sh +0 -151
  351. package/.claude/scripts/export-contracts.sh +0 -117
  352. package/.claude/scripts/export-openspec.js +0 -222
  353. package/.claude/scripts/extract-data-model.sh +0 -78
  354. package/.claude/scripts/flow-context-add.sh +0 -134
  355. package/.claude/scripts/flow-context-init.sh +0 -133
  356. package/.claude/scripts/flow-context-validate.sh +0 -144
  357. package/.claude/scripts/flow-delta-apply.sh +0 -297
  358. package/.claude/scripts/flow-delta-archive.sh +0 -71
  359. package/.claude/scripts/flow-delta-create.sh +0 -202
  360. package/.claude/scripts/flow-delta-list.sh +0 -142
  361. package/.claude/scripts/flow-delta-status.sh +0 -235
  362. package/.claude/scripts/flow-quality-full.sh +0 -215
  363. package/.claude/scripts/flow-quality-quick.sh +0 -119
  364. package/.claude/scripts/flow-workspace-init.sh +0 -117
  365. package/.claude/scripts/flow-workspace-record.sh +0 -164
  366. package/.claude/scripts/generate-clarification-questions.sh +0 -377
  367. package/.claude/scripts/generate-clarification-report.sh +0 -463
  368. package/.claude/scripts/generate-quickstart.sh +0 -146
  369. package/.claude/scripts/generate-research-tasks.sh +0 -157
  370. package/.claude/scripts/generate-status-report.sh +0 -523
  371. package/.claude/scripts/generate-tech-analysis.sh +0 -46
  372. package/.claude/scripts/get-workflow-status.sh +0 -415
  373. package/.claude/scripts/import-openspec.js +0 -272
  374. package/.claude/scripts/locate-requirement-in-roadmap.sh +0 -233
  375. package/.claude/scripts/manage-constitution.sh +0 -602
  376. package/.claude/scripts/mark-task-complete.sh +0 -198
  377. package/.claude/scripts/parse-task-dependencies.js +0 -334
  378. package/.claude/scripts/populate-research-tasks.sh +0 -284
  379. package/.claude/scripts/record-quality-error.sh +0 -165
  380. package/.claude/scripts/recover-workflow.sh +0 -463
  381. package/.claude/scripts/run-clarify-scan.sh +0 -601
  382. package/.claude/scripts/run-high-review.sh +0 -62
  383. package/.claude/scripts/run-problem-analysis.sh +0 -68
  384. package/.claude/scripts/run-quality-gates.sh +0 -242
  385. package/.claude/scripts/setup-epic.sh +0 -173
  386. package/.claude/scripts/setup-ralph-loop.sh +0 -155
  387. package/.claude/scripts/sync-roadmap-progress.sh +0 -300
  388. package/.claude/scripts/sync-task-marks.sh +0 -199
  389. package/.claude/scripts/team-dev-init.sh +0 -319
  390. package/.claude/scripts/team-state-recovery.sh +0 -229
  391. package/.claude/scripts/test-clarify-scan.sh +0 -515
  392. package/.claude/scripts/update-agent-context.sh +0 -806
  393. package/.claude/scripts/validate-constitution.sh +0 -567
  394. package/.claude/scripts/validate-hooks.sh +0 -487
  395. package/.claude/scripts/validate-research.sh +0 -332
  396. package/.claude/scripts/validate-scope-boundary.sh +0 -493
  397. package/.claude/scripts/validate-scope.sh +0 -200
  398. package/.claude/scripts/verify-gate.sh +0 -269
  399. package/.claude/scripts/verify-setup.sh +0 -37
  400. package/.claude/scripts/workflow-status.ts +0 -433
  401. package/.claude/settings.json +0 -95
  402. package/.claude/skills/_reference-implementations/README.md +0 -96
  403. package/.claude/skills/_reference-implementations/backend-express-prisma/SKILL.md +0 -302
  404. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/architecture-overview.md +0 -451
  405. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/async-and-errors.md +0 -307
  406. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/complete-examples.md +0 -638
  407. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/configuration.md +0 -275
  408. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/database-patterns.md +0 -224
  409. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/middleware-guide.md +0 -213
  410. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/routing-and-controllers.md +0 -756
  411. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/sentry-and-monitoring.md +0 -336
  412. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/services-and-repositories.md +0 -789
  413. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/testing-guide.md +0 -235
  414. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/validation-patterns.md +0 -754
  415. package/.claude/skills/_reference-implementations/frontend-react-mui/SKILL.md +0 -399
  416. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/common-patterns.md +0 -331
  417. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/complete-examples.md +0 -872
  418. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/component-patterns.md +0 -502
  419. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/data-fetching.md +0 -767
  420. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/file-organization.md +0 -502
  421. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/loading-and-error-states.md +0 -501
  422. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/performance.md +0 -406
  423. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/routing-guide.md +0 -364
  424. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/styling-guide.md +0 -428
  425. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/typescript-standards.md +0 -418
  426. package/.claude/skills/attention-refresh/SKILL.md +0 -170
  427. package/.claude/skills/brainstorming/SKILL.md +0 -161
  428. package/.claude/skills/cc-devflow-orchestrator/SKILL.md +0 -169
  429. package/.claude/skills/constitution-guardian/SKILL.md +0 -306
  430. package/.claude/skills/constitution-quick-ref/SKILL.md +0 -374
  431. package/.claude/skills/debugging/SKILL.md +0 -221
  432. package/.claude/skills/file-standards/SKILL.md +0 -353
  433. package/.claude/skills/finishing-branch/SKILL.md +0 -189
  434. package/.claude/skills/flow-dev/CLAUDE.md +0 -16
  435. package/.claude/skills/flow-dev/SKILL.md +0 -94
  436. package/.claude/skills/flow-dev/assets/IMPLEMENTATION_PLAN_TEMPLATE.md +0 -71
  437. package/.claude/skills/flow-dev/context.jsonl +0 -4
  438. package/.claude/skills/flow-dev/dev-implementer.jsonl +0 -8
  439. package/.claude/skills/flow-dev/scripts/entry-gate.sh +0 -116
  440. package/.claude/skills/flow-dev/scripts/exit-gate.sh +0 -101
  441. package/.claude/skills/flow-dev/scripts/task-orchestrator.sh +0 -106
  442. package/.claude/skills/flow-fix/SKILL.md +0 -105
  443. package/.claude/skills/flow-fix/context.jsonl +0 -6
  444. package/.claude/skills/flow-fix/references/bug-analyzer.md +0 -381
  445. package/.claude/skills/flow-init/SKILL.md +0 -105
  446. package/.claude/skills/flow-init/assets/BRAINSTORM_TEMPLATE.md +0 -148
  447. package/.claude/skills/flow-init/assets/INIT_FLOW_TEMPLATE.md +0 -198
  448. package/.claude/skills/flow-init/assets/RESEARCH_TEMPLATE.md +0 -276
  449. package/.claude/skills/flow-init/context.jsonl +0 -5
  450. package/.claude/skills/flow-init/references/flow-researcher.md +0 -132
  451. package/.claude/skills/flow-init/scripts/check-prerequisites.sh +0 -240
  452. package/.claude/skills/flow-init/scripts/consolidate-research.sh +0 -182
  453. package/.claude/skills/flow-init/scripts/create-requirement.sh +0 -404
  454. package/.claude/skills/flow-init/scripts/generate-research-tasks.sh +0 -157
  455. package/.claude/skills/flow-init/scripts/populate-research-tasks.sh +0 -284
  456. package/.claude/skills/flow-init/scripts/validate-research.sh +0 -340
  457. package/.claude/skills/flow-quality/SKILL.md +0 -98
  458. package/.claude/skills/flow-quality/context.jsonl +0 -6
  459. package/.claude/skills/flow-quality/references/code-quality-reviewer.md +0 -205
  460. package/.claude/skills/flow-quality/references/qa-tester.md +0 -313
  461. package/.claude/skills/flow-quality/references/security-reviewer.md +0 -314
  462. package/.claude/skills/flow-quality/references/spec-reviewer.md +0 -221
  463. package/.claude/skills/flow-release/SKILL.md +0 -60
  464. package/.claude/skills/flow-release/context.jsonl +0 -5
  465. package/.claude/skills/flow-release/references/release-manager.md +0 -295
  466. package/.claude/skills/flow-spec/CLAUDE.md +0 -17
  467. package/.claude/skills/flow-spec/SKILL.md +0 -102
  468. package/.claude/skills/flow-spec/context.jsonl +0 -5
  469. package/.claude/skills/flow-spec/scripts/entry-gate.sh +0 -194
  470. package/.claude/skills/flow-spec/scripts/exit-gate.sh +0 -244
  471. package/.claude/skills/flow-spec/scripts/parallel-orchestrator.sh +0 -205
  472. package/.claude/skills/flow-spec/scripts/team-communication.sh +0 -353
  473. package/.claude/skills/flow-spec/scripts/team-init.sh +0 -195
  474. package/.claude/skills/flow-spec/scripts/test-team-mode.sh +0 -496
  475. package/.claude/skills/flow-spec/team-config.json +0 -165
  476. package/.claude/skills/flow-verify/CLAUDE.md +0 -10
  477. package/.claude/skills/flow-verify/SKILL.md +0 -53
  478. package/.claude/skills/flow-verify/context.jsonl +0 -5
  479. package/.claude/skills/fractal-docs/SKILL.md +0 -45
  480. package/.claude/skills/journey-checker/SKILL.md +0 -199
  481. package/.claude/skills/journey-checker/pressure-scenarios.md +0 -164
  482. package/.claude/skills/receiving-review/SKILL.md +0 -153
  483. package/.claude/skills/skill-creator/LICENSE.txt +0 -202
  484. package/.claude/skills/skill-creator/SKILL.md +0 -356
  485. package/.claude/skills/skill-creator/references/output-patterns.md +0 -82
  486. package/.claude/skills/skill-creator/references/workflows.md +0 -28
  487. package/.claude/skills/skill-creator/scripts/init_skill.py +0 -303
  488. package/.claude/skills/skill-creator/scripts/package_skill.py +0 -110
  489. package/.claude/skills/skill-creator/scripts/quick_validate.py +0 -95
  490. package/.claude/skills/skill-rules.json +0 -359
  491. package/.claude/skills/tdd/SKILL.md +0 -218
  492. package/.claude/skills/tdd-enforcer/SKILL.md +0 -192
  493. package/.claude/skills/utility/npm-release/CLAUDE.md +0 -55
  494. package/.claude/skills/utility/npm-release/SKILL.md +0 -379
  495. package/.claude/skills/utility/npm-release/references/version-decision-guide.md +0 -134
  496. package/.claude/skills/utility/npm-release/scripts/atomic-version-bump.sh +0 -95
  497. package/.claude/skills/utility/npm-release/scripts/validate-version-sync.sh +0 -82
  498. package/.claude/skills/utility/npm-release/scripts/version-decision-tree.sh +0 -44
  499. package/.claude/skills/verification/SKILL.md +0 -158
  500. package/.claude/skills/workflow.yaml +0 -219
  501. package/.claude/tests/README.md +0 -300
  502. package/.claude/tests/TODO.md +0 -69
  503. package/.claude/tests/__pycache__/test_analyze_upgrade_impact.cpython-311-pytest-7.2.2.pyc +0 -0
  504. package/.claude/tests/__pycache__/test_consolidate_research.cpython-311-pytest-7.2.2.pyc +0 -0
  505. package/.claude/tests/__pycache__/test_export_contracts.cpython-311-pytest-7.2.2.pyc +0 -0
  506. package/.claude/tests/__pycache__/test_extract_data_model.cpython-311-pytest-7.2.2.pyc +0 -0
  507. package/.claude/tests/__pycache__/test_generate_quickstart.cpython-311-pytest-7.2.2.pyc +0 -0
  508. package/.claude/tests/__pycache__/test_generate_research_tasks.cpython-311-pytest-7.2.2.pyc +0 -0
  509. package/.claude/tests/constitution/run_all_constitution_tests.sh +0 -111
  510. package/.claude/tests/constitution/test_agent_assignment.sh +0 -207
  511. package/.claude/tests/constitution/test_article_coverage.sh +0 -201
  512. package/.claude/tests/constitution/test_template_completeness.sh +0 -150
  513. package/.claude/tests/constitution/test_version_consistency.sh +0 -120
  514. package/.claude/tests/fixtures/spec_delta_full.md +0 -16
  515. package/.claude/tests/fixtures/tasks_progress_sample.md +0 -5
  516. package/.claude/tests/run-all-tests.sh +0 -229
  517. package/.claude/tests/scripts/run.sh +0 -30
  518. package/.claude/tests/scripts/test-framework.sh +0 -128
  519. package/.claude/tests/scripts/test_check_prerequisites.sh +0 -511
  520. package/.claude/tests/scripts/test_check_prerequisites.sh.bak +0 -504
  521. package/.claude/tests/scripts/test_check_prerequisites.sh.bak2 +0 -505
  522. package/.claude/tests/scripts/test_check_prerequisites.sh.bak3 +0 -506
  523. package/.claude/tests/scripts/test_check_prerequisites.sh.bak4 +0 -507
  524. package/.claude/tests/scripts/test_check_prerequisites.sh.bak5 +0 -508
  525. package/.claude/tests/scripts/test_check_task_status.sh +0 -499
  526. package/.claude/tests/scripts/test_common.sh +0 -244
  527. package/.claude/tests/scripts/test_generate_status_report.sh +0 -71
  528. package/.claude/tests/scripts/test_mark_task_complete.sh +0 -441
  529. package/.claude/tests/scripts/test_mark_task_complete.sh.backup +0 -410
  530. package/.claude/tests/scripts/test_recover_workflow.sh +0 -304
  531. package/.claude/tests/scripts/test_setup_epic.sh +0 -437
  532. package/.claude/tests/scripts/test_sync_task_marks.sh +0 -196
  533. package/.claude/tests/scripts/test_validate_constitution.sh +0 -74
  534. package/.claude/tests/scripts/test_validate_research.sh +0 -462
  535. package/.claude/tests/slugify.bats +0 -82
  536. package/.claude/tests/test-framework.sh +0 -732
  537. package/.claude/tests/test_analyze_upgrade_impact.py +0 -34
  538. package/.claude/tests/test_consolidate_research.py +0 -48
  539. package/.claude/tests/test_export_contracts.py +0 -43
  540. package/.claude/tests/test_extract_data_model.py +0 -33
  541. package/.claude/tests/test_generate_quickstart.py +0 -50
  542. package/.claude/tests/test_generate_research_tasks.py +0 -52
  543. package/.claude/tsc-cache/70d2fc6d-2936-429b-b529-429f1aae8c88/affected-repos.txt +0 -1
  544. package/.claude/tsc-cache/70d2fc6d-2936-429b-b529-429f1aae8c88/edited-files.log +0 -2
  545. package/bin/harness.js +0 -22
  546. package/docs/commands/core-roadmap.md +0 -106
  547. package/docs/commands/core-roadmap.zh-CN.md +0 -102
  548. package/docs/commands/core-style.md +0 -53
  549. package/docs/commands/core-style.zh-CN.md +0 -53
  550. package/docs/commands/flow-init.md +0 -140
  551. package/docs/commands/flow-init.zh-CN.md +0 -169
  552. package/docs/commands/flow-new.md +0 -39
  553. package/docs/commands/flow-new.zh-CN.md +0 -39
  554. package/lib/compiler/__tests__/compile-regression.test.js +0 -103
  555. package/lib/compiler/__tests__/multi-module-emitters.test.js +0 -534
  556. package/lib/compiler/__tests__/resource-copier.test.js +0 -26
  557. package/lib/compiler/__tests__/skill-discovery.test.js +0 -72
  558. package/lib/compiler/context-expander.js +0 -179
  559. package/lib/compiler/rules-emitters/__tests__/codex-rules-emitter.test.js +0 -109
  560. package/lib/compiler/rules-emitters/codex-rules-emitter.js +0 -116
  561. package/lib/compiler/skill-discovery.js +0 -68
  562. package/lib/harness/CLAUDE.md +0 -22
  563. package/lib/harness/__tests__/planner.tdd.test.js +0 -125
  564. package/lib/harness/cli.js +0 -208
  565. package/lib/harness/index.js +0 -18
  566. package/lib/harness/operations/dispatch.js +0 -298
  567. package/lib/harness/operations/init.js +0 -48
  568. package/lib/harness/operations/pack.js +0 -100
  569. package/lib/harness/operations/plan.js +0 -83
  570. package/lib/harness/operations/release.js +0 -170
  571. package/lib/harness/operations/resume.js +0 -44
  572. package/lib/harness/operations/verify.js +0 -177
  573. package/lib/harness/planner.js +0 -272
  574. package/lib/harness/query.js +0 -126
  575. package/lib/harness/schemas.js +0 -129
@@ -0,0 +1,48 @@
1
+ {
2
+ "version": 2,
3
+ "lastSyncedAt": "2026-04-19",
4
+ "backlogMeta": {
5
+ "roadmapVersion": "roadmap.v2",
6
+ "skillVersion": "4.3.1",
7
+ "currentFocusStage": "Stage 2"
8
+ },
9
+ "dependencyHandoff": {
10
+ "serialSpine": "RM-020",
11
+ "parallelReadyNextWave": "-",
12
+ "notesOnBlockers": "export work stays local-only until the next maintainer has remote access"
13
+ },
14
+ "items": [
15
+ {
16
+ "rmId": "RM-020",
17
+ "item": "Add an audit-log export summary download",
18
+ "stage": "Stage 2",
19
+ "priority": "P1",
20
+ "primaryCapability": "cap-audit-log-export",
21
+ "secondaryCapabilities": [],
22
+ "expectedSpecDelta": "codify local export summary truth",
23
+ "dependsOn": [],
24
+ "status": "Local handoff",
25
+ "req": "REQ-003",
26
+ "progress": "100%",
27
+ "backlog": {
28
+ "capabilityGap": "admins can export raw audit data but not a compact summary for review",
29
+ "evidence": "support escalations keep asking for a lightweight summary bundle",
30
+ "parallelWith": [],
31
+ "unknowns": "csv-only or csv-plus-markdown summary",
32
+ "nextDecision": "resume from local handoff once remote access returns",
33
+ "ready": true,
34
+ "whyNow": "the implementation and proof already exist, only the landing path is deferred",
35
+ "successSignal": "admins can download a concise audit summary without manual spreadsheet cleanup",
36
+ "entryConstraints": "stay local-only and avoid remote automation",
37
+ "openRisks": "handoff may age if schema changes before the next maintainer resumes",
38
+ "firstPlanningQuestion": "does the summary format need another review before remote landing?",
39
+ "requiredContextToLoad": "admin export screen, generated summary fixture, local handoff notes",
40
+ "whyReadyNow": "the requirement is already proven and only needs a clean resume point",
41
+ "parked": false,
42
+ "parkedReason": "",
43
+ "triggerToReopen": "",
44
+ "missingEvidence": ""
45
+ }
46
+ }
47
+ ]
48
+ }
@@ -0,0 +1,46 @@
1
+ # BACKLOG
2
+
3
+ ## Backlog Meta
4
+
5
+ - Roadmap version: `roadmap.v1`
6
+ - Skill version: `4.3.1`
7
+ - Last synced: `2026-04-19`
8
+ - Current focus stage: `Stage 1`
9
+ - Tracking source: `roadmap-tracking.json`
10
+
11
+ ## Queue
12
+
13
+ | RM-ID | Title | Source Stage | Priority | Primary Capability | Secondary Capabilities | Capability Gap | Expected Spec Delta | Evidence | Depends On | Parallel With | Unknowns | Next Decision | Ready |
14
+ |------|------|------|------|------|------|------|------|------|------|------|------|------|------|
15
+ | RM-001 | Add one-click copy action to the share dialog | Stage 1 | P1 | cap-invite-links | - | share dialog exposes invite URL but not direct copy action | tighten invite-link copy truth | repeated support friction | - | - | copied-state feedback shape | freeze tiny design and execute | Yes |
16
+ | RM-002 | Add copied-state feedback to the share dialog | Stage 1 | P2 | cap-invite-links | - | invite links lack durable copied-state feedback after action completion | extend invite-link feedback truth | likely useful after RM-001 | RM-001 | - | toast vs inline state | decide after first patch ships | No |
17
+
18
+ ## Dependency Handoff
19
+
20
+ - Serial spine: RM-001 -> RM-002
21
+ - Parallel-ready next wave: none until RM-001 proves the copy action shape
22
+ - Notes on blockers: RM-002 should reuse the final interaction contract from RM-001, not race it
23
+
24
+ ## Ready For Req-Plan
25
+
26
+ - RM-001:
27
+ - Primary Capability: `cap-invite-links`
28
+ - Secondary Capabilities: `-`
29
+ - Why now: it removes the first visible collaboration friction in the beta flow
30
+ - Success signal: users can copy the invite link with one click
31
+ - Entry constraints: no backend changes, no share dialog redesign
32
+ - Capability gap: share dialog exposes invite URL but not direct copy action
33
+ - Expected spec delta: tighten invite-link copy truth
34
+ - Open risks: clipboard failure copy may still need follow-up UX
35
+ - First planning question: can this stay a tiny-design patch without changing contracts?
36
+ - Required context to load: current share dialog, current invite URL source, existing tests
37
+ - Depends On: `-`
38
+ - Parallel With: `-`
39
+ - Why this is ready now: the ask is narrow, the evidence is real, and the dependency surface is already known
40
+
41
+ ## Parked
42
+
43
+ - RM-004:
44
+ - Reason parked: collaboration analytics is premature before Stage 1 and 2 prove usage
45
+ - Trigger to reopen: repeated invite usage after beta activation
46
+ - Missing evidence: stable collaboration volume
@@ -0,0 +1,58 @@
1
+ # End-to-End PDCA Example
2
+
3
+ ## Example Meta
4
+
5
+ - Example version: `1.0.0`
6
+ - Last reviewed: `2026-04-17`
7
+ - Bound skills: `cc-roadmap@4.3.1`, `cc-plan@3.5.3`, `cc-do@1.5.1`, `cc-check@1.8.1`, `cc-act@1.6.1`
8
+
9
+ This folder shows one minimal but complete `cc-roadmap -> cc-plan -> cc-do -> cc-check -> cc-act` loop.
10
+
11
+ The example is intentionally small:
12
+
13
+ - product context is fake
14
+ - requirement scope is real enough to feel concrete
15
+ - the chosen ship mode is `create-pr`
16
+ - optional artifacts such as `release-note.md` are intentionally omitted when the mode does not require them
17
+
18
+ ## Scenario
19
+
20
+ The fictional product is a small team workspace app.
21
+
22
+ The immediate pain is simple: users can open the share dialog and see the invite URL, but they cannot copy it with one click.
23
+
24
+ The sample requirement is:
25
+
26
+ - `RM-001`: add a `Copy invite link` button to the existing share dialog
27
+
28
+ ## Artifact Map
29
+
30
+ - `ROADMAP.md`: what `cc-roadmap` decided and why this item is first
31
+ - `roadmap-tracking.json`: machine-readable roadmap/backlog truth that renders `ROADMAP.md` and `BACKLOG.md`
32
+ - `BACKLOG.md`: capability-aware handoff that makes `RM-001` ready for `cc-plan`
33
+ - `changes/REQ-001-copy-invite-link/planning/design.md`: approved tiny design
34
+ - `changes/REQ-001-copy-invite-link/planning/tasks.md`: executable task handoff
35
+ - `changes/REQ-001-copy-invite-link/planning/task-manifest.json`: machine-readable execution truth
36
+ - `changes/REQ-001-copy-invite-link/review/report-card.json`: `cc-check` proof and verdict
37
+ - `changes/REQ-001-copy-invite-link/handoff/pr-brief.md`: ship-ready PR handoff
38
+
39
+ ## Why There Is No `release-note.md`
40
+
41
+ This sample chooses `create-pr`.
42
+
43
+ That mode needs:
44
+
45
+ - `pr-brief.md`
46
+ - synced docs if behavior changed
47
+
48
+ It does **not** need a public release note yet, so the example intentionally stops there.
49
+
50
+ ## What To Look For
51
+
52
+ When reading the sample, check whether you can answer these in under a minute:
53
+
54
+ 1. Why is `RM-001` the next roadmap item?
55
+ 2. Why does the requirement stay `tiny-design` instead of `full-design`?
56
+ 3. Which task proved the missing behavior first?
57
+ 4. What fresh evidence let `cc-check` say `pass`?
58
+ 5. Why does `cc-act` choose `create-pr` and omit `release-note.md`?
@@ -0,0 +1,133 @@
1
+ # ROADMAP
2
+
3
+ ## Roadmap Meta
4
+
5
+ - Roadmap version: `roadmap.v1`
6
+ - Skill version: `4.3.1`
7
+ - Status: `active`
8
+ - Last updated: `2026-04-15`
9
+ - Owner / decider: `product-owner`
10
+ - Current focus stage: `Stage 1`
11
+ - Confidence: `medium`
12
+ - Supersedes roadmap version: `none`
13
+
14
+ ## Context Snapshot
15
+
16
+ - Product / repo: `workspace-lite`
17
+ - Project stage: early beta for small internal teams
18
+ - Users: team leads sharing a workspace with 2-10 collaborators
19
+ - Pain: invite flow exists, but sharing still feels manual
20
+ - Existing workaround: users highlight the invite URL field and copy it by hand
21
+ - Strongest demand evidence: repeated support notes saying "copying the link feels broken"
22
+ - Why now: sharing friction blocks the first successful invite loop
23
+ - Distribution path: direct beta onboarding
24
+ - Deadline / forcing function: next beta reset on `2026-04-22`
25
+ - Team / capacity: one product-minded engineer
26
+ - Hard constraints: no API changes, no invite permission redesign
27
+ - Adoption / trust bottleneck: users hesitate when a basic collaboration action feels unfinished
28
+ - Known unknowns: whether users also need a copied-state confirmation toast
29
+
30
+ ## Evidence Ledger
31
+
32
+ | Signal | Evidence | Confidence | Source | Why it matters |
33
+ |--------|----------|------------|--------|----------------|
34
+ | Demand | Beta users ask how to copy the invite URL | High | support notes | Sharing is a real bottleneck |
35
+ | Timing | Beta reset is one week away | High | launch plan | The fix must land this cycle |
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
+ | Distribution | Successful sharing unlocks more beta seats | Med | product notes | A smoother invite loop increases activation |
38
+
39
+ ## Route Options
40
+
41
+ | Shape | Why this could work | Why this may fail | Decision |
42
+ |-------|---------------------|-------------------|----------|
43
+ | wedge-first | Remove the sharpest sharing pain now | May leave deeper invite roles for later | Recommended |
44
+ | platform-first | Rebuild all sharing plumbing before polish | Too large for the current window | Rejected |
45
+ | rescue-first | Focus only on onboarding docs and support | Does not fix the broken-feeling UI | Rejected |
46
+
47
+ ## Recommended Route
48
+
49
+ - Recommendation: `wedge-first`
50
+ - Why this route wins now: the strongest evidence is user friction in the current share path, not missing infrastructure
51
+ - Why the rejected routes lose now: both alternatives spend time away from the first visible activation bottleneck
52
+ - First signal to watch: users can copy the invite link without asking support
53
+ - Kill signal / stop condition: if the fix requires API or permission changes, reopen planning at a larger scope
54
+
55
+ ## Product Thesis
56
+
57
+ - Users: small teams inviting collaborators during setup
58
+ - Pain: manual copying makes the share flow feel unfinished
59
+ - Why now: this friction sits directly on the first collaboration moment
60
+ - Strategic wedge: polish the existing share path before adding broader collaboration features
61
+ - Product promise: basic collaboration should feel one click away
62
+ - What we refuse to build yet: invite roles, expiration controls, share analytics
63
+ - 6-12 month pull: grow from frictionless invite into stronger collaboration controls
64
+
65
+ ## Stage Overview
66
+
67
+ | Stage | Goal | Why now | Dependencies | Exit signal | Kill signal | Non-goals |
68
+ |-------|------|---------|--------------|-------------|-------------|-----------|
69
+ | Stage 1 | Remove first-share friction | Beta activation is blocked here | Existing share dialog | Users can copy the link in one click | Requires backend changes | Permission redesign |
70
+ | Stage 2 | Add safer invite controls | Only after the basic share action feels complete | Stable share interaction | Invite options are trusted | Stage 1 still confuses users | Analytics |
71
+ | Stage 3 | Measure collaboration adoption | Only after sharing is reliable | Stage 1 and 2 complete | Teams repeatedly invite collaborators | Usage remains too low to justify analytics | Growth experiments outside collaboration |
72
+
73
+ ## Stage Detail
74
+
75
+ ### Stage 1
76
+
77
+ - Goal: make the first invite flow feel complete
78
+ - Users unlocked: team leads onboarding collaborators
79
+ - Why this stage exists: collaboration cannot feel credible while copying the invite link is awkward
80
+ - Entry assumptions: existing invite link source remains stable
81
+ - Deliverables: one-click copy action, user feedback, targeted verification
82
+ - Dependencies: current share dialog and invite URL field
83
+ - Win condition: a user can click once and get confirmation
84
+ - Key risks: clipboard failure path may be unclear
85
+ - Kill signal: patch expands into cross-module share redesign
86
+ - What must stay out: new backend contract, new invite settings
87
+ - Candidate roadmap items: `RM-001`, `RM-002`
88
+
89
+ ### Stage 2
90
+
91
+ - Goal: make invite controls safer
92
+ - Users unlocked: team leads managing collaborator access
93
+ - Why this stage exists: once sharing works, control and trust become the next bottleneck
94
+ - Entry assumptions: Stage 1 removed the basic friction
95
+ - Deliverables: role-aware invite options
96
+ - Dependencies: stable Stage 1 behavior
97
+ - Win condition: users no longer need manual role guidance
98
+ - Key risks: scope grows into auth redesign
99
+ - Kill signal: collaboration usage stays too low
100
+ - What must stay out: analytics dashboard
101
+ - Candidate roadmap items: `RM-003`
102
+
103
+ ### Stage 3
104
+
105
+ - Goal: measure and improve collaboration adoption
106
+ - Users unlocked: operators deciding where to invest next
107
+ - Why this stage exists: instrumentation matters only after the share loop is credible
108
+ - Entry assumptions: Stages 1 and 2 hold steady
109
+ - Deliverables: collaboration funnel metrics
110
+ - Dependencies: repeated real usage
111
+ - Win condition: roadmap decisions use measured invite data
112
+ - Key risks: false precision with too little traffic
113
+ - Kill signal: beta usage remains tiny
114
+ - What must stay out: unrelated acquisition work
115
+ - Candidate roadmap items: `RM-004`
116
+
117
+ ## Decision Notes
118
+
119
+ - Rejected path A: rebuild sharing infrastructure first
120
+ - Rejected path B: rely on docs and support instead of fixing the UI
121
+ - Open assumptions to verify next: whether a copied-state message is enough or a toast is needed
122
+ - What changed in this version: narrowed Stage 1 to the smallest visible sharing fix
123
+
124
+ ## Implementation Tracking
125
+ - Tracking source: `roadmap-tracking.json`
126
+
127
+ <!-- roadmap-tracking:start -->
128
+ | RM-ID | Item | Stage | Priority | Primary Capability | Secondary Capabilities | Expected Spec Delta | Depends On | Status | REQ | Progress |
129
+ |------|------|------|------|------|------|------|------|------|------|------|
130
+ | RM-001 | Add one-click copy action to the share dialog | Stage 1 | P1 | cap-invite-links | - | tighten invite-link copy truth | - | In review | REQ-001 | 100% |
131
+ | RM-002 | Add copied-state feedback to the share dialog | Stage 1 | P2 | cap-invite-links | - | extend invite-link feedback truth | RM-001 | Planned | - | 0% |
132
+ | RM-004 | Collaboration analytics follow-up | - | - | - | - | - | - | - | - | - |
133
+ <!-- roadmap-tracking:end -->
@@ -0,0 +1,72 @@
1
+ # PR Brief
2
+
3
+ ## Decision
4
+
5
+ - Recommended mode: `create-pr`
6
+ - Why now: verified work is ready for reviewer handoff and there is no existing PR to update
7
+ - Why not others: `update-pr` has nothing to refresh, `local-handoff` would delay an already verified change, and `post-merge-closeout` only applies after merge
8
+
9
+ ## Requirement
10
+
11
+ - `RM-001` / `REQ-001`: add a one-click copy action to the existing share dialog
12
+
13
+ ## Ship Mode
14
+
15
+ - `create-pr`
16
+
17
+ ## Branch Context
18
+
19
+ - Current branch: `feature/copy-invite-link`
20
+ - Base branch: `main`
21
+ - PR / MR: not created yet
22
+
23
+ ## Summary
24
+
25
+ - removes a small but visible sharing friction in the beta flow
26
+ - keeps the patch inside the approved `tiny-design` boundary
27
+ - ships with fresh test, lint, and review proof
28
+
29
+ ## What Changed
30
+
31
+ - adds a `Copy invite link` action beside the existing invite URL
32
+ - reuses the current invite link source of truth
33
+ - adds copied-state confirmation without redesigning the dialog
34
+
35
+ ## Verification Evidence
36
+
37
+ - `report-card.json` verdict: `pass`
38
+ - Fresh evidence:
39
+ - `npm test -- src/features/share/ShareDialog.test.tsx`
40
+ - `npm run lint -- src/features/share/ShareDialog.tsx`
41
+
42
+ ## Documentation Sync
43
+
44
+ - `CLAUDE.md`: unchanged
45
+ - `README.md`: unchanged
46
+ - `release-note.md`: intentionally omitted for this mode
47
+ - `resume-index.md`: not needed because the change is ready for PR handoff
48
+
49
+ ## Minimum Landing Pack
50
+
51
+ - Required for this mode:
52
+ - `pr-brief.md`
53
+ - fresh `report-card.json`
54
+ - Intentionally omitted:
55
+ - `release-note.md`
56
+ - `resume-index.md`
57
+
58
+ ## How To Verify
59
+
60
+ - open the share dialog
61
+ - confirm the invite URL still matches the current source of truth
62
+ - click `Copy invite link`
63
+ - confirm the copied-state feedback appears
64
+ - re-run the targeted test and lint commands above
65
+
66
+ ## Follow-Ups
67
+
68
+ - if users still miss the feedback, lift `RM-002` into the next requirement
69
+
70
+ ## Risks
71
+
72
+ - copied-state feedback may still be too subtle for some users, but the current patch keeps that trade-off isolated
@@ -0,0 +1,29 @@
1
+ # Status Report
2
+
3
+ ## Requirement
4
+
5
+ - Change ID: `REQ-001`
6
+ - Roadmap item: `RM-001`
7
+ - Current state: verified and ready to ship as `create-pr`
8
+
9
+ ## What Is True Now
10
+
11
+ - The share dialog exposes a one-click copy action for the existing invite URL
12
+ - The patch stayed inside the approved `tiny-design` boundary
13
+ - Fresh targeted test and lint evidence both passed
14
+ - Review proof is present, so `cc-check` returned `pass`
15
+
16
+ ## Ship Decision
17
+
18
+ - Recommended mode: `create-pr`
19
+ - Why now: the work is verified, the branch is assumed to be a feature branch, and no open PR exists yet
20
+ - Why not others:
21
+ - not `update-pr`: there is no existing PR to refresh
22
+ - not `local-handoff`: the work is ready to move forward
23
+ - not `post-merge-closeout`: the change is not merged yet
24
+
25
+ ## Docs And Follow-Up
26
+
27
+ - README / release docs: no public user-facing release note yet
28
+ - Backlog writeback: keep `RM-002` parked as the next UX refinement if support friction remains
29
+ - Next entry point: create the PR using `pr-brief.md` as the truth source
@@ -0,0 +1,72 @@
1
+ # DESIGN
2
+
3
+ ## Document Meta
4
+
5
+ - Requirement version: `REQ-001.v1`
6
+ - Design version: `design.v1`
7
+ - CC-Plan skill version: `3.5.3`
8
+ - Requirement ID: `REQ-001`
9
+ - Design mode: `tiny-design`
10
+ - Why this stays `tiny-design`: the patch is limited to an existing dialog and test file, with no API or data model changes
11
+ - Approval status: `approved`
12
+ - Source roadmap item: `RM-001`
13
+ - Source roadmap version: `roadmap.v1`
14
+
15
+ ## Source Handoff
16
+
17
+ - Why now: Stage 1 needs the smallest possible share-flow win
18
+ - Inherited success signal: a user can copy the invite link with one click
19
+ - Inherited kill signal: if the patch requires backend or permission changes, reopen planning
20
+ - Inherited non-goals: no invite role controls, no analytics, no dialog redesign
21
+ - Upstream evidence: repeated support notes and observed manual copying
22
+
23
+ ## Frozen Design Card
24
+
25
+ - Change: add a `Copy invite link` button beside the existing read-only invite URL in the share dialog
26
+ - Keep out: no new invite generation flow and no fallback redesign for unsupported browsers
27
+ - Touched files:
28
+ - `src/features/share/ShareDialog.tsx`
29
+ - `src/features/share/ShareDialog.test.tsx`
30
+ - Contract changes: none; reuse the existing invite link source and existing dialog props
31
+ - Key decisions that `cc-do` must not re-decide:
32
+ - use `navigator.clipboard.writeText`
33
+ - keep the current invite URL source of truth
34
+ - show a lightweight copied-state confirmation inside the current dialog
35
+ - Upgrade trigger to `full-design`: if clipboard support requires new platform fallbacks, or if the patch spills into shared share-service contracts
36
+
37
+ ## Validation
38
+
39
+ - Primary check: targeted dialog test proves the button renders and copies the current invite URL
40
+ - Secondary checks:
41
+ - existing share dialog tests remain green
42
+ - lint stays green for the touched files
43
+ - Evidence to collect:
44
+ - failing test before implementation
45
+ - passing targeted test after implementation
46
+ - fresh gate output for `cc-check`
47
+
48
+ ## Main Risk
49
+
50
+ - Risk: copied-state feedback may be too subtle for users
51
+ - Mitigation: keep the first patch minimal and log a follow-up roadmap item if support friction remains
52
+
53
+ ## Review Gate
54
+
55
+ - Placeholder scan: pass
56
+ - Consistency scan: pass; scope, files, and validation all point to the same tiny patch
57
+ - Scope scan: pass; no backend, no permission work
58
+ - Ambiguity scan: pass; execution does not need to re-decide button placement or clipboard source
59
+ - Feasibility scan: pass; existing dialog and tests already cover the target surface
60
+ - Final recommendation: approved as `tiny-design`
61
+
62
+ ## Approval
63
+
64
+ - User approval status: approved
65
+ - Deferred questions:
66
+ - if copied-state feedback still feels weak, open a separate requirement for richer UX
67
+
68
+ ## First-Read Test
69
+
70
+ - This is clearly small because it stays inside one UI surface and one test surface
71
+ - The upgrade path is explicit: any contract or fallback work forces `full-design`
72
+ - `cc-do` should not need to ask where the URL comes from or how the copy action is triggered
@@ -0,0 +1,201 @@
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
+ "status": "verified",
7
+ "requirementId": "REQ-001",
8
+ "requirementVersion": "REQ-001.v1",
9
+ "sourceRoadmap": {
10
+ "itemId": "RM-001",
11
+ "roadmapVersion": "roadmap.v1",
12
+ "roadmapSkillVersion": "4.3.1",
13
+ "sourceStage": "Stage 1",
14
+ "successSignal": "Users can copy the invite link with one click",
15
+ "killSignal": "The patch requires backend or permission changes",
16
+ "dependencies": [
17
+ "Existing share dialog stays intact"
18
+ ],
19
+ "nonGoals": [
20
+ "No invite role redesign",
21
+ "No share analytics"
22
+ ]
23
+ },
24
+ "planningMeta": {
25
+ "reqPlanSkillVersion": "3.5.3",
26
+ "designVersion": "design.v1",
27
+ "approvedAt": "2026-04-15T10:05:00.000Z",
28
+ "approvedBy": "user",
29
+ "basedOnOption": "Tiny design card"
30
+ },
31
+ "currentTaskId": null,
32
+ "activePhase": null,
33
+ "tasks": [
34
+ {
35
+ "id": "T001",
36
+ "title": "[TEST] Add a failing dialog test for the missing copy action",
37
+ "type": "TEST",
38
+ "phase": 1,
39
+ "parallel": false,
40
+ "dependsOn": [],
41
+ "touches": [
42
+ "share-dialog",
43
+ "tests"
44
+ ],
45
+ "files": [
46
+ "src/features/share/ShareDialog.test.tsx"
47
+ ],
48
+ "run": [
49
+ "npm test -- src/features/share/ShareDialog.test.tsx"
50
+ ],
51
+ "checks": [
52
+ "test fails before implementation"
53
+ ],
54
+ "acceptance": [
55
+ "The missing copy action is reproduced as a failing test"
56
+ ],
57
+ "verification": [
58
+ "npm test -- src/features/share/ShareDialog.test.tsx"
59
+ ],
60
+ "evidence": [
61
+ "Failing test output"
62
+ ],
63
+ "context": {
64
+ "readFiles": [
65
+ "design.md",
66
+ "tasks.md",
67
+ "src/features/share/ShareDialog.tsx"
68
+ ],
69
+ "commands": [
70
+ "npm test -- src/features/share/ShareDialog.test.tsx"
71
+ ],
72
+ "notes": [
73
+ "Do not change share-service contracts in this task"
74
+ ]
75
+ },
76
+ "reviews": {
77
+ "spec": "pass",
78
+ "code": "pass"
79
+ },
80
+ "status": "passed",
81
+ "attempts": 1,
82
+ "maxRetries": 1
83
+ },
84
+ {
85
+ "id": "T002",
86
+ "title": "[IMPL] Add the copy button and copied-state confirmation",
87
+ "type": "IMPL",
88
+ "phase": 1,
89
+ "parallel": false,
90
+ "dependsOn": [
91
+ "T001"
92
+ ],
93
+ "touches": [
94
+ "share-dialog"
95
+ ],
96
+ "files": [
97
+ "src/features/share/ShareDialog.tsx"
98
+ ],
99
+ "run": [
100
+ "npm test -- src/features/share/ShareDialog.test.tsx"
101
+ ],
102
+ "checks": [
103
+ "dialog test passes after implementation"
104
+ ],
105
+ "acceptance": [
106
+ "The dialog exposes a copy button and confirms the copied state"
107
+ ],
108
+ "verification": [
109
+ "npm test -- src/features/share/ShareDialog.test.tsx"
110
+ ],
111
+ "evidence": [
112
+ "Passing targeted test output",
113
+ "Checkpoint summary"
114
+ ],
115
+ "context": {
116
+ "readFiles": [
117
+ "design.md",
118
+ "tasks.md",
119
+ "src/features/share/ShareDialog.test.tsx"
120
+ ],
121
+ "commands": [
122
+ "npm test -- src/features/share/ShareDialog.test.tsx"
123
+ ],
124
+ "notes": [
125
+ "Keep the patch inside the existing dialog"
126
+ ]
127
+ },
128
+ "reviews": {
129
+ "spec": "pass",
130
+ "code": "pass"
131
+ },
132
+ "status": "passed",
133
+ "attempts": 1,
134
+ "maxRetries": 1
135
+ },
136
+ {
137
+ "id": "T003",
138
+ "title": "Run targeted checks and collect fresh evidence",
139
+ "type": "OTHER",
140
+ "phase": 2,
141
+ "parallel": false,
142
+ "dependsOn": [
143
+ "T002"
144
+ ],
145
+ "touches": [
146
+ "quality-gates"
147
+ ],
148
+ "files": [
149
+ "src/features/share/ShareDialog.tsx",
150
+ "src/features/share/ShareDialog.test.tsx"
151
+ ],
152
+ "run": [
153
+ "npm test -- src/features/share/ShareDialog.test.tsx",
154
+ "npm run lint -- src/features/share/ShareDialog.tsx"
155
+ ],
156
+ "checks": [
157
+ "targeted test passes",
158
+ "lint passes"
159
+ ],
160
+ "acceptance": [
161
+ "Fresh verification evidence is ready for cc-check"
162
+ ],
163
+ "verification": [
164
+ "npm test -- src/features/share/ShareDialog.test.tsx",
165
+ "npm run lint -- src/features/share/ShareDialog.tsx"
166
+ ],
167
+ "evidence": [
168
+ "Passing targeted test output",
169
+ "Clean lint output"
170
+ ],
171
+ "context": {
172
+ "readFiles": [
173
+ "tasks.md",
174
+ "task-manifest.json"
175
+ ],
176
+ "commands": [
177
+ "npm test -- src/features/share/ShareDialog.test.tsx",
178
+ "npm run lint -- src/features/share/ShareDialog.tsx"
179
+ ],
180
+ "notes": [
181
+ "Collect only fresh evidence from this run"
182
+ ]
183
+ },
184
+ "reviews": {
185
+ "spec": "pass",
186
+ "code": "pass"
187
+ },
188
+ "status": "passed",
189
+ "attempts": 1,
190
+ "maxRetries": 1
191
+ }
192
+ ],
193
+ "metadata": {
194
+ "source": "tasks.md",
195
+ "generatedBy": "docs-example",
196
+ "planVersion": 1
197
+ },
198
+ "deferredQuestions": [
199
+ "If users still miss the copied-state confirmation, open RM-002 for richer feedback."
200
+ ]
201
+ }