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,216 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: cc-do
|
|
3
|
+
version: 1.5.1
|
|
4
|
+
description: Use when implementing planned tasks, resuming interrupted work, applying a frozen investigation handoff, or landing review feedback after cc-plan or cc-investigate.
|
|
5
|
+
triggers:
|
|
6
|
+
- 开始做 T003
|
|
7
|
+
- 继续上次做到一半的任务
|
|
8
|
+
- 按 planning/tasks.md 开始实现
|
|
9
|
+
- 修这个 review comment
|
|
10
|
+
- implement this task
|
|
11
|
+
- resume this requirement
|
|
12
|
+
- repair this investigated bug
|
|
13
|
+
reads:
|
|
14
|
+
- PLAYBOOK.md
|
|
15
|
+
- CHANGELOG.md
|
|
16
|
+
- references/execution-recovery.md
|
|
17
|
+
- references/parallel-dispatch.md
|
|
18
|
+
writes:
|
|
19
|
+
- path: devflow/changes/<change-key>/execution/tasks/<task-id>/checkpoint.json
|
|
20
|
+
durability: durable
|
|
21
|
+
required: true
|
|
22
|
+
- path: devflow/changes/<change-key>/execution/tasks/<task-id>/events.jsonl
|
|
23
|
+
durability: durable
|
|
24
|
+
required: false
|
|
25
|
+
when: debug mode is enabled or the task execution fails
|
|
26
|
+
- path: devflow/changes/<change-key>/execution/team-state.json
|
|
27
|
+
durability: durable
|
|
28
|
+
required: false
|
|
29
|
+
when: execution mode uses delegated or team workers
|
|
30
|
+
effects:
|
|
31
|
+
- code changes
|
|
32
|
+
- test changes
|
|
33
|
+
- workspace scratch runtime updates
|
|
34
|
+
entry_gate:
|
|
35
|
+
- Read planning/design.md or planning/analysis.md, then planning/tasks.md, planning/task-manifest.json, change-meta.json, related capability specs, and the latest checkpoint before changing code.
|
|
36
|
+
- Select only ready tasks whose dependencies and file ownership are clear.
|
|
37
|
+
- If the current task cannot be restated from canonical artifacts, run a context reset before coding.
|
|
38
|
+
exit_criteria:
|
|
39
|
+
- The current task has red/green evidence, review evidence, and a resumable checkpoint trail.
|
|
40
|
+
- Execution leaves the next verifier enough runtime truth to judge the task without chat memory.
|
|
41
|
+
- The honest next step is cc-check or an explicit reroute.
|
|
42
|
+
reroutes:
|
|
43
|
+
- when: Three failed repair attempts or new evidence show the investigation contract is wrong.
|
|
44
|
+
target: cc-investigate
|
|
45
|
+
- when: New evidence shows the requirement design or scope contract is wrong.
|
|
46
|
+
target: cc-plan
|
|
47
|
+
- when: Implementation and reviews are complete for the current task set.
|
|
48
|
+
target: cc-check
|
|
49
|
+
recovery_modes:
|
|
50
|
+
- name: resume-from-checkpoint
|
|
51
|
+
when: Work was interrupted but the current design contract is still valid.
|
|
52
|
+
action: Reload the latest checkpoint, rebuild task context, and continue from the last confirmed red/green/review milestone.
|
|
53
|
+
- name: context-reset
|
|
54
|
+
when: The conversation history is noisy, stale, or cannot reproduce the exact task state.
|
|
55
|
+
action: Discard chat memory, reread planning/design.md or planning/analysis.md plus planning/tasks.md/planning/task-manifest.json and the latest checkpoint, then restate the next action before coding.
|
|
56
|
+
tool_budget:
|
|
57
|
+
read_files: 9
|
|
58
|
+
search_steps: 6
|
|
59
|
+
shell_commands: 8
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
# CC-Do
|
|
63
|
+
|
|
64
|
+
> [PROTOCOL]: 变更时同步更新 `version`、`CHANGELOG.md`、相关模板/脚本引用,然后检查 `CLAUDE.md`
|
|
65
|
+
|
|
66
|
+
## Role
|
|
67
|
+
|
|
68
|
+
`cc-do` 是 PDCA 里的 `Do`。
|
|
69
|
+
|
|
70
|
+
同时它也是 IDCA / DDCA 里的 `Do`。
|
|
71
|
+
|
|
72
|
+
它只做一件事:沿着已经冻结的任务,把代码真正做出来,并把执行证据留到足够让别人接手、复盘、复验。
|
|
73
|
+
|
|
74
|
+
上游冻结合同可以来自两条路:
|
|
75
|
+
|
|
76
|
+
- `cc-plan` 产出的 `planning/design.md`
|
|
77
|
+
- `cc-investigate` 产出的 `planning/analysis.md`
|
|
78
|
+
|
|
79
|
+
## Read First
|
|
80
|
+
|
|
81
|
+
1. `PLAYBOOK.md`
|
|
82
|
+
2. `CHANGELOG.md`
|
|
83
|
+
3. `references/execution-recovery.md`
|
|
84
|
+
4. `references/parallel-dispatch.md`
|
|
85
|
+
|
|
86
|
+
## Use This Skill When
|
|
87
|
+
|
|
88
|
+
- 要实现 `planning/tasks.md` / `planning/task-manifest.json`
|
|
89
|
+
- 执行被中断,需要恢复
|
|
90
|
+
- bug 根因已经在 `cc-investigate` 里冻结,准备开始修
|
|
91
|
+
- review feedback 要落成代码
|
|
92
|
+
|
|
93
|
+
如果方案还没冻结、任务边界还没定,停下并回 `cc-plan` 或 `cc-investigate`。
|
|
94
|
+
|
|
95
|
+
## Quick Start
|
|
96
|
+
|
|
97
|
+
先判断现在是哪一种执行局面,再开始编码:
|
|
98
|
+
|
|
99
|
+
| 现实状态 | 先走什么路径 |
|
|
100
|
+
| --- | --- |
|
|
101
|
+
| 已有 ready task,直接实现 | `implement` |
|
|
102
|
+
| 上次做到一半,需要继续 | `resume` |
|
|
103
|
+
| bug 根因已冻结 | `repair-from-investigation` |
|
|
104
|
+
| bug 还没搞清根因 | reroute 到 `cc-investigate` |
|
|
105
|
+
| 收到 review comment,要在既定范围内修正 | `review-fix` |
|
|
106
|
+
|
|
107
|
+
如果连“当前 task 是什么”都说不清,先别写代码,先跑 `scripts/select-ready-tasks.sh` 和 `scripts/build-task-context.sh`。
|
|
108
|
+
|
|
109
|
+
## Harness Contract
|
|
110
|
+
|
|
111
|
+
- Allowed actions: implement ready tasks, debug inside frozen scope, write runtime evidence, and apply review feedback that does not reopen design.
|
|
112
|
+
- Forbidden actions: re-planning the requirement in place, blindly rerunning the whole requirement, or delegating tasks without full task context.
|
|
113
|
+
- Required evidence: every task must leave red/green/review checkpoints plus objective failure notes when blocked.
|
|
114
|
+
- Reroute rule: after repeated failed repairs or root-cause drift, stop patching and go back to `cc-investigate`; if scope or design truth breaks, go back to `cc-plan`; after task closure, hand off to `cc-check`.
|
|
115
|
+
|
|
116
|
+
## TDD Iron Law
|
|
117
|
+
|
|
118
|
+
```text
|
|
119
|
+
NO PRODUCTION CODE WITHOUT A FAILING TEST FIRST
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
`cc-do` 默认采用测试先行的执行纪律:
|
|
123
|
+
|
|
124
|
+
1. Red:先写一个最小失败测试,运行并确认它因为目标行为缺失而失败。
|
|
125
|
+
2. Green:只写让当前失败测试通过的最小生产代码。
|
|
126
|
+
3. Refactor:只有 Green 之后才能清理命名、重复、结构和坏味道。
|
|
127
|
+
4. Record:每一站都写入 `checkpoint.json`,必要时写入 `events.jsonl`。
|
|
128
|
+
|
|
129
|
+
例外只能用于 throwaway prototype、纯生成文件、纯配置改动;例外必须写进 checkpoint 的 `tddException`,包含原因、风险和替代验证命令。测试第一次就绿,说明测试没有证明新行为,必须修测试而不是继续写生产代码。
|
|
130
|
+
|
|
131
|
+
## Entry Gate
|
|
132
|
+
|
|
133
|
+
1. 先读 `planning/design.md` 或 `planning/analysis.md`,再读 `planning/tasks.md`、`planning/task-manifest.json`;如果是恢复执行,再补读最近 checkpoint 或已有 `handoff/resume-index.md`。
|
|
134
|
+
2. 先用 `scripts/select-ready-tasks.sh` 判断现在到底哪几个任务真的 ready。
|
|
135
|
+
3. 只锁定当前 ready task,或一组经依赖与触点校验后可并行的 ready tasks。
|
|
136
|
+
4. 如果这次来自 `cc-investigate`,必须把 `planning/analysis.md` 当成 canonical contract,而不是一边实现一边重新调查。
|
|
137
|
+
5. 没有任务上下文,不准把任务扔给 subagent;先用 `scripts/build-task-context.sh` 从 `planning/design.md` 或 `planning/analysis.md`、`planning/tasks.md`、`planning/task-manifest.json`、`change-meta.json` 与相关 capability spec 组装上下文。
|
|
138
|
+
|
|
139
|
+
## Loop
|
|
140
|
+
|
|
141
|
+
1. 读取当前任务,而不是重新发明任务。
|
|
142
|
+
2. 依赖没满足前,不准提前做下游任务。
|
|
143
|
+
3. 没有明确并行资格,不准把多个实现任务同时推进。
|
|
144
|
+
4. 先 `fail-first`:先写失败测试,先看见预期红,再写生产代码。
|
|
145
|
+
5. 如果红灯不是预期失败(语法错、fixture 错、测试没连上),先修测试直到它正确失败。
|
|
146
|
+
6. 按 `Red -> Green -> Refactor` 推进,Green 只允许最小实现。
|
|
147
|
+
7. Refactor 后必须重跑相关测试,保持 Green。
|
|
148
|
+
8. 每次推进都写 task runtime:`events.jsonl` + `checkpoint.json`。
|
|
149
|
+
9. 任务实现后,先过 `spec review`,再过 `code review`,两道门都过才算任务收口;这里只验证 spec delta,不回写长期 spec。
|
|
150
|
+
10. 当前任务完成后,把可验证证据留给 `cc-check`。
|
|
151
|
+
|
|
152
|
+
## Output
|
|
153
|
+
|
|
154
|
+
- 代码变更
|
|
155
|
+
- 测试变更
|
|
156
|
+
- `devflow/changes/<change-key>/execution/tasks/<task-id>/checkpoint.json`
|
|
157
|
+
- `devflow/changes/<change-key>/execution/tasks/<task-id>/events.jsonl`(仅 debug / failed 默认保留)
|
|
158
|
+
- `planning/task-manifest.json` 里的 task review verdict
|
|
159
|
+
|
|
160
|
+
## Good Output
|
|
161
|
+
|
|
162
|
+
- 当前 task 一眼可见,执行者不用从聊天记录里猜目标
|
|
163
|
+
- 至少留下一次明确的 Red/Green/Refactor 证据,且 Red 是预期失败
|
|
164
|
+
- runtime / checkpoint 足够让下一位接手者无损恢复
|
|
165
|
+
- reviewer 能顺着 review 记录和验证命令复盘这次实现
|
|
166
|
+
|
|
167
|
+
## Bundled Resources
|
|
168
|
+
|
|
169
|
+
- 变更记录:`CHANGELOG.md`
|
|
170
|
+
- 执行 / 恢复规则:`references/execution-recovery.md`
|
|
171
|
+
- 并行分配准则:`references/parallel-dispatch.md`
|
|
172
|
+
- 恢复分析:`scripts/recover-workflow.sh`
|
|
173
|
+
- 任务状态:`scripts/check-task-status.sh`
|
|
174
|
+
- ready 任务选择:`scripts/select-ready-tasks.sh`
|
|
175
|
+
- 任务上下文组装:`scripts/build-task-context.sh`
|
|
176
|
+
- checkpoint 记录:`scripts/write-task-checkpoint.sh`
|
|
177
|
+
- review 记录:`scripts/record-review-decision.sh`
|
|
178
|
+
- 任务闭环校验:`scripts/verify-task-gates.sh`
|
|
179
|
+
- 任务勾选:`scripts/mark-task-complete.sh`
|
|
180
|
+
- 文件冲突:`scripts/detect-file-conflicts.sh`
|
|
181
|
+
|
|
182
|
+
## Working Rules
|
|
183
|
+
|
|
184
|
+
1. 没有根因,不准修 bug。
|
|
185
|
+
2. 没有任务边界,不准无界发散。
|
|
186
|
+
3. 没有失败测试,不准写生产代码。
|
|
187
|
+
4. 测试如果第一次就绿,说明你没证明任何东西,先修测试。
|
|
188
|
+
5. 红灯原因必须和目标行为缺失一致;红灯如果只是测试写错,不算 TDD 证据。
|
|
189
|
+
6. 先过 `spec review`,再过 `code review`,顺序不能反。
|
|
190
|
+
7. 不在 `cc-do` 里改 capability spec 正文;这里只产出实现证据和 spec 对齐证据。
|
|
191
|
+
8. 失败和阻塞都要留下恢复证据。
|
|
192
|
+
9. 给 subagent 的输入必须包含:当前进度、当前任务全文、依赖状态、必读文件、验收标准、可信命令。
|
|
193
|
+
10. 三次失败修补后必须先质疑调查合同或设计合同,而不是继续堆补丁。
|
|
194
|
+
|
|
195
|
+
## Exit Criteria
|
|
196
|
+
|
|
197
|
+
- 当前任务有 Red/Green 证据
|
|
198
|
+
- 当前任务有 `spec review` / `code review` 两道门证据
|
|
199
|
+
- 恢复点已更新到 `devflow/changes/<change-key>/execution/tasks/<task-id>/`
|
|
200
|
+
- 阻塞原因已写清楚
|
|
201
|
+
- 下一步应进入 `cc-check`,或明确退回 `cc-investigate` / `cc-plan`
|
|
202
|
+
|
|
203
|
+
## Do Not
|
|
204
|
+
|
|
205
|
+
- 不在这里重开方案讨论
|
|
206
|
+
- 不把一次修复膨胀成重写整个模块
|
|
207
|
+
- 不把依赖任务和被依赖任务同时并行
|
|
208
|
+
- 不把没有当前进度的任务直接丢给 subagent
|
|
209
|
+
- 三层以上判断说明上游合同该回炉
|
|
210
|
+
|
|
211
|
+
## Companion Files
|
|
212
|
+
|
|
213
|
+
- 深入剧本:`PLAYBOOK.md`
|
|
214
|
+
- 变更记录:`CHANGELOG.md`
|
|
215
|
+
- 执行规则:`references/execution-recovery.md`
|
|
216
|
+
- 并行规则:`references/parallel-dispatch.md`
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# Execution And Recovery
|
|
2
|
+
|
|
3
|
+
## Minimum Runtime Truth
|
|
4
|
+
|
|
5
|
+
- 当前 requirement / change ID
|
|
6
|
+
- 当前 task ID
|
|
7
|
+
- 当前 task status
|
|
8
|
+
- 当前 active phase
|
|
9
|
+
- 当前 ready tasks
|
|
10
|
+
- 当前 review gates(spec / code)
|
|
11
|
+
- 已完成证据
|
|
12
|
+
- 阻塞点
|
|
13
|
+
- 下一步唯一动作
|
|
14
|
+
|
|
15
|
+
## Recovery Rule
|
|
16
|
+
|
|
17
|
+
恢复时只回答 3 件事:
|
|
18
|
+
|
|
19
|
+
1. 现在停在哪
|
|
20
|
+
2. 为什么停在这
|
|
21
|
+
3. 下一步必须先做什么
|
|
22
|
+
|
|
23
|
+
如果这三件事不能只靠规范产物和最新 checkpoint 回答,就先做 context reset,不准继续依赖聊天记忆。
|
|
24
|
+
|
|
25
|
+
## Runtime Layout
|
|
26
|
+
|
|
27
|
+
运行态证据按任务落在:
|
|
28
|
+
|
|
29
|
+
- `devflow/changes/<change-key>/execution/tasks/<task-id>/checkpoint.json`
|
|
30
|
+
- `devflow/changes/<change-key>/execution/tasks/<task-id>/events.jsonl`(仅 debug / failed 默认保留)
|
|
31
|
+
- `planning/task-manifest.json` 里的 `tasks[*].reviews`
|
|
32
|
+
|
|
33
|
+
## Required Event Spine
|
|
34
|
+
|
|
35
|
+
一个健康任务最少要看见这些事件:
|
|
36
|
+
|
|
37
|
+
1. `context_ready`
|
|
38
|
+
2. `red_failed`
|
|
39
|
+
3. `red_reason_verified`
|
|
40
|
+
4. `green_passed`
|
|
41
|
+
5. `refactor_done` 或 `refactor_not_needed`
|
|
42
|
+
6. `refactor_green`
|
|
43
|
+
7. `spec_review_pass`
|
|
44
|
+
8. `code_review_pass`
|
|
45
|
+
|
|
46
|
+
如果 `events.jsonl` 没开启,至少仍要有最新 `checkpoint.json` 和 manifest review verdict。
|
|
47
|
+
|
|
48
|
+
## Checkpoint TDD Fields
|
|
49
|
+
|
|
50
|
+
最新 checkpoint 至少能回答:
|
|
51
|
+
|
|
52
|
+
- `red.command`
|
|
53
|
+
- `red.exitStatus`
|
|
54
|
+
- `red.expectedFailure`
|
|
55
|
+
- `green.command`
|
|
56
|
+
- `green.exitStatus`
|
|
57
|
+
- `refactor.status`
|
|
58
|
+
- `review.spec.status`
|
|
59
|
+
- `review.code.status`
|
|
60
|
+
|
|
61
|
+
如果跳过 TDD,必须有 `tddException`,并写清替代验证。没有这些字段时,恢复执行先补证据,不准直接继续实现。
|
|
62
|
+
|
|
63
|
+
## Bug Rule
|
|
64
|
+
|
|
65
|
+
- 先复现
|
|
66
|
+
- 再收证据
|
|
67
|
+
- 再下根因判断
|
|
68
|
+
- 最后改代码
|
|
69
|
+
|
|
70
|
+
## Local Recovery Ladder
|
|
71
|
+
|
|
72
|
+
1. 先重试当前命令或当前 task,而不是重跑整条 requirement
|
|
73
|
+
2. 两次失败后回看证据链和 task context
|
|
74
|
+
3. 三次失败后默认怀疑上游合同:根因漂移回 `cc-investigate`,范围 / 设计漂移回 `cc-plan`
|
|
75
|
+
|
|
76
|
+
## Subagent Rule
|
|
77
|
+
|
|
78
|
+
给 subagent 的上下文至少包含:
|
|
79
|
+
|
|
80
|
+
- 当前任务全文
|
|
81
|
+
- 当前进度与最近 checkpoint
|
|
82
|
+
- 已满足 / 未满足的依赖
|
|
83
|
+
- 必读文件
|
|
84
|
+
- 验收标准
|
|
85
|
+
- 验证命令
|
|
86
|
+
- 不做项 / 边界
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# Parallel Dispatch Guide
|
|
2
|
+
|
|
3
|
+
## Golden Law
|
|
4
|
+
|
|
5
|
+
并行的是独立事实,不是因果链。
|
|
6
|
+
|
|
7
|
+
如果一个任务的输出会改变另一个任务的实现选择,那它们就不是并行任务,而是顺序任务。
|
|
8
|
+
|
|
9
|
+
## Can Run In Parallel
|
|
10
|
+
|
|
11
|
+
只有全部满足,才算可并行:
|
|
12
|
+
|
|
13
|
+
1. 两个任务都在当前 active phase
|
|
14
|
+
2. `dependsOn` 已满足,且互不依赖
|
|
15
|
+
3. `touches` / `files` 没有交集
|
|
16
|
+
4. 不共享同一个可变资源,例如同一 schema、同一公共接口、同一全局状态
|
|
17
|
+
5. 验证命令可以各自独立运行
|
|
18
|
+
6. 每个任务都有完整上下文包,不需要靠别人的临场解释补脑
|
|
19
|
+
|
|
20
|
+
## Must Run Sequentially
|
|
21
|
+
|
|
22
|
+
命中任一条,就必须串行:
|
|
23
|
+
|
|
24
|
+
1. 一个任务依赖另一个任务的输出
|
|
25
|
+
2. 两个任务会改同一个文件或同一抽象边界
|
|
26
|
+
3. 上游任务在定义契约,下游任务在消费契约
|
|
27
|
+
4. 一个任务先改 schema / API,另一个任务基于它写实现
|
|
28
|
+
5. 你还不能清楚说出每个任务各自的验收标准
|
|
29
|
+
6. 你打算让第二个 subagent 先看第一个 subagent 的结果再决定怎么写
|
|
30
|
+
|
|
31
|
+
## Dispatch Packet
|
|
32
|
+
|
|
33
|
+
每个 subagent 在开工前必须拿到:
|
|
34
|
+
|
|
35
|
+
- 当前任务全文
|
|
36
|
+
- 当前 requirement 摘要
|
|
37
|
+
- 当前进度摘要
|
|
38
|
+
- 当前任务依赖状态
|
|
39
|
+
- 必读文件列表
|
|
40
|
+
- 允许修改的触点
|
|
41
|
+
- 验收标准
|
|
42
|
+
- 可信命令
|
|
43
|
+
- 非目标
|
|
44
|
+
|
|
45
|
+
少任何一项,都不是“已准备好的并行任务”。
|
|
46
|
+
|
|
47
|
+
## Scheduling Heuristics
|
|
48
|
+
|
|
49
|
+
优先级从高到低:
|
|
50
|
+
|
|
51
|
+
1. 先选当前 active phase 的 ready tasks
|
|
52
|
+
2. 在 ready tasks 里优先选 `touches` 不重叠的任务
|
|
53
|
+
3. 在不重叠任务里优先选验证面最小的任务
|
|
54
|
+
4. 如果仍然不确定,退回串行
|
|
55
|
+
|
|
56
|
+
## Good Example
|
|
57
|
+
|
|
58
|
+
- `T010 [TEST]` 为支付折扣补失败测试,触点只在 `tests/payment-discount.test.ts`
|
|
59
|
+
- `T011 [TEST]` 为通知重试补失败测试,触点只在 `tests/notify-retry.test.ts`
|
|
60
|
+
- `T012 [IMPL]` 修支付折扣实现,`dependsOn:T010`
|
|
61
|
+
- `T013 [IMPL]` 修通知重试实现,`dependsOn:T011`
|
|
62
|
+
|
|
63
|
+
可以并行的是 `T010` 和 `T011`,也可以在它们各自通过后并行 `T012` 和 `T013`。
|
|
64
|
+
|
|
65
|
+
## Bad Example
|
|
66
|
+
|
|
67
|
+
- `T020` 重命名鉴权中间件导出
|
|
68
|
+
- `T021` 基于新导出接入路由
|
|
69
|
+
|
|
70
|
+
这不是并行,它们是显式因果链。
|
|
71
|
+
|
|
72
|
+
## Taste Check
|
|
73
|
+
|
|
74
|
+
并行调度前问自己三件事:
|
|
75
|
+
|
|
76
|
+
1. 如果 A 任务晚 30 分钟完成,B 还能独立写完吗?
|
|
77
|
+
2. 如果两个任务同时改完,我能不用人工大合并就直接集成吗?
|
|
78
|
+
3. 如果把两个任务交给两个完全不共享记忆的 subagent,他们还能各自成功吗?
|
|
79
|
+
|
|
80
|
+
有一个答案是否,就别并行。
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
set -euo pipefail
|
|
4
|
+
|
|
5
|
+
# ------------------------------------------------------------
|
|
6
|
+
# 组装当前任务的执行上下文,并记录 context_ready 事件
|
|
7
|
+
# ------------------------------------------------------------
|
|
8
|
+
|
|
9
|
+
usage() {
|
|
10
|
+
cat <<'EOF'
|
|
11
|
+
Usage:
|
|
12
|
+
build-task-context.sh --dir path/to/change --task T001
|
|
13
|
+
EOF
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
17
|
+
source "$SCRIPT_DIR/cc-do-common.sh"
|
|
18
|
+
REQ_DIR=""
|
|
19
|
+
TASK_ID=""
|
|
20
|
+
|
|
21
|
+
while [[ $# -gt 0 ]]; do
|
|
22
|
+
case "$1" in
|
|
23
|
+
--dir) REQ_DIR="$2"; shift 2 ;;
|
|
24
|
+
--task) TASK_ID="$(echo "$2" | tr '[:lower:]' '[:upper:]')"; shift 2 ;;
|
|
25
|
+
-h|--help) usage; exit 0 ;;
|
|
26
|
+
*) echo "Unknown arg: $1" >&2; usage; exit 1 ;;
|
|
27
|
+
esac
|
|
28
|
+
done
|
|
29
|
+
|
|
30
|
+
if [[ -z "$REQ_DIR" || -z "$TASK_ID" || ! -d "$REQ_DIR" ]]; then
|
|
31
|
+
usage
|
|
32
|
+
exit 1
|
|
33
|
+
fi
|
|
34
|
+
|
|
35
|
+
CHANGE_DIR="$(req_do_resolve_change_dir "$REQ_DIR")"
|
|
36
|
+
manifest="$(req_do_manifest_path "$CHANGE_DIR")"
|
|
37
|
+
design_file="$(req_do_contract_path "$CHANGE_DIR")"
|
|
38
|
+
tasks_file="$(req_do_tasks_path "$CHANGE_DIR")"
|
|
39
|
+
change_meta="$(req_do_change_meta_path "$CHANGE_DIR")"
|
|
40
|
+
resume_index="$(req_do_resume_index_path "$CHANGE_DIR")"
|
|
41
|
+
|
|
42
|
+
if [[ ! -f "$manifest" ]]; then
|
|
43
|
+
echo "Missing $manifest" >&2
|
|
44
|
+
exit 1
|
|
45
|
+
fi
|
|
46
|
+
|
|
47
|
+
task_json="$(jq -c --arg task "$TASK_ID" '.tasks[] | select(.id == $task)' "$manifest")"
|
|
48
|
+
if [[ -z "$task_json" ]]; then
|
|
49
|
+
echo "$TASK_ID not found in manifest" >&2
|
|
50
|
+
exit 1
|
|
51
|
+
fi
|
|
52
|
+
|
|
53
|
+
change_id="$(jq -r '.changeId // .requirementId // "REQ-UNKNOWN"' "$manifest")"
|
|
54
|
+
runtime_task_dir="$(req_do_task_runtime_dir "$CHANGE_DIR" "$TASK_ID")"
|
|
55
|
+
output_path="$runtime_task_dir/context.md"
|
|
56
|
+
ready_json="$("$SCRIPT_DIR/select-ready-tasks.sh" --manifest "$manifest")"
|
|
57
|
+
|
|
58
|
+
mkdir -p "$runtime_task_dir"
|
|
59
|
+
|
|
60
|
+
list_or_none() {
|
|
61
|
+
local value="$1"
|
|
62
|
+
if [[ -z "${value//$'\n'/}" ]]; then
|
|
63
|
+
echo "- None"
|
|
64
|
+
else
|
|
65
|
+
printf '%s\n' "$value" | sed '/^$/d' | awk '!seen[$0]++' | sed 's/^/- /'
|
|
66
|
+
fi
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
task_title="$(jq -r '.title // ""' <<<"$task_json")"
|
|
70
|
+
task_phase="$(jq -r '.phase // 0' <<<"$task_json")"
|
|
71
|
+
task_status="$(jq -r '.status // "pending"' <<<"$task_json")"
|
|
72
|
+
task_parallel="$(jq -r '.parallel // false' <<<"$task_json")"
|
|
73
|
+
task_depends="$(jq -r '(.dependsOn // [])[]?' <<<"$task_json")"
|
|
74
|
+
task_touches="$(jq -r '((.touches // .files // [])[]?)' <<<"$task_json")"
|
|
75
|
+
task_acceptance="$(jq -r '(.acceptance // [])[]?' <<<"$task_json")"
|
|
76
|
+
task_verification="$(jq -r '(.verification // [])[]?' <<<"$task_json")"
|
|
77
|
+
task_read_files="$(jq -r '(.context.readFiles // [])[]?' <<<"$task_json")"
|
|
78
|
+
task_commands="$(jq -r '(.context.commands // [])[]?' <<<"$task_json")"
|
|
79
|
+
task_notes="$(jq -r '(.context.notes // [])[]?' <<<"$task_json")"
|
|
80
|
+
completed_tasks="$(jq -r '
|
|
81
|
+
.tasks[]
|
|
82
|
+
| select((.status // "pending") == "passed" or (.status // "pending") == "completed" or (.status // "pending") == "done" or (.status // "pending") == "verified")
|
|
83
|
+
| .id
|
|
84
|
+
' "$manifest")"
|
|
85
|
+
ready_tasks="$(echo "$ready_json" | jq -r '.readyTasks[]?.id')"
|
|
86
|
+
running_tasks="$(echo "$ready_json" | jq -r '.runningTasks[]?.id')"
|
|
87
|
+
active_phase="$(echo "$ready_json" | jq -r '.activePhase // "unknown"')"
|
|
88
|
+
primary_capability="$(jq -r '.spec.primaryCapability // empty' "$manifest" 2>/dev/null || true)"
|
|
89
|
+
secondary_capabilities="$(jq -r '(.spec.secondaryCapabilities // [])[]?' "$manifest" 2>/dev/null || true)"
|
|
90
|
+
spec_files="$(jq -r '(.spec.specFiles // [])[]?' "$manifest" 2>/dev/null || true)"
|
|
91
|
+
expected_delta="$(jq -r '(.spec.expectedDelta // [])[]?' "$manifest" 2>/dev/null || true)"
|
|
92
|
+
sync_status="$(jq -r '.spec.syncStatus // "unknown"' "$manifest" 2>/dev/null || true)"
|
|
93
|
+
|
|
94
|
+
{
|
|
95
|
+
echo "# Task Context"
|
|
96
|
+
echo
|
|
97
|
+
echo "- Change: $change_id"
|
|
98
|
+
echo "- Task: $TASK_ID"
|
|
99
|
+
echo "- Title: $task_title"
|
|
100
|
+
echo "- Phase: $task_phase"
|
|
101
|
+
echo "- Status: $task_status"
|
|
102
|
+
echo "- Parallel eligible: $task_parallel"
|
|
103
|
+
echo "- Active phase: $active_phase"
|
|
104
|
+
echo
|
|
105
|
+
echo "## Current Progress"
|
|
106
|
+
echo
|
|
107
|
+
echo "### Completed Tasks"
|
|
108
|
+
list_or_none "$completed_tasks"
|
|
109
|
+
echo
|
|
110
|
+
echo "### Running Tasks"
|
|
111
|
+
list_or_none "$running_tasks"
|
|
112
|
+
echo
|
|
113
|
+
echo "### Ready Tasks"
|
|
114
|
+
list_or_none "$ready_tasks"
|
|
115
|
+
echo
|
|
116
|
+
echo "## Dependencies"
|
|
117
|
+
echo
|
|
118
|
+
list_or_none "$task_depends"
|
|
119
|
+
echo
|
|
120
|
+
echo "## Touches"
|
|
121
|
+
echo
|
|
122
|
+
list_or_none "$task_touches"
|
|
123
|
+
echo
|
|
124
|
+
echo "## Acceptance"
|
|
125
|
+
echo
|
|
126
|
+
list_or_none "$task_acceptance"
|
|
127
|
+
echo
|
|
128
|
+
echo "## Verification"
|
|
129
|
+
echo
|
|
130
|
+
list_or_none "$task_verification"
|
|
131
|
+
echo
|
|
132
|
+
echo "## Read First"
|
|
133
|
+
echo
|
|
134
|
+
list_or_none "$task_read_files"
|
|
135
|
+
echo
|
|
136
|
+
echo "## Commands To Trust"
|
|
137
|
+
echo
|
|
138
|
+
list_or_none "$task_commands"
|
|
139
|
+
echo
|
|
140
|
+
echo "## Spec Contract"
|
|
141
|
+
echo
|
|
142
|
+
echo "- Primary capability: ${primary_capability:-none}"
|
|
143
|
+
echo "- Spec sync status: ${sync_status:-unknown}"
|
|
144
|
+
echo
|
|
145
|
+
echo "### Secondary Capabilities"
|
|
146
|
+
list_or_none "$secondary_capabilities"
|
|
147
|
+
echo
|
|
148
|
+
echo "### Capability Specs"
|
|
149
|
+
list_or_none "$spec_files"
|
|
150
|
+
echo
|
|
151
|
+
echo "### Expected Spec Delta"
|
|
152
|
+
list_or_none "$expected_delta"
|
|
153
|
+
echo
|
|
154
|
+
echo "## Task Notes"
|
|
155
|
+
echo
|
|
156
|
+
list_or_none "$task_notes"
|
|
157
|
+
echo
|
|
158
|
+
echo "## Canonical Planning Files"
|
|
159
|
+
echo
|
|
160
|
+
[[ -f "$design_file" ]] && echo "- ${design_file#$CHANGE_DIR/}"
|
|
161
|
+
[[ -f "$tasks_file" ]] && echo "- ${tasks_file#$CHANGE_DIR/}"
|
|
162
|
+
[[ -f "$change_meta" ]] && echo "- ${change_meta#$CHANGE_DIR/}"
|
|
163
|
+
echo "- planning/task-manifest.json"
|
|
164
|
+
echo
|
|
165
|
+
echo "## Context Reset"
|
|
166
|
+
echo
|
|
167
|
+
echo "- If chat context drifts, discard conversational memory and reload only the canonical files above plus the latest checkpoint."
|
|
168
|
+
echo "- Do not continue from memory if the current task, active phase, or latest checkpoint summary cannot be restated exactly."
|
|
169
|
+
echo
|
|
170
|
+
if [[ -f "$resume_index" ]]; then
|
|
171
|
+
echo "## Optional Resume Index"
|
|
172
|
+
echo
|
|
173
|
+
cat "$resume_index"
|
|
174
|
+
fi
|
|
175
|
+
} > "$output_path"
|
|
176
|
+
|
|
177
|
+
"$SCRIPT_DIR/write-task-checkpoint.sh" \
|
|
178
|
+
--dir "$CHANGE_DIR" \
|
|
179
|
+
--task "$TASK_ID" \
|
|
180
|
+
--status pending \
|
|
181
|
+
--summary "Task context assembled" \
|
|
182
|
+
--next-action "Write the failing test for $TASK_ID" >/dev/null
|
|
183
|
+
|
|
184
|
+
cat "$output_path"
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
# ------------------------------------------------------------
|
|
4
|
+
# cc-do: canonical devflow layout 解析
|
|
5
|
+
# ------------------------------------------------------------
|
|
6
|
+
|
|
7
|
+
req_do_resolve_change_dir() {
|
|
8
|
+
local input="$1"
|
|
9
|
+
local normalized
|
|
10
|
+
|
|
11
|
+
normalized="${input%/}"
|
|
12
|
+
case "$(basename "$normalized")" in
|
|
13
|
+
planning|execution|review|handoff|meta)
|
|
14
|
+
dirname "$normalized"
|
|
15
|
+
;;
|
|
16
|
+
*)
|
|
17
|
+
printf '%s\n' "$normalized"
|
|
18
|
+
;;
|
|
19
|
+
esac
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
req_do_planning_dir() {
|
|
23
|
+
printf '%s/planning\n' "$(req_do_resolve_change_dir "$1")"
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
req_do_execution_dir() {
|
|
27
|
+
printf '%s/execution\n' "$(req_do_resolve_change_dir "$1")"
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
req_do_review_dir() {
|
|
31
|
+
printf '%s/review\n' "$(req_do_resolve_change_dir "$1")"
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
req_do_handoff_dir() {
|
|
35
|
+
printf '%s/handoff\n' "$(req_do_resolve_change_dir "$1")"
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
req_do_manifest_path() {
|
|
39
|
+
printf '%s/task-manifest.json\n' "$(req_do_planning_dir "$1")"
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
req_do_tasks_path() {
|
|
43
|
+
printf '%s/tasks.md\n' "$(req_do_planning_dir "$1")"
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
req_do_change_meta_path() {
|
|
47
|
+
printf '%s/change-meta.json\n' "$(req_do_resolve_change_dir "$1")"
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
req_do_contract_path() {
|
|
51
|
+
local planning_dir
|
|
52
|
+
local design_file
|
|
53
|
+
local analysis_file
|
|
54
|
+
|
|
55
|
+
planning_dir="$(req_do_planning_dir "$1")"
|
|
56
|
+
design_file="$planning_dir/design.md"
|
|
57
|
+
analysis_file="$planning_dir/analysis.md"
|
|
58
|
+
|
|
59
|
+
if [[ -f "$analysis_file" && ! -f "$design_file" ]]; then
|
|
60
|
+
printf '%s\n' "$analysis_file"
|
|
61
|
+
return 0
|
|
62
|
+
fi
|
|
63
|
+
|
|
64
|
+
printf '%s\n' "$design_file"
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
req_do_report_card_path() {
|
|
68
|
+
printf '%s/report-card.json\n' "$(req_do_review_dir "$1")"
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
req_do_resume_index_path() {
|
|
72
|
+
printf '%s/resume-index.md\n' "$(req_do_handoff_dir "$1")"
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
req_do_task_runtime_dir() {
|
|
76
|
+
local change_dir="$1"
|
|
77
|
+
local task_id="$2"
|
|
78
|
+
printf '%s/tasks/%s\n' "$(req_do_execution_dir "$change_dir")" "$task_id"
|
|
79
|
+
}
|