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,79 @@
|
|
|
1
|
+
# DESIGN
|
|
2
|
+
|
|
3
|
+
## Document Meta
|
|
4
|
+
|
|
5
|
+
- Requirement version:
|
|
6
|
+
- Design version:
|
|
7
|
+
- CC-Plan skill version:
|
|
8
|
+
- Requirement ID:
|
|
9
|
+
- Design mode: `tiny-design`
|
|
10
|
+
- Why this stays `tiny-design`:
|
|
11
|
+
- Approval status: `draft` | `in-review` | `approved`
|
|
12
|
+
- Source roadmap item:
|
|
13
|
+
- Source roadmap version:
|
|
14
|
+
- Primary capability:
|
|
15
|
+
- Secondary capabilities:
|
|
16
|
+
|
|
17
|
+
## Source Handoff
|
|
18
|
+
|
|
19
|
+
- Why now:
|
|
20
|
+
- Capability gap:
|
|
21
|
+
- Expected spec delta:
|
|
22
|
+
- Inherited success signal:
|
|
23
|
+
- Inherited kill signal:
|
|
24
|
+
- Inherited non-goals:
|
|
25
|
+
- Upstream evidence:
|
|
26
|
+
|
|
27
|
+
## Capability Handoff
|
|
28
|
+
|
|
29
|
+
- Canonical capability spec:
|
|
30
|
+
- Current truth to preserve:
|
|
31
|
+
- Current gaps:
|
|
32
|
+
- Spec sync target:
|
|
33
|
+
|
|
34
|
+
## Frozen Design Card
|
|
35
|
+
|
|
36
|
+
- Change:
|
|
37
|
+
- Keep out:
|
|
38
|
+
- Touched files:
|
|
39
|
+
- Contract changes:
|
|
40
|
+
- Invariant impact:
|
|
41
|
+
- Gap changes:
|
|
42
|
+
- Key decisions that `cc-do` must not re-decide:
|
|
43
|
+
- Upgrade trigger to `full-design`:
|
|
44
|
+
|
|
45
|
+
## Validation
|
|
46
|
+
|
|
47
|
+
- First failing test:
|
|
48
|
+
- Green implementation check:
|
|
49
|
+
- Refactor checkpoint:
|
|
50
|
+
- TDD exceptions:
|
|
51
|
+
- Primary check:
|
|
52
|
+
- Secondary checks:
|
|
53
|
+
- Evidence to collect:
|
|
54
|
+
|
|
55
|
+
## Main Risk
|
|
56
|
+
|
|
57
|
+
- Risk:
|
|
58
|
+
- Mitigation:
|
|
59
|
+
|
|
60
|
+
## Review Gate
|
|
61
|
+
|
|
62
|
+
- Placeholder scan:
|
|
63
|
+
- Consistency scan:
|
|
64
|
+
- Scope scan:
|
|
65
|
+
- Ambiguity scan:
|
|
66
|
+
- Feasibility scan:
|
|
67
|
+
- Test-first readiness:
|
|
68
|
+
- Final recommendation:
|
|
69
|
+
|
|
70
|
+
## Approval
|
|
71
|
+
|
|
72
|
+
- User approval status:
|
|
73
|
+
- Deferred questions:
|
|
74
|
+
|
|
75
|
+
## First-Read Test
|
|
76
|
+
|
|
77
|
+
- 一眼能看出这次为什么够小
|
|
78
|
+
- 一眼能看出什么情况会逼它升级成 `full-design`
|
|
79
|
+
- `cc-do` 看完不会继续追问“那接口 / 边界到底怎么算”
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# Planning Contract
|
|
2
|
+
|
|
3
|
+
## Hard Rules
|
|
4
|
+
|
|
5
|
+
1. `cc-plan` 默认只产出 4 个文件:`planning/design.md`、`planning/tasks.md`、`planning/task-manifest.json`、`change-meta.json`。
|
|
6
|
+
2. clarification / brainstorm / review 结论必须并入 `planning/design.md`,不能再默认拆独立文档。
|
|
7
|
+
3. 执行 handoff 必须写进 `planning/tasks.md` 顶部,不能依赖单独的 `context-package.md`。
|
|
8
|
+
4. `planning/task-manifest.json` 必须和 `planning/tasks.md` 同步,且能告诉 `cc-do` 当前任务是谁。
|
|
9
|
+
5. `planning/design.md`、`planning/tasks.md`、`planning/task-manifest.json` 必须记录来源版本链。
|
|
10
|
+
6. 计划里出现 placeholder 词,就说明还没想清楚。
|
|
11
|
+
7. 一次只推进一个澄清问题,不允许问题轰炸。
|
|
12
|
+
8. 推荐方案没获批前,不允许继续拆执行任务。
|
|
13
|
+
9. `planning/design.md` 通过 review gate 前,不允许宣称计划完成。
|
|
14
|
+
10. 如果来自 `roadmap`,planning 不得悄悄丢掉 source constraints / non-goals / success signal。
|
|
15
|
+
11. 每个计划必须先找 existing leverage,再决定新增实现;重复已有能力属于 planning 失败。
|
|
16
|
+
12. 同 blast radius 内的完整边界默认纳入,defer 必须写入 `NOT in scope` 和原因。
|
|
17
|
+
13. 如果推荐方案挑战用户原始方向,必须标成 `user challenge`,不能自动改写用户意图。
|
|
18
|
+
14. 行为变更的具体任务默认采用测试先行;没有 Red/Green/Refactor 链或 TDD exception,不允许交给 `cc-do`。
|
|
19
|
+
15. 新 change 目录必须是 `REQ-<number>-<description>` 或 `FIX-<number>-<description>`,不能用小写 `req-*` / `bug-*` 或纯描述目录。
|
|
20
|
+
|
|
21
|
+
## Design Modes
|
|
22
|
+
|
|
23
|
+
- `tiny-design`:超小需求的冻结设计卡片,不是跳过设计。
|
|
24
|
+
- `full-design`:涉及跨模块、复杂数据流、迁移或高风险约束的完整设计。
|
|
25
|
+
|
|
26
|
+
默认优先 `tiny-design`,但一旦需要解释复杂边界,就升级到 `full-design`。
|
|
27
|
+
|
|
28
|
+
## Placeholder Ban
|
|
29
|
+
|
|
30
|
+
- TODO later
|
|
31
|
+
- implement later
|
|
32
|
+
- handle edge cases
|
|
33
|
+
- write tests later
|
|
34
|
+
- similar to task N
|
|
35
|
+
- TBD
|
|
36
|
+
- 待定
|
|
37
|
+
- 之后再补
|
|
38
|
+
- 后面再想
|
|
39
|
+
|
|
40
|
+
## Task Fields
|
|
41
|
+
|
|
42
|
+
每个任务至少写清:
|
|
43
|
+
|
|
44
|
+
- 目标
|
|
45
|
+
- TDD phase:`red` / `green` / `refactor` / `exception`
|
|
46
|
+
- 涉及文件
|
|
47
|
+
- 验证方式
|
|
48
|
+
- 完成证据
|
|
49
|
+
|
|
50
|
+
行为变更任务必须先有 `[TEST]` 红灯任务,再有 `[IMPL]` 绿灯任务,最后有 `[REFACTOR]` 或明确 refactor checkpoint。纯文档、纯配置、纯生成文件、throwaway prototype 可以例外,但必须写明原因、风险和替代验证。
|
|
51
|
+
|
|
52
|
+
## Review Gate
|
|
53
|
+
|
|
54
|
+
`planning/design.md` 至少完成:
|
|
55
|
+
|
|
56
|
+
1. Placeholder scan
|
|
57
|
+
2. Consistency scan
|
|
58
|
+
3. Scope scan
|
|
59
|
+
4. Ambiguity scan
|
|
60
|
+
5. Feasibility scan
|
|
61
|
+
6. Source alignment
|
|
62
|
+
7. Existing leverage map
|
|
63
|
+
8. Scope / complexity challenge
|
|
64
|
+
9. Test diagram and failure modes
|
|
65
|
+
10. NOT in scope
|
|
66
|
+
11. Test-first readiness
|
|
67
|
+
12. Final recommendation
|
|
68
|
+
|
|
69
|
+
如有 UI scope,再补 design review 结论。
|
|
70
|
+
如有 developer-facing scope,再补 DX review 结论。
|
|
71
|
+
|
|
72
|
+
## Decision Log
|
|
73
|
+
|
|
74
|
+
每个非平凡决策至少记录:
|
|
75
|
+
|
|
76
|
+
- decision
|
|
77
|
+
- classification:`mechanical` / `taste` / `user challenge`
|
|
78
|
+
- principle:completeness / pragmatic / DRY / explicit / action
|
|
79
|
+
- rationale
|
|
80
|
+
- rejected alternative
|
|
81
|
+
|
|
82
|
+
机械选择可以自动落盘。taste decision 和 user challenge 必须在最终 gate 里显式出现。
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
set -euo pipefail
|
|
4
|
+
|
|
5
|
+
# ------------------------------------------------------------
|
|
6
|
+
# cc-plan skill semver helper
|
|
7
|
+
# - bump SKILL.md frontmatter version
|
|
8
|
+
# - prepend CHANGELOG.md entry
|
|
9
|
+
# ------------------------------------------------------------
|
|
10
|
+
|
|
11
|
+
usage() {
|
|
12
|
+
cat <<'EOF'
|
|
13
|
+
Usage:
|
|
14
|
+
bump-skill-version.sh --type patch|minor|major --message "change summary" \
|
|
15
|
+
[--skill-file SKILL.md] [--changelog CHANGELOG.md] [--date YYYY-MM-DD]
|
|
16
|
+
EOF
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
TYPE=""
|
|
20
|
+
MESSAGE=""
|
|
21
|
+
SKILL_FILE="SKILL.md"
|
|
22
|
+
CHANGELOG_FILE="CHANGELOG.md"
|
|
23
|
+
DATE="$(date +%Y-%m-%d)"
|
|
24
|
+
|
|
25
|
+
while [[ $# -gt 0 ]]; do
|
|
26
|
+
case "$1" in
|
|
27
|
+
--type) TYPE="$2"; shift 2 ;;
|
|
28
|
+
--message) MESSAGE="$2"; shift 2 ;;
|
|
29
|
+
--skill-file) SKILL_FILE="$2"; shift 2 ;;
|
|
30
|
+
--changelog) CHANGELOG_FILE="$2"; shift 2 ;;
|
|
31
|
+
--date) DATE="$2"; shift 2 ;;
|
|
32
|
+
-h|--help) usage; exit 0 ;;
|
|
33
|
+
*) echo "Unknown arg: $1" >&2; usage; exit 1 ;;
|
|
34
|
+
esac
|
|
35
|
+
done
|
|
36
|
+
|
|
37
|
+
if [[ -z "$TYPE" || -z "$MESSAGE" ]]; then
|
|
38
|
+
usage
|
|
39
|
+
exit 1
|
|
40
|
+
fi
|
|
41
|
+
|
|
42
|
+
if [[ ! -f "$SKILL_FILE" ]]; then
|
|
43
|
+
echo "Skill file not found: $SKILL_FILE" >&2
|
|
44
|
+
exit 1
|
|
45
|
+
fi
|
|
46
|
+
|
|
47
|
+
CURRENT_VERSION="$(awk '/^version: / { print $2; exit }' "$SKILL_FILE")"
|
|
48
|
+
|
|
49
|
+
if [[ -z "$CURRENT_VERSION" ]]; then
|
|
50
|
+
echo "No version field found in $SKILL_FILE" >&2
|
|
51
|
+
exit 1
|
|
52
|
+
fi
|
|
53
|
+
|
|
54
|
+
IFS='.' read -r MAJOR MINOR PATCH <<<"$CURRENT_VERSION"
|
|
55
|
+
|
|
56
|
+
case "$TYPE" in
|
|
57
|
+
patch)
|
|
58
|
+
PATCH=$((PATCH + 1))
|
|
59
|
+
;;
|
|
60
|
+
minor)
|
|
61
|
+
MINOR=$((MINOR + 1))
|
|
62
|
+
PATCH=0
|
|
63
|
+
;;
|
|
64
|
+
major)
|
|
65
|
+
MAJOR=$((MAJOR + 1))
|
|
66
|
+
MINOR=0
|
|
67
|
+
PATCH=0
|
|
68
|
+
;;
|
|
69
|
+
*)
|
|
70
|
+
echo "Unsupported bump type: $TYPE" >&2
|
|
71
|
+
exit 1
|
|
72
|
+
;;
|
|
73
|
+
esac
|
|
74
|
+
|
|
75
|
+
NEXT_VERSION="${MAJOR}.${MINOR}.${PATCH}"
|
|
76
|
+
|
|
77
|
+
TMP_SKILL="$(mktemp)"
|
|
78
|
+
awk -v next_version="$NEXT_VERSION" '
|
|
79
|
+
BEGIN { done = 0 }
|
|
80
|
+
{
|
|
81
|
+
if (!done && $0 ~ /^version: /) {
|
|
82
|
+
print "version: " next_version
|
|
83
|
+
done = 1
|
|
84
|
+
next
|
|
85
|
+
}
|
|
86
|
+
print
|
|
87
|
+
}
|
|
88
|
+
' "$SKILL_FILE" > "$TMP_SKILL"
|
|
89
|
+
mv "$TMP_SKILL" "$SKILL_FILE"
|
|
90
|
+
|
|
91
|
+
if [[ ! -f "$CHANGELOG_FILE" ]]; then
|
|
92
|
+
printf '# CC-Plan Skill Changelog\n\n' > "$CHANGELOG_FILE"
|
|
93
|
+
fi
|
|
94
|
+
|
|
95
|
+
TMP_CHANGELOG="$(mktemp)"
|
|
96
|
+
{
|
|
97
|
+
sed -n '1p' "$CHANGELOG_FILE"
|
|
98
|
+
printf '\n## v%s - %s\n\n- %s\n' "$NEXT_VERSION" "$DATE" "$MESSAGE"
|
|
99
|
+
sed -n '2,$p' "$CHANGELOG_FILE"
|
|
100
|
+
} > "$TMP_CHANGELOG"
|
|
101
|
+
mv "$TMP_CHANGELOG" "$CHANGELOG_FILE"
|
|
102
|
+
|
|
103
|
+
echo "Bumped cc-plan skill: ${CURRENT_VERSION} -> ${NEXT_VERSION}"
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
'use strict';
|
|
4
|
+
|
|
5
|
+
// ------------------------------------------------------------
|
|
6
|
+
// 解析 tasks.md 里的 phase / [P] / 文件触点
|
|
7
|
+
// ------------------------------------------------------------
|
|
8
|
+
|
|
9
|
+
const fs = require('fs');
|
|
10
|
+
|
|
11
|
+
const phaseRegex = /^##\s+Phase\s+(\d+):\s*(.+)$/;
|
|
12
|
+
const taskRegex = /^-\s+\[([ xX])\]\s+(?:\*\*)?(T\d+)(?:\*\*)?\s+(.*)$/;
|
|
13
|
+
const fileRegex = /`([^`]+)`/g;
|
|
14
|
+
const dependsOnRegex = /\(dependsOn:([^)]+)\)/;
|
|
15
|
+
|
|
16
|
+
function parse(content) {
|
|
17
|
+
const lines = content.replace(/\r\n?/g, '\n').split('\n');
|
|
18
|
+
const tasks = [];
|
|
19
|
+
let phase = 0;
|
|
20
|
+
|
|
21
|
+
for (const line of lines) {
|
|
22
|
+
const phaseMatch = line.match(phaseRegex);
|
|
23
|
+
if (phaseMatch) {
|
|
24
|
+
phase = Number(phaseMatch[1]);
|
|
25
|
+
continue;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
const taskMatch = line.match(taskRegex);
|
|
29
|
+
if (!taskMatch) continue;
|
|
30
|
+
|
|
31
|
+
const [, box, id, rest] = taskMatch;
|
|
32
|
+
const files = [...rest.matchAll(fileRegex)].map((m) => m[1]);
|
|
33
|
+
const dependsOnMatch = rest.match(dependsOnRegex);
|
|
34
|
+
const dependsOnValue = dependsOnMatch ? dependsOnMatch[1].trim() : '';
|
|
35
|
+
const dependsOn = !dependsOnValue || dependsOnValue === 'none'
|
|
36
|
+
? []
|
|
37
|
+
: dependsOnValue.split(',').map((item) => item.trim()).filter(Boolean);
|
|
38
|
+
tasks.push({
|
|
39
|
+
id,
|
|
40
|
+
phase,
|
|
41
|
+
completed: box.toLowerCase() === 'x',
|
|
42
|
+
parallel: rest.includes('[P]'),
|
|
43
|
+
dependsOn,
|
|
44
|
+
files,
|
|
45
|
+
title: rest
|
|
46
|
+
.replace(/\[P\]/g, '')
|
|
47
|
+
.replace(dependsOnRegex, '')
|
|
48
|
+
.replace(fileRegex, '')
|
|
49
|
+
.replace(/\*\*/g, '')
|
|
50
|
+
.trim()
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
return tasks;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
function main() {
|
|
58
|
+
const file = process.argv[2];
|
|
59
|
+
if (!file) {
|
|
60
|
+
console.error('Usage: parse-task-dependencies.js tasks.md');
|
|
61
|
+
process.exit(1);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
const tasks = parse(fs.readFileSync(file, 'utf8'));
|
|
65
|
+
const completedIds = new Set(tasks.filter((t) => t.completed).map((t) => t.id));
|
|
66
|
+
const runnableTasks = tasks.filter((t) => !t.completed && t.dependsOn.every((dep) => completedIds.has(dep)));
|
|
67
|
+
const nextPhase = runnableTasks.reduce((min, t) => Math.min(min, t.phase), Infinity);
|
|
68
|
+
const nextTasks = Number.isFinite(nextPhase) ? runnableTasks.filter((t) => t.phase === nextPhase) : [];
|
|
69
|
+
|
|
70
|
+
process.stdout.write(JSON.stringify({ tasks, nextTasks }, null, 2));
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
if (require.main === module) {
|
|
74
|
+
main();
|
|
75
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
set -euo pipefail
|
|
4
|
+
|
|
5
|
+
# ------------------------------------------------------------
|
|
6
|
+
# 检查计划文档是否越界或仍有 placeholder
|
|
7
|
+
# ------------------------------------------------------------
|
|
8
|
+
|
|
9
|
+
usage() {
|
|
10
|
+
cat <<'EOF'
|
|
11
|
+
Usage: validate-scope.sh --source FILE [--source FILE...]
|
|
12
|
+
EOF
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
sources=()
|
|
16
|
+
bad_terms=(
|
|
17
|
+
"TODO later"
|
|
18
|
+
"implement later"
|
|
19
|
+
"handle edge cases"
|
|
20
|
+
"write tests later"
|
|
21
|
+
"{{"
|
|
22
|
+
"[NEEDS CLARIFICATION"
|
|
23
|
+
"TBD"
|
|
24
|
+
"待定"
|
|
25
|
+
"之后再补"
|
|
26
|
+
"后面再想"
|
|
27
|
+
)
|
|
28
|
+
|
|
29
|
+
required_markers=(
|
|
30
|
+
"Requirement version:"
|
|
31
|
+
"CC-Plan skill version:"
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
while [[ $# -gt 0 ]]; do
|
|
35
|
+
case "$1" in
|
|
36
|
+
--source) sources+=("$2"); shift 2 ;;
|
|
37
|
+
-h|--help) usage; exit 0 ;;
|
|
38
|
+
*) echo "Unknown arg: $1" >&2; usage; exit 1 ;;
|
|
39
|
+
esac
|
|
40
|
+
done
|
|
41
|
+
|
|
42
|
+
if [[ ${#sources[@]} -eq 0 ]]; then
|
|
43
|
+
usage
|
|
44
|
+
exit 1
|
|
45
|
+
fi
|
|
46
|
+
|
|
47
|
+
fail=0
|
|
48
|
+
for file in "${sources[@]}"; do
|
|
49
|
+
[[ -f "$file" ]] || continue
|
|
50
|
+
for term in "${bad_terms[@]}"; do
|
|
51
|
+
if rg -n --fixed-strings "$term" "$file" >/dev/null 2>&1; then
|
|
52
|
+
echo "[FAIL] $file contains: $term"
|
|
53
|
+
fail=1
|
|
54
|
+
fi
|
|
55
|
+
done
|
|
56
|
+
if rg -n '^\| \| \| \|$' "$file" >/dev/null 2>&1; then
|
|
57
|
+
echo "[FAIL] $file contains an empty markdown table row"
|
|
58
|
+
fail=1
|
|
59
|
+
fi
|
|
60
|
+
if rg -n '^[[:space:]]*(- )?[A-Za-z][A-Za-z /_-]*:\s*$' "$file" >/dev/null 2>&1; then
|
|
61
|
+
echo "[FAIL] $file contains an empty field bullet"
|
|
62
|
+
fail=1
|
|
63
|
+
fi
|
|
64
|
+
if [[ "$file" != *"TASK_MANIFEST_TEMPLATE.json" ]]; then
|
|
65
|
+
for marker in "${required_markers[@]}"; do
|
|
66
|
+
if ! rg -n --fixed-strings "$marker" "$file" >/dev/null 2>&1; then
|
|
67
|
+
echo "[FAIL] $file is missing marker: $marker"
|
|
68
|
+
fail=1
|
|
69
|
+
fi
|
|
70
|
+
done
|
|
71
|
+
fi
|
|
72
|
+
done
|
|
73
|
+
|
|
74
|
+
if [[ "$fail" -eq 1 ]]; then
|
|
75
|
+
exit 1
|
|
76
|
+
fi
|
|
77
|
+
|
|
78
|
+
echo "Scope validation passed"
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
# Roadmap Skill Changelog
|
|
2
|
+
|
|
3
|
+
## v4.3.1 - 2026-04-19
|
|
4
|
+
|
|
5
|
+
- refactor `scripts/roadmap-tracking.js` into focused schema / markdown / store helpers so the CLI stops carrying parsing, rendering, upgrade, and persistence in one 1000-line file
|
|
6
|
+
- route `locate-roadmap-item.sh` through the shared tracking query path instead of maintaining a second inline Node formatter
|
|
7
|
+
- preserve existing `backlog` fields when auto-upgrading legacy v1 tracking JSON so shared lookup and render paths stay behaviorally correct
|
|
8
|
+
|
|
9
|
+
## v4.3.0 - 2026-04-19
|
|
10
|
+
|
|
11
|
+
- expand `devflow/roadmap-tracking.json` from implementation-only tracking into the shared truth source for `ROADMAP.md` and `BACKLOG.md`
|
|
12
|
+
- teach `roadmap-tracking.js render` and `sync-roadmap-progress.sh` to regenerate both files from the same sidecar so roadmap status and backlog handoff can no longer drift apart
|
|
13
|
+
- upgrade locator, templates, docs, examples, and tests so backlog queue / ready / parked data are read from the sidecar before falling back to markdown text
|
|
14
|
+
|
|
15
|
+
Migration note:
|
|
16
|
+
|
|
17
|
+
- existing v4.2.x `roadmap-tracking.json` files are auto-upgraded on first render or sync run
|
|
18
|
+
- if you maintain backlog handoff by hand, move the durable fields into `roadmap-tracking.json` and rerender instead of treating `BACKLOG.md` as the writable source
|
|
19
|
+
- `scripts/roadmap-tracking.js render` now requires both `--roadmap` and `--backlog`
|
|
20
|
+
|
|
21
|
+
## v4.2.1 - 2026-04-19
|
|
22
|
+
|
|
23
|
+
- teach `locate-roadmap-item.sh` to resolve `RM-*` and `REQ-*` through `devflow/roadmap-tracking.json` before falling back to markdown grep
|
|
24
|
+
- realign bundled examples with the capability-aware backlog contract so templates, examples, and helper checks no longer drift apart
|
|
25
|
+
- tighten example validation to require the new backlog queue columns and `Ready For Req-Plan` handoff fields
|
|
26
|
+
|
|
27
|
+
## v4.2.0 - 2026-04-19
|
|
28
|
+
|
|
29
|
+
- add `devflow/roadmap-tracking.json` as the structured truth source for `Implementation Tracking`
|
|
30
|
+
- replace fragile column-position markdown rewrites with JSON-first sync plus markdown re-rendering
|
|
31
|
+
- ship a reusable `render` path so manual edits to the tracking sidecar can be pushed back into `ROADMAP.md`
|
|
32
|
+
|
|
33
|
+
Migration note:
|
|
34
|
+
|
|
35
|
+
- keep `devflow/ROADMAP.md` as the human-facing roadmap, but let helper automation update `devflow/roadmap-tracking.json`
|
|
36
|
+
- the first sync run bootstraps `roadmap-tracking.json` from an existing `Implementation Tracking` table, then rewrites the section in the new generated shape
|
|
37
|
+
- if you were scripting direct table edits, switch to `scripts/sync-roadmap-progress.sh` or edit `roadmap-tracking.json` and rerender
|
|
38
|
+
|
|
39
|
+
## v4.1.0 - 2026-04-19
|
|
40
|
+
|
|
41
|
+
- teach `cc-roadmap` to anchor roadmap items to capability specs instead of leaving future work as requirement-shaped fragments
|
|
42
|
+
- upgrade roadmap and backlog templates with `Primary Capability`, `Secondary Capabilities`, `Capability Gap`, and `Expected Spec Delta`
|
|
43
|
+
- extend `sync-roadmap-progress.sh` so roadmap tracking can update capability/spec columns together with status progress
|
|
44
|
+
|
|
45
|
+
Migration note:
|
|
46
|
+
|
|
47
|
+
- roadmap items should now point to at least one capability, with one explicit primary capability
|
|
48
|
+
- backlog handoffs should carry expected spec delta into `cc-plan`
|
|
49
|
+
|
|
50
|
+
## v4.0.0 - 2026-04-18
|
|
51
|
+
|
|
52
|
+
- restore `cc-roadmap` durable outputs to `devflow/ROADMAP.md` and `devflow/BACKLOG.md`, matching the repository contract and keeping roadmap artifacts under `devflow/`
|
|
53
|
+
- update bundled helper scripts to prefer `devflow/ROADMAP.md` and `devflow/BACKLOG.md`, while still falling back to the recent repo-root paths and the older `devflow/roadmap/*` paths
|
|
54
|
+
- realign skill docs, public guides, and registry/bootstrap tests with the restored canonical paths
|
|
55
|
+
|
|
56
|
+
Migration note:
|
|
57
|
+
|
|
58
|
+
- new roadmap runs should write `devflow/ROADMAP.md` and `devflow/BACKLOG.md`
|
|
59
|
+
- if you temporarily have repo-root `ROADMAP.md` / `BACKLOG.md` from v3.0.0, move them back under `devflow/`
|
|
60
|
+
- helper scripts now resolve files in this order: `devflow/*.md` -> repo-root `*.md` -> legacy `devflow/roadmap/*.md`
|
|
61
|
+
|
|
62
|
+
## v3.0.0 - 2026-04-17
|
|
63
|
+
|
|
64
|
+
- change `cc-roadmap` durable outputs to repo-root `ROADMAP.md` and `BACKLOG.md`, aligning the skill contract with README, examples, and live usage
|
|
65
|
+
- require roadmap output to include an explicit `RM Dependency Graph` plus `Parallel Waves`, so serial blockers and concurrent work are visible
|
|
66
|
+
- upgrade backlog handoff fields to record `Depends On` and `Parallel With`
|
|
67
|
+
- update bundled helper scripts to prefer repo-root files and fall back to legacy `devflow/roadmap/*` files when present
|
|
68
|
+
|
|
69
|
+
Migration note:
|
|
70
|
+
|
|
71
|
+
- new roadmap runs should write repo-root `ROADMAP.md` and `BACKLOG.md`
|
|
72
|
+
- helper scripts still read legacy `devflow/roadmap/*` files as fallback, but the canonical path is now the repo root
|
|
73
|
+
- if you maintain automation that parses the `Implementation Tracking` table, account for the new `Depends On` column before `Status`
|
|
74
|
+
|
|
75
|
+
## v2.2.0 - 2026-04-17
|
|
76
|
+
|
|
77
|
+
- convert public frontmatter from loose prose into structured harness contract fields: `triggers`, `reads`, `writes`, `entry_gate`, `exit_criteria`, `reroutes`, `recovery_modes`, `tool_budget`
|
|
78
|
+
- add `Harness Contract` to `SKILL.md` and `Visible State Machine` to `PLAYBOOK.md`
|
|
79
|
+
- make roadmap explicitly skill-first: strategy stays in skill text and artifacts instead of hidden harness behavior
|
|
80
|
+
|
|
81
|
+
Migration note:
|
|
82
|
+
|
|
83
|
+
- any downstream tooling that only read `name` and `description` can keep working, but new registry consumers should prefer the structured contract fields
|
|
84
|
+
- roadmap users do not need to change existing `ROADMAP.md` / `BACKLOG.md` files; the new contract only makes the operating rules explicit
|
|
85
|
+
|
|
86
|
+
## v2.1.0 - 2026-04-15
|
|
87
|
+
|
|
88
|
+
- 增强 frontmatter `description`,补充中英文触发词,提升命中率。
|
|
89
|
+
- 新增 `Quick Start` 和 `Route Selection Rule`,把首次路线判断前置成更易执行的入口。
|
|
90
|
+
- 新增 `Recommendation Test`,要求推荐必须同时说明“为什么选它”和“为什么不先做另外两条”。
|
|
91
|
+
- 升级 `ROADMAP_TEMPLATE.md`,增加 `Recommended Route` 区块。
|
|
92
|
+
- 升级 `BACKLOG_TEMPLATE.md`,让 ready 项显式写清“为什么现在 ready”。
|
|
93
|
+
|
|
94
|
+
Migration note:
|
|
95
|
+
|
|
96
|
+
- 旧版 `ROADMAP.md` / `BACKLOG.md` 可以继续使用;建议在下次重跑 roadmap 时补齐 `Recommended Route` 和 ready rationale,以减少后续 `cc-plan` 阶段的解释成本。
|
|
97
|
+
|
|
98
|
+
## v2.0.0 - 2026-04-10
|
|
99
|
+
|
|
100
|
+
- 增加 `version` frontmatter,并定义 roadmap skill 的 semver 规则。
|
|
101
|
+
- 强化 `Context Sweep`,要求先读取现有 roadmap、文档、最近提交、forcing functions,再开始追问。
|
|
102
|
+
- 增加 `Approval Gates` 与 `Review Loop`,避免没有证据、没有退出信号的伪路线图。
|
|
103
|
+
- 升级 `ROADMAP_TEMPLATE.md`,加入 metadata、context snapshot、evidence ledger、route options、dependencies、kill signal、版本差异记录。
|
|
104
|
+
- 升级 `BACKLOG_TEMPLATE.md`,让事项带上 evidence、dependency、next decision、ready 状态。
|
|
105
|
+
- 新增 `scripts/bump-skill-version.sh`,用于递增 skill 版本并同步 changelog。
|
|
106
|
+
|
|
107
|
+
Migration note:
|
|
108
|
+
|
|
109
|
+
- 旧版 `ROADMAP.md` / `BACKLOG.md` 仍可继续使用,但建议补齐新模板里的 metadata、evidence、dependencies、kill signal、ready 字段。
|
|
110
|
+
- `Implementation Tracking` 表保持兼容,`scripts/sync-roadmap-progress.sh` 无需修改。
|
|
111
|
+
|
|
112
|
+
## v1.0.0 - 2026-04-10
|
|
113
|
+
|
|
114
|
+
- 初始版 roadmap skill,提供基础路线图和 backlog 产物。
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
# Roadmap Playbook
|
|
2
|
+
|
|
3
|
+
## Visible State Machine
|
|
4
|
+
|
|
5
|
+
`roadmap` is the only strategy stage.
|
|
6
|
+
|
|
7
|
+
- Enter from: project kickoff, backlog drift, or strategy reset.
|
|
8
|
+
- Stay in: `roadmap` while direction is still being argued or evidence is incomplete.
|
|
9
|
+
- Exit to: `cc-plan` once one approved roadmap item becomes the next concrete requirement.
|
|
10
|
+
|
|
11
|
+
## Core Rules
|
|
12
|
+
|
|
13
|
+
1. 先读上下文,再问现实,不先写愿景。
|
|
14
|
+
2. 一次只推进一个关键未知点。
|
|
15
|
+
3. 只定 1-3 个阶段,不写愿望清单。
|
|
16
|
+
4. 通过 `roadmap` 只能产出方向,不能偷拆实现任务。
|
|
17
|
+
5. 没有证据时写 assumption,不准冒充事实。
|
|
18
|
+
6. 每次都必须明确推荐一条路线,不准只列选项不下判断。
|
|
19
|
+
|
|
20
|
+
## Local Kit
|
|
21
|
+
|
|
22
|
+
- 生成骨架时用 `assets/ROADMAP_TEMPLATE.md` 和 `assets/BACKLOG_TEMPLATE.md`
|
|
23
|
+
- 需要结构化 tracking 时用 `assets/TRACKING_TEMPLATE.json`
|
|
24
|
+
- 需要追问脚本时看 `references/roadmap-dialogue.md`
|
|
25
|
+
- 需要定位 / 回写条目时用 `scripts/locate-roadmap-item.sh` 和 `scripts/sync-roadmap-progress.sh`
|
|
26
|
+
- `scripts/locate-roadmap-item.sh` 先读 `roadmap-tracking.json`,再回落到 `ROADMAP.md` / `BACKLOG.md`,避免定位依赖 markdown 列位或文案漂移
|
|
27
|
+
- 只想把 sidecar 重渲染回 `ROADMAP.md` / `BACKLOG.md` 时,直接调用 `scripts/roadmap-tracking.js render`
|
|
28
|
+
- `scripts/sync-roadmap-progress.sh` 会把 `roadmap-tracking.json` 当真相源,再回渲染 `ROADMAP.md` 和 `BACKLOG.md`
|
|
29
|
+
- 变更版本时同步 `CHANGELOG.md`,必要时用 `scripts/bump-skill-version.sh`
|
|
30
|
+
|
|
31
|
+
## Context Sweep
|
|
32
|
+
|
|
33
|
+
进入 roadmap 对话前,至少摸清:
|
|
34
|
+
|
|
35
|
+
1. 现有 `devflow/ROADMAP.md` / `devflow/BACKLOG.md`
|
|
36
|
+
2. `CLAUDE.md`、`README*`、`TODOS.md`
|
|
37
|
+
3. 最近相关 docs / specs / plans
|
|
38
|
+
4. 最近相关提交、当前工作树状态、正在推进的 requirement
|
|
39
|
+
5. 现实 forcing functions:deadline、distribution、资源、依赖、当前卡点
|
|
40
|
+
|
|
41
|
+
先把这些材料压成 `Context Snapshot`,再追问用户。
|
|
42
|
+
|
|
43
|
+
## Force Reality First
|
|
44
|
+
|
|
45
|
+
至少逼清这 5 件事:
|
|
46
|
+
|
|
47
|
+
1. 这个项目真正服务谁
|
|
48
|
+
2. 用户今天用什么笨办法解决
|
|
49
|
+
3. 为什么他们现在就会想要这个东西
|
|
50
|
+
4. 最窄但最有穿透力的第一阶段是什么
|
|
51
|
+
5. 未来 6-12 个月产品会自然长成什么样
|
|
52
|
+
|
|
53
|
+
同时补齐这 4 件落地信息:
|
|
54
|
+
|
|
55
|
+
6. 当前最强证据是什么
|
|
56
|
+
7. deadline / capacity / dependency / distribution 约束是什么
|
|
57
|
+
8. 当前最大的 adoption / trust / delivery 卡点是什么
|
|
58
|
+
9. 成功与失败的判断信号是什么
|
|
59
|
+
|
|
60
|
+
## Route Shapes
|
|
61
|
+
|
|
62
|
+
- `wedge-first`: 用一个极窄切口先打穿真实需求
|
|
63
|
+
- `platform-first`: 先搭通后续阶段复用的关键底座
|
|
64
|
+
- `rescue-first`: 先解决当前最大的 adoption / trust / delivery 卡点
|
|
65
|
+
|
|
66
|
+
推荐时必须回答:为什么这条主线比其他两条更值得先打。
|
|
67
|
+
|
|
68
|
+
## Recommendation Test
|
|
69
|
+
|
|
70
|
+
写完推荐后,快速自检:
|
|
71
|
+
|
|
72
|
+
1. 如果删掉路线名,别人还能从理由里猜出为什么是这条吗?
|
|
73
|
+
2. 有没有明确说“不先做另外两条”的原因?
|
|
74
|
+
3. Stage 1 的 win signal 能不能在 1-2 个周期内看到?
|
|
75
|
+
4. 如果 Stage 1 输了,kill signal 是不是具体到可以止损?
|
|
76
|
+
|
|
77
|
+
## Stage Contract
|
|
78
|
+
|
|
79
|
+
每个阶段至少要有:
|
|
80
|
+
|
|
81
|
+
1. `Goal`
|
|
82
|
+
2. `Why now`
|
|
83
|
+
3. `Dependencies`
|
|
84
|
+
4. `Exit signal`
|
|
85
|
+
5. `Kill signal`
|
|
86
|
+
6. `Non-goals`
|
|
87
|
+
7. 可以自然长成下一轮 `cc-plan` 的候选事项
|
|
88
|
+
|
|
89
|
+
## Dependency Contract
|
|
90
|
+
|
|
91
|
+
1. `Depends On` 只写硬阻塞,不写“最好先做”的软顺序。
|
|
92
|
+
2. 至少画出一份 `RM Dependency Graph`,让串行主链和并行分支一眼可见。
|
|
93
|
+
3. 至少列出一组 `Parallel waves`,说明哪些事项可共享同一前置后并发推进。
|
|
94
|
+
4. 如果图里出现环,说明阶段切分错了,先重切,不要硬解释。
|
|
95
|
+
|
|
96
|
+
## Output Contract
|
|
97
|
+
|
|
98
|
+
`devflow/ROADMAP.md`
|
|
99
|
+
- version / skill version / context snapshot / evidence ledger
|
|
100
|
+
- 1-3 个阶段
|
|
101
|
+
- 每阶段目标
|
|
102
|
+
- 每阶段存在原因
|
|
103
|
+
- 每阶段 dependencies
|
|
104
|
+
- 每阶段 exit signal
|
|
105
|
+
- 每阶段 kill signal
|
|
106
|
+
- 非目标
|
|
107
|
+
- `RM Dependency Graph`
|
|
108
|
+
- `Parallel waves`
|
|
109
|
+
- `Implementation Tracking` 由 `devflow/roadmap-tracking.json` 渲染,避免手改 markdown 表格列位
|
|
110
|
+
|
|
111
|
+
`devflow/BACKLOG.md`
|
|
112
|
+
- 只保留会真的进入下一轮 `cc-plan` 的事项
|
|
113
|
+
- 每项注明来源阶段、优先级、证据、`Depends On`、`Parallel With`、当前未知点、下一决策、是否 ready
|
|
114
|
+
- `Backlog Meta`、`Queue`、`Dependency Handoff`、`Ready For Req-Plan`、`Parked` 可由 `devflow/roadmap-tracking.json` 回渲染,避免 roadmap truth 和 backlog handoff 分叉
|
|
115
|
+
|
|
116
|
+
## Review Loop
|
|
117
|
+
|
|
118
|
+
交付前至少扫一遍:
|
|
119
|
+
|
|
120
|
+
1. 有没有 placeholder
|
|
121
|
+
2. 阶段之间是否有因果链
|
|
122
|
+
3. 阶段目标是否真能被当前资源支撑
|
|
123
|
+
4. `RM Dependency Graph` 是否只有硬依赖、没有环
|
|
124
|
+
5. ready 项是否真能进入 `cc-plan`
|
|
125
|
+
6. 本次版本相比上一版到底改了什么
|
|
126
|
+
|
|
127
|
+
## Versioning
|
|
128
|
+
|
|
129
|
+
- `patch`: 文案澄清、模板说明、小修补
|
|
130
|
+
- `minor`: 上下文收集、评审、字段增强,且不破坏既有 tracking 习惯
|
|
131
|
+
- `major`: 核心输出契约变化,需要 migration note
|
|
132
|
+
|
|
133
|
+
## Exit Rule
|
|
134
|
+
|
|
135
|
+
只有当第一批 requirement 能从阶段主线自然长出来时,`roadmap` 才算完成。
|
|
136
|
+
如果用户看完还会问“所以现在到底先做什么”,说明 roadmap 还没写好。
|