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,259 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: cc-roadmap
|
|
3
|
+
version: 4.3.1
|
|
4
|
+
description: "Use when defining, resetting, or narrowing project direction, stage order, or backlog priority before a concrete requirement enters the PDCA loop."
|
|
5
|
+
triggers:
|
|
6
|
+
- "帮我定路线图"
|
|
7
|
+
- "下一阶段先做什么"
|
|
8
|
+
- "backlog 太乱了"
|
|
9
|
+
- "项目方向散了"
|
|
10
|
+
- "roadmap this project"
|
|
11
|
+
- "what should we build next"
|
|
12
|
+
- "reset the roadmap"
|
|
13
|
+
- "prioritize the backlog"
|
|
14
|
+
reads:
|
|
15
|
+
- "PLAYBOOK.md"
|
|
16
|
+
- "CHANGELOG.md"
|
|
17
|
+
- "assets/ROADMAP_TEMPLATE.md"
|
|
18
|
+
- "assets/BACKLOG_TEMPLATE.md"
|
|
19
|
+
- "assets/TRACKING_TEMPLATE.json"
|
|
20
|
+
- "references/roadmap-dialogue.md"
|
|
21
|
+
writes:
|
|
22
|
+
- path: "devflow/ROADMAP.md"
|
|
23
|
+
durability: "durable"
|
|
24
|
+
required: true
|
|
25
|
+
- path: "devflow/BACKLOG.md"
|
|
26
|
+
durability: "durable"
|
|
27
|
+
required: true
|
|
28
|
+
- path: "devflow/roadmap-tracking.json"
|
|
29
|
+
durability: "durable"
|
|
30
|
+
required: false
|
|
31
|
+
when: "roadmap/backlog tracking is maintained through bundled helper scripts"
|
|
32
|
+
entry_gate:
|
|
33
|
+
- "Read current roadmap, backlog, related capability specs, and surrounding repo context before proposing direction."
|
|
34
|
+
- "Confirm this is a project-direction problem, not a single requirement execution problem."
|
|
35
|
+
- "Do not decompose implementation tasks while the roadmap is still being decided."
|
|
36
|
+
exit_criteria:
|
|
37
|
+
- "The next 1-3 stages are frozen with goal, why now, dependencies, exit signal, kill signal, and non-goals."
|
|
38
|
+
- "The first backlog items can naturally enter cc-plan without extra strategic guessing, including explicit capability links and expected spec delta."
|
|
39
|
+
- "The roadmap shows an explicit RM dependency graph so serial blockers and parallel-ready work are obvious."
|
|
40
|
+
- "The user-approved recommendation is explicit and grounded in current evidence."
|
|
41
|
+
reroutes:
|
|
42
|
+
- when: "The user is already discussing one concrete requirement, bug, or execution task."
|
|
43
|
+
target: "cc-plan"
|
|
44
|
+
recovery_modes:
|
|
45
|
+
- name: "re-scan-context"
|
|
46
|
+
when: "The current direction no longer matches repo reality, roadmap files, or the latest user constraint."
|
|
47
|
+
action: "Reload the roadmap sources, rewrite Context Snapshot, and recompute the recommended route before continuing."
|
|
48
|
+
tool_budget:
|
|
49
|
+
read_files: 8
|
|
50
|
+
search_steps: 5
|
|
51
|
+
shell_commands: 4
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
# Roadmap
|
|
55
|
+
|
|
56
|
+
> [PROTOCOL]: 变更时同步更新 `version`、`CHANGELOG.md`、相关模板/脚本引用,必要时写 migration note,然后检查 `CLAUDE.md`
|
|
57
|
+
|
|
58
|
+
## Role
|
|
59
|
+
|
|
60
|
+
`cc-roadmap` 只负责一件事:决定项目接下来 1-3 个阶段该推进哪几个 capability。
|
|
61
|
+
|
|
62
|
+
它先尽可能收集真实上下文,再逼出真实用户、真实痛点、真实紧迫性,最后把这些现实压成一条能落地、能进入 `cc-plan` 的主线。
|
|
63
|
+
|
|
64
|
+
## Read First
|
|
65
|
+
|
|
66
|
+
1. `PLAYBOOK.md`
|
|
67
|
+
2. `CHANGELOG.md`
|
|
68
|
+
3. `assets/ROADMAP_TEMPLATE.md`
|
|
69
|
+
4. `assets/BACKLOG_TEMPLATE.md`
|
|
70
|
+
5. `references/roadmap-dialogue.md`
|
|
71
|
+
|
|
72
|
+
## Use This Skill When
|
|
73
|
+
|
|
74
|
+
- 新项目刚开始
|
|
75
|
+
- 项目做到一半,方向开始发散
|
|
76
|
+
- backlog 很多,但主线不清楚
|
|
77
|
+
- 你需要决定接下来 1-3 个阶段先做什么
|
|
78
|
+
|
|
79
|
+
如果用户已经在讨论一个明确 requirement、一个 bug 或一组实现任务,停止留在这里,转去 `cc-plan`。
|
|
80
|
+
|
|
81
|
+
## Quick Start
|
|
82
|
+
|
|
83
|
+
如果用户只给了一个模糊问题,先把它归到下面 3 类之一,再继续问:
|
|
84
|
+
|
|
85
|
+
| 用户信号 | 先读成什么问题 | 默认路线形状 |
|
|
86
|
+
|---------|---------------|-------------|
|
|
87
|
+
| “不知道下一步做什么” | 主线不清 | `wedge-first` |
|
|
88
|
+
| “后面几阶段都会重复碰同一底座” | 底座风险 | `platform-first` |
|
|
89
|
+
| “增长/交付/信任卡住了” | 当前最大瓶颈 | `rescue-first` |
|
|
90
|
+
|
|
91
|
+
先给一个**默认推荐**,再解释为什么,不要把用户扔进开放式战略讨论。
|
|
92
|
+
|
|
93
|
+
## Harness Contract
|
|
94
|
+
|
|
95
|
+
- Allowed actions: read current strategy files, repo context, and recent reality; compare route shapes; write `devflow/ROADMAP.md`, `devflow/BACKLOG.md`, and the optional `devflow/roadmap-tracking.json` sidecar used by bundled helpers as the shared roadmap/backlog truth source.
|
|
96
|
+
- Forbidden actions: decompose implementation tasks, invent hidden context, or jump into `cc-plan` before the roadmap is approved.
|
|
97
|
+
- Required evidence: every stage and backlog item must point back to explicit repo facts, user constraints, or observed market signals.
|
|
98
|
+
- Reroute rule: once the conversation collapses to one concrete requirement, stop strategic expansion and hand off to `cc-plan`.
|
|
99
|
+
|
|
100
|
+
## Entry Gate
|
|
101
|
+
|
|
102
|
+
1. 如果 `devflow/ROADMAP.md` / `devflow/BACKLOG.md` 已存在,先读现状再重写。
|
|
103
|
+
2. 先判断这是“项目方向问题”还是“单 requirement 执行问题”。
|
|
104
|
+
3. 先做一次上下文扫描,不能跳过现有事实直接写愿景。
|
|
105
|
+
4. 方向没被批准前,不准把 roadmap 偷偷下放成实现任务。
|
|
106
|
+
|
|
107
|
+
## Context Sweep
|
|
108
|
+
|
|
109
|
+
进入对话前,至少主动收这些上下文:
|
|
110
|
+
|
|
111
|
+
1. 当前 `devflow/ROADMAP.md` / `devflow/BACKLOG.md` 的主线、版本、已停放事项。
|
|
112
|
+
2. `devflow/specs/INDEX.md` 与相关 capability specs 的边界、状态、open gaps。
|
|
113
|
+
3. `CLAUDE.md`、`README*`、`TODOS.md`、最近相关 docs / specs / plans。
|
|
114
|
+
4. 最近相关提交、当前分支脏状态、正在进行中的 requirement。
|
|
115
|
+
5. 真实 forcing functions:deadline、发布窗口、资源上限、依赖、distribution、adoption / trust / delivery 卡点。
|
|
116
|
+
6. 当前项目最强的现实证据,以及仍然只能靠假设的空白。
|
|
117
|
+
|
|
118
|
+
先把这些材料压成一个 `Context Snapshot`,再开始追问用户。
|
|
119
|
+
|
|
120
|
+
## Session Protocol
|
|
121
|
+
|
|
122
|
+
1. 先探索上下文,不靠默认上下文注入替代阅读。
|
|
123
|
+
2. 先问现实,不先写愿景。
|
|
124
|
+
3. 一次只推进一个关键未知点,不要一口气抛一串问题。
|
|
125
|
+
4. 先写 `Context Snapshot`、证据、约束、非目标,再讨论阶段。
|
|
126
|
+
5. 给出 2-3 种路线图形状,再明确推荐一种,并说明为什么其他路线现在不值得打。
|
|
127
|
+
6. 只冻结 1-3 个阶段。每个阶段都必须有 goal、why now、dependencies、exit signal、kill signal、non-goals。
|
|
128
|
+
7. 把 `RM` 之间的硬依赖压成显式 dependency graph,并标出 parallel-ready wave;不要把“最好按这个顺序做”伪装成 blocker。
|
|
129
|
+
8. backlog 只保留会真的进入下一轮 `cc-plan` 的事项,每项都要带成功信号、下一决策、`Primary Capability`、`Secondary Capabilities`、`Expected Spec Delta`、`Depends On` 与 `Parallel With`。
|
|
130
|
+
9. 用户没批准,不进入 `cc-plan`。
|
|
131
|
+
|
|
132
|
+
## Route Selection Rule
|
|
133
|
+
|
|
134
|
+
给出 2-3 条路线后,必须明确推荐其中一条。推荐格式至少回答这 4 件事:
|
|
135
|
+
|
|
136
|
+
1. 为什么这条路线最符合当前证据
|
|
137
|
+
2. 为什么另外两条现在不值得先打
|
|
138
|
+
3. 这条路线最早会在哪个 signal 上赢
|
|
139
|
+
4. 如果这个 signal 没出现,什么时候该止损
|
|
140
|
+
|
|
141
|
+
推荐话术要像这样:
|
|
142
|
+
|
|
143
|
+
> Recommendation: `wedge-first`, because the strongest current evidence is demand uncertainty, not platform pain. We should earn the right to build the base layer after Stage 1 proves pull.
|
|
144
|
+
|
|
145
|
+
不要只写:
|
|
146
|
+
|
|
147
|
+
- “建议先做 wedge-first”
|
|
148
|
+
- “这条更合理”
|
|
149
|
+
- “综合来看最优”
|
|
150
|
+
|
|
151
|
+
## Ask
|
|
152
|
+
|
|
153
|
+
至少要逼清这 5 件事:
|
|
154
|
+
|
|
155
|
+
1. 这个项目真正服务谁
|
|
156
|
+
2. 用户今天用什么笨办法解决
|
|
157
|
+
3. 为什么他们会立刻想要这个东西
|
|
158
|
+
4. 最窄但最有穿透力的第一阶段是什么
|
|
159
|
+
5. 未来 6-12 个月,产品会长成什么样
|
|
160
|
+
|
|
161
|
+
同时尽量补齐这些落地上下文:
|
|
162
|
+
|
|
163
|
+
6. 当前最强证据是什么,哪些只是想象
|
|
164
|
+
7. deadline / team / budget / dependency / distribution 的硬约束是什么
|
|
165
|
+
8. 当前最大的 adoption、trust、delivery 卡点是什么
|
|
166
|
+
9. 这个 roadmap 成功与失败各自用什么信号判断
|
|
167
|
+
|
|
168
|
+
## Approval Gates
|
|
169
|
+
|
|
170
|
+
1. 没有 `Context Snapshot`,不准给路线推荐。
|
|
171
|
+
2. 没有 2-3 条路线对比,不准直接拍脑袋定主线。
|
|
172
|
+
3. 没有 exit signal / kill signal / non-goals,不算阶段冻结。
|
|
173
|
+
4. 没有明确成功信号和下一决策,不准把事项放进 `Ready For Req-Plan`。
|
|
174
|
+
5. 没有 `RM dependency graph` 或 parallel-ready wave,不准宣称事项可以并发推进。
|
|
175
|
+
6. 没有用户批准,不准把 roadmap item 下放到 `cc-plan`。
|
|
176
|
+
|
|
177
|
+
## Review Loop
|
|
178
|
+
|
|
179
|
+
写完 `devflow/ROADMAP.md` / `devflow/BACKLOG.md` 后,至少完成这 6 个检查:
|
|
180
|
+
|
|
181
|
+
1. Placeholder scan:不能有 TBD、TODO、`[NEEDS CONTEXT]` 之类的逃避词。
|
|
182
|
+
2. Evidence scan:每个阶段是否都能指回某个现实证据,而不是空洞愿景。
|
|
183
|
+
3. Causality scan:Stage 2 是否真的建立在 Stage 1 的胜利条件之上。
|
|
184
|
+
4. Feasibility scan:阶段目标与团队容量、依赖、distribution 约束是否接得上。
|
|
185
|
+
5. Graph scan:`Depends On` 是否只包含硬阻塞,图里有没有环,parallel-ready wave 是否真的共享同一前置。
|
|
186
|
+
6. Spec scan:每个 roadmap item 是否都落到某个 capability,而不是悬空需求。
|
|
187
|
+
7. Handoff scan:第一批 roadmap item 是否已经自然长成可进入 `cc-plan` 的对象。
|
|
188
|
+
|
|
189
|
+
## Output
|
|
190
|
+
|
|
191
|
+
- `devflow/ROADMAP.md`
|
|
192
|
+
- `devflow/BACKLOG.md`
|
|
193
|
+
- `devflow/roadmap-tracking.json` when helper automation needs a shared roadmap/backlog truth source
|
|
194
|
+
|
|
195
|
+
## Good Output
|
|
196
|
+
|
|
197
|
+
一个高质量 roadmap 交付后,用户应该一眼看懂:
|
|
198
|
+
|
|
199
|
+
1. 现在先打哪一仗
|
|
200
|
+
2. 为什么不是另外两仗
|
|
201
|
+
3. 哪个 signal 说明这一仗赢了
|
|
202
|
+
4. 哪些 backlog 项已经真的 ready for `cc-plan`
|
|
203
|
+
5. 哪些 `RM` 必须串行,哪些已经可以并行开会话
|
|
204
|
+
|
|
205
|
+
## Versioning
|
|
206
|
+
|
|
207
|
+
`cc-roadmap` 自身使用 semver:
|
|
208
|
+
|
|
209
|
+
- `patch`:措辞、模板字段说明、非契约性澄清
|
|
210
|
+
- `minor`:新增兼容字段、上下文收集规则、评审规则、输出结构增强
|
|
211
|
+
- `major`:改变 `devflow/ROADMAP.md` / `devflow/BACKLOG.md` 的核心契约、阶段模型或 handoff 预期
|
|
212
|
+
|
|
213
|
+
每次修改都必须:
|
|
214
|
+
|
|
215
|
+
1. 更新本文件 frontmatter 的 `version`
|
|
216
|
+
2. 更新 `CHANGELOG.md`
|
|
217
|
+
3. 如果会影响已有 `devflow/ROADMAP.md` / `devflow/BACKLOG.md` 使用方式,在 `CHANGELOG.md` 写清 migration note
|
|
218
|
+
|
|
219
|
+
## Bundled Resources
|
|
220
|
+
|
|
221
|
+
- 变更记录:`CHANGELOG.md`
|
|
222
|
+
- 模板:`assets/ROADMAP_TEMPLATE.md`
|
|
223
|
+
- 模板:`assets/BACKLOG_TEMPLATE.md`
|
|
224
|
+
- 结构化 tracking 模板:`assets/TRACKING_TEMPLATE.json`
|
|
225
|
+
- 对话骨架:`references/roadmap-dialogue.md`
|
|
226
|
+
- 条目定位:`scripts/locate-roadmap-item.sh`
|
|
227
|
+
- tracking 渲染器:`scripts/roadmap-tracking.js`
|
|
228
|
+
- 进度回写:`scripts/sync-roadmap-progress.sh`
|
|
229
|
+
- 版本递增:`scripts/bump-skill-version.sh`
|
|
230
|
+
|
|
231
|
+
## Exit Criteria
|
|
232
|
+
|
|
233
|
+
- 中长期方向清楚
|
|
234
|
+
- 核心上下文、证据和硬约束已经显式记录
|
|
235
|
+
- 阶段目标与优先级清楚
|
|
236
|
+
- 第一批 requirement 从 roadmap 里自然长出来
|
|
237
|
+
- 下一步唯一答案是把某个 roadmap item 放进 `cc-plan`
|
|
238
|
+
|
|
239
|
+
## Working Rules
|
|
240
|
+
|
|
241
|
+
1. 先收上下文,再收意见。
|
|
242
|
+
2. 没有现实证据时必须明确写成 assumption,而不是偷偷当事实。
|
|
243
|
+
3. `devflow/ROADMAP.md` 是方向真相源,`devflow/BACKLOG.md` 是进入下一轮规划的缓冲区。
|
|
244
|
+
4. 决策理由必须保留下来,方便以后重跑时比较版本差异。
|
|
245
|
+
5. 不要为了显得完整而写 6 个阶段,能打赢下一仗比画完整战争图更重要。
|
|
246
|
+
|
|
247
|
+
## Do Not
|
|
248
|
+
|
|
249
|
+
- 不在这里拆实现任务
|
|
250
|
+
- 不把 roadmap 写成愿望清单
|
|
251
|
+
- 不讨论 20 个阶段,只定最重要的 1-3 步
|
|
252
|
+
- 不靠默认上下文注入替代思考
|
|
253
|
+
- 不把没有证据支撑的猜测包装成战略
|
|
254
|
+
- 不让 backlog 变成“以后再说”的垃圾堆
|
|
255
|
+
|
|
256
|
+
## Companion Files
|
|
257
|
+
|
|
258
|
+
- 深入剧本:`PLAYBOOK.md`
|
|
259
|
+
- 路线图对话:`references/roadmap-dialogue.md`
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# BACKLOG
|
|
2
|
+
|
|
3
|
+
## Backlog Meta
|
|
4
|
+
|
|
5
|
+
- Roadmap version:
|
|
6
|
+
- Skill version:
|
|
7
|
+
- Last synced:
|
|
8
|
+
- Current focus stage:
|
|
9
|
+
- Tracking source: `devflow/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 | | Stage 1 | P1 | cap-example | - | | | | - | - | | | No |
|
|
16
|
+
|
|
17
|
+
## Dependency Handoff
|
|
18
|
+
|
|
19
|
+
- Serial spine:
|
|
20
|
+
- Parallel-ready next wave:
|
|
21
|
+
- Notes on blockers:
|
|
22
|
+
|
|
23
|
+
## Ready For Req-Plan
|
|
24
|
+
|
|
25
|
+
- RM-001:
|
|
26
|
+
- Primary Capability:
|
|
27
|
+
- Secondary Capabilities:
|
|
28
|
+
- Why now:
|
|
29
|
+
- Success signal:
|
|
30
|
+
- Entry constraints:
|
|
31
|
+
- Capability gap:
|
|
32
|
+
- Expected spec delta:
|
|
33
|
+
- Open risks:
|
|
34
|
+
- First planning question:
|
|
35
|
+
- Required context to load:
|
|
36
|
+
- Depends On:
|
|
37
|
+
- Parallel With:
|
|
38
|
+
- Why this is ready now:
|
|
39
|
+
|
|
40
|
+
## Parked
|
|
41
|
+
|
|
42
|
+
- RM-XXX:
|
|
43
|
+
- Reason parked:
|
|
44
|
+
- Trigger to reopen:
|
|
45
|
+
- Missing evidence:
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
# ROADMAP
|
|
2
|
+
|
|
3
|
+
## Roadmap Meta
|
|
4
|
+
|
|
5
|
+
- Roadmap version:
|
|
6
|
+
- Skill version:
|
|
7
|
+
- Status:
|
|
8
|
+
- Last updated:
|
|
9
|
+
- Owner / decider:
|
|
10
|
+
- Current focus stage:
|
|
11
|
+
- Confidence:
|
|
12
|
+
- Supersedes roadmap version:
|
|
13
|
+
|
|
14
|
+
## Context Snapshot
|
|
15
|
+
|
|
16
|
+
- Product / repo:
|
|
17
|
+
- Project stage:
|
|
18
|
+
- Users:
|
|
19
|
+
- Pain:
|
|
20
|
+
- Existing workaround:
|
|
21
|
+
- Strongest demand evidence:
|
|
22
|
+
- Why now:
|
|
23
|
+
- Distribution path:
|
|
24
|
+
- Deadline / forcing function:
|
|
25
|
+
- Team / capacity:
|
|
26
|
+
- Hard constraints:
|
|
27
|
+
- Adoption / trust bottleneck:
|
|
28
|
+
- Known unknowns:
|
|
29
|
+
- Relevant capabilities:
|
|
30
|
+
|
|
31
|
+
## Evidence Ledger
|
|
32
|
+
|
|
33
|
+
| Signal | Evidence | Confidence | Source | Why it matters |
|
|
34
|
+
|--------|----------|------------|--------|----------------|
|
|
35
|
+
| Demand | | High / Med / Low | | |
|
|
36
|
+
| Timing | | High / Med / Low | | |
|
|
37
|
+
| Feasibility | | High / Med / Low | | |
|
|
38
|
+
| Distribution | | High / Med / Low | | |
|
|
39
|
+
|
|
40
|
+
## Route Options
|
|
41
|
+
|
|
42
|
+
| Shape | Why this could work | Why this may fail | Decision |
|
|
43
|
+
|-------|---------------------|-------------------|----------|
|
|
44
|
+
| wedge-first | | | Recommended / Rejected |
|
|
45
|
+
| platform-first | | | Rejected |
|
|
46
|
+
| rescue-first | | | Rejected |
|
|
47
|
+
|
|
48
|
+
## Recommended Route
|
|
49
|
+
|
|
50
|
+
- Recommendation:
|
|
51
|
+
- Why this route wins now:
|
|
52
|
+
- Why the rejected routes lose now:
|
|
53
|
+
- First signal to watch:
|
|
54
|
+
- Kill signal / stop condition:
|
|
55
|
+
|
|
56
|
+
## Product Thesis
|
|
57
|
+
|
|
58
|
+
- Users:
|
|
59
|
+
- Pain:
|
|
60
|
+
- Why now:
|
|
61
|
+
- Strategic wedge:
|
|
62
|
+
- Product promise:
|
|
63
|
+
- What we refuse to build yet:
|
|
64
|
+
- 6-12 month pull:
|
|
65
|
+
|
|
66
|
+
## Stage Overview
|
|
67
|
+
|
|
68
|
+
| Stage | Goal | Why now | Primary capabilities | Dependencies | Exit signal | Kill signal | Non-goals |
|
|
69
|
+
|-------|------|---------|----------------------|--------------|-------------|-------------|-----------|
|
|
70
|
+
| Stage 1 | | | | | | | |
|
|
71
|
+
| Stage 2 | | | | | | | |
|
|
72
|
+
| Stage 3 | | | | | | | |
|
|
73
|
+
|
|
74
|
+
## Stage Detail
|
|
75
|
+
|
|
76
|
+
### Stage 1
|
|
77
|
+
|
|
78
|
+
- Goal:
|
|
79
|
+
- Users unlocked:
|
|
80
|
+
- Why this stage exists:
|
|
81
|
+
- Entry assumptions:
|
|
82
|
+
- Deliverables:
|
|
83
|
+
- Dependencies:
|
|
84
|
+
- Win condition:
|
|
85
|
+
- Key risks:
|
|
86
|
+
- Kill signal:
|
|
87
|
+
- What must stay out:
|
|
88
|
+
- Candidate roadmap items:
|
|
89
|
+
|
|
90
|
+
### Stage 2
|
|
91
|
+
|
|
92
|
+
- Goal:
|
|
93
|
+
- Users unlocked:
|
|
94
|
+
- Why this stage exists:
|
|
95
|
+
- Entry assumptions:
|
|
96
|
+
- Deliverables:
|
|
97
|
+
- Dependencies:
|
|
98
|
+
- Win condition:
|
|
99
|
+
- Key risks:
|
|
100
|
+
- Kill signal:
|
|
101
|
+
- What must stay out:
|
|
102
|
+
- Candidate roadmap items:
|
|
103
|
+
|
|
104
|
+
### Stage 3
|
|
105
|
+
|
|
106
|
+
- Goal:
|
|
107
|
+
- Users unlocked:
|
|
108
|
+
- Why this stage exists:
|
|
109
|
+
- Entry assumptions:
|
|
110
|
+
- Deliverables:
|
|
111
|
+
- Dependencies:
|
|
112
|
+
- Win condition:
|
|
113
|
+
- Key risks:
|
|
114
|
+
- Kill signal:
|
|
115
|
+
- What must stay out:
|
|
116
|
+
- Candidate roadmap items:
|
|
117
|
+
|
|
118
|
+
## RM Dependency Graph
|
|
119
|
+
|
|
120
|
+
```mermaid
|
|
121
|
+
flowchart LR
|
|
122
|
+
RM_001["RM-001 ..."] --> RM_002["RM-002 ..."]
|
|
123
|
+
RM_001 --> RM_003["RM-003 ..."]
|
|
124
|
+
RM_003 --> RM_004["RM-004 ..."]
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
- Dependency rule: `Depends On` only lists hard blockers.
|
|
128
|
+
- Serial spine:
|
|
129
|
+
- Parallel-ready branches:
|
|
130
|
+
|
|
131
|
+
## Parallel Waves
|
|
132
|
+
|
|
133
|
+
| Wave | Ready when | Items | Why parallel |
|
|
134
|
+
|------|------------|-------|--------------|
|
|
135
|
+
| Wave 1 | | | |
|
|
136
|
+
| Wave 2 | | | |
|
|
137
|
+
|
|
138
|
+
## Decision Notes
|
|
139
|
+
|
|
140
|
+
- Rejected path A:
|
|
141
|
+
- Rejected path B:
|
|
142
|
+
- Open assumptions to verify next:
|
|
143
|
+
- What changed in this version:
|
|
144
|
+
|
|
145
|
+
## Implementation Tracking
|
|
146
|
+
|
|
147
|
+
- Tracking source: `devflow/roadmap-tracking.json`
|
|
148
|
+
|
|
149
|
+
<!-- roadmap-tracking:start -->
|
|
150
|
+
| RM-ID | Item | Stage | Priority | Primary Capability | Secondary Capabilities | Expected Spec Delta | Depends On | Status | REQ | Progress |
|
|
151
|
+
|------|------|-------|----------|--------------------|------------------------|---------------------|------------|--------|-----|----------|
|
|
152
|
+
| RM-001 | | Stage 1 | P1 | cap-example | - | tighten current truth | - | Planned | - | 0% |
|
|
153
|
+
<!-- roadmap-tracking:end -->
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 2,
|
|
3
|
+
"lastSyncedAt": "2026-04-19",
|
|
4
|
+
"backlogMeta": {
|
|
5
|
+
"roadmapVersion": "roadmap.v1",
|
|
6
|
+
"skillVersion": "4.3.1",
|
|
7
|
+
"currentFocusStage": "Stage 1"
|
|
8
|
+
},
|
|
9
|
+
"dependencyHandoff": {
|
|
10
|
+
"serialSpine": "RM-001",
|
|
11
|
+
"parallelReadyNextWave": "-",
|
|
12
|
+
"notesOnBlockers": "-"
|
|
13
|
+
},
|
|
14
|
+
"items": [
|
|
15
|
+
{
|
|
16
|
+
"rmId": "RM-001",
|
|
17
|
+
"item": "",
|
|
18
|
+
"stage": "Stage 1",
|
|
19
|
+
"priority": "P1",
|
|
20
|
+
"primaryCapability": "cap-example",
|
|
21
|
+
"secondaryCapabilities": [],
|
|
22
|
+
"expectedSpecDelta": "tighten current truth",
|
|
23
|
+
"dependsOn": [],
|
|
24
|
+
"status": "Planned",
|
|
25
|
+
"req": "",
|
|
26
|
+
"progress": "0%",
|
|
27
|
+
"backlog": {
|
|
28
|
+
"capabilityGap": "",
|
|
29
|
+
"evidence": "",
|
|
30
|
+
"parallelWith": [],
|
|
31
|
+
"unknowns": "",
|
|
32
|
+
"nextDecision": "",
|
|
33
|
+
"ready": false,
|
|
34
|
+
"whyNow": "",
|
|
35
|
+
"successSignal": "",
|
|
36
|
+
"entryConstraints": "",
|
|
37
|
+
"openRisks": "",
|
|
38
|
+
"firstPlanningQuestion": "",
|
|
39
|
+
"requiredContextToLoad": "",
|
|
40
|
+
"whyReadyNow": "",
|
|
41
|
+
"parked": false,
|
|
42
|
+
"parkedReason": "",
|
|
43
|
+
"triggerToReopen": "",
|
|
44
|
+
"missingEvidence": ""
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
]
|
|
48
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Roadmap Dialogue
|
|
2
|
+
|
|
3
|
+
## Order
|
|
4
|
+
|
|
5
|
+
0. 先做 `Context Snapshot`:现有 roadmap / backlog、文档、最近提交、forcing functions
|
|
6
|
+
1. 用户是谁
|
|
7
|
+
2. 今天靠什么笨办法活着
|
|
8
|
+
3. 最强需求证据是什么
|
|
9
|
+
4. 为什么现在必须解决
|
|
10
|
+
5. deadline / capacity / dependency / distribution 约束是什么
|
|
11
|
+
6. 当前最大的 adoption / trust / delivery 卡点是什么
|
|
12
|
+
7. 最窄突破口是什么
|
|
13
|
+
8. 6-12 个月后会长成什么
|
|
14
|
+
9. 给出 2-3 条路线图形状并明确推荐
|
|
15
|
+
10. 冻结 1-3 个阶段,写 exit signal / kill signal / non-goals
|
|
16
|
+
11. 画出 `RM dependency graph`,标出串行主链和 parallel-ready wave
|
|
17
|
+
12. 标出哪些事项真的 ready for `cc-plan`
|
|
18
|
+
|
|
19
|
+
## Question Rules
|
|
20
|
+
|
|
21
|
+
- 一次只推进一个关键未知点
|
|
22
|
+
- 没证据时明确写 assumption
|
|
23
|
+
- 用户没批准前,不把事项偷下放成 requirement
|
|
24
|
+
|
|
25
|
+
## Route Shapes
|
|
26
|
+
|
|
27
|
+
- `wedge-first`: 先用一个窄切口打穿真实需求
|
|
28
|
+
- `platform-first`: 先做后面几阶段都会反复复用的底座
|
|
29
|
+
- `rescue-first`: 先解决 adoption、trust、delivery 里最大的卡点
|
|
30
|
+
|
|
31
|
+
## Output Rules
|
|
32
|
+
|
|
33
|
+
- 只定 1-3 个阶段
|
|
34
|
+
- 每个阶段都要有 exit signal、kill signal、non-goals
|
|
35
|
+
- `RM` 必须带 `Depends On`,并在 roadmap 里显式画出 dependency graph
|
|
36
|
+
- backlog 只收下一轮真会进入 `cc-plan` 的事项
|
|
37
|
+
- ready 项必须带成功信号、下一决策、`Depends On`、`Parallel With`
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
set -euo pipefail
|
|
4
|
+
|
|
5
|
+
# ------------------------------------------------------------
|
|
6
|
+
# roadmap 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 '# Roadmap 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 roadmap skill: ${CURRENT_VERSION} -> ${NEXT_VERSION}"
|