claude-code-pilot 2.0.0 → 3.0.0
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/bin/install.js +267 -250
- package/manifest.json +5 -18
- package/package.json +5 -7
- package/src/agents/build-error-resolver.md +114 -0
- package/src/agents/ccp-advisor-researcher.md +104 -0
- package/src/agents/ccp-assumptions-analyzer.md +105 -0
- package/{gsd/agents/gsd-codebase-mapper.md → src/agents/ccp-codebase-mapper.md} +7 -7
- package/{gsd/agents/gsd-debugger.md → src/agents/ccp-debugger.md} +125 -8
- package/{gsd/agents/gsd-executor.md → src/agents/ccp-executor.md} +31 -20
- package/{gsd/agents/gsd-integration-checker.md → src/agents/ccp-integration-checker.md} +2 -2
- package/{gsd/agents/gsd-nyquist-auditor.md → src/agents/ccp-nyquist-auditor.md} +3 -3
- package/{gsd/agents/gsd-phase-researcher.md → src/agents/ccp-phase-researcher.md} +127 -13
- package/{gsd/agents/gsd-plan-checker.md → src/agents/ccp-plan-checker.md} +57 -21
- package/{gsd/agents/gsd-planner.md → src/agents/ccp-planner.md} +61 -23
- package/{gsd/agents/gsd-project-researcher.md → src/agents/ccp-project-researcher.md} +33 -6
- package/{gsd/agents/gsd-research-synthesizer.md → src/agents/ccp-research-synthesizer.md} +11 -11
- package/{gsd/agents/gsd-roadmapper.md → src/agents/ccp-roadmapper.md} +39 -10
- package/src/agents/ccp-ui-auditor.md +439 -0
- package/src/agents/ccp-ui-checker.md +300 -0
- package/src/agents/ccp-ui-researcher.md +357 -0
- package/{gsd/agents/gsd-verifier.md → src/agents/ccp-verifier.md} +81 -15
- package/src/agents/cpp-build-resolver.md +90 -0
- package/src/agents/cpp-reviewer.md +72 -0
- package/src/agents/database-reviewer.md +91 -0
- package/src/agents/docs-lookup.md +68 -0
- package/src/agents/flutter-reviewer.md +243 -0
- package/src/agents/go-build-resolver.md +94 -0
- package/src/agents/go-reviewer.md +76 -0
- package/src/agents/java-build-resolver.md +153 -0
- package/src/agents/java-reviewer.md +92 -0
- package/src/agents/kotlin-build-resolver.md +118 -0
- package/src/agents/kotlin-reviewer.md +159 -0
- package/src/agents/planner.md +212 -0
- package/src/agents/python-reviewer.md +98 -0
- package/src/agents/pytorch-build-resolver.md +120 -0
- package/src/agents/refactor-cleaner.md +85 -0
- package/src/agents/rust-build-resolver.md +148 -0
- package/src/agents/rust-reviewer.md +94 -0
- package/src/agents/typescript-reviewer.md +112 -0
- package/src/available-rules/README.md +80 -0
- package/src/available-rules/cpp/coding-style.md +44 -0
- package/src/available-rules/cpp/hooks.md +39 -0
- package/src/available-rules/cpp/patterns.md +51 -0
- package/src/available-rules/cpp/security.md +51 -0
- package/src/available-rules/cpp/testing.md +44 -0
- package/src/available-rules/csharp/coding-style.md +72 -0
- package/src/available-rules/csharp/hooks.md +25 -0
- package/src/available-rules/csharp/patterns.md +50 -0
- package/src/available-rules/csharp/security.md +58 -0
- package/src/available-rules/csharp/testing.md +46 -0
- package/src/available-rules/java/coding-style.md +114 -0
- package/src/available-rules/java/hooks.md +18 -0
- package/src/available-rules/java/patterns.md +146 -0
- package/src/available-rules/java/security.md +100 -0
- package/src/available-rules/java/testing.md +131 -0
- package/src/available-rules/kotlin/hooks.md +17 -0
- package/src/available-rules/rust/coding-style.md +151 -0
- package/src/available-rules/rust/hooks.md +16 -0
- package/src/available-rules/rust/patterns.md +168 -0
- package/src/available-rules/rust/security.md +141 -0
- package/src/available-rules/rust/testing.md +154 -0
- package/src/commands/aside.md +164 -0
- package/src/commands/build-fix.md +62 -0
- package/src/commands/ccp/add-backlog.md +76 -0
- package/{gsd/commands-gsd → src/commands/ccp}/add-phase.md +3 -3
- package/{gsd/commands-gsd → src/commands/ccp}/add-tests.md +5 -5
- package/{gsd/commands-gsd → src/commands/ccp}/add-todo.md +4 -4
- package/{gsd/commands-gsd → src/commands/ccp}/audit-milestone.md +3 -3
- package/src/commands/ccp/audit-uat.md +24 -0
- package/src/commands/ccp/autonomous.md +41 -0
- package/{gsd/commands-gsd → src/commands/ccp}/check-todos.md +3 -3
- package/{gsd/commands-gsd → src/commands/ccp}/cleanup.md +3 -3
- package/{gsd/commands-gsd → src/commands/ccp}/complete-milestone.md +9 -9
- package/{gsd/commands-gsd → src/commands/ccp}/debug.md +14 -9
- package/src/commands/ccp/discuss-phase.md +64 -0
- package/src/commands/ccp/do.md +30 -0
- package/src/commands/ccp/execute-phase.md +59 -0
- package/src/commands/ccp/fast.md +30 -0
- package/src/commands/ccp/forensics.md +56 -0
- package/{gsd/commands-gsd → src/commands/ccp}/health.md +3 -3
- package/{gsd/commands-gsd → src/commands/ccp}/help.md +5 -5
- package/{gsd/commands-gsd → src/commands/ccp}/insert-phase.md +3 -3
- package/{gsd/commands-gsd → src/commands/ccp}/list-phase-assumptions.md +2 -2
- package/src/commands/ccp/manager.md +39 -0
- package/{gsd/commands-gsd → src/commands/ccp}/map-codebase.md +7 -7
- package/src/commands/ccp/milestone-summary.md +51 -0
- package/{gsd/commands-gsd → src/commands/ccp}/new-milestone.md +8 -8
- package/{gsd/commands-gsd → src/commands/ccp}/new-project.md +8 -8
- package/src/commands/ccp/next.md +24 -0
- package/src/commands/ccp/note.md +34 -0
- package/{gsd/commands-gsd → src/commands/ccp}/pause-work.md +3 -3
- package/{gsd/commands-gsd → src/commands/ccp}/plan-milestone-gaps.md +5 -5
- package/{gsd/commands-gsd → src/commands/ccp}/plan-phase.md +9 -7
- package/src/commands/ccp/plant-seed.md +28 -0
- package/src/commands/ccp/pr-branch.md +25 -0
- package/{gsd/commands-gsd → src/commands/ccp}/progress.md +3 -3
- package/{gsd/commands-gsd → src/commands/ccp}/quick.md +10 -8
- package/{gsd/commands-gsd → src/commands/ccp}/remove-phase.md +3 -3
- package/{gsd/commands-gsd → src/commands/ccp}/research-phase.md +17 -12
- package/{gsd/commands-gsd → src/commands/ccp}/resume-work.md +3 -3
- package/src/commands/ccp/review-backlog.md +61 -0
- package/src/commands/ccp/session-report.md +19 -0
- package/src/commands/ccp/set-profile.md +12 -0
- package/{gsd/commands-gsd → src/commands/ccp}/settings.md +5 -5
- package/src/commands/ccp/ship.md +23 -0
- package/src/commands/ccp/stats.md +18 -0
- package/src/commands/ccp/thread.md +127 -0
- package/src/commands/ccp/ui-phase.md +34 -0
- package/src/commands/ccp/ui-review.md +32 -0
- package/{gsd/commands-gsd → src/commands/ccp}/update.md +5 -5
- package/{gsd/commands-gsd → src/commands/ccp}/validate-phase.md +3 -3
- package/{gsd/commands-gsd → src/commands/ccp}/verify-work.md +5 -5
- package/src/commands/code-review.md +40 -0
- package/src/commands/context-budget.md +29 -0
- package/src/commands/cpp-build.md +173 -0
- package/src/commands/cpp-review.md +132 -0
- package/src/commands/cpp-test.md +251 -0
- package/src/commands/docs.md +31 -0
- package/src/commands/e2e.md +364 -0
- package/src/commands/eval.md +120 -0
- package/{ecc → src}/commands/evolve.md +2 -2
- package/src/commands/go-build.md +183 -0
- package/src/commands/go-review.md +148 -0
- package/src/commands/go-test.md +268 -0
- package/src/commands/gradle-build.md +70 -0
- package/src/commands/harness-audit.md +71 -0
- package/src/commands/kotlin-build.md +174 -0
- package/src/commands/kotlin-review.md +140 -0
- package/src/commands/kotlin-test.md +312 -0
- package/src/commands/orchestrate.md +231 -0
- package/src/commands/plan.md +114 -0
- package/src/commands/prompt-optimize.md +38 -0
- package/src/commands/prune.md +25 -0
- package/src/commands/python-review.md +297 -0
- package/{ecc → src}/commands/quality-gate.md +1 -1
- package/src/commands/refactor-clean.md +80 -0
- package/src/commands/rules-distill.md +11 -0
- package/src/commands/rust-build.md +187 -0
- package/src/commands/rust-review.md +142 -0
- package/src/commands/rust-test.md +308 -0
- package/{ecc → src}/commands/sessions.md +10 -10
- package/src/commands/setup-pm.md +80 -0
- package/{kit → src}/commands/setup.md +45 -19
- package/src/commands/skill-create.md +172 -0
- package/src/commands/skill-health.md +51 -0
- package/src/commands/tdd.md +328 -0
- package/src/commands/test-coverage.md +69 -0
- package/src/commands/update-codemaps.md +72 -0
- package/src/commands/update-docs.md +84 -0
- package/{gsd/hooks/gsd-context-monitor.js → src/hooks/ccp-context-monitor.js} +3 -3
- package/src/hooks/ccp-prompt-guard.js +96 -0
- package/{gsd/hooks/gsd-statusline.js → src/hooks/ccp-statusline.js} +7 -7
- package/src/hooks/ccp-workflow-guard.js +94 -0
- package/src/hooks/config-protection.js +141 -0
- package/{kit → src}/hooks/kit-check-update.js +7 -4
- package/src/hooks/mcp-health-check.js +620 -0
- package/{ecc/scripts → src}/hooks/run-with-flags-shell.sh +1 -1
- package/{ecc/scripts → src}/hooks/run-with-flags.js +74 -13
- package/src/hooks/session-end-marker.js +29 -0
- package/{ecc/scripts → src}/hooks/session-end.js +83 -40
- package/{ecc/scripts → src}/hooks/session-start.js +75 -9
- package/{ecc/scripts → src}/lib/hook-flags.js +8 -4
- package/{ecc/scripts → src}/lib/project-detect.js +2 -1
- package/{ecc/scripts → src}/lib/session-manager.d.ts +5 -1
- package/{ecc/scripts → src}/lib/session-manager.js +202 -92
- package/{ecc/scripts → src}/lib/utils.d.ts +23 -1
- package/{ecc/scripts → src}/lib/utils.js +91 -3
- package/{gsd/get-shit-done/bin/gsd-tools.cjs → src/pilot/bin/ccp-tools.cjs} +257 -86
- package/{gsd/get-shit-done → src/pilot}/bin/lib/commands.cjs +1 -1
- package/src/pilot/bin/lib/config.cjs +444 -0
- package/src/pilot/bin/lib/core.cjs +1190 -0
- package/src/pilot/bin/lib/init.cjs +1281 -0
- package/src/pilot/bin/lib/model-profiles.cjs +67 -0
- package/{gsd/get-shit-done → src/pilot}/bin/lib/phase.cjs +2 -2
- package/src/pilot/bin/lib/security.cjs +382 -0
- package/{gsd/get-shit-done → src/pilot}/bin/lib/state.cjs +1 -1
- package/src/pilot/bin/lib/uat.cjs +282 -0
- package/{gsd/get-shit-done → src/pilot}/bin/lib/verify.cjs +10 -10
- package/{gsd/get-shit-done → src/pilot}/references/continuation-format.md +16 -16
- package/{gsd/get-shit-done → src/pilot}/references/decimal-phase-calculation.md +5 -5
- package/{gsd/get-shit-done → src/pilot}/references/git-integration.md +5 -5
- package/{gsd/get-shit-done → src/pilot}/references/git-planning-commit.md +4 -4
- package/src/pilot/references/mcp-servers.json +153 -0
- package/{gsd/get-shit-done → src/pilot}/references/model-profile-resolution.md +2 -2
- package/{gsd/get-shit-done → src/pilot}/references/model-profiles.md +20 -20
- package/{gsd/get-shit-done → src/pilot}/references/phase-argument-parsing.md +4 -4
- package/{gsd/get-shit-done → src/pilot}/references/planning-config.md +15 -15
- package/{gsd/get-shit-done → src/pilot}/references/ui-brand.md +5 -5
- package/{gsd/get-shit-done → src/pilot}/references/verification-patterns.md +1 -1
- package/{gsd/get-shit-done → src/pilot}/templates/DEBUG.md +1 -1
- package/{gsd/get-shit-done → src/pilot}/templates/UAT.md +3 -3
- package/src/pilot/templates/UI-SPEC.md +100 -0
- package/{gsd/get-shit-done → src/pilot}/templates/VALIDATION.md +1 -1
- package/src/pilot/templates/claude-md.md +122 -0
- package/{gsd/get-shit-done → src/pilot}/templates/codebase/architecture.md +2 -2
- package/{gsd/get-shit-done → src/pilot}/templates/codebase/structure.md +13 -13
- package/{gsd/get-shit-done → src/pilot}/templates/context.md +4 -4
- package/src/pilot/templates/copilot-instructions.md +7 -0
- package/{gsd/get-shit-done → src/pilot}/templates/debug-subagent-prompt.md +4 -4
- package/src/pilot/templates/dev-preferences.md +21 -0
- package/{gsd/get-shit-done → src/pilot}/templates/discovery.md +2 -2
- package/src/pilot/templates/discussion-log.md +63 -0
- package/{gsd/get-shit-done → src/pilot}/templates/phase-prompt.md +12 -12
- package/{gsd/get-shit-done → src/pilot}/templates/planner-subagent-prompt.md +7 -7
- package/{gsd/get-shit-done → src/pilot}/templates/project.md +1 -1
- package/{gsd/get-shit-done → src/pilot}/templates/research.md +2 -2
- package/{gsd/get-shit-done → src/pilot}/templates/state.md +2 -2
- package/{gsd/get-shit-done → src/pilot}/templates/summary-complex.md +1 -1
- package/{gsd/get-shit-done → src/pilot}/workflows/add-phase.md +11 -11
- package/{gsd/get-shit-done → src/pilot}/workflows/add-tests.md +15 -15
- package/{gsd/get-shit-done → src/pilot}/workflows/add-todo.md +7 -7
- package/{gsd/get-shit-done → src/pilot}/workflows/audit-milestone.md +24 -16
- package/src/pilot/workflows/audit-uat.md +109 -0
- package/src/pilot/workflows/autonomous.md +891 -0
- package/{gsd/get-shit-done → src/pilot}/workflows/check-todos.md +10 -10
- package/{gsd/get-shit-done → src/pilot}/workflows/cleanup.md +3 -3
- package/{gsd/get-shit-done → src/pilot}/workflows/complete-milestone.md +19 -16
- package/{gsd/get-shit-done → src/pilot}/workflows/diagnose-issues.md +9 -4
- package/{gsd/get-shit-done → src/pilot}/workflows/discovery-phase.md +8 -8
- package/src/pilot/workflows/discuss-phase-assumptions.md +653 -0
- package/{gsd/get-shit-done → src/pilot}/workflows/discuss-phase.md +407 -49
- package/src/pilot/workflows/do.md +104 -0
- package/src/pilot/workflows/execute-phase.md +821 -0
- package/{gsd/get-shit-done → src/pilot}/workflows/execute-plan.md +79 -28
- package/src/pilot/workflows/fast.md +105 -0
- package/src/pilot/workflows/forensics.md +265 -0
- package/{gsd/get-shit-done → src/pilot}/workflows/health.md +34 -11
- package/src/pilot/workflows/help.md +775 -0
- package/{gsd/get-shit-done → src/pilot}/workflows/insert-phase.md +10 -10
- package/{gsd/get-shit-done → src/pilot}/workflows/list-phase-assumptions.md +4 -4
- package/src/pilot/workflows/manager.md +362 -0
- package/{gsd/get-shit-done → src/pilot}/workflows/map-codebase.md +27 -17
- package/src/pilot/workflows/milestone-summary.md +223 -0
- package/{gsd/get-shit-done → src/pilot}/workflows/new-milestone.md +135 -33
- package/{gsd/get-shit-done → src/pilot}/workflows/new-project.md +152 -79
- package/src/pilot/workflows/next.md +97 -0
- package/src/pilot/workflows/node-repair.md +92 -0
- package/src/pilot/workflows/note.md +156 -0
- package/src/pilot/workflows/pause-work.md +177 -0
- package/{gsd/get-shit-done → src/pilot}/workflows/plan-milestone-gaps.md +10 -11
- package/src/pilot/workflows/plan-phase.md +859 -0
- package/src/pilot/workflows/plant-seed.md +169 -0
- package/src/pilot/workflows/pr-branch.md +129 -0
- package/{gsd/get-shit-done → src/pilot}/workflows/progress.md +95 -34
- package/{gsd/get-shit-done → src/pilot}/workflows/quick.md +33 -21
- package/{gsd/get-shit-done → src/pilot}/workflows/remove-phase.md +14 -14
- package/{gsd/get-shit-done → src/pilot}/workflows/research-phase.md +18 -10
- package/{gsd/get-shit-done → src/pilot}/workflows/resume-project.md +37 -18
- package/src/pilot/workflows/session-report.md +146 -0
- package/{gsd/get-shit-done → src/pilot}/workflows/set-profile.md +7 -7
- package/{gsd/get-shit-done → src/pilot}/workflows/settings.md +75 -22
- package/src/pilot/workflows/ship.md +228 -0
- package/src/pilot/workflows/stats.md +60 -0
- package/{gsd/get-shit-done → src/pilot}/workflows/transition.md +57 -17
- package/src/pilot/workflows/ui-phase.md +302 -0
- package/src/pilot/workflows/ui-review.md +165 -0
- package/{gsd/get-shit-done → src/pilot}/workflows/update.md +88 -58
- package/{gsd/get-shit-done → src/pilot}/workflows/validate-phase.md +24 -17
- package/{gsd/get-shit-done → src/pilot}/workflows/verify-phase.md +26 -15
- package/{gsd/get-shit-done → src/pilot}/workflows/verify-work.md +89 -37
- package/{ecc → src}/rules/common/agents.md +1 -0
- package/{ecc → src}/rules/common/coding-style.md +21 -0
- package/src/skills/agentic-engineering/SKILL.md +63 -0
- package/src/skills/ai-first-engineering/SKILL.md +51 -0
- package/src/skills/ai-regression-testing/SKILL.md +385 -0
- package/src/skills/api-design/SKILL.md +523 -0
- package/src/skills/architecture-decision-records/SKILL.md +179 -0
- package/src/skills/backend-patterns/SKILL.md +598 -0
- package/src/skills/benchmark/SKILL.md +87 -0
- package/src/skills/blueprint/SKILL.md +90 -0
- package/src/skills/browser-qa/SKILL.md +81 -0
- package/src/skills/claude-api/SKILL.md +337 -0
- package/src/skills/codebase-onboarding/SKILL.md +233 -0
- package/src/skills/coding-standards/SKILL.md +530 -0
- package/src/skills/context-budget/SKILL.md +135 -0
- package/{ecc → src}/skills/continuous-learning-v2/SKILL.md +2 -2
- package/{ecc → src}/skills/continuous-learning-v2/agents/observer-loop.sh +1 -1
- package/src/skills/cpp-coding-standards/SKILL.md +723 -0
- package/src/skills/cpp-testing/SKILL.md +324 -0
- package/src/skills/database-migrations/SKILL.md +429 -0
- package/src/skills/deep-research/SKILL.md +155 -0
- package/src/skills/deployment-patterns/SKILL.md +427 -0
- package/src/skills/django-patterns/SKILL.md +734 -0
- package/src/skills/django-security/SKILL.md +593 -0
- package/src/skills/django-tdd/SKILL.md +729 -0
- package/src/skills/django-verification/SKILL.md +469 -0
- package/src/skills/docker-patterns/SKILL.md +364 -0
- package/src/skills/documentation-lookup/SKILL.md +90 -0
- package/src/skills/e2e-testing/SKILL.md +326 -0
- package/src/skills/exa-search/SKILL.md +103 -0
- package/src/skills/frontend-patterns/SKILL.md +642 -0
- package/src/skills/golang-patterns/SKILL.md +674 -0
- package/src/skills/golang-testing/SKILL.md +720 -0
- package/src/skills/java-coding-standards/SKILL.md +147 -0
- package/src/skills/jpa-patterns/SKILL.md +151 -0
- package/src/skills/kotlin-coroutines-flows/SKILL.md +284 -0
- package/src/skills/kotlin-exposed-patterns/SKILL.md +719 -0
- package/src/skills/kotlin-ktor-patterns/SKILL.md +689 -0
- package/src/skills/kotlin-patterns/SKILL.md +711 -0
- package/src/skills/kotlin-testing/SKILL.md +824 -0
- package/src/skills/laravel-patterns/SKILL.md +415 -0
- package/src/skills/laravel-security/SKILL.md +285 -0
- package/src/skills/laravel-tdd/SKILL.md +283 -0
- package/src/skills/laravel-verification/SKILL.md +179 -0
- package/src/skills/mcp-server-patterns/SKILL.md +67 -0
- package/src/skills/perl-patterns/SKILL.md +504 -0
- package/src/skills/perl-testing/SKILL.md +475 -0
- package/src/skills/postgres-patterns/SKILL.md +147 -0
- package/src/skills/prompt-optimizer/SKILL.md +397 -0
- package/src/skills/python-patterns/SKILL.md +750 -0
- package/src/skills/python-testing/SKILL.md +816 -0
- package/src/skills/rust-patterns/SKILL.md +499 -0
- package/src/skills/rust-testing/SKILL.md +500 -0
- package/src/skills/safety-guard/SKILL.md +69 -0
- package/src/skills/search-first/SKILL.md +161 -0
- package/src/skills/security-review/SKILL.md +495 -0
- package/src/skills/security-review/cloud-infrastructure-security.md +361 -0
- package/src/skills/security-scan/SKILL.md +165 -0
- package/src/skills/springboot-patterns/SKILL.md +314 -0
- package/src/skills/springboot-security/SKILL.md +272 -0
- package/src/skills/springboot-tdd/SKILL.md +158 -0
- package/src/skills/springboot-verification/SKILL.md +231 -0
- package/src/skills/tdd-workflow/SKILL.md +410 -0
- package/ecc/scripts/hooks/session-end-marker.js +0 -15
- package/gsd/LICENSE +0 -21
- package/gsd/commands-gsd/discuss-phase.md +0 -90
- package/gsd/commands-gsd/execute-phase.md +0 -41
- package/gsd/commands-gsd/join-discord.md +0 -18
- package/gsd/commands-gsd/reapply-patches.md +0 -123
- package/gsd/commands-gsd/set-profile.md +0 -34
- package/gsd/get-shit-done/bin/lib/config.cjs +0 -169
- package/gsd/get-shit-done/bin/lib/core.cjs +0 -492
- package/gsd/get-shit-done/bin/lib/init.cjs +0 -710
- package/gsd/get-shit-done/workflows/execute-phase.md +0 -459
- package/gsd/get-shit-done/workflows/help.md +0 -489
- package/gsd/get-shit-done/workflows/pause-work.md +0 -122
- package/gsd/get-shit-done/workflows/plan-phase.md +0 -560
- package/gsd/hooks/gsd-check-update.js +0 -81
- package/kit/CLAUDE.md +0 -43
- package/kit/commands/kit/update.md +0 -46
- package/kit/mcp.json +0 -10
- package/kit/rules/code-style.md +0 -24
- /package/{ecc → src}/agents/architect.md +0 -0
- /package/{ecc → src}/agents/code-reviewer.md +0 -0
- /package/{ecc → src}/agents/doc-updater.md +0 -0
- /package/{ecc → src}/agents/e2e-runner.md +0 -0
- /package/{ecc → src}/agents/security-reviewer.md +0 -0
- /package/{ecc → src}/agents/tdd-guide.md +0 -0
- /package/{ecc/rules → src/available-rules}/golang/coding-style.md +0 -0
- /package/{ecc/rules → src/available-rules}/golang/hooks.md +0 -0
- /package/{ecc/rules → src/available-rules}/golang/patterns.md +0 -0
- /package/{ecc/rules → src/available-rules}/golang/security.md +0 -0
- /package/{ecc/rules → src/available-rules}/golang/testing.md +0 -0
- /package/{ecc/rules → src/available-rules}/kotlin/coding-style.md +0 -0
- /package/{ecc/rules → src/available-rules}/kotlin/patterns.md +0 -0
- /package/{ecc/rules → src/available-rules}/kotlin/security.md +0 -0
- /package/{ecc/rules → src/available-rules}/kotlin/testing.md +0 -0
- /package/{ecc/rules → src/available-rules}/perl/coding-style.md +0 -0
- /package/{ecc/rules → src/available-rules}/perl/hooks.md +0 -0
- /package/{ecc/rules → src/available-rules}/perl/patterns.md +0 -0
- /package/{ecc/rules → src/available-rules}/perl/security.md +0 -0
- /package/{ecc/rules → src/available-rules}/perl/testing.md +0 -0
- /package/{ecc/rules → src/available-rules}/php/coding-style.md +0 -0
- /package/{ecc/rules → src/available-rules}/php/hooks.md +0 -0
- /package/{ecc/rules → src/available-rules}/php/patterns.md +0 -0
- /package/{ecc/rules → src/available-rules}/php/security.md +0 -0
- /package/{ecc/rules → src/available-rules}/php/testing.md +0 -0
- /package/{ecc/rules → src/available-rules}/python/coding-style.md +0 -0
- /package/{ecc/rules → src/available-rules}/python/hooks.md +0 -0
- /package/{ecc/rules → src/available-rules}/python/patterns.md +0 -0
- /package/{ecc/rules → src/available-rules}/python/security.md +0 -0
- /package/{ecc/rules → src/available-rules}/python/testing.md +0 -0
- /package/{ecc/rules → src/available-rules}/swift/coding-style.md +0 -0
- /package/{ecc/rules → src/available-rules}/swift/hooks.md +0 -0
- /package/{ecc/rules → src/available-rules}/swift/patterns.md +0 -0
- /package/{ecc/rules → src/available-rules}/swift/security.md +0 -0
- /package/{ecc/rules → src/available-rules}/swift/testing.md +0 -0
- /package/{ecc/rules → src/available-rules}/typescript/coding-style.md +0 -0
- /package/{ecc/rules → src/available-rules}/typescript/hooks.md +0 -0
- /package/{ecc/rules → src/available-rules}/typescript/patterns.md +0 -0
- /package/{ecc/rules → src/available-rules}/typescript/security.md +0 -0
- /package/{ecc/rules → src/available-rules}/typescript/testing.md +0 -0
- /package/{ecc → src}/commands/checkpoint.md +0 -0
- /package/{ecc → src}/commands/learn.md +0 -0
- /package/{ecc → src}/commands/model-route.md +0 -0
- /package/{ecc → src}/commands/resume-session.md +0 -0
- /package/{ecc → src}/commands/save-session.md +0 -0
- /package/{kit → src}/commands/setup-refresh.md +0 -0
- /package/{kit → src}/commands/tool-guide.md +0 -0
- /package/{ecc → src}/commands/verify.md +0 -0
- /package/{ecc → src}/contexts/dev.md +0 -0
- /package/{ecc → src}/contexts/research.md +0 -0
- /package/{ecc → src}/contexts/review.md +0 -0
- /package/{ecc → src}/examples/CLAUDE.md +0 -0
- /package/{ecc → src}/examples/django-api-CLAUDE.md +0 -0
- /package/{ecc → src}/examples/go-microservice-CLAUDE.md +0 -0
- /package/{ecc → src}/examples/rust-api-CLAUDE.md +0 -0
- /package/{ecc → src}/examples/saas-nextjs-CLAUDE.md +0 -0
- /package/{ecc → src}/examples/user-CLAUDE.md +0 -0
- /package/{ecc/scripts → src}/hooks/check-hook-enabled.js +0 -0
- /package/{ecc/scripts → src}/hooks/evaluate-session.js +0 -0
- /package/{ecc/scripts → src}/hooks/pre-compact.js +0 -0
- /package/{ecc/scripts → src}/hooks/suggest-compact.js +0 -0
- /package/{ecc/scripts → src}/lib/package-manager.d.ts +0 -0
- /package/{ecc/scripts → src}/lib/package-manager.js +0 -0
- /package/{ecc/scripts → src}/lib/resolve-formatter.js +0 -0
- /package/{ecc/scripts → src}/lib/session-aliases.d.ts +0 -0
- /package/{ecc/scripts → src}/lib/session-aliases.js +0 -0
- /package/{ecc/scripts → src}/lib/shell-split.js +0 -0
- /package/{gsd/get-shit-done → src/pilot}/bin/lib/frontmatter.cjs +0 -0
- /package/{gsd/get-shit-done → src/pilot}/bin/lib/milestone.cjs +0 -0
- /package/{gsd/get-shit-done → src/pilot}/bin/lib/roadmap.cjs +0 -0
- /package/{gsd/get-shit-done → src/pilot}/bin/lib/template.cjs +0 -0
- /package/{gsd/get-shit-done → src/pilot}/references/checkpoints.md +0 -0
- /package/{gsd/get-shit-done → src/pilot}/references/questioning.md +0 -0
- /package/{gsd/get-shit-done → src/pilot}/references/tdd.md +0 -0
- /package/{gsd/get-shit-done → src/pilot}/templates/codebase/concerns.md +0 -0
- /package/{gsd/get-shit-done → src/pilot}/templates/codebase/conventions.md +0 -0
- /package/{gsd/get-shit-done → src/pilot}/templates/codebase/integrations.md +0 -0
- /package/{gsd/get-shit-done → src/pilot}/templates/codebase/stack.md +0 -0
- /package/{gsd/get-shit-done → src/pilot}/templates/codebase/testing.md +0 -0
- /package/{gsd/get-shit-done → src/pilot}/templates/config.json +0 -0
- /package/{gsd/get-shit-done → src/pilot}/templates/continue-here.md +0 -0
- /package/{gsd/get-shit-done → src/pilot}/templates/milestone-archive.md +0 -0
- /package/{gsd/get-shit-done → src/pilot}/templates/milestone.md +0 -0
- /package/{gsd/get-shit-done → src/pilot}/templates/requirements.md +0 -0
- /package/{gsd/get-shit-done → src/pilot}/templates/research-project/ARCHITECTURE.md +0 -0
- /package/{gsd/get-shit-done → src/pilot}/templates/research-project/FEATURES.md +0 -0
- /package/{gsd/get-shit-done → src/pilot}/templates/research-project/PITFALLS.md +0 -0
- /package/{gsd/get-shit-done → src/pilot}/templates/research-project/STACK.md +0 -0
- /package/{gsd/get-shit-done → src/pilot}/templates/research-project/SUMMARY.md +0 -0
- /package/{gsd/get-shit-done → src/pilot}/templates/retrospective.md +0 -0
- /package/{gsd/get-shit-done → src/pilot}/templates/roadmap.md +0 -0
- /package/{gsd/get-shit-done → src/pilot}/templates/summary-minimal.md +0 -0
- /package/{gsd/get-shit-done → src/pilot}/templates/summary-standard.md +0 -0
- /package/{gsd/get-shit-done → src/pilot}/templates/summary.md +0 -0
- /package/{gsd/get-shit-done → src/pilot}/templates/user-setup.md +0 -0
- /package/{gsd/get-shit-done → src/pilot}/templates/verification-report.md +0 -0
- /package/{ecc → src}/rules/common/development-workflow.md +0 -0
- /package/{ecc → src}/rules/common/git-workflow.md +0 -0
- /package/{ecc → src}/rules/common/hooks.md +0 -0
- /package/{ecc → src}/rules/common/patterns.md +0 -0
- /package/{ecc → src}/rules/common/performance.md +0 -0
- /package/{ecc → src}/rules/common/security.md +0 -0
- /package/{ecc → src}/rules/common/testing.md +0 -0
- /package/{ecc → src}/skills/continuous-learning-v2/agents/observer.md +0 -0
- /package/{ecc → src}/skills/continuous-learning-v2/agents/start-observer.sh +0 -0
- /package/{ecc → src}/skills/continuous-learning-v2/config.json +0 -0
- /package/{ecc → src}/skills/continuous-learning-v2/hooks/observe.sh +0 -0
- /package/{ecc → src}/skills/continuous-learning-v2/scripts/detect-project.sh +0 -0
- /package/{ecc → src}/skills/continuous-learning-v2/scripts/instinct-cli.py +0 -0
- /package/{ecc → src}/skills/continuous-learning-v2/scripts/test_parse_instinct.py +0 -0
- /package/{ecc → src}/skills/strategic-compact/SKILL.md +0 -0
- /package/{ecc → src}/skills/strategic-compact/suggest-compact.sh +0 -0
- /package/{ecc/skills/verification-loop-SKILL.md → src/skills/verification-loop/SKILL.md} +0 -0
|
@@ -6,16 +6,21 @@ Execute a phase prompt (PLAN.md) and create the outcome summary (SUMMARY.md).
|
|
|
6
6
|
Read STATE.md before any operation to load project context.
|
|
7
7
|
Read config.json for planning behavior settings.
|
|
8
8
|
|
|
9
|
-
@~/.claude/
|
|
9
|
+
@~/.claude/pilot/references/git-integration.md
|
|
10
10
|
</required_reading>
|
|
11
11
|
|
|
12
|
+
<available_agent_types>
|
|
13
|
+
Valid CCP subagent types (use exact names — do not fall back to 'general-purpose'):
|
|
14
|
+
- ccp-executor — Executes plan tasks, commits, creates SUMMARY.md
|
|
15
|
+
</available_agent_types>
|
|
16
|
+
|
|
12
17
|
<process>
|
|
13
18
|
|
|
14
19
|
<step name="init_context" priority="first">
|
|
15
20
|
Load execution context (paths only to minimize orchestrator context):
|
|
16
21
|
|
|
17
22
|
```bash
|
|
18
|
-
INIT=$(node "$HOME/.claude/
|
|
23
|
+
INIT=$(node "$HOME/.claude/pilot/bin/ccp-tools.cjs" init execute-phase "${PHASE}")
|
|
19
24
|
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
20
25
|
```
|
|
21
26
|
|
|
@@ -35,7 +40,7 @@ Find first PLAN without matching SUMMARY. Decimal phases supported (`01.1-hotfix
|
|
|
35
40
|
|
|
36
41
|
```bash
|
|
37
42
|
PHASE=$(echo "$PLAN_PATH" | grep -oE '[0-9]+(\.[0-9]+)?-[0-9]+')
|
|
38
|
-
# config settings can be fetched via
|
|
43
|
+
# config settings can be fetched via ccp-tools config-get if needed
|
|
39
44
|
```
|
|
40
45
|
|
|
41
46
|
<if mode="yolo">
|
|
@@ -67,7 +72,7 @@ grep -n "type=\"checkpoint" .planning/phases/XX-name/{phase}-{plan}-PLAN.md
|
|
|
67
72
|
| Verify-only | B (segmented) | Segments between checkpoints. After none/human-verify → SUBAGENT. After decision/human-action → MAIN |
|
|
68
73
|
| Decision | C (main) | Execute entirely in main context |
|
|
69
74
|
|
|
70
|
-
**Pattern A:** init_agent_tracking → spawn Task(subagent_type="
|
|
75
|
+
**Pattern A:** init_agent_tracking → spawn Task(subagent_type="ccp-executor", model=executor_model) with prompt: execute plan at [path], autonomous, all tasks + SUMMARY + commit, follow deviation/auth rules, report: plan name, tasks, SUMMARY path, commit hash → track agent_id → wait → update tracking → report.
|
|
71
76
|
|
|
72
77
|
**Pattern B:** Execute segment-by-segment. Autonomous segments: spawn subagent for assigned tasks only (no SUMMARY/commit). Checkpoints: main context. After all segments: aggregate, create SUMMARY, commit. See segment_execution.
|
|
73
78
|
|
|
@@ -100,7 +105,7 @@ Pattern B only (verify-only checkpoints). Skip for A/C.
|
|
|
100
105
|
|
|
101
106
|
1. Parse segment map: checkpoint locations and types
|
|
102
107
|
2. Per segment:
|
|
103
|
-
- Subagent route: spawn
|
|
108
|
+
- Subagent route: spawn ccp-executor for assigned tasks only. Prompt: task range, plan path, read full plan for context, execute assigned tasks, track deviations, NO SUMMARY/commit. Track via agent protocol.
|
|
104
109
|
- Main route: execute tasks using standard flow (step name="execute")
|
|
105
110
|
3. After ALL segments: aggregate files/deviations/decisions → create SUMMARY.md → commit → self-check:
|
|
106
111
|
- Verify key-files.created exist on disk with `[ -f ]`
|
|
@@ -125,7 +130,7 @@ This IS the execution instructions. Follow exactly. If plan references CONTEXT.m
|
|
|
125
130
|
|
|
126
131
|
<step name="previous_phase_check">
|
|
127
132
|
```bash
|
|
128
|
-
node "$HOME/.claude/
|
|
133
|
+
node "$HOME/.claude/pilot/bin/ccp-tools.cjs" phases list --type summaries --raw
|
|
129
134
|
# Extract the second-to-last summary from the JSON result
|
|
130
135
|
```
|
|
131
136
|
If previous SUMMARY has unresolved "Issues Encountered" or "Next Phase Readiness" blockers: AskUserQuestion(header="Previous Issues", options: "Proceed anyway" | "Address first" | "Review previous").
|
|
@@ -135,9 +140,12 @@ If previous SUMMARY has unresolved "Issues Encountered" or "Next Phase Readiness
|
|
|
135
140
|
Deviations are normal — handle via rules below.
|
|
136
141
|
|
|
137
142
|
1. Read @context files from prompt
|
|
138
|
-
2.
|
|
143
|
+
2. **MCP tools:** If CLAUDE.md or project instructions reference MCP tools (e.g. jCodeMunch for code navigation), prefer them over Grep/Glob when available. Fall back to Grep/Glob if MCP tools are not accessible.
|
|
144
|
+
3. Per task:
|
|
145
|
+
- **MANDATORY read_first gate:** If the task has a `<read_first>` field, you MUST read every listed file BEFORE making any edits. This is not optional. Do not skip files because you "already know" what's in them — read them. The read_first files establish ground truth for the task.
|
|
139
146
|
- `type="auto"`: if `tdd="true"` → TDD execution. Implement with deviation rules + auth gates. Verify done criteria. Commit (see task_commit). Track hash for Summary.
|
|
140
147
|
- `type="checkpoint:*"`: STOP → checkpoint_protocol → wait for user → continue only after confirmation.
|
|
148
|
+
- **MANDATORY acceptance_criteria check:** After completing each task, if it has `<acceptance_criteria>`, verify EVERY criterion before moving to the next task. Use grep, file reads, or CLI commands to confirm each criterion. If any criterion fails, fix the implementation before proceeding. Do not skip criteria or mark them as "will verify later".
|
|
141
149
|
3. Run `<verification>` checks
|
|
142
150
|
4. Confirm `<success_criteria>` met
|
|
143
151
|
5. Document deviations in Summary
|
|
@@ -223,9 +231,28 @@ For `type: tdd` plans — RED-GREEN-REFACTOR:
|
|
|
223
231
|
|
|
224
232
|
Errors: RED doesn't fail → investigate test/existing feature. GREEN doesn't pass → debug, iterate. REFACTOR breaks → undo.
|
|
225
233
|
|
|
226
|
-
See `~/.claude/
|
|
234
|
+
See `~/.claude/pilot/references/tdd.md` for structure.
|
|
227
235
|
</tdd_plan_execution>
|
|
228
236
|
|
|
237
|
+
<precommit_failure_handling>
|
|
238
|
+
## Pre-commit Hook Failure Handling
|
|
239
|
+
|
|
240
|
+
Your commits may trigger pre-commit hooks. Auto-fix hooks handle themselves transparently — files get fixed and re-staged automatically.
|
|
241
|
+
|
|
242
|
+
**If running as a parallel executor agent (spawned by execute-phase):**
|
|
243
|
+
Use `--no-verify` on all commits. Pre-commit hooks cause build lock contention when multiple agents commit simultaneously (e.g., cargo lock fights in Rust projects). The orchestrator validates once after all agents complete.
|
|
244
|
+
|
|
245
|
+
**If running as the sole executor (sequential mode):**
|
|
246
|
+
If a commit is BLOCKED by a hook:
|
|
247
|
+
|
|
248
|
+
1. The `git commit` command fails with hook error output
|
|
249
|
+
2. Read the error — it tells you exactly which hook and what failed
|
|
250
|
+
3. Fix the issue (type error, lint violation, secret leak, etc.)
|
|
251
|
+
4. `git add` the fixed files
|
|
252
|
+
5. Retry the commit
|
|
253
|
+
6. Budget 1-2 retry cycles per commit
|
|
254
|
+
</precommit_failure_handling>
|
|
255
|
+
|
|
229
256
|
<task_commit>
|
|
230
257
|
## Task Commit Protocol
|
|
231
258
|
|
|
@@ -260,6 +287,15 @@ TASK_COMMIT=$(git rev-parse --short HEAD)
|
|
|
260
287
|
TASK_COMMITS+=("Task ${TASK_NUM}: ${TASK_COMMIT}")
|
|
261
288
|
```
|
|
262
289
|
|
|
290
|
+
**6. Check for untracked generated files:**
|
|
291
|
+
```bash
|
|
292
|
+
git status --short | grep '^??'
|
|
293
|
+
```
|
|
294
|
+
If new untracked files appeared after running scripts or tools, decide for each:
|
|
295
|
+
- **Commit it** — if it's a source file, config, or intentional artifact
|
|
296
|
+
- **Add to .gitignore** — if it's a generated/runtime output (build artifacts, `.env` files, cache files, compiled output)
|
|
297
|
+
- Do NOT leave generated files untracked
|
|
298
|
+
|
|
263
299
|
</task_commit>
|
|
264
300
|
|
|
265
301
|
<step name="checkpoint_protocol">
|
|
@@ -275,7 +311,7 @@ Display: `CHECKPOINT: [Type]` box → Progress {X}/{Y} → Task name → type-sp
|
|
|
275
311
|
|
|
276
312
|
After response: verify if specified. Pass → continue. Fail → inform, wait. WAIT for user — do NOT hallucinate completion.
|
|
277
313
|
|
|
278
|
-
See ~/.claude/
|
|
314
|
+
See ~/.claude/pilot/references/checkpoints.md for details.
|
|
279
315
|
</step>
|
|
280
316
|
|
|
281
317
|
<step name="checkpoint_return_for_orchestrator">
|
|
@@ -287,7 +323,22 @@ Orchestrator parses → presents to user → spawns fresh continuation with your
|
|
|
287
323
|
</step>
|
|
288
324
|
|
|
289
325
|
<step name="verification_failure_gate">
|
|
290
|
-
If verification fails:
|
|
326
|
+
If verification fails:
|
|
327
|
+
|
|
328
|
+
**Check if node repair is enabled** (default: on):
|
|
329
|
+
```bash
|
|
330
|
+
NODE_REPAIR=$(node "$HOME/.claude/pilot/bin/ccp-tools.cjs" config-get workflow.node_repair 2>/dev/null || echo "true")
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
If `NODE_REPAIR` is `true`: invoke `@~/.claude/pilot/workflows/node-repair.md` with:
|
|
334
|
+
- FAILED_TASK: task number, name, done-criteria
|
|
335
|
+
- ERROR: expected vs actual result
|
|
336
|
+
- PLAN_CONTEXT: adjacent task names + phase goal
|
|
337
|
+
- REPAIR_BUDGET: `workflow.node_repair_budget` from config (default: 2)
|
|
338
|
+
|
|
339
|
+
Node repair will attempt RETRY, DECOMPOSE, or PRUNE autonomously. Only reaches this gate again if repair budget is exhausted (ESCALATE).
|
|
340
|
+
|
|
341
|
+
If `NODE_REPAIR` is `false` OR repair returns ESCALATE: STOP. Present: "Verification failed for Task [X]: [name]. Expected: [criteria]. Actual: [result]. Repair attempted: [summary of what was tried]." Options: Retry | Skip (mark incomplete) | Stop (investigate). If skipped → SUMMARY "Issues Encountered".
|
|
291
342
|
</step>
|
|
292
343
|
|
|
293
344
|
<step name="record_completion_time">
|
|
@@ -313,11 +364,11 @@ fi
|
|
|
313
364
|
grep -A 50 "^user_setup:" .planning/phases/XX-name/{phase}-{plan}-PLAN.md | head -50
|
|
314
365
|
```
|
|
315
366
|
|
|
316
|
-
If user_setup exists: create `{phase}-USER-SETUP.md` using template `~/.claude/
|
|
367
|
+
If user_setup exists: create `{phase}-USER-SETUP.md` using template `~/.claude/pilot/templates/user-setup.md`. Per service: env vars table, account setup checklist, dashboard config, local dev notes, verification commands. Status "Incomplete". Set `USER_SETUP_CREATED=true`. If empty/missing: skip.
|
|
317
368
|
</step>
|
|
318
369
|
|
|
319
370
|
<step name="create_summary">
|
|
320
|
-
Create `{phase}-{plan}-SUMMARY.md` at `.planning/phases/XX-name/`. Use `~/.claude/
|
|
371
|
+
Create `{phase}-{plan}-SUMMARY.md` at `.planning/phases/XX-name/`. Use `~/.claude/pilot/templates/summary.md`.
|
|
321
372
|
|
|
322
373
|
**Frontmatter:** phase, plan, subsystem, tags | requires/provides/affects | tech-stack.added/patterns | key-files.created/modified | key-decisions | requirements-completed (**MUST** copy `requirements` array from PLAN.md frontmatter verbatim) | duration ($DURATION), completed ($PLAN_END_TIME date).
|
|
323
374
|
|
|
@@ -327,21 +378,21 @@ One-liner SUBSTANTIVE: "JWT auth with refresh rotation using jose library" not "
|
|
|
327
378
|
|
|
328
379
|
Include: duration, start/end times, task count, file count.
|
|
329
380
|
|
|
330
|
-
Next: more plans → "Ready for {next-plan}" | last → "Phase complete, ready for
|
|
381
|
+
Next: more plans → "Ready for {next-plan}" | last → "Phase complete, ready for next step".
|
|
331
382
|
</step>
|
|
332
383
|
|
|
333
384
|
<step name="update_current_position">
|
|
334
|
-
Update STATE.md using
|
|
385
|
+
Update STATE.md using ccp-tools:
|
|
335
386
|
|
|
336
387
|
```bash
|
|
337
388
|
# Advance plan counter (handles last-plan edge case)
|
|
338
|
-
node "$HOME/.claude/
|
|
389
|
+
node "$HOME/.claude/pilot/bin/ccp-tools.cjs" state advance-plan
|
|
339
390
|
|
|
340
391
|
# Recalculate progress bar from disk state
|
|
341
|
-
node "$HOME/.claude/
|
|
392
|
+
node "$HOME/.claude/pilot/bin/ccp-tools.cjs" state update-progress
|
|
342
393
|
|
|
343
394
|
# Record execution metrics
|
|
344
|
-
node "$HOME/.claude/
|
|
395
|
+
node "$HOME/.claude/pilot/bin/ccp-tools.cjs" state record-metric \
|
|
345
396
|
--phase "${PHASE}" --plan "${PLAN}" --duration "${DURATION}" \
|
|
346
397
|
--tasks "${TASK_COUNT}" --files "${FILE_COUNT}"
|
|
347
398
|
```
|
|
@@ -353,19 +404,19 @@ From SUMMARY: Extract decisions and add to STATE.md:
|
|
|
353
404
|
```bash
|
|
354
405
|
# Add each decision from SUMMARY key-decisions
|
|
355
406
|
# Prefer file inputs for shell-safe text (preserves `$`, `*`, etc. exactly)
|
|
356
|
-
node "$HOME/.claude/
|
|
407
|
+
node "$HOME/.claude/pilot/bin/ccp-tools.cjs" state add-decision \
|
|
357
408
|
--phase "${PHASE}" --summary-file "${DECISION_TEXT_FILE}" --rationale-file "${RATIONALE_FILE}"
|
|
358
409
|
|
|
359
410
|
# Add blockers if any found
|
|
360
|
-
node "$HOME/.claude/
|
|
411
|
+
node "$HOME/.claude/pilot/bin/ccp-tools.cjs" state add-blocker --text-file "${BLOCKER_TEXT_FILE}"
|
|
361
412
|
```
|
|
362
413
|
</step>
|
|
363
414
|
|
|
364
415
|
<step name="update_session_continuity">
|
|
365
|
-
Update session info using
|
|
416
|
+
Update session info using ccp-tools:
|
|
366
417
|
|
|
367
418
|
```bash
|
|
368
|
-
node "$HOME/.claude/
|
|
419
|
+
node "$HOME/.claude/pilot/bin/ccp-tools.cjs" state record-session \
|
|
369
420
|
--stopped-at "Completed ${PHASE}-${PLAN}-PLAN.md" \
|
|
370
421
|
--resume-file "None"
|
|
371
422
|
```
|
|
@@ -379,7 +430,7 @@ If SUMMARY "Issues Encountered" ≠ "None": yolo → log and continue. Interacti
|
|
|
379
430
|
|
|
380
431
|
<step name="update_roadmap">
|
|
381
432
|
```bash
|
|
382
|
-
node "$HOME/.claude/
|
|
433
|
+
node "$HOME/.claude/pilot/bin/ccp-tools.cjs" roadmap update-plan-progress "${PHASE}"
|
|
383
434
|
```
|
|
384
435
|
Counts PLAN vs SUMMARY files on disk. Updates progress table row with correct count and status (`In Progress` or `Complete` with date).
|
|
385
436
|
</step>
|
|
@@ -388,7 +439,7 @@ Counts PLAN vs SUMMARY files on disk. Updates progress table row with correct co
|
|
|
388
439
|
Mark completed requirements from the PLAN.md frontmatter `requirements:` field:
|
|
389
440
|
|
|
390
441
|
```bash
|
|
391
|
-
node "$HOME/.claude/
|
|
442
|
+
node "$HOME/.claude/pilot/bin/ccp-tools.cjs" requirements mark-complete ${REQ_IDS}
|
|
392
443
|
```
|
|
393
444
|
|
|
394
445
|
Extract requirement IDs from the plan's frontmatter (e.g., `requirements: [AUTH-01, AUTH-02]`). If no requirements field, skip.
|
|
@@ -398,7 +449,7 @@ Extract requirement IDs from the plan's frontmatter (e.g., `requirements: [AUTH-
|
|
|
398
449
|
Task code already committed per-task. Commit plan metadata:
|
|
399
450
|
|
|
400
451
|
```bash
|
|
401
|
-
node "$HOME/.claude/
|
|
452
|
+
node "$HOME/.claude/pilot/bin/ccp-tools.cjs" commit "docs({phase}-{plan}): complete [plan-name] plan" --files .planning/phases/XX-name/{phase}-{plan}-SUMMARY.md .planning/STATE.md .planning/ROADMAP.md .planning/REQUIREMENTS.md
|
|
402
453
|
```
|
|
403
454
|
</step>
|
|
404
455
|
|
|
@@ -413,7 +464,7 @@ git diff --name-only ${FIRST_TASK}^..HEAD 2>/dev/null
|
|
|
413
464
|
Update only structural changes: new src/ dir → STRUCTURE.md | deps → STACK.md | file pattern → CONVENTIONS.md | API client → INTEGRATIONS.md | config → STACK.md | renamed → update paths. Skip code-only/bugfix/content changes.
|
|
414
465
|
|
|
415
466
|
```bash
|
|
416
|
-
node "$HOME/.claude/
|
|
467
|
+
node "$HOME/.claude/pilot/bin/ccp-tools.cjs" commit "" --files .planning/codebase/*.md --amend
|
|
417
468
|
```
|
|
418
469
|
</step>
|
|
419
470
|
|
|
@@ -427,9 +478,9 @@ ls -1 .planning/phases/[current-phase-dir]/*-SUMMARY.md 2>/dev/null | wc -l
|
|
|
427
478
|
|
|
428
479
|
| Condition | Route | Action |
|
|
429
480
|
|-----------|-------|--------|
|
|
430
|
-
| summaries < plans | **A: More plans** | Find next PLAN without SUMMARY. Yolo: auto-continue. Interactive: show next plan, suggest `/
|
|
431
|
-
| summaries = plans, current < highest phase | **B: Phase done** | Show completion, suggest `/
|
|
432
|
-
| summaries = plans, current = highest phase | **C: Milestone done** | Show banner, suggest `/
|
|
481
|
+
| summaries < plans | **A: More plans** | Find next PLAN without SUMMARY. Yolo: auto-continue. Interactive: show next plan, suggest `/ccp:execute-phase {phase}` + `/ccp:verify-work`. STOP here. |
|
|
482
|
+
| summaries = plans, current < highest phase | **B: Phase done** | Show completion, suggest `/ccp:plan-phase {Z+1}` + `/ccp:verify-work {Z}` + `/ccp:discuss-phase {Z+1}` |
|
|
483
|
+
| summaries = plans, current = highest phase | **C: Milestone done** | Show banner, suggest `/ccp:complete-milestone` + `/ccp:verify-work` + `/ccp:add-phase` |
|
|
433
484
|
|
|
434
485
|
All routes: `/clear` first for fresh context.
|
|
435
486
|
</step>
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
<purpose>
|
|
2
|
+
Execute a trivial task inline without subagent overhead. No PLAN.md, no Task spawning,
|
|
3
|
+
no research, no plan checking. Just: understand → do → commit → log.
|
|
4
|
+
|
|
5
|
+
For tasks like: fix a typo, update a config value, add a missing import, rename a
|
|
6
|
+
variable, commit uncommitted work, add a .gitignore entry, bump a version number.
|
|
7
|
+
|
|
8
|
+
Use /ccp:quick for anything that needs multi-step planning or research.
|
|
9
|
+
</purpose>
|
|
10
|
+
|
|
11
|
+
<process>
|
|
12
|
+
|
|
13
|
+
<step name="parse_task">
|
|
14
|
+
Parse `$ARGUMENTS` for the task description.
|
|
15
|
+
|
|
16
|
+
If empty, ask:
|
|
17
|
+
```
|
|
18
|
+
What's the quick fix? (one sentence)
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Store as `$TASK`.
|
|
22
|
+
</step>
|
|
23
|
+
|
|
24
|
+
<step name="scope_check">
|
|
25
|
+
**Before doing anything, verify this is actually trivial.**
|
|
26
|
+
|
|
27
|
+
A task is trivial if it can be completed in:
|
|
28
|
+
- ≤ 3 file edits
|
|
29
|
+
- ≤ 1 minute of work
|
|
30
|
+
- No new dependencies or architecture changes
|
|
31
|
+
- No research needed
|
|
32
|
+
|
|
33
|
+
If the task seems non-trivial (multi-file refactor, new feature, needs research),
|
|
34
|
+
say:
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
This looks like it needs planning. Use /ccp:quick instead:
|
|
38
|
+
/ccp:quick "{task description}"
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
And stop.
|
|
42
|
+
</step>
|
|
43
|
+
|
|
44
|
+
<step name="execute_inline">
|
|
45
|
+
Do the work directly:
|
|
46
|
+
|
|
47
|
+
1. Read the relevant file(s)
|
|
48
|
+
2. Make the change(s)
|
|
49
|
+
3. Verify the change works (run existing tests if applicable, or do a quick sanity check)
|
|
50
|
+
|
|
51
|
+
**No PLAN.md.** Just do it.
|
|
52
|
+
</step>
|
|
53
|
+
|
|
54
|
+
<step name="commit">
|
|
55
|
+
Commit the change atomically:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
git add -A
|
|
59
|
+
git commit -m "fix: {concise description of what changed}"
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Use conventional commit format: `fix:`, `feat:`, `docs:`, `chore:`, `refactor:` as appropriate.
|
|
63
|
+
</step>
|
|
64
|
+
|
|
65
|
+
<step name="log_to_state">
|
|
66
|
+
If `.planning/STATE.md` exists, append to the "Quick Tasks Completed" table.
|
|
67
|
+
If the table doesn't exist, skip this step silently.
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
# Check if STATE.md has quick tasks table
|
|
71
|
+
if grep -q "Quick Tasks Completed" .planning/STATE.md 2>/dev/null; then
|
|
72
|
+
# Append entry — workflow handles the format
|
|
73
|
+
echo "| $(date +%Y-%m-%d) | fast | $TASK | ✅ |" >> .planning/STATE.md
|
|
74
|
+
fi
|
|
75
|
+
```
|
|
76
|
+
</step>
|
|
77
|
+
|
|
78
|
+
<step name="done">
|
|
79
|
+
Report completion:
|
|
80
|
+
|
|
81
|
+
```
|
|
82
|
+
✅ Done: {what was changed}
|
|
83
|
+
Commit: {short hash}
|
|
84
|
+
Files: {list of changed files}
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
No next-step suggestions. No workflow routing. Just done.
|
|
88
|
+
</step>
|
|
89
|
+
|
|
90
|
+
</process>
|
|
91
|
+
|
|
92
|
+
<guardrails>
|
|
93
|
+
- NEVER spawn a Task/subagent — this runs inline
|
|
94
|
+
- NEVER create PLAN.md or SUMMARY.md files
|
|
95
|
+
- NEVER run research or plan-checking
|
|
96
|
+
- If the task takes more than 3 file edits, STOP and redirect to /ccp:quick
|
|
97
|
+
- If you're unsure how to implement it, STOP and redirect to /ccp:quick
|
|
98
|
+
</guardrails>
|
|
99
|
+
|
|
100
|
+
<success_criteria>
|
|
101
|
+
- [ ] Task completed in current context (no subagents)
|
|
102
|
+
- [ ] Atomic git commit with conventional message
|
|
103
|
+
- [ ] STATE.md updated if it exists
|
|
104
|
+
- [ ] Total operation under 2 minutes wall time
|
|
105
|
+
</success_criteria>
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
# Forensics Workflow
|
|
2
|
+
|
|
3
|
+
Post-mortem investigation for failed or stuck CCP workflows. Analyzes git history,
|
|
4
|
+
`.planning/` artifacts, and file system state to detect anomalies and generate a
|
|
5
|
+
structured diagnostic report.
|
|
6
|
+
|
|
7
|
+
**Principle:** This is a read-only investigation. Do not modify project files.
|
|
8
|
+
Only write the forensic report.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Step 1: Get Problem Description
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
PROBLEM="$ARGUMENTS"
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
If `$ARGUMENTS` is empty, ask the user:
|
|
19
|
+
> "What went wrong? Describe the issue — e.g., 'autonomous mode got stuck on phase 3',
|
|
20
|
+
> 'execute-phase failed silently', 'costs seem unusually high'."
|
|
21
|
+
|
|
22
|
+
Record the problem description for the report.
|
|
23
|
+
|
|
24
|
+
## Step 2: Gather Evidence
|
|
25
|
+
|
|
26
|
+
Collect data from all available sources. Missing sources are fine — adapt to what exists.
|
|
27
|
+
|
|
28
|
+
### 2a. Git History
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
# Recent commits (last 30)
|
|
32
|
+
git log --oneline -30
|
|
33
|
+
|
|
34
|
+
# Commits with timestamps for gap analysis
|
|
35
|
+
git log --format="%H %ai %s" -30
|
|
36
|
+
|
|
37
|
+
# Files changed in recent commits (detect repeated edits)
|
|
38
|
+
git log --name-only --format="" -20 | sort | uniq -c | sort -rn | head -20
|
|
39
|
+
|
|
40
|
+
# Uncommitted work
|
|
41
|
+
git status --short
|
|
42
|
+
git diff --stat
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Record:
|
|
46
|
+
- Commit timeline (dates, messages, frequency)
|
|
47
|
+
- Most-edited files (potential stuck-loop indicator)
|
|
48
|
+
- Uncommitted changes (potential crash/interruption indicator)
|
|
49
|
+
|
|
50
|
+
### 2b. Planning State
|
|
51
|
+
|
|
52
|
+
Read these files if they exist:
|
|
53
|
+
- `.planning/STATE.md` — current milestone, phase, progress, blockers, last session
|
|
54
|
+
- `.planning/ROADMAP.md` — phase list with status
|
|
55
|
+
- `.planning/config.json` — workflow configuration
|
|
56
|
+
|
|
57
|
+
Extract:
|
|
58
|
+
- Current phase and its status
|
|
59
|
+
- Last recorded session stop point
|
|
60
|
+
- Any blockers or flags
|
|
61
|
+
|
|
62
|
+
### 2c. Phase Artifacts
|
|
63
|
+
|
|
64
|
+
For each phase directory in `.planning/phases/*/`:
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
ls .planning/phases/*/
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
For each phase, check which artifacts exist:
|
|
71
|
+
- `{padded}-PLAN.md` or `{padded}-PLAN-*.md` (execution plans)
|
|
72
|
+
- `{padded}-SUMMARY.md` (completion summary)
|
|
73
|
+
- `{padded}-VERIFICATION.md` (quality verification)
|
|
74
|
+
- `{padded}-CONTEXT.md` (design decisions)
|
|
75
|
+
- `{padded}-RESEARCH.md` (pre-planning research)
|
|
76
|
+
|
|
77
|
+
Track: which phases have complete artifact sets vs gaps.
|
|
78
|
+
|
|
79
|
+
### 2d. Session Reports
|
|
80
|
+
|
|
81
|
+
Read `.planning/reports/SESSION_REPORT.md` if it exists — extract last session outcomes,
|
|
82
|
+
work completed, token estimates.
|
|
83
|
+
|
|
84
|
+
### 2e. Git Worktree State
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
git worktree list
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Check for orphaned worktrees (from crashed agents).
|
|
91
|
+
|
|
92
|
+
## Step 3: Detect Anomalies
|
|
93
|
+
|
|
94
|
+
Evaluate the gathered evidence against these anomaly patterns:
|
|
95
|
+
|
|
96
|
+
### Stuck Loop Detection
|
|
97
|
+
|
|
98
|
+
**Signal:** Same file appears in 3+ consecutive commits within a short time window.
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
# Look for files committed repeatedly in sequence
|
|
102
|
+
git log --name-only --format="---COMMIT---" -20
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Parse commit boundaries. If any file appears in 3+ consecutive commits, flag as:
|
|
106
|
+
- **Confidence HIGH** if the commit messages are similar (e.g., "fix:", "fix:", "fix:" on same file)
|
|
107
|
+
- **Confidence MEDIUM** if the file appears frequently but commit messages vary
|
|
108
|
+
|
|
109
|
+
### Missing Artifact Detection
|
|
110
|
+
|
|
111
|
+
**Signal:** Phase appears complete (has commits, is past in roadmap) but lacks expected artifacts.
|
|
112
|
+
|
|
113
|
+
For each phase that should be complete:
|
|
114
|
+
- PLAN.md missing → planning step was skipped
|
|
115
|
+
- SUMMARY.md missing → phase was not properly closed
|
|
116
|
+
- VERIFICATION.md missing → quality check was skipped
|
|
117
|
+
|
|
118
|
+
### Abandoned Work Detection
|
|
119
|
+
|
|
120
|
+
**Signal:** Large gap between last commit and current time, with STATE.md showing mid-execution.
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
# Time since last commit
|
|
124
|
+
git log -1 --format="%ai"
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
If STATE.md shows an active phase but the last commit is >2 hours old and there are
|
|
128
|
+
uncommitted changes, flag as potential abandonment or crash.
|
|
129
|
+
|
|
130
|
+
### Crash/Interruption Detection
|
|
131
|
+
|
|
132
|
+
**Signal:** Uncommitted changes + STATE.md shows mid-execution + orphaned worktrees.
|
|
133
|
+
|
|
134
|
+
Combine:
|
|
135
|
+
- `git status` shows modified/staged files
|
|
136
|
+
- STATE.md has an active execution entry
|
|
137
|
+
- `git worktree list` shows worktrees beyond the main one
|
|
138
|
+
|
|
139
|
+
### Scope Drift Detection
|
|
140
|
+
|
|
141
|
+
**Signal:** Recent commits touch files outside the current phase's expected scope.
|
|
142
|
+
|
|
143
|
+
Read the current phase PLAN.md to determine expected file paths. Compare against
|
|
144
|
+
files actually modified in recent commits. Flag any files that are clearly outside
|
|
145
|
+
the phase's domain.
|
|
146
|
+
|
|
147
|
+
### Test Regression Detection
|
|
148
|
+
|
|
149
|
+
**Signal:** Commit messages containing "fix test", "revert", or re-commits of test files.
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
git log --oneline -20 | grep -iE "fix test|revert|broken|regression|fail"
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
## Step 4: Generate Report
|
|
156
|
+
|
|
157
|
+
Create the forensics directory if needed:
|
|
158
|
+
```bash
|
|
159
|
+
mkdir -p .planning/forensics
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
Write to `.planning/forensics/report-$(date +%Y%m%d-%H%M%S).md`:
|
|
163
|
+
|
|
164
|
+
```markdown
|
|
165
|
+
# Forensic Report
|
|
166
|
+
|
|
167
|
+
**Generated:** {ISO timestamp}
|
|
168
|
+
**Problem:** {user's description}
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## Evidence Summary
|
|
173
|
+
|
|
174
|
+
### Git Activity
|
|
175
|
+
- **Last commit:** {date} — "{message}"
|
|
176
|
+
- **Commits (last 30):** {count}
|
|
177
|
+
- **Time span:** {earliest} → {latest}
|
|
178
|
+
- **Uncommitted changes:** {yes/no — list if yes}
|
|
179
|
+
- **Active worktrees:** {count — list if >1}
|
|
180
|
+
|
|
181
|
+
### Planning State
|
|
182
|
+
- **Current milestone:** {version or "none"}
|
|
183
|
+
- **Current phase:** {number — name — status}
|
|
184
|
+
- **Last session:** {stopped_at from STATE.md}
|
|
185
|
+
- **Blockers:** {any flags from STATE.md}
|
|
186
|
+
|
|
187
|
+
### Artifact Completeness
|
|
188
|
+
| Phase | PLAN | CONTEXT | RESEARCH | SUMMARY | VERIFICATION |
|
|
189
|
+
|-------|------|---------|----------|---------|-------------|
|
|
190
|
+
{for each phase: name | ✅/❌ per artifact}
|
|
191
|
+
|
|
192
|
+
## Anomalies Detected
|
|
193
|
+
|
|
194
|
+
### {Anomaly Type} — {Confidence: HIGH/MEDIUM/LOW}
|
|
195
|
+
**Evidence:** {specific commits, files, or state data}
|
|
196
|
+
**Interpretation:** {what this likely means}
|
|
197
|
+
|
|
198
|
+
{repeat for each anomaly found}
|
|
199
|
+
|
|
200
|
+
## Root Cause Hypothesis
|
|
201
|
+
|
|
202
|
+
Based on the evidence above, the most likely explanation is:
|
|
203
|
+
|
|
204
|
+
{1-3 sentence hypothesis grounded in the anomalies}
|
|
205
|
+
|
|
206
|
+
## Recommended Actions
|
|
207
|
+
|
|
208
|
+
1. {Specific, actionable remediation step}
|
|
209
|
+
2. {Another step if applicable}
|
|
210
|
+
3. {Recovery command if applicable — e.g., `/ccp:resume-work`, `/ccp:execute-phase N`}
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
*Report generated by `/ccp:forensics`. All paths redacted for portability.*
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
**Redaction rules:**
|
|
218
|
+
- Replace absolute paths with relative paths (strip `$HOME` prefix)
|
|
219
|
+
- Remove any API keys, tokens, or credentials found in git diff output
|
|
220
|
+
- Truncate large diffs to first 50 lines
|
|
221
|
+
|
|
222
|
+
## Step 5: Present Report
|
|
223
|
+
|
|
224
|
+
Display the full forensic report inline.
|
|
225
|
+
|
|
226
|
+
## Step 6: Offer Interactive Investigation
|
|
227
|
+
|
|
228
|
+
> "Report saved to `.planning/forensics/report-{timestamp}.md`.
|
|
229
|
+
>
|
|
230
|
+
> I can dig deeper into any finding. Want me to:
|
|
231
|
+
> - Trace a specific anomaly to its root cause?
|
|
232
|
+
> - Read specific files referenced in the evidence?
|
|
233
|
+
> - Check if a similar issue has been reported before?"
|
|
234
|
+
|
|
235
|
+
If the user asks follow-up questions, answer from the evidence already gathered.
|
|
236
|
+
Read additional files only if specifically needed.
|
|
237
|
+
|
|
238
|
+
## Step 7: Offer Issue Creation
|
|
239
|
+
|
|
240
|
+
If actionable anomalies were found (HIGH or MEDIUM confidence):
|
|
241
|
+
|
|
242
|
+
> "Want me to create a GitHub issue for this? I'll format the findings and redact paths."
|
|
243
|
+
|
|
244
|
+
If confirmed:
|
|
245
|
+
```bash
|
|
246
|
+
# Check if "bug" label exists before using it
|
|
247
|
+
BUG_LABEL=$(gh label list --search "bug" --json name -q '.[0].name' 2>/dev/null)
|
|
248
|
+
LABEL_FLAG=""
|
|
249
|
+
if [ -n "$BUG_LABEL" ]; then
|
|
250
|
+
LABEL_FLAG="--label bug"
|
|
251
|
+
fi
|
|
252
|
+
|
|
253
|
+
gh issue create \
|
|
254
|
+
--title "bug: {concise description from anomaly}" \
|
|
255
|
+
$LABEL_FLAG \
|
|
256
|
+
--body "{formatted findings from report}"
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
## Step 8: Update STATE.md
|
|
260
|
+
|
|
261
|
+
```bash
|
|
262
|
+
ccp-tools.cjs state record-session \
|
|
263
|
+
--stopped-at "Forensic investigation complete" \
|
|
264
|
+
--resume-file ".planning/forensics/report-{timestamp}.md"
|
|
265
|
+
```
|