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,325 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: cc-plan
|
|
3
|
+
version: 3.5.3
|
|
4
|
+
description: Use when a requirement, roadmap item, or bug needs scope clarification, design decisions, and executable task breakdown before coding starts.
|
|
5
|
+
triggers:
|
|
6
|
+
- 帮我规划这个需求
|
|
7
|
+
- 先别写代码先定方案
|
|
8
|
+
- 这个 bug 边界不清
|
|
9
|
+
- 拆一下任务
|
|
10
|
+
- plan this requirement
|
|
11
|
+
- scope this bug
|
|
12
|
+
- turn this into tasks
|
|
13
|
+
reads:
|
|
14
|
+
- PLAYBOOK.md
|
|
15
|
+
- CHANGELOG.md
|
|
16
|
+
- assets/DESIGN_TEMPLATE.md
|
|
17
|
+
- assets/TINY_DESIGN_TEMPLATE.md
|
|
18
|
+
- assets/TASKS_TEMPLATE.md
|
|
19
|
+
- assets/TASK_MANIFEST_TEMPLATE.json
|
|
20
|
+
- references/planning-contract.md
|
|
21
|
+
writes:
|
|
22
|
+
- path: devflow/changes/<change-key>/planning/design.md
|
|
23
|
+
durability: durable
|
|
24
|
+
required: true
|
|
25
|
+
- path: devflow/changes/<change-key>/planning/tasks.md
|
|
26
|
+
durability: durable
|
|
27
|
+
required: true
|
|
28
|
+
- path: devflow/changes/<change-key>/planning/task-manifest.json
|
|
29
|
+
durability: durable
|
|
30
|
+
required: true
|
|
31
|
+
- path: devflow/changes/<change-key>/change-meta.json
|
|
32
|
+
durability: durable
|
|
33
|
+
required: true
|
|
34
|
+
entry_gate:
|
|
35
|
+
- Read roadmap handoff, current requirement files, code, docs, and tests before drafting design.
|
|
36
|
+
- Freeze problem, constraints, non-goals, and success criteria before proposing implementation tasks.
|
|
37
|
+
- Plan executable work as Red/Green/Refactor by default; identify the first failing test before any production implementation task, or write an explicit TDD exception with replacement evidence.
|
|
38
|
+
- Assign a canonical change key before writing artifacts; feature work must use `REQ-<number>-<description>`, and bug-fix work must use `FIX-<number>-<description>`.
|
|
39
|
+
- Do not generate planning/tasks.md, planning/task-manifest.json, or change-meta.json until the recommended design is approved.
|
|
40
|
+
exit_criteria:
|
|
41
|
+
- planning/design.md captures the approved solution, boundaries, review conclusions, and execution edge cases.
|
|
42
|
+
- planning/tasks.md, planning/task-manifest.json, and change-meta.json are explicit enough that cc-do can continue without chat memory.
|
|
43
|
+
- The task breakdown preserves test-first execution; failing-test tasks precede implementation tasks, refactor checkpoints are visible, and any TDD exception is justified.
|
|
44
|
+
- 'Only one next step remains: enter cc-do.'
|
|
45
|
+
reroutes:
|
|
46
|
+
- when: The discussion is still about project direction or stage order instead of one requirement.
|
|
47
|
+
target: roadmap
|
|
48
|
+
- when: The plan is already approved and tasks are already frozen.
|
|
49
|
+
target: cc-do
|
|
50
|
+
recovery_modes:
|
|
51
|
+
- name: re-open-design
|
|
52
|
+
when: Execution feedback, review findings, or user correction invalidates the current design contract.
|
|
53
|
+
action: Return to planning/design.md, reopen the approved decision explicitly, and regenerate tasks only after the design is stable again.
|
|
54
|
+
tool_budget:
|
|
55
|
+
read_files: 10
|
|
56
|
+
search_steps: 6
|
|
57
|
+
shell_commands: 5
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
# CC-Plan
|
|
61
|
+
|
|
62
|
+
> [PROTOCOL]: 变更时同步更新 `version`、`CHANGELOG.md`、相关模板/脚本引用,必要时写 migration note,然后检查 `CLAUDE.md`
|
|
63
|
+
|
|
64
|
+
## Role
|
|
65
|
+
|
|
66
|
+
`cc-plan` 是 PDCA 里的 `Plan`。
|
|
67
|
+
|
|
68
|
+
它的目标不是制造一串 planning 文档,而是把 requirement 压成最少但足够强的交付物,让 `cc-do` 不需要临场补脑。
|
|
69
|
+
|
|
70
|
+
## Read First
|
|
71
|
+
|
|
72
|
+
1. `PLAYBOOK.md`
|
|
73
|
+
2. `CHANGELOG.md`
|
|
74
|
+
3. `assets/DESIGN_TEMPLATE.md`
|
|
75
|
+
4. `assets/TINY_DESIGN_TEMPLATE.md`
|
|
76
|
+
5. `assets/TASKS_TEMPLATE.md`
|
|
77
|
+
6. `assets/TASK_MANIFEST_TEMPLATE.json`
|
|
78
|
+
7. `references/planning-contract.md`
|
|
79
|
+
|
|
80
|
+
## Use This Skill When
|
|
81
|
+
|
|
82
|
+
- 新 requirement 还模糊
|
|
83
|
+
- bug 现象很多,但修复边界还没定
|
|
84
|
+
- 需求变更后需要重做设计与任务拆解
|
|
85
|
+
- 你不确定下一步要做什么
|
|
86
|
+
|
|
87
|
+
如果方案已经冻结、任务已经清楚,不要重开 planning,直接去 `cc-do`。
|
|
88
|
+
|
|
89
|
+
## Quick Start
|
|
90
|
+
|
|
91
|
+
先判断这次 planning 属于哪一种,而不是一上来就写满版设计:
|
|
92
|
+
|
|
93
|
+
| 现实状态 | 先走什么路径 |
|
|
94
|
+
| --- | --- |
|
|
95
|
+
| 需求还模糊,边界和成功标准都不稳 | `clarify-first`,先补 `planning/design.md` 的问题定义与约束 |
|
|
96
|
+
| 变更很小,但仍需要冻结做法和任务 | `tiny-design` |
|
|
97
|
+
| 跨模块、高风险、会逼执行者二次设计 | `full-design` |
|
|
98
|
+
|
|
99
|
+
先给出默认 planning 形态,再解释为什么不是另外两种。`cc-plan` 的第一件事不是产出文档,而是压平 planning 密度。
|
|
100
|
+
|
|
101
|
+
## Harness Contract
|
|
102
|
+
|
|
103
|
+
- Allowed actions: clarify scope, compare designs, freeze decisions, and write only `planning/design.md`, `planning/tasks.md`, `planning/task-manifest.json`, and `change-meta.json`.
|
|
104
|
+
- Forbidden actions: writing production code, splitting planning into new side documents, or emitting tasks before approval.
|
|
105
|
+
- Required evidence: design choices, task boundaries, and verification commands must point back to repo facts or explicit user approval.
|
|
106
|
+
- Reroute rule: if the problem expands to project strategy go back to `roadmap`; if the plan is already frozen move straight to `cc-do`.
|
|
107
|
+
|
|
108
|
+
## Change Key Contract
|
|
109
|
+
|
|
110
|
+
`<change-key>` 不是自由 slug。它必须先表达变更类型,再表达编号,最后才是描述:
|
|
111
|
+
|
|
112
|
+
- 需求 / 功能 / 规格变更:`REQ-<number>-<description>`
|
|
113
|
+
- 缺陷 / 回归 / 修复变更:`FIX-<number>-<description>`
|
|
114
|
+
|
|
115
|
+
描述部分使用 kebab-case,可以保留中文词组,但不允许丢掉大写 `REQ` / `FIX` 前缀。不要再创建 `req-123-...`、`bug-123-...`、纯描述目录或没有编号的目录。旧的小写目录只能作为历史兼容读取目标,不作为新 planning 输出。
|
|
116
|
+
|
|
117
|
+
## Autoplan Principles
|
|
118
|
+
|
|
119
|
+
这些规则属于 `cc-plan` 的原生决策口径,不允许拆成额外文档:
|
|
120
|
+
|
|
121
|
+
1. Choose completeness:如果完整方案只多花少量 agent 时间,就不要留下 happy-path 计划。
|
|
122
|
+
2. Boil lakes:同一 blast radius 内、少于 1 天 agent 工作量的边界问题,应纳入当前计划;跨系统迁移才 defer。
|
|
123
|
+
3. Pragmatic:两个方案都能达成目标时,选更小、更直白、更可验证的方案。
|
|
124
|
+
4. DRY:已有流程、脚本、spec、运行时能复用时,不准设计平行系统。
|
|
125
|
+
5. Explicit over clever:十行人人看懂的实现路径胜过二百行抽象。
|
|
126
|
+
6. Bias toward action:把不确定性压成明确 gate、风险和后续入口,不让计划停在空泛讨论。
|
|
127
|
+
|
|
128
|
+
自动决策也要留痕:机械选择写进 `planning/design.md` 的 decision log;taste decision 或用户原始方向被挑战时,必须明确标成 `taste decision` / `user challenge`,由用户最后拍板。
|
|
129
|
+
|
|
130
|
+
## Output Model
|
|
131
|
+
|
|
132
|
+
`cc-plan` 只允许产出 4 个主文件,默认采用“少文档、强文档”的输出模型:
|
|
133
|
+
|
|
134
|
+
1. `planning/design.md`
|
|
135
|
+
- 吸收原来的 clarification / brainstorm / review 结论
|
|
136
|
+
- 记录 source handoff、问题定义、备选方案、批准方案、设计决策、review gate、执行边界
|
|
137
|
+
2. `planning/tasks.md`
|
|
138
|
+
- 只保留可执行任务和执行 handoff
|
|
139
|
+
- 顶部写清 frozen decisions、read first、commands to trust、TDD plan、并行边界
|
|
140
|
+
3. `planning/task-manifest.json`
|
|
141
|
+
- 从 `planning/tasks.md` 编译出的机器真相源
|
|
142
|
+
- 只服务执行与调度,不再承担人类阅读的叙事职责
|
|
143
|
+
4. `change-meta.json`
|
|
144
|
+
- 绑定 roadmap item、primary capability、secondary capabilities、expected spec delta、spec sync status
|
|
145
|
+
- 作为 `cc-do`、`cc-check`、`cc-act` 的 capability 机器真相源
|
|
146
|
+
|
|
147
|
+
以下文件不再是 `cc-plan` 的默认交付物:
|
|
148
|
+
|
|
149
|
+
- `CLARIFICATION_REPORT.md`
|
|
150
|
+
- `BRAINSTORM.md`
|
|
151
|
+
- `PLAN_REVIEW.md`
|
|
152
|
+
- `context-package.md`
|
|
153
|
+
- `handoff/resume-index.md`
|
|
154
|
+
|
|
155
|
+
这些信息如果仍然需要,必须并入 `planning/design.md` 或 `planning/tasks.md`,而不是再拆新文件。
|
|
156
|
+
|
|
157
|
+
## Entry Gate
|
|
158
|
+
|
|
159
|
+
1. 先确认当前对象是一个 requirement,而不是整个项目路线图。
|
|
160
|
+
2. 如果来源于 `roadmap`,必须先定位对应的 `RM-ID`,读清 `devflow/ROADMAP.md` / `devflow/BACKLOG.md` 的版本、证据、约束、success signal、next decision、primary capability、expected spec delta。
|
|
161
|
+
3. 先读当前 change 目录现状。旧目录里如果还有 `BRAINSTORM.md` / `PLAN_REVIEW.md` / `context-package.md`,把有效信息吸收进新的 `planning/design.md`,不要继续增殖。
|
|
162
|
+
4. 先看代码、文档、测试和最近提交,再谈拆任务。
|
|
163
|
+
5. 先写不做什么,再写做什么。
|
|
164
|
+
|
|
165
|
+
## Context Sweep
|
|
166
|
+
|
|
167
|
+
进入 planning 前,至少主动收这些事实:
|
|
168
|
+
|
|
169
|
+
1. 当前对象对应的 `RM-ID`、roadmap version、roadmap skill version
|
|
170
|
+
2. `devflow/ROADMAP.md` / `devflow/BACKLOG.md` 中该事项的阶段来源、证据、dependencies、success signal、kill signal、next decision、capability links
|
|
171
|
+
3. `devflow/specs/INDEX.md` 与相关 capability specs
|
|
172
|
+
4. 当前 change 目录已有的 `planning/design.md`、`planning/tasks.md`、`planning/task-manifest.json`、`change-meta.json` 与历史 planning 文档
|
|
173
|
+
5. `CLAUDE.md`、README、相关 docs / specs / ADR / 最近提交
|
|
174
|
+
6. 当前代码、测试、发布、迁移、依赖的现实边界
|
|
175
|
+
|
|
176
|
+
先把这些材料压成 `Source Handoff`,再决定 discovery 还是 planning。
|
|
177
|
+
|
|
178
|
+
## Discovery Questions
|
|
179
|
+
|
|
180
|
+
澄清的核心不是多问,而是逼近真实问题。澄清时优先用这些问题压缩范围:
|
|
181
|
+
|
|
182
|
+
1. Demand reality:这个 requirement 具体让谁的工作变好,当前没有它会卡在哪里?
|
|
183
|
+
2. Status quo:用户现在怎么绕过这个问题,现有 repo 里哪些代码已经解决了一半?
|
|
184
|
+
3. Desperate specificity:哪一个失败场景最痛,必须在本轮变绿?
|
|
185
|
+
4. Narrowest wedge:最小可交付边界是什么,哪些同 blast radius 问题必须顺手解决?
|
|
186
|
+
5. Observation:有没有日志、测试、真实流程、最近提交能证明这个问题存在?
|
|
187
|
+
6. Future fit:这个方案 6 个月后是否仍然是正确边界,还是会制造第二套系统?
|
|
188
|
+
|
|
189
|
+
一次只问一个关键未知点。能从代码、文档、测试、git 历史里确认的问题,不问用户。
|
|
190
|
+
|
|
191
|
+
## Session Protocol
|
|
192
|
+
|
|
193
|
+
1. 先探索上下文,再写结论。
|
|
194
|
+
2. 澄清时一次只问一个关键问题,不做问题轰炸。
|
|
195
|
+
3. 先写问题、目标、约束、非目标、成功标准,再写方案。
|
|
196
|
+
4. 如果方向仍不稳,给 2-3 个方案,带 trade-off 和推荐,但这些内容都写进 `planning/design.md`。
|
|
197
|
+
5. 推荐方案没有得到用户明确批准前,不允许生成 `planning/tasks.md`。
|
|
198
|
+
6. 批准后先判断这次用 `tiny-design` 还是 `full-design`。
|
|
199
|
+
7. 把批准后的唯一方案冻结进 `planning/design.md`。
|
|
200
|
+
8. 在 `planning/design.md` 内完成 review loop 与 final gate,不再额外拆出 `PLAN_REVIEW.md`。
|
|
201
|
+
9. 只有 design gate 真正通过,才能写 `planning/tasks.md`、`planning/task-manifest.json` 和 `change-meta.json`。
|
|
202
|
+
10. 计划完成后,下一步唯一答案是 `cc-do`。
|
|
203
|
+
|
|
204
|
+
## Engineering Review Gate
|
|
205
|
+
|
|
206
|
+
冻结设计前,必须在 `planning/design.md` 内完成一次轻量工程审查:
|
|
207
|
+
|
|
208
|
+
1. Existing leverage map:每个子问题先映射到现有代码、脚本、spec、模板或测试,避免重复造轮子。
|
|
209
|
+
2. Scope challenge:超过 8 个文件、2 个新 service/class、或跨模块连锁时,必须解释为什么不是过度设计。
|
|
210
|
+
3. Architecture diagram:跨模块或状态流变更要写 ASCII 数据流 / 依赖图。
|
|
211
|
+
4. Code quality scan:指出 DRY、命名、错误处理、三层以上分支、隐藏耦合风险。
|
|
212
|
+
5. Test diagram:列出新增 code path、user flow、错误路径、边界状态,并标注 first failing test、unit / e2e / eval。
|
|
213
|
+
6. Performance and distribution:涉及批量、I/O、发布物、CLI、包、容器时,必须写清性能和分发边界。
|
|
214
|
+
7. NOT in scope:所有被考虑但 defer 的内容要写理由,不能消失在聊天里。
|
|
215
|
+
|
|
216
|
+
如果任一项无法从当前证据完成,写 `assumption` 或 `blocked question`,不要伪装成已经审过。
|
|
217
|
+
|
|
218
|
+
## Test-First Planning
|
|
219
|
+
|
|
220
|
+
`cc-plan` 生成具体计划时默认采用测试先行纪律。不能让计划是“先实现再补测”,然后把 TDD 压力留给 `cc-do` 临场修正。
|
|
221
|
+
|
|
222
|
+
1. 每个可观察行为变更默认拆成 `Red -> Green -> Refactor`:
|
|
223
|
+
- Red:先写 `[TEST]` 任务,目标是用最小失败测试证明目标行为缺失。
|
|
224
|
+
- Green:再写 `[IMPL]` 任务,只做让对应红灯转绿的最小生产实现。
|
|
225
|
+
- Refactor:最后写 `[REFACTOR]` 或在实现任务中明确 refactor checkpoint,说明何时清理重复、命名、结构和坏味道。
|
|
226
|
+
2. `planning/tasks.md` 不能把测试和实现塞进同一个 task。一个 task 同时写“实现并测试”就是计划失败。
|
|
227
|
+
3. `planning/task-manifest.json` 必须让 `cc-do` 看出每个任务的 `tddPhase`、依赖和证据:`red` 任务产出 failing output,`green` 任务产出 passing output,`refactor` 任务产出重跑后的 green evidence。
|
|
228
|
+
4. 只有纯文档、纯配置、纯生成文件、throwaway prototype 可以例外。例外必须写进 `planning/design.md` 和 `planning/tasks.md` 的 `TDD exceptions`,包含原因、风险、替代验证命令和后续补证入口。
|
|
229
|
+
5. 并行只允许发生在已经满足上游 Red/Green 依赖之后。两个 `[P]` 任务如果共享同一个红灯或同一组 touched files,就不能并行。
|
|
230
|
+
6. 如果当前需求找不到第一条失败测试,先把它写成 blocked question 或 exploratory spike,不准伪装成可执行实现任务。
|
|
231
|
+
|
|
232
|
+
## Design Modes
|
|
233
|
+
|
|
234
|
+
`cc-plan` 永远保留 `planning/design.md`,但允许两种密度:
|
|
235
|
+
|
|
236
|
+
- `tiny-design`:超小需求的冻结设计卡片
|
|
237
|
+
- `full-design`:需要完整架构说明的正式设计
|
|
238
|
+
|
|
239
|
+
优先使用 `tiny-design`,但只有同时满足这些条件才成立:
|
|
240
|
+
|
|
241
|
+
1. 变更集中在单一功能点
|
|
242
|
+
2. 触达文件通常只有 1-3 个
|
|
243
|
+
3. 不涉及 migration、复杂状态流、权限、安全、回滚编排
|
|
244
|
+
4. 执行者看完一张冻结卡片就能准确落地
|
|
245
|
+
|
|
246
|
+
出现以下任一情况,直接升级到 `full-design`:
|
|
247
|
+
|
|
248
|
+
1. 需要跨模块协调或多阶段落地
|
|
249
|
+
2. 有数据模型、接口契约、状态机、迁移或兼容性风险
|
|
250
|
+
3. 有安全、权限、计费、同步一致性等高代价约束
|
|
251
|
+
4. 如果不先讲清边界,执行者会被迫二次设计
|
|
252
|
+
|
|
253
|
+
## Review Loop
|
|
254
|
+
|
|
255
|
+
`planning/design.md` 内至少完成这些 review 结论:
|
|
256
|
+
|
|
257
|
+
1. Placeholder scan:不能留下 TBD / TODO / 之后再补
|
|
258
|
+
2. Consistency scan:目标、方案、任务、验证口径不能互相打架
|
|
259
|
+
3. Scope scan:不能偷偷长成另一个 requirement
|
|
260
|
+
4. Ambiguity scan:实现者看完不能还靠猜
|
|
261
|
+
5. Feasibility scan:方案要接得上现有代码、依赖和时间边界
|
|
262
|
+
6. Source alignment:仍然对齐上游 roadmap 的 success signal、constraints、non-goals
|
|
263
|
+
7. Engineering scan:完成 existing leverage、scope challenge、test diagram、failure modes、NOT in scope
|
|
264
|
+
8. Final gate:明确 auto-decided items、taste decisions、user challenges 和最终 recommendation
|
|
265
|
+
|
|
266
|
+
如果有 UI / interaction 明显范围,在 `planning/design.md` 里补一段 design review 结论。
|
|
267
|
+
如果有 API / CLI / developer-facing scope,在 `planning/design.md` 里补一段 DX review 结论。
|
|
268
|
+
|
|
269
|
+
## Good Output
|
|
270
|
+
|
|
271
|
+
- `planning/design.md` 一份就讲清:为什么做、做什么、不做什么、备选方案、批准方案、设计模式、风险、review gate、执行边界
|
|
272
|
+
- `planning/tasks.md` 只保留能直接执行的任务和 handoff,不再承载重复背景介绍;行为变更默认拆成 `[TEST] -> [IMPL] -> [REFACTOR]`
|
|
273
|
+
- `planning/task-manifest.json` 是 `cc-do` 的真相源,要写清 `dependsOn`、`tddPhase`、并行资格、触点、验证命令,以及继承了哪版 roadmap / design / spec
|
|
274
|
+
- `change-meta.json` 是 capability 真相源,要写清这次 change 准备如何改变长期 spec
|
|
275
|
+
- 看完第一屏,执行者就知道这次属于 `tiny-design` 还是 `full-design`,以及为什么
|
|
276
|
+
|
|
277
|
+
## Bundled Resources
|
|
278
|
+
|
|
279
|
+
- 变更记录:`CHANGELOG.md`
|
|
280
|
+
- 模板:`assets/DESIGN_TEMPLATE.md`
|
|
281
|
+
- 模板:`assets/TINY_DESIGN_TEMPLATE.md`
|
|
282
|
+
- 模板:`assets/TASKS_TEMPLATE.md`
|
|
283
|
+
- 模板:`assets/TASK_MANIFEST_TEMPLATE.json`
|
|
284
|
+
- 任务解析:`scripts/parse-task-dependencies.js`
|
|
285
|
+
- 范围检查:`scripts/validate-scope.sh`
|
|
286
|
+
- 版本递增:`scripts/bump-skill-version.sh`
|
|
287
|
+
- 计划契约:`references/planning-contract.md`
|
|
288
|
+
|
|
289
|
+
## Working Rules
|
|
290
|
+
|
|
291
|
+
1. 没有证据时写 assumption,不准冒充事实。
|
|
292
|
+
2. 一次只推进一个关键未知点。
|
|
293
|
+
3. 旧文档里的有效信息要吸收,不要复制粘贴出新文件。
|
|
294
|
+
4. `planning/design.md` 和 `planning/tasks.md` 必须足够让 `cc-do` 在不继承当前会话的前提下继续工作。
|
|
295
|
+
5. 版本、来源、冻结决策必须可追踪。
|
|
296
|
+
6. 任务少而硬,胜过任务多而虚。
|
|
297
|
+
7. 具体计划默认测试先行;没有 Red/Green/Refactor 或 TDD exception,就不能进入 `cc-do`。
|
|
298
|
+
8. 任务一旦超过 2-5 分钟粒度就继续拆,直到可以稳定交给执行者。
|
|
299
|
+
9. 三层以上判断说明设计还没压平,应回到 `planning/design.md` 继续简化。
|
|
300
|
+
|
|
301
|
+
## Exit Criteria
|
|
302
|
+
|
|
303
|
+
- 范围边界清楚
|
|
304
|
+
- 上游 roadmap handoff 已被显式装进 `planning/design.md`
|
|
305
|
+
- 成功标准可验证
|
|
306
|
+
- 推荐方案已被批准
|
|
307
|
+
- review gate 已在 `planning/design.md` 里闭合
|
|
308
|
+
- 任务顺序没有歧义
|
|
309
|
+
- 测试先行顺序没有歧义,TDD exception 已显式写清
|
|
310
|
+
- `cc-do` 不需要再靠会话记忆恢复背景
|
|
311
|
+
|
|
312
|
+
## Do Not
|
|
313
|
+
|
|
314
|
+
- 不在这里写生产代码
|
|
315
|
+
- 不把 clarification / brainstorm / review 各拆一份文档
|
|
316
|
+
- 不把“问了一堆问题”误当成“完成 discovery”
|
|
317
|
+
- 不拿“后面再想”伪装成计划
|
|
318
|
+
- 不把“先实现再补测试”伪装成可执行计划
|
|
319
|
+
- 不把项目路线图和 requirement 计划混成一锅
|
|
320
|
+
- 不在设计没批准前抢跑到实现任务
|
|
321
|
+
|
|
322
|
+
## Companion Files
|
|
323
|
+
|
|
324
|
+
- 深入剧本:`PLAYBOOK.md`
|
|
325
|
+
- 计划契约:`references/planning-contract.md`
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
# DESIGN
|
|
2
|
+
|
|
3
|
+
## Document Meta
|
|
4
|
+
|
|
5
|
+
- Requirement version:
|
|
6
|
+
- Design version:
|
|
7
|
+
- CC-Plan skill version:
|
|
8
|
+
- Requirement ID:
|
|
9
|
+
- Design mode: `full-design`
|
|
10
|
+
- Why not `tiny-design`:
|
|
11
|
+
- Design status: `draft` | `in-review` | `approved`
|
|
12
|
+
- Source roadmap item:
|
|
13
|
+
- Source roadmap version:
|
|
14
|
+
- Source roadmap skill version:
|
|
15
|
+
- Primary capability:
|
|
16
|
+
- Secondary capabilities:
|
|
17
|
+
- Date:
|
|
18
|
+
- Owner:
|
|
19
|
+
|
|
20
|
+
## Source Handoff
|
|
21
|
+
|
|
22
|
+
- Source stage:
|
|
23
|
+
- Why now from roadmap:
|
|
24
|
+
- Capability gap from roadmap:
|
|
25
|
+
- Expected spec delta:
|
|
26
|
+
- Inherited success signal:
|
|
27
|
+
- Inherited kill signal:
|
|
28
|
+
- Inherited dependencies:
|
|
29
|
+
- Inherited non-goals:
|
|
30
|
+
- Upstream evidence:
|
|
31
|
+
- Assumptions to re-validate:
|
|
32
|
+
|
|
33
|
+
## Capability Handoff
|
|
34
|
+
|
|
35
|
+
- Canonical capability spec:
|
|
36
|
+
- Related capability specs:
|
|
37
|
+
- Current truth to preserve:
|
|
38
|
+
- Current gaps:
|
|
39
|
+
- Intentional gaps:
|
|
40
|
+
- Spec sync target:
|
|
41
|
+
|
|
42
|
+
## Requirement Snapshot
|
|
43
|
+
|
|
44
|
+
- Raw ask:
|
|
45
|
+
- User:
|
|
46
|
+
- Pain:
|
|
47
|
+
- Smallest viable wedge:
|
|
48
|
+
- Out of scope:
|
|
49
|
+
|
|
50
|
+
> 写完这一段后,执行者应该能用一句话复述:
|
|
51
|
+
> “这次要解决的是什么,不解决什么,最小落地点是什么。”
|
|
52
|
+
|
|
53
|
+
## Success Criteria
|
|
54
|
+
|
|
55
|
+
- Observable success signals:
|
|
56
|
+
- Business / operator success signals:
|
|
57
|
+
- Abort signals:
|
|
58
|
+
|
|
59
|
+
## Options Considered
|
|
60
|
+
|
|
61
|
+
### Option A
|
|
62
|
+
|
|
63
|
+
- Shape:
|
|
64
|
+
- Reuses:
|
|
65
|
+
- Pros:
|
|
66
|
+
- Cons:
|
|
67
|
+
- Risks:
|
|
68
|
+
|
|
69
|
+
### Option B
|
|
70
|
+
|
|
71
|
+
- Shape:
|
|
72
|
+
- Reuses:
|
|
73
|
+
- Pros:
|
|
74
|
+
- Cons:
|
|
75
|
+
- Risks:
|
|
76
|
+
|
|
77
|
+
## Approved Direction
|
|
78
|
+
|
|
79
|
+
- Approved option:
|
|
80
|
+
- Why this is the best trade-off now:
|
|
81
|
+
- Why not the other options now:
|
|
82
|
+
- What we explicitly rejected:
|
|
83
|
+
- Frozen decisions:
|
|
84
|
+
- Deferred questions:
|
|
85
|
+
|
|
86
|
+
## Design
|
|
87
|
+
|
|
88
|
+
- Modules touched:
|
|
89
|
+
- Data flow:
|
|
90
|
+
- Contracts:
|
|
91
|
+
- Error handling:
|
|
92
|
+
- Rollout / migration:
|
|
93
|
+
|
|
94
|
+
## Invariant Impact
|
|
95
|
+
|
|
96
|
+
- Affected invariants:
|
|
97
|
+
- Invariants kept unchanged:
|
|
98
|
+
- New invariants introduced:
|
|
99
|
+
|
|
100
|
+
## Gap Changes
|
|
101
|
+
|
|
102
|
+
- Gaps closed by this change:
|
|
103
|
+
- New gaps introduced:
|
|
104
|
+
- Gaps intentionally left open:
|
|
105
|
+
|
|
106
|
+
## File Plan
|
|
107
|
+
|
|
108
|
+
| File | Change | Reason |
|
|
109
|
+
|------|--------|--------|
|
|
110
|
+
| | | |
|
|
111
|
+
|
|
112
|
+
> 如果文件计划超过 5-8 个文件,先问自己:这是不是已经逼近 `full-design` 之外的需求膨胀。
|
|
113
|
+
|
|
114
|
+
## Validation Strategy
|
|
115
|
+
|
|
116
|
+
- First failing tests:
|
|
117
|
+
- Red/Green/Refactor task chain:
|
|
118
|
+
- TDD exceptions:
|
|
119
|
+
- Unit:
|
|
120
|
+
- Integration:
|
|
121
|
+
- Manual:
|
|
122
|
+
- Observability / evidence:
|
|
123
|
+
|
|
124
|
+
## Risks
|
|
125
|
+
|
|
126
|
+
| Risk | Impact | Mitigation |
|
|
127
|
+
|------|--------|------------|
|
|
128
|
+
| | | |
|
|
129
|
+
|
|
130
|
+
## Review Gate
|
|
131
|
+
|
|
132
|
+
- Placeholder scan:
|
|
133
|
+
- Consistency scan:
|
|
134
|
+
- Scope scan:
|
|
135
|
+
- Ambiguity scan:
|
|
136
|
+
- Feasibility scan:
|
|
137
|
+
- Source alignment:
|
|
138
|
+
- UI / interaction review summary:
|
|
139
|
+
- DX review summary:
|
|
140
|
+
- Test-first readiness:
|
|
141
|
+
- Auto-decided items:
|
|
142
|
+
- Taste decisions:
|
|
143
|
+
- User challenges:
|
|
144
|
+
- Recommendation:
|
|
145
|
+
|
|
146
|
+
## Approval
|
|
147
|
+
|
|
148
|
+
- User approval status:
|
|
149
|
+
- Follow-up changes after review:
|
|
150
|
+
|
|
151
|
+
## First-Read Test
|
|
152
|
+
|
|
153
|
+
- 10 秒内能否看出这次为什么不是 `tiny-design`
|
|
154
|
+
- 10 秒内能否看出批准方案和被拒方案的边界
|
|
155
|
+
- `cc-do` 是否还能被迫二次设计;如果会,说明这里还不够清楚
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# TASKS
|
|
2
|
+
|
|
3
|
+
## Plan Meta
|
|
4
|
+
|
|
5
|
+
- Requirement version:
|
|
6
|
+
- Design version:
|
|
7
|
+
- CC-Plan skill version:
|
|
8
|
+
- Source roadmap item:
|
|
9
|
+
- Source roadmap version:
|
|
10
|
+
- Change meta: `change-meta.json`
|
|
11
|
+
|
|
12
|
+
## Execution Handoff
|
|
13
|
+
|
|
14
|
+
- Canonical design: `planning/design.md`
|
|
15
|
+
- Canonical change meta: `change-meta.json`
|
|
16
|
+
- Execution mode: `single-path` | `parallel-ready`
|
|
17
|
+
- Frozen decisions:
|
|
18
|
+
- Capability specs:
|
|
19
|
+
- Read first:
|
|
20
|
+
- Commands to trust:
|
|
21
|
+
- TDD plan: `Red -> Green -> Refactor`
|
|
22
|
+
- TDD exceptions: none | list exception reason, risk, replacement evidence, follow-up
|
|
23
|
+
- Do not re-decide:
|
|
24
|
+
- Parallel boundaries:
|
|
25
|
+
|
|
26
|
+
> 顶部 handoff 只保留执行者必须知道的现实,不重复讲背景故事。
|
|
27
|
+
|
|
28
|
+
## Phase 1: Foundation
|
|
29
|
+
|
|
30
|
+
- [ ] T001 [TEST] Write the first failing test (dependsOn:none) `path/to/test`
|
|
31
|
+
Goal: 证明当前行为还没实现,必须先看到失败。
|
|
32
|
+
TDD phase: red
|
|
33
|
+
Files: `path/to/test`
|
|
34
|
+
Read first: `design.md`, `tasks.md`
|
|
35
|
+
Verification: `npm test -- path/to/test`
|
|
36
|
+
Evidence: failing output
|
|
37
|
+
Ready when: 没有上游依赖,且测试路径已经确定
|
|
38
|
+
|
|
39
|
+
- [ ] T002 [IMPL] Make the first test pass (dependsOn:T001) `path/to/file`
|
|
40
|
+
Goal: 用最小实现让 T001 转绿。
|
|
41
|
+
TDD phase: green
|
|
42
|
+
Files: `path/to/file`
|
|
43
|
+
Read first: `design.md`, `path/to/test`
|
|
44
|
+
Verification: `npm test -- path/to/test`
|
|
45
|
+
Evidence: passing output + checkpoint
|
|
46
|
+
Ready when: T001 已经见红,且当前 touched files 不和其他并行任务冲突
|
|
47
|
+
|
|
48
|
+
## Phase 2: Build
|
|
49
|
+
|
|
50
|
+
- [ ] T003 [P] [TEST] Add another independent failing test (dependsOn:T002) `path/to/other.test`
|
|
51
|
+
Goal: 为独立行为补红灯。
|
|
52
|
+
TDD phase: red
|
|
53
|
+
Files: `path/to/other.test`
|
|
54
|
+
Read first: `design.md`, `tasks.md`
|
|
55
|
+
Verification: `npm test -- path/to/other.test`
|
|
56
|
+
Evidence: failing output
|
|
57
|
+
Ready when: T002 完成,且该测试覆盖的是独立行为
|
|
58
|
+
|
|
59
|
+
- [ ] T004 [P] [IMPL] Make the independent test pass (dependsOn:T003) `path/to/other-file`
|
|
60
|
+
Goal: 用最小实现让 T003 转绿,并保留重构空间。
|
|
61
|
+
TDD phase: green
|
|
62
|
+
Files: `path/to/other-file`
|
|
63
|
+
Read first: `design.md`, `path/to/other.test`
|
|
64
|
+
Verification: `npm test -- path/to/other.test`
|
|
65
|
+
Evidence: passing output + review notes
|
|
66
|
+
Ready when: T003 已经见红,且文件触点与其他 `[P]` 任务不冲突
|
|
67
|
+
|
|
68
|
+
## Phase 3: Verify
|
|
69
|
+
|
|
70
|
+
- [ ] T005 [REFACTOR] Simplify after green evidence (dependsOn:T002,T004) `path/to/file`
|
|
71
|
+
Goal: 在所有相关测试已绿后清理重复、命名、结构和坏味道。
|
|
72
|
+
TDD phase: refactor
|
|
73
|
+
Files: `path/to/file`
|
|
74
|
+
Read first: `design.md`, green test outputs
|
|
75
|
+
Verification: `npm test -- path/to/test path/to/other.test`
|
|
76
|
+
Evidence: refactor diff + repeated green output
|
|
77
|
+
Ready when: 对应 Red/Green 任务都已完成,且清理不会扩大 scope
|
|
78
|
+
|
|
79
|
+
- [ ] T006 Run checks and collect evidence (dependsOn:T005) `command or file`
|
|
80
|
+
Goal: 为 `cc-check` 准备新鲜证据。
|
|
81
|
+
TDD phase: evidence
|
|
82
|
+
Files: `command or file`
|
|
83
|
+
Read first: `tasks.md`, `task-manifest.json`
|
|
84
|
+
Verification: `npm test && npm run lint`
|
|
85
|
+
Evidence: gate output
|
|
86
|
+
Ready when: 当前 requirement 的实现任务都已收口
|
|
87
|
+
|
|
88
|
+
> `[P]` 只表示“依赖满足后有资格并行”,不表示可以无脑同时开发。
|
|
89
|
+
|
|
90
|
+
## Task Quality Bar
|
|
91
|
+
|
|
92
|
+
一个好的 task block 至少让执行者立刻知道:
|
|
93
|
+
|
|
94
|
+
- 现在为什么轮到它做
|
|
95
|
+
- 做完后现实会发生什么变化
|
|
96
|
+
- 用哪条命令证明它完成
|
|
97
|
+
- 要留下什么证据给 `cc-check`
|
|
98
|
+
- 它处于 Red、Green、Refactor,还是明确的 TDD exception
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
{
|
|
2
|
+
"changeId": "REQ-XXX",
|
|
3
|
+
"requirementId": "REQ-XXX",
|
|
4
|
+
"requirementVersion": "REQ-XXX.v1",
|
|
5
|
+
"sourceRoadmap": {
|
|
6
|
+
"itemId": "RM-001",
|
|
7
|
+
"roadmapVersion": "1.0",
|
|
8
|
+
"roadmapSkillVersion": "2.1.0",
|
|
9
|
+
"sourceStage": "Stage 1",
|
|
10
|
+
"successSignal": "User can complete the new flow without manual workaround",
|
|
11
|
+
"killSignal": "Implementation requires reworking unrelated modules",
|
|
12
|
+
"dependencies": [
|
|
13
|
+
"Existing auth/session contract stays unchanged"
|
|
14
|
+
],
|
|
15
|
+
"nonGoals": [
|
|
16
|
+
"No redesign of unrelated settings screens"
|
|
17
|
+
]
|
|
18
|
+
},
|
|
19
|
+
"planningMeta": {
|
|
20
|
+
"reqPlanSkillVersion": "3.5.2",
|
|
21
|
+
"designVersion": "design.v1",
|
|
22
|
+
"approvedAt": "2026-04-15T12:00:00.000Z",
|
|
23
|
+
"approvedBy": "user",
|
|
24
|
+
"basedOnOption": "Option A"
|
|
25
|
+
},
|
|
26
|
+
"executionDiscipline": {
|
|
27
|
+
"default": "red-green-refactor",
|
|
28
|
+
"testFirstRequired": true,
|
|
29
|
+
"tddExceptions": []
|
|
30
|
+
},
|
|
31
|
+
"status": "planned",
|
|
32
|
+
"designMode": "tiny-design",
|
|
33
|
+
"approvedOption": "Option A",
|
|
34
|
+
"designStatus": "approved",
|
|
35
|
+
"reviewStatus": "approved",
|
|
36
|
+
"spec": {
|
|
37
|
+
"primaryCapability": "cap-example",
|
|
38
|
+
"secondaryCapabilities": [],
|
|
39
|
+
"expectedDelta": [
|
|
40
|
+
"Tighten current truth for the capability"
|
|
41
|
+
],
|
|
42
|
+
"affectedInvariants": [],
|
|
43
|
+
"gapsClosed": [],
|
|
44
|
+
"newGaps": [],
|
|
45
|
+
"specFiles": [
|
|
46
|
+
"devflow/specs/capabilities/cap-example.md"
|
|
47
|
+
],
|
|
48
|
+
"syncStatus": "planned"
|
|
49
|
+
},
|
|
50
|
+
"tasteDecisions": [],
|
|
51
|
+
"userChallenges": [],
|
|
52
|
+
"currentTaskId": "T001",
|
|
53
|
+
"activePhase": 1,
|
|
54
|
+
"frozenDecisions": [
|
|
55
|
+
"Keep the existing route and data contract",
|
|
56
|
+
"Prefer a minimal patch over a broader refactor"
|
|
57
|
+
],
|
|
58
|
+
"tasks": [
|
|
59
|
+
{
|
|
60
|
+
"id": "T001",
|
|
61
|
+
"title": "[TEST] Add a failing test for the missing behavior",
|
|
62
|
+
"phase": 1,
|
|
63
|
+
"status": "pending",
|
|
64
|
+
"tddPhase": "red",
|
|
65
|
+
"dependsOn": [],
|
|
66
|
+
"parallel": false,
|
|
67
|
+
"touches": [
|
|
68
|
+
"tests",
|
|
69
|
+
"requirement-behavior"
|
|
70
|
+
],
|
|
71
|
+
"files": [
|
|
72
|
+
"src/feature/feature.test.ts"
|
|
73
|
+
],
|
|
74
|
+
"acceptance": [
|
|
75
|
+
"The target behavior is reproduced as a failing test",
|
|
76
|
+
"The failure message points to the missing requirement behavior"
|
|
77
|
+
],
|
|
78
|
+
"verification": [
|
|
79
|
+
"npm test -- src/feature/feature.test.ts"
|
|
80
|
+
],
|
|
81
|
+
"evidence": [
|
|
82
|
+
"Failing test output"
|
|
83
|
+
],
|
|
84
|
+
"context": {
|
|
85
|
+
"readFiles": [
|
|
86
|
+
"design.md",
|
|
87
|
+
"tasks.md",
|
|
88
|
+
"change-meta.json"
|
|
89
|
+
],
|
|
90
|
+
"commands": [
|
|
91
|
+
"npm test -- src/feature/feature.test.ts"
|
|
92
|
+
],
|
|
93
|
+
"notes": [
|
|
94
|
+
"Write the failing test first",
|
|
95
|
+
"Do not change unrelated contracts in this task"
|
|
96
|
+
]
|
|
97
|
+
},
|
|
98
|
+
"reviews": {
|
|
99
|
+
"spec": "pending",
|
|
100
|
+
"code": "pending"
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
],
|
|
104
|
+
"openQuestions": [],
|
|
105
|
+
"deferredQuestions": [
|
|
106
|
+
"If the patch touches shared contracts, upgrade the design to full-design"
|
|
107
|
+
]
|
|
108
|
+
}
|