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.
- package/.claude/skills/cc-act/CHANGELOG.md +64 -0
- package/.claude/skills/cc-act/PLAYBOOK.md +212 -0
- package/.claude/skills/cc-act/SKILL.md +322 -0
- package/.claude/skills/cc-act/assets/PR_BRIEF_TEMPLATE.md +64 -0
- package/.claude/skills/cc-act/assets/RELEASE_NOTE_TEMPLATE.md +25 -0
- package/.claude/skills/cc-act/references/closure-contract.md +49 -0
- package/.claude/skills/cc-act/references/git-commit-guidelines.md +83 -0
- package/.claude/skills/cc-act/scripts/archive-requirement.sh +49 -0
- package/.claude/skills/cc-act/scripts/cc-act-common.sh +240 -0
- package/.claude/skills/cc-act/scripts/detect-ship-target.sh +82 -0
- package/.claude/skills/cc-act/scripts/generate-status-report.sh +83 -0
- package/.claude/skills/cc-act/scripts/render-pr-brief.sh +195 -0
- package/.claude/skills/cc-act/scripts/sync-act-docs.sh +315 -0
- package/.claude/skills/cc-act/scripts/verify-act-gate.sh +63 -0
- package/.claude/skills/cc-check/CHANGELOG.md +73 -0
- package/.claude/skills/cc-check/PLAYBOOK.md +153 -0
- package/.claude/skills/cc-check/SKILL.md +345 -0
- package/.claude/skills/cc-check/assets/REPORT_CARD_TEMPLATE.json +50 -0
- package/.claude/skills/cc-check/references/gate-contract.md +29 -0
- package/.claude/skills/cc-check/references/review-contract.md +45 -0
- package/.claude/skills/cc-check/scripts/render-report-card.js +229 -0
- package/.claude/skills/cc-check/scripts/run-quality-gates.sh +86 -0
- package/.claude/skills/cc-check/scripts/verify-gate.sh +57 -0
- package/.claude/skills/cc-do/CHANGELOG.md +49 -0
- package/.claude/skills/cc-do/PLAYBOOK.md +119 -0
- package/.claude/skills/cc-do/SKILL.md +216 -0
- package/.claude/skills/cc-do/references/execution-recovery.md +86 -0
- package/.claude/skills/cc-do/references/parallel-dispatch.md +80 -0
- package/.claude/skills/cc-do/scripts/build-task-context.sh +184 -0
- package/.claude/skills/cc-do/scripts/cc-do-common.sh +79 -0
- package/.claude/skills/cc-do/scripts/check-task-status.sh +92 -0
- package/.claude/skills/cc-do/scripts/detect-file-conflicts.sh +87 -0
- package/.claude/skills/cc-do/scripts/mark-task-complete.sh +119 -0
- package/.claude/skills/cc-do/scripts/record-review-decision.sh +89 -0
- package/.claude/skills/cc-do/scripts/recover-workflow.sh +84 -0
- package/.claude/skills/cc-do/scripts/run-problem-analysis.sh +70 -0
- package/.claude/skills/cc-do/scripts/select-ready-tasks.sh +135 -0
- package/.claude/skills/cc-do/scripts/verify-task-gates.sh +94 -0
- package/.claude/skills/cc-do/scripts/write-task-checkpoint.sh +102 -0
- package/.claude/skills/cc-investigate/CHANGELOG.md +26 -0
- package/.claude/skills/cc-investigate/PLAYBOOK.md +49 -0
- package/.claude/skills/cc-investigate/SKILL.md +221 -0
- package/.claude/skills/cc-investigate/assets/ANALYSIS_TEMPLATE.md +55 -0
- package/.claude/skills/cc-investigate/assets/TASKS_TEMPLATE.md +52 -0
- package/.claude/skills/cc-investigate/assets/TASK_MANIFEST_TEMPLATE.json +103 -0
- package/.claude/skills/cc-investigate/references/investigation-contract.md +28 -0
- package/.claude/skills/cc-investigate/scripts/bootstrap-analysis.sh +38 -0
- package/.claude/skills/cc-plan/CHANGELOG.md +99 -0
- package/.claude/skills/cc-plan/PLAYBOOK.md +106 -0
- package/.claude/skills/cc-plan/SKILL.md +325 -0
- package/.claude/skills/cc-plan/assets/DESIGN_TEMPLATE.md +155 -0
- package/.claude/skills/cc-plan/assets/TASKS_TEMPLATE.md +98 -0
- package/.claude/skills/cc-plan/assets/TASK_MANIFEST_TEMPLATE.json +108 -0
- package/.claude/skills/cc-plan/assets/TINY_DESIGN_TEMPLATE.md +79 -0
- package/.claude/skills/cc-plan/references/planning-contract.md +82 -0
- package/.claude/skills/cc-plan/scripts/bump-skill-version.sh +103 -0
- package/.claude/skills/cc-plan/scripts/parse-task-dependencies.js +75 -0
- package/.claude/skills/cc-plan/scripts/validate-scope.sh +78 -0
- package/.claude/skills/cc-roadmap/CHANGELOG.md +114 -0
- package/.claude/skills/cc-roadmap/PLAYBOOK.md +136 -0
- package/.claude/skills/cc-roadmap/SKILL.md +259 -0
- package/.claude/skills/cc-roadmap/assets/BACKLOG_TEMPLATE.md +45 -0
- package/.claude/skills/cc-roadmap/assets/ROADMAP_TEMPLATE.md +153 -0
- package/.claude/skills/cc-roadmap/assets/TRACKING_TEMPLATE.json +48 -0
- package/.claude/skills/cc-roadmap/references/roadmap-dialogue.md +37 -0
- package/.claude/skills/cc-roadmap/scripts/bump-skill-version.sh +103 -0
- package/.claude/skills/cc-roadmap/scripts/lib/roadmap-tracking/markdown.js +604 -0
- package/.claude/skills/cc-roadmap/scripts/lib/roadmap-tracking/query.js +63 -0
- package/.claude/skills/cc-roadmap/scripts/lib/roadmap-tracking/schema.js +245 -0
- package/.claude/skills/cc-roadmap/scripts/lib/roadmap-tracking/store.js +139 -0
- package/.claude/skills/cc-roadmap/scripts/locate-roadmap-item.sh +109 -0
- package/.claude/skills/cc-roadmap/scripts/roadmap-tracking.js +153 -0
- package/.claude/skills/cc-roadmap/scripts/sync-roadmap-progress.sh +100 -0
- package/.claude/skills/cc-simplify/CHANGELOG.md +10 -0
- package/.claude/skills/cc-simplify/SKILL.md +55 -0
- package/.claude/skills/cc-spec-init/CHANGELOG.md +7 -0
- package/.claude/skills/cc-spec-init/PLAYBOOK.md +55 -0
- package/.claude/skills/cc-spec-init/SKILL.md +127 -0
- package/.claude/skills/cc-spec-init/assets/CAPABILITY_TEMPLATE.md +63 -0
- package/.claude/skills/cc-spec-init/assets/CHANGE_META_TEMPLATE.json +25 -0
- package/.claude/skills/cc-spec-init/assets/INDEX_TEMPLATE.md +34 -0
- package/.claude/skills/cc-spec-init/references/spec-contract.md +22 -0
- package/.claude/skills/cc-spec-init/scripts/bootstrap-specs.sh +31 -0
- package/.claude/skills/cc-spec-init/scripts/validate-spec-links.sh +45 -0
- package/CHANGELOG.md +61 -4
- package/README.md +120 -756
- package/README.zh-CN.md +119 -756
- package/bin/adapt.js +2 -6
- package/bin/cc-devflow-cli.js +72 -177
- package/config/distributable-skills.json +24 -0
- package/docs/CLAUDE.md +10 -6
- package/docs/commands/README.md +19 -46
- package/docs/commands/README.zh-CN.md +25 -48
- package/docs/examples/BY-ARTIFACT.md +7 -0
- package/docs/examples/README.md +38 -0
- package/docs/examples/START-HERE.md +149 -0
- package/docs/examples/example-bindings.json +38 -0
- package/docs/examples/full-design-blocked/BACKLOG.md +45 -0
- package/docs/examples/full-design-blocked/README.md +55 -0
- package/docs/examples/full-design-blocked/ROADMAP.md +53 -0
- package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/design.md +154 -0
- package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/task-manifest.json +146 -0
- package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/tasks.md +78 -0
- package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/review/report-card.json +52 -0
- package/docs/examples/full-design-blocked/roadmap-tracking.json +50 -0
- package/docs/examples/local-handoff/BACKLOG.md +45 -0
- package/docs/examples/local-handoff/README.md +56 -0
- package/docs/examples/local-handoff/ROADMAP.md +45 -0
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/handoff/resume-index.md +39 -0
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/handoff/status.md +29 -0
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/design.md +71 -0
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/task-manifest.json +98 -0
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/tasks.md +59 -0
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/review/report-card.json +44 -0
- package/docs/examples/local-handoff/roadmap-tracking.json +48 -0
- package/docs/examples/pdca-loop/BACKLOG.md +46 -0
- package/docs/examples/pdca-loop/README.md +58 -0
- package/docs/examples/pdca-loop/ROADMAP.md +133 -0
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/handoff/pr-brief.md +72 -0
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/handoff/status.md +29 -0
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/design.md +72 -0
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/task-manifest.json +201 -0
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/tasks.md +73 -0
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/review/report-card.json +44 -0
- package/docs/examples/pdca-loop/roadmap-tracking.json +114 -0
- package/docs/examples/scripts/check-example-bindings.sh +116 -0
- package/docs/guides/getting-started.md +94 -129
- package/docs/guides/getting-started.zh-CN.md +103 -84
- package/docs/skill-runtime-migration.md +46 -0
- package/docs/v4.3.0-migration-guide.md +60 -225
- package/lib/compiler/CLAUDE.md +55 -84
- package/lib/compiler/__tests__/drift.test.js +1 -1
- package/lib/compiler/__tests__/errors.test.js +0 -1
- package/lib/compiler/__tests__/integration.test.js +49 -3
- package/lib/compiler/__tests__/manifest.test.js +0 -156
- package/lib/compiler/__tests__/parser.test.js +33 -104
- package/lib/compiler/__tests__/schemas.test.js +30 -34
- package/lib/compiler/__tests__/skills-registry.test.js +114 -0
- package/lib/compiler/__tests__/transformer.test.js +5 -9
- package/lib/compiler/emitters/antigravity-emitter.js +5 -213
- package/lib/compiler/emitters/base-emitter.js +3 -298
- package/lib/compiler/emitters/codex-emitter.js +4 -202
- package/lib/compiler/emitters/cursor-emitter.js +3 -287
- package/lib/compiler/emitters/qwen-emitter.js +4 -176
- package/lib/compiler/index.js +65 -345
- package/lib/compiler/manifest.js +6 -68
- package/lib/compiler/parser.js +31 -63
- package/lib/compiler/platforms.js +32 -277
- package/lib/compiler/resource-copier.js +176 -6
- package/lib/compiler/rules-emitters/__tests__/antigravity-rules-emitter.test.js +3 -3
- package/lib/compiler/rules-emitters/__tests__/cursor-rules-emitter.test.js +14 -4
- package/lib/compiler/rules-emitters/__tests__/qwen-rules-emitter.test.js +16 -7
- package/lib/compiler/rules-emitters/antigravity-rules-emitter.js +10 -15
- package/lib/compiler/rules-emitters/base-rules-emitter.js +5 -5
- package/lib/compiler/rules-emitters/cursor-rules-emitter.js +7 -12
- package/lib/compiler/rules-emitters/index.js +6 -3
- package/lib/compiler/rules-emitters/qwen-rules-emitter.js +7 -7
- package/lib/compiler/schemas.js +8 -4
- package/lib/compiler/skills-registry.js +213 -15
- package/lib/compiler/transformer.js +1 -1
- package/lib/skill-runtime/CLAUDE.md +19 -0
- package/lib/skill-runtime/__tests__/autopilot.test.js +210 -0
- package/lib/skill-runtime/__tests__/cli-bootstrap.integration.test.js +181 -0
- package/lib/skill-runtime/__tests__/delegation.test.js +97 -0
- package/lib/skill-runtime/__tests__/dispatch.test.js +267 -0
- package/lib/skill-runtime/__tests__/intent.test.js +219 -0
- package/lib/skill-runtime/__tests__/lifecycle.test.js +169 -0
- package/lib/skill-runtime/__tests__/paths.test.js +42 -0
- package/lib/skill-runtime/__tests__/planner.tdd.test.js +250 -0
- package/lib/skill-runtime/__tests__/prepare-pr.test.js +139 -0
- package/lib/skill-runtime/__tests__/query.test.js +284 -0
- package/lib/skill-runtime/__tests__/runtime.integration.test.js +279 -0
- package/lib/skill-runtime/__tests__/schemas.test.js +207 -0
- package/lib/skill-runtime/__tests__/team-state.test.js +51 -0
- package/lib/skill-runtime/__tests__/worker-run.test.js +253 -0
- package/lib/skill-runtime/__tests__/worker.test.js +56 -0
- package/lib/skill-runtime/artifacts.js +93 -0
- package/lib/skill-runtime/delegation.js +533 -0
- package/lib/skill-runtime/index.js +34 -0
- package/lib/skill-runtime/intent.js +333 -0
- package/lib/skill-runtime/lifecycle.js +294 -0
- package/lib/skill-runtime/operations/CLAUDE.md +19 -0
- package/lib/skill-runtime/operations/approve.js +66 -0
- package/lib/skill-runtime/operations/autopilot-core.js +337 -0
- package/lib/skill-runtime/operations/autopilot-execution.js +307 -0
- package/lib/skill-runtime/operations/autopilot-shared.js +48 -0
- package/lib/skill-runtime/operations/autopilot.js +163 -0
- package/lib/skill-runtime/operations/dispatch.js +454 -0
- package/lib/skill-runtime/operations/init.js +64 -0
- package/lib/{harness → skill-runtime}/operations/janitor.js +9 -6
- package/lib/skill-runtime/operations/plan.js +59 -0
- package/lib/skill-runtime/operations/prepare-pr.js +25 -0
- package/lib/skill-runtime/operations/release.js +96 -0
- package/lib/skill-runtime/operations/resume.js +143 -0
- package/lib/skill-runtime/operations/snapshot.js +45 -0
- package/lib/skill-runtime/operations/verify.js +170 -0
- package/lib/skill-runtime/operations/worker-run.js +529 -0
- package/lib/skill-runtime/operations/worker.js +33 -0
- package/lib/skill-runtime/paths.js +213 -0
- package/lib/skill-runtime/planner.js +519 -0
- package/lib/skill-runtime/query.js +157 -0
- package/lib/skill-runtime/review.js +557 -0
- package/lib/skill-runtime/schemas.js +400 -0
- package/lib/{harness → skill-runtime}/store.js +45 -30
- package/lib/skill-runtime/team-state.js +122 -0
- package/package.json +13 -11
- package/.claude/CLAUDE.md +0 -125
- package/.claude/agents/architecture-designer.md +0 -443
- package/.claude/agents/bug-analyzer.md +0 -381
- package/.claude/agents/checklist-agent.md +0 -175
- package/.claude/agents/clarify-analyst.md +0 -50
- package/.claude/agents/code-quality-reviewer.md +0 -205
- package/.claude/agents/code-reviewer.md +0 -71
- package/.claude/agents/codex-analyzer.md +0 -39
- package/.claude/agents/compatibility-checker.md +0 -579
- package/.claude/agents/consistency-checker.md +0 -532
- package/.claude/agents/dev-implementer.md +0 -195
- package/.claude/agents/flow-researcher.md +0 -132
- package/.claude/agents/impact-analyzer.md +0 -440
- package/.claude/agents/planner.md +0 -230
- package/.claude/agents/prd-writer.md +0 -320
- package/.claude/agents/project-guidelines-generator.md +0 -1329
- package/.claude/agents/qa-tester.md +0 -313
- package/.claude/agents/release-manager.md +0 -295
- package/.claude/agents/security-reviewer.md +0 -314
- package/.claude/agents/spec-reviewer.md +0 -221
- package/.claude/agents/style-guide-generator.md +0 -458
- package/.claude/agents/tech-architect.md +0 -516
- package/.claude/agents/ui-designer.md +0 -485
- package/.claude/commands/core/architecture.md +0 -459
- package/.claude/commands/core/guidelines.md +0 -511
- package/.claude/commands/core/roadmap.md +0 -468
- package/.claude/commands/core/style.md +0 -83
- package/.claude/commands/flow/CLAUDE.md +0 -24
- package/.claude/commands/flow/archive.md +0 -280
- package/.claude/commands/flow/constitution.md +0 -82
- package/.claude/commands/flow/context.md +0 -150
- package/.claude/commands/flow/delta.md +0 -245
- package/.claude/commands/flow/dev.md +0 -40
- package/.claude/commands/flow/fix.md +0 -217
- package/.claude/commands/flow/ideate.md +0 -214
- package/.claude/commands/flow/init.md +0 -38
- package/.claude/commands/flow/release.md +0 -36
- package/.claude/commands/flow/restart.md +0 -97
- package/.claude/commands/flow/spec.md +0 -36
- package/.claude/commands/flow/status.md +0 -64
- package/.claude/commands/flow/update.md +0 -111
- package/.claude/commands/flow/upgrade.md +0 -115
- package/.claude/commands/flow/verify.md +0 -37
- package/.claude/commands/flow/workspace.md +0 -155
- package/.claude/commands/util/cancel-ralph.md +0 -60
- package/.claude/commands/util/code-review.md +0 -58
- package/.claude/commands/util/git-commit.md +0 -422
- package/.claude/commands/util/problem-analyzer.md +0 -60
- package/.claude/config/quality-gates.yml +0 -305
- package/.claude/config/quality-rules.yml +0 -161
- package/.claude/docs/SPEC_KIT_CONSTITUTION_ANALYSIS.md +0 -426
- package/.claude/docs/design/consistency-conflict-detection-algorithms.md +0 -658
- package/.claude/docs/design/intent-driven-input-design.md +0 -380
- package/.claude/docs/design/prd-version-management-design.md +0 -437
- package/.claude/docs/examples/design-inspiration-pool.md +0 -59
- package/.claude/docs/examples/ui-prototype-constitution-checklist.md +0 -75
- package/.claude/docs/guides/INIT_TROUBLESHOOTING.md +0 -117
- package/.claude/docs/guides/NEW_TROUBLESHOOTING.md +0 -99
- package/.claude/docs/guides/ROADMAP_TROUBLESHOOTING.md +0 -188
- package/.claude/docs/guides/TASK_COMPLETION_MARKING.md +0 -338
- package/.claude/docs/guides/TEAM_MODE_GUIDE.md +0 -312
- package/.claude/docs/implementation-summary-v7.md +0 -449
- package/.claude/docs/spec-format-guide.md +0 -349
- package/.claude/docs/state-consolidation-design.md +0 -323
- package/.claude/docs/templates/ARCHITECTURE_TEMPLATE.md +0 -332
- package/.claude/docs/templates/ATTEMPT_TEMPLATE.md +0 -156
- package/.claude/docs/templates/BACKLOG_TEMPLATE.md +0 -261
- package/.claude/docs/templates/BRAINSTORM_TEMPLATE.md +0 -148
- package/.claude/docs/templates/CHECKLIST_TEMPLATE.md +0 -52
- package/.claude/docs/templates/CLARIFICATION_REPORT_TEMPLATE.md +0 -206
- package/.claude/docs/templates/CODE_REVIEW_TEMPLATE.md +0 -71
- package/.claude/docs/templates/DELTA_SPEC_TEMPLATE.md +0 -91
- package/.claude/docs/templates/DESIGN_DECISIONS_TEMPLATE.md +0 -151
- package/.claude/docs/templates/DESIGN_TEMPLATE.md +0 -157
- package/.claude/docs/templates/ERROR_LOG_TEMPLATE.md +0 -80
- package/.claude/docs/templates/INIT_FLOW_TEMPLATE.md +0 -198
- package/.claude/docs/templates/INTENT_CLARIFICATION_TEMPLATE.md +0 -57
- package/.claude/docs/templates/JOURNAL_TEMPLATE.md +0 -75
- package/.claude/docs/templates/NEW_ORCHESTRATION_TEMPLATE.md +0 -76
- package/.claude/docs/templates/PROPOSAL_TEMPLATE.md +0 -91
- package/.claude/docs/templates/RESEARCH_TEMPLATE.md +0 -276
- package/.claude/docs/templates/REVIEW-HIGH.md +0 -57
- package/.claude/docs/templates/ROADMAP_DIALOGUE_TEMPLATE.md +0 -198
- package/.claude/docs/templates/ROADMAP_TEMPLATE.md +0 -310
- package/.claude/docs/templates/SPEC_TEMPLATE_DELTA.md +0 -139
- package/.claude/docs/templates/SPEC_TEMPLATE_PROJECT.md +0 -93
- package/.claude/docs/templates/STYLE_TEMPLATE.md +0 -479
- package/.claude/docs/templates/UI_PROTOTYPE_TEMPLATE.md +0 -373
- package/.claude/docs/templates/_shared/CLAUDE.md +0 -36
- package/.claude/docs/templates/_shared/CONSTITUTION_CHECK.md +0 -125
- package/.claude/docs/templates/_shared/VALIDATION_CHECKLIST.md +0 -187
- package/.claude/docs/templates/_shared/YAML_FRONTMATTER.md +0 -164
- package/.claude/docs/templates/context/dev.jsonl.template +0 -6
- package/.claude/docs/templates/context/epic.jsonl.template +0 -5
- package/.claude/docs/templates/context/prd.jsonl.template +0 -4
- package/.claude/docs/templates/context/research.jsonl.template +0 -4
- package/.claude/docs/templates/context/review.jsonl.template +0 -5
- package/.claude/docs/templates/context/tech.jsonl.template +0 -5
- package/.claude/guides/agent-guides/agent-coordination-guide.md +0 -459
- package/.claude/guides/project-guidelines-system.md +0 -463
- package/.claude/guides/technical-guides/datetime-handling-guide.md +0 -563
- package/.claude/guides/technical-guides/git-github-guide.md +0 -642
- package/.claude/guides/technical-guides/test-execution-guide.md +0 -618
- package/.claude/guides/workflow-guides/bug-fix-orchestrator.md +0 -217
- package/.claude/guides/workflow-guides/flow-orchestrator.md +0 -48
- package/.claude/hooks/CLAUDE.md +0 -342
- package/.claude/hooks/checklist-gate.js +0 -397
- package/.claude/hooks/error-handling-reminder.sh +0 -12
- package/.claude/hooks/error-handling-reminder.ts +0 -459
- package/.claude/hooks/hooks.json +0 -15
- package/.claude/hooks/inject-agent-context.ts +0 -480
- package/.claude/hooks/inject-skill-context.ts +0 -359
- package/.claude/hooks/post-tool-use-tracker.sh +0 -280
- package/.claude/hooks/pre-tool-use-guardrail.sh +0 -36
- package/.claude/hooks/pre-tool-use-guardrail.ts +0 -342
- package/.claude/hooks/ralph-loop.ts +0 -931
- package/.claude/hooks/ralph-stop-hook.sh +0 -190
- package/.claude/hooks/skill-activation-prompt.sh +0 -36
- package/.claude/hooks/skill-activation-prompt.ts +0 -214
- package/.claude/hooks/state/skills-used-test-guard.json +0 -3
- package/.claude/hooks/task-completed-hook.ts +0 -593
- package/.claude/hooks/teammate-idle-hook.ts +0 -690
- package/.claude/hooks/types/team-types.d.ts +0 -238
- package/.claude/rules/devflow-conventions.md +0 -286
- package/.claude/rules/project-constitution.md +0 -1002
- package/.claude/rules/rationalization-library.md +0 -282
- package/.claude/schemas/constitution.schema.json +0 -43
- package/.claude/scripts/.claude/commands/flow/export-openspec.md +0 -221
- package/.claude/scripts/.claude/commands/flow/import-openspec.md +0 -171
- package/.claude/scripts/CLAUDE.md +0 -76
- package/.claude/scripts/__tests__/openspec.test.js +0 -212
- package/.claude/scripts/analyze-upgrade-impact.sh +0 -200
- package/.claude/scripts/archive-requirement.sh +0 -394
- package/.claude/scripts/calculate-checklist-completion.sh +0 -243
- package/.claude/scripts/calculate-quarter.sh +0 -206
- package/.claude/scripts/check-dependencies.sh +0 -409
- package/.claude/scripts/check-prerequisites.sh +0 -232
- package/.claude/scripts/check-task-status.sh +0 -288
- package/.claude/scripts/checklist-errors.sh +0 -131
- package/.claude/scripts/common.sh +0 -1102
- package/.claude/scripts/consolidate-research.sh +0 -182
- package/.claude/scripts/create-requirement.sh +0 -451
- package/.claude/scripts/delta-parser.ts +0 -637
- package/.claude/scripts/detect-file-conflicts.sh +0 -151
- package/.claude/scripts/export-contracts.sh +0 -117
- package/.claude/scripts/export-openspec.js +0 -222
- package/.claude/scripts/extract-data-model.sh +0 -78
- package/.claude/scripts/flow-context-add.sh +0 -134
- package/.claude/scripts/flow-context-init.sh +0 -133
- package/.claude/scripts/flow-context-validate.sh +0 -144
- package/.claude/scripts/flow-delta-apply.sh +0 -297
- package/.claude/scripts/flow-delta-archive.sh +0 -71
- package/.claude/scripts/flow-delta-create.sh +0 -202
- package/.claude/scripts/flow-delta-list.sh +0 -142
- package/.claude/scripts/flow-delta-status.sh +0 -235
- package/.claude/scripts/flow-quality-full.sh +0 -215
- package/.claude/scripts/flow-quality-quick.sh +0 -119
- package/.claude/scripts/flow-workspace-init.sh +0 -117
- package/.claude/scripts/flow-workspace-record.sh +0 -164
- package/.claude/scripts/generate-clarification-questions.sh +0 -377
- package/.claude/scripts/generate-clarification-report.sh +0 -463
- package/.claude/scripts/generate-quickstart.sh +0 -146
- package/.claude/scripts/generate-research-tasks.sh +0 -157
- package/.claude/scripts/generate-status-report.sh +0 -523
- package/.claude/scripts/generate-tech-analysis.sh +0 -46
- package/.claude/scripts/get-workflow-status.sh +0 -415
- package/.claude/scripts/import-openspec.js +0 -272
- package/.claude/scripts/locate-requirement-in-roadmap.sh +0 -233
- package/.claude/scripts/manage-constitution.sh +0 -602
- package/.claude/scripts/mark-task-complete.sh +0 -198
- package/.claude/scripts/parse-task-dependencies.js +0 -334
- package/.claude/scripts/populate-research-tasks.sh +0 -284
- package/.claude/scripts/record-quality-error.sh +0 -165
- package/.claude/scripts/recover-workflow.sh +0 -463
- package/.claude/scripts/run-clarify-scan.sh +0 -601
- package/.claude/scripts/run-high-review.sh +0 -62
- package/.claude/scripts/run-problem-analysis.sh +0 -68
- package/.claude/scripts/run-quality-gates.sh +0 -242
- package/.claude/scripts/setup-epic.sh +0 -173
- package/.claude/scripts/setup-ralph-loop.sh +0 -155
- package/.claude/scripts/sync-roadmap-progress.sh +0 -300
- package/.claude/scripts/sync-task-marks.sh +0 -199
- package/.claude/scripts/team-dev-init.sh +0 -319
- package/.claude/scripts/team-state-recovery.sh +0 -229
- package/.claude/scripts/test-clarify-scan.sh +0 -515
- package/.claude/scripts/update-agent-context.sh +0 -806
- package/.claude/scripts/validate-constitution.sh +0 -567
- package/.claude/scripts/validate-hooks.sh +0 -487
- package/.claude/scripts/validate-research.sh +0 -332
- package/.claude/scripts/validate-scope-boundary.sh +0 -493
- package/.claude/scripts/validate-scope.sh +0 -200
- package/.claude/scripts/verify-gate.sh +0 -269
- package/.claude/scripts/verify-setup.sh +0 -37
- package/.claude/scripts/workflow-status.ts +0 -433
- package/.claude/settings.json +0 -95
- package/.claude/skills/_reference-implementations/README.md +0 -96
- package/.claude/skills/_reference-implementations/backend-express-prisma/SKILL.md +0 -302
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/architecture-overview.md +0 -451
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/async-and-errors.md +0 -307
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/complete-examples.md +0 -638
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/configuration.md +0 -275
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/database-patterns.md +0 -224
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/middleware-guide.md +0 -213
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/routing-and-controllers.md +0 -756
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/sentry-and-monitoring.md +0 -336
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/services-and-repositories.md +0 -789
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/testing-guide.md +0 -235
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/validation-patterns.md +0 -754
- package/.claude/skills/_reference-implementations/frontend-react-mui/SKILL.md +0 -399
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/common-patterns.md +0 -331
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/complete-examples.md +0 -872
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/component-patterns.md +0 -502
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/data-fetching.md +0 -767
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/file-organization.md +0 -502
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/loading-and-error-states.md +0 -501
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/performance.md +0 -406
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/routing-guide.md +0 -364
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/styling-guide.md +0 -428
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/typescript-standards.md +0 -418
- package/.claude/skills/attention-refresh/SKILL.md +0 -170
- package/.claude/skills/brainstorming/SKILL.md +0 -161
- package/.claude/skills/cc-devflow-orchestrator/SKILL.md +0 -169
- package/.claude/skills/constitution-guardian/SKILL.md +0 -306
- package/.claude/skills/constitution-quick-ref/SKILL.md +0 -374
- package/.claude/skills/debugging/SKILL.md +0 -221
- package/.claude/skills/file-standards/SKILL.md +0 -353
- package/.claude/skills/finishing-branch/SKILL.md +0 -189
- package/.claude/skills/flow-dev/CLAUDE.md +0 -16
- package/.claude/skills/flow-dev/SKILL.md +0 -94
- package/.claude/skills/flow-dev/assets/IMPLEMENTATION_PLAN_TEMPLATE.md +0 -71
- package/.claude/skills/flow-dev/context.jsonl +0 -4
- package/.claude/skills/flow-dev/dev-implementer.jsonl +0 -8
- package/.claude/skills/flow-dev/scripts/entry-gate.sh +0 -116
- package/.claude/skills/flow-dev/scripts/exit-gate.sh +0 -101
- package/.claude/skills/flow-dev/scripts/task-orchestrator.sh +0 -106
- package/.claude/skills/flow-fix/SKILL.md +0 -105
- package/.claude/skills/flow-fix/context.jsonl +0 -6
- package/.claude/skills/flow-fix/references/bug-analyzer.md +0 -381
- package/.claude/skills/flow-init/SKILL.md +0 -105
- package/.claude/skills/flow-init/assets/BRAINSTORM_TEMPLATE.md +0 -148
- package/.claude/skills/flow-init/assets/INIT_FLOW_TEMPLATE.md +0 -198
- package/.claude/skills/flow-init/assets/RESEARCH_TEMPLATE.md +0 -276
- package/.claude/skills/flow-init/context.jsonl +0 -5
- package/.claude/skills/flow-init/references/flow-researcher.md +0 -132
- package/.claude/skills/flow-init/scripts/check-prerequisites.sh +0 -240
- package/.claude/skills/flow-init/scripts/consolidate-research.sh +0 -182
- package/.claude/skills/flow-init/scripts/create-requirement.sh +0 -404
- package/.claude/skills/flow-init/scripts/generate-research-tasks.sh +0 -157
- package/.claude/skills/flow-init/scripts/populate-research-tasks.sh +0 -284
- package/.claude/skills/flow-init/scripts/validate-research.sh +0 -340
- package/.claude/skills/flow-quality/SKILL.md +0 -98
- package/.claude/skills/flow-quality/context.jsonl +0 -6
- package/.claude/skills/flow-quality/references/code-quality-reviewer.md +0 -205
- package/.claude/skills/flow-quality/references/qa-tester.md +0 -313
- package/.claude/skills/flow-quality/references/security-reviewer.md +0 -314
- package/.claude/skills/flow-quality/references/spec-reviewer.md +0 -221
- package/.claude/skills/flow-release/SKILL.md +0 -60
- package/.claude/skills/flow-release/context.jsonl +0 -5
- package/.claude/skills/flow-release/references/release-manager.md +0 -295
- package/.claude/skills/flow-spec/CLAUDE.md +0 -17
- package/.claude/skills/flow-spec/SKILL.md +0 -102
- package/.claude/skills/flow-spec/context.jsonl +0 -5
- package/.claude/skills/flow-spec/scripts/entry-gate.sh +0 -194
- package/.claude/skills/flow-spec/scripts/exit-gate.sh +0 -244
- package/.claude/skills/flow-spec/scripts/parallel-orchestrator.sh +0 -205
- package/.claude/skills/flow-spec/scripts/team-communication.sh +0 -353
- package/.claude/skills/flow-spec/scripts/team-init.sh +0 -195
- package/.claude/skills/flow-spec/scripts/test-team-mode.sh +0 -496
- package/.claude/skills/flow-spec/team-config.json +0 -165
- package/.claude/skills/flow-verify/CLAUDE.md +0 -10
- package/.claude/skills/flow-verify/SKILL.md +0 -53
- package/.claude/skills/flow-verify/context.jsonl +0 -5
- package/.claude/skills/fractal-docs/SKILL.md +0 -45
- package/.claude/skills/journey-checker/SKILL.md +0 -199
- package/.claude/skills/journey-checker/pressure-scenarios.md +0 -164
- package/.claude/skills/receiving-review/SKILL.md +0 -153
- package/.claude/skills/skill-creator/LICENSE.txt +0 -202
- package/.claude/skills/skill-creator/SKILL.md +0 -356
- package/.claude/skills/skill-creator/references/output-patterns.md +0 -82
- package/.claude/skills/skill-creator/references/workflows.md +0 -28
- package/.claude/skills/skill-creator/scripts/init_skill.py +0 -303
- package/.claude/skills/skill-creator/scripts/package_skill.py +0 -110
- package/.claude/skills/skill-creator/scripts/quick_validate.py +0 -95
- package/.claude/skills/skill-rules.json +0 -359
- package/.claude/skills/tdd/SKILL.md +0 -218
- package/.claude/skills/tdd-enforcer/SKILL.md +0 -192
- package/.claude/skills/utility/npm-release/CLAUDE.md +0 -55
- package/.claude/skills/utility/npm-release/SKILL.md +0 -379
- package/.claude/skills/utility/npm-release/references/version-decision-guide.md +0 -134
- package/.claude/skills/utility/npm-release/scripts/atomic-version-bump.sh +0 -95
- package/.claude/skills/utility/npm-release/scripts/validate-version-sync.sh +0 -82
- package/.claude/skills/utility/npm-release/scripts/version-decision-tree.sh +0 -44
- package/.claude/skills/verification/SKILL.md +0 -158
- package/.claude/skills/workflow.yaml +0 -219
- package/.claude/tests/README.md +0 -300
- package/.claude/tests/TODO.md +0 -69
- package/.claude/tests/__pycache__/test_analyze_upgrade_impact.cpython-311-pytest-7.2.2.pyc +0 -0
- package/.claude/tests/__pycache__/test_consolidate_research.cpython-311-pytest-7.2.2.pyc +0 -0
- package/.claude/tests/__pycache__/test_export_contracts.cpython-311-pytest-7.2.2.pyc +0 -0
- package/.claude/tests/__pycache__/test_extract_data_model.cpython-311-pytest-7.2.2.pyc +0 -0
- package/.claude/tests/__pycache__/test_generate_quickstart.cpython-311-pytest-7.2.2.pyc +0 -0
- package/.claude/tests/__pycache__/test_generate_research_tasks.cpython-311-pytest-7.2.2.pyc +0 -0
- package/.claude/tests/constitution/run_all_constitution_tests.sh +0 -111
- package/.claude/tests/constitution/test_agent_assignment.sh +0 -207
- package/.claude/tests/constitution/test_article_coverage.sh +0 -201
- package/.claude/tests/constitution/test_template_completeness.sh +0 -150
- package/.claude/tests/constitution/test_version_consistency.sh +0 -120
- package/.claude/tests/fixtures/spec_delta_full.md +0 -16
- package/.claude/tests/fixtures/tasks_progress_sample.md +0 -5
- package/.claude/tests/run-all-tests.sh +0 -229
- package/.claude/tests/scripts/run.sh +0 -30
- package/.claude/tests/scripts/test-framework.sh +0 -128
- package/.claude/tests/scripts/test_check_prerequisites.sh +0 -511
- package/.claude/tests/scripts/test_check_prerequisites.sh.bak +0 -504
- package/.claude/tests/scripts/test_check_prerequisites.sh.bak2 +0 -505
- package/.claude/tests/scripts/test_check_prerequisites.sh.bak3 +0 -506
- package/.claude/tests/scripts/test_check_prerequisites.sh.bak4 +0 -507
- package/.claude/tests/scripts/test_check_prerequisites.sh.bak5 +0 -508
- package/.claude/tests/scripts/test_check_task_status.sh +0 -499
- package/.claude/tests/scripts/test_common.sh +0 -244
- package/.claude/tests/scripts/test_generate_status_report.sh +0 -71
- package/.claude/tests/scripts/test_mark_task_complete.sh +0 -441
- package/.claude/tests/scripts/test_mark_task_complete.sh.backup +0 -410
- package/.claude/tests/scripts/test_recover_workflow.sh +0 -304
- package/.claude/tests/scripts/test_setup_epic.sh +0 -437
- package/.claude/tests/scripts/test_sync_task_marks.sh +0 -196
- package/.claude/tests/scripts/test_validate_constitution.sh +0 -74
- package/.claude/tests/scripts/test_validate_research.sh +0 -462
- package/.claude/tests/slugify.bats +0 -82
- package/.claude/tests/test-framework.sh +0 -732
- package/.claude/tests/test_analyze_upgrade_impact.py +0 -34
- package/.claude/tests/test_consolidate_research.py +0 -48
- package/.claude/tests/test_export_contracts.py +0 -43
- package/.claude/tests/test_extract_data_model.py +0 -33
- package/.claude/tests/test_generate_quickstart.py +0 -50
- package/.claude/tests/test_generate_research_tasks.py +0 -52
- package/.claude/tsc-cache/70d2fc6d-2936-429b-b529-429f1aae8c88/affected-repos.txt +0 -1
- package/.claude/tsc-cache/70d2fc6d-2936-429b-b529-429f1aae8c88/edited-files.log +0 -2
- package/bin/harness.js +0 -22
- package/docs/commands/core-roadmap.md +0 -106
- package/docs/commands/core-roadmap.zh-CN.md +0 -102
- package/docs/commands/core-style.md +0 -53
- package/docs/commands/core-style.zh-CN.md +0 -53
- package/docs/commands/flow-init.md +0 -140
- package/docs/commands/flow-init.zh-CN.md +0 -169
- package/docs/commands/flow-new.md +0 -39
- package/docs/commands/flow-new.zh-CN.md +0 -39
- package/lib/compiler/__tests__/compile-regression.test.js +0 -103
- package/lib/compiler/__tests__/multi-module-emitters.test.js +0 -534
- package/lib/compiler/__tests__/resource-copier.test.js +0 -26
- package/lib/compiler/__tests__/skill-discovery.test.js +0 -72
- package/lib/compiler/context-expander.js +0 -179
- package/lib/compiler/rules-emitters/__tests__/codex-rules-emitter.test.js +0 -109
- package/lib/compiler/rules-emitters/codex-rules-emitter.js +0 -116
- package/lib/compiler/skill-discovery.js +0 -68
- package/lib/harness/CLAUDE.md +0 -22
- package/lib/harness/__tests__/planner.tdd.test.js +0 -125
- package/lib/harness/cli.js +0 -208
- package/lib/harness/index.js +0 -18
- package/lib/harness/operations/dispatch.js +0 -298
- package/lib/harness/operations/init.js +0 -48
- package/lib/harness/operations/pack.js +0 -100
- package/lib/harness/operations/plan.js +0 -83
- package/lib/harness/operations/release.js +0 -170
- package/lib/harness/operations/resume.js +0 -44
- package/lib/harness/operations/verify.js +0 -177
- package/lib/harness/planner.js +0 -272
- package/lib/harness/query.js +0 -126
- 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
|
+
}
|