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
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
<purpose>
|
|
2
|
+
Capture a forward-looking idea as a structured seed file with trigger conditions.
|
|
3
|
+
Seeds auto-surface during /ccp:new-milestone when trigger conditions match the
|
|
4
|
+
new milestone's scope.
|
|
5
|
+
|
|
6
|
+
Seeds beat deferred items because they:
|
|
7
|
+
- Preserve WHY the idea matters (not just WHAT)
|
|
8
|
+
- Define WHEN to surface (trigger conditions, not manual scanning)
|
|
9
|
+
- Track breadcrumbs (code references, related decisions)
|
|
10
|
+
- Auto-present at the right time via new-milestone scan
|
|
11
|
+
</purpose>
|
|
12
|
+
|
|
13
|
+
<process>
|
|
14
|
+
|
|
15
|
+
<step name="parse_idea">
|
|
16
|
+
Parse `$ARGUMENTS` for the idea summary.
|
|
17
|
+
|
|
18
|
+
If empty, ask:
|
|
19
|
+
```
|
|
20
|
+
What's the idea? (one sentence)
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Store as `$IDEA`.
|
|
24
|
+
</step>
|
|
25
|
+
|
|
26
|
+
<step name="create_seed_dir">
|
|
27
|
+
```bash
|
|
28
|
+
mkdir -p .planning/seeds
|
|
29
|
+
```
|
|
30
|
+
</step>
|
|
31
|
+
|
|
32
|
+
<step name="gather_context">
|
|
33
|
+
Ask focused questions to build a complete seed:
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
AskUserQuestion(
|
|
37
|
+
header: "Trigger",
|
|
38
|
+
question: "When should this idea surface? (e.g., 'when we add user accounts', 'next major version', 'when performance becomes a priority')",
|
|
39
|
+
options: [] // freeform
|
|
40
|
+
)
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Store as `$TRIGGER`.
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
AskUserQuestion(
|
|
47
|
+
header: "Why",
|
|
48
|
+
question: "Why does this matter? What problem does it solve or what opportunity does it create?",
|
|
49
|
+
options: []
|
|
50
|
+
)
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Store as `$WHY`.
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
AskUserQuestion(
|
|
57
|
+
header: "Scope",
|
|
58
|
+
question: "How big is this? (rough estimate)",
|
|
59
|
+
options: [
|
|
60
|
+
{ label: "Small", description: "A few hours — could be a quick task" },
|
|
61
|
+
{ label: "Medium", description: "A phase or two — needs planning" },
|
|
62
|
+
{ label: "Large", description: "A full milestone — significant effort" }
|
|
63
|
+
]
|
|
64
|
+
)
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Store as `$SCOPE`.
|
|
68
|
+
</step>
|
|
69
|
+
|
|
70
|
+
<step name="collect_breadcrumbs">
|
|
71
|
+
Search the codebase for relevant references:
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
# Find files related to the idea keywords
|
|
75
|
+
grep -rl "$KEYWORD" --include="*.ts" --include="*.js" --include="*.md" . 2>/dev/null | head -10
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Also check:
|
|
79
|
+
- Current STATE.md for related decisions
|
|
80
|
+
- ROADMAP.md for related phases
|
|
81
|
+
- todos/ for related captured ideas
|
|
82
|
+
|
|
83
|
+
Store relevant file paths as `$BREADCRUMBS`.
|
|
84
|
+
</step>
|
|
85
|
+
|
|
86
|
+
<step name="generate_seed_id">
|
|
87
|
+
```bash
|
|
88
|
+
# Find next seed number
|
|
89
|
+
EXISTING=$( (ls .planning/seeds/SEED-*.md 2>/dev/null || true) | wc -l )
|
|
90
|
+
NEXT=$((EXISTING + 1))
|
|
91
|
+
PADDED=$(printf "%03d" $NEXT)
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Generate slug from idea summary.
|
|
95
|
+
</step>
|
|
96
|
+
|
|
97
|
+
<step name="write_seed">
|
|
98
|
+
Write `.planning/seeds/SEED-{PADDED}-{slug}.md`:
|
|
99
|
+
|
|
100
|
+
```markdown
|
|
101
|
+
---
|
|
102
|
+
id: SEED-{PADDED}
|
|
103
|
+
status: dormant
|
|
104
|
+
planted: {ISO date}
|
|
105
|
+
planted_during: {current milestone/phase from STATE.md}
|
|
106
|
+
trigger_when: {$TRIGGER}
|
|
107
|
+
scope: {$SCOPE}
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
# SEED-{PADDED}: {$IDEA}
|
|
111
|
+
|
|
112
|
+
## Why This Matters
|
|
113
|
+
|
|
114
|
+
{$WHY}
|
|
115
|
+
|
|
116
|
+
## When to Surface
|
|
117
|
+
|
|
118
|
+
**Trigger:** {$TRIGGER}
|
|
119
|
+
|
|
120
|
+
This seed should be presented during `/ccp:new-milestone` when the milestone
|
|
121
|
+
scope matches any of these conditions:
|
|
122
|
+
- {trigger condition 1}
|
|
123
|
+
- {trigger condition 2}
|
|
124
|
+
|
|
125
|
+
## Scope Estimate
|
|
126
|
+
|
|
127
|
+
**{$SCOPE}** — {elaboration based on scope choice}
|
|
128
|
+
|
|
129
|
+
## Breadcrumbs
|
|
130
|
+
|
|
131
|
+
Related code and decisions found in the current codebase:
|
|
132
|
+
|
|
133
|
+
{list of $BREADCRUMBS with file paths}
|
|
134
|
+
|
|
135
|
+
## Notes
|
|
136
|
+
|
|
137
|
+
{any additional context from the current session}
|
|
138
|
+
```
|
|
139
|
+
</step>
|
|
140
|
+
|
|
141
|
+
<step name="commit_seed">
|
|
142
|
+
```bash
|
|
143
|
+
node "$HOME/.claude/pilot/bin/ccp-tools.cjs" commit "docs: plant seed — {$IDEA}" --files .planning/seeds/SEED-{PADDED}-{slug}.md
|
|
144
|
+
```
|
|
145
|
+
</step>
|
|
146
|
+
|
|
147
|
+
<step name="confirm">
|
|
148
|
+
```
|
|
149
|
+
✅ Seed planted: SEED-{PADDED}
|
|
150
|
+
|
|
151
|
+
"{$IDEA}"
|
|
152
|
+
Trigger: {$TRIGGER}
|
|
153
|
+
Scope: {$SCOPE}
|
|
154
|
+
File: .planning/seeds/SEED-{PADDED}-{slug}.md
|
|
155
|
+
|
|
156
|
+
This seed will surface automatically when you run /ccp:new-milestone
|
|
157
|
+
and the milestone scope matches the trigger condition.
|
|
158
|
+
```
|
|
159
|
+
</step>
|
|
160
|
+
|
|
161
|
+
</process>
|
|
162
|
+
|
|
163
|
+
<success_criteria>
|
|
164
|
+
- [ ] Seed file created in .planning/seeds/
|
|
165
|
+
- [ ] Frontmatter includes status, trigger, scope
|
|
166
|
+
- [ ] Breadcrumbs collected from codebase
|
|
167
|
+
- [ ] Committed to git
|
|
168
|
+
- [ ] User shown confirmation with trigger info
|
|
169
|
+
</success_criteria>
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
<purpose>
|
|
2
|
+
Create a clean branch for pull requests by filtering out .planning/ commits.
|
|
3
|
+
The PR branch contains only code changes — reviewers don't see CCP artifacts
|
|
4
|
+
(PLAN.md, SUMMARY.md, STATE.md, CONTEXT.md, etc.).
|
|
5
|
+
|
|
6
|
+
Uses git cherry-pick with path filtering to rebuild a clean history.
|
|
7
|
+
</purpose>
|
|
8
|
+
|
|
9
|
+
<process>
|
|
10
|
+
|
|
11
|
+
<step name="detect_state">
|
|
12
|
+
Parse `$ARGUMENTS` for target branch (default: `main`).
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
CURRENT_BRANCH=$(git branch --show-current)
|
|
16
|
+
TARGET=${1:-main}
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Check preconditions:
|
|
20
|
+
- Must be on a feature branch (not main/master)
|
|
21
|
+
- Must have commits ahead of target
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
AHEAD=$(git rev-list --count "$TARGET".."$CURRENT_BRANCH" 2>/dev/null)
|
|
25
|
+
if [ "$AHEAD" = "0" ]; then
|
|
26
|
+
echo "No commits ahead of $TARGET — nothing to filter."
|
|
27
|
+
exit 0
|
|
28
|
+
fi
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Display:
|
|
32
|
+
```
|
|
33
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
34
|
+
Pilot ► PR BRANCH
|
|
35
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
36
|
+
|
|
37
|
+
Branch: {CURRENT_BRANCH}
|
|
38
|
+
Target: {TARGET}
|
|
39
|
+
Commits: {AHEAD} ahead
|
|
40
|
+
```
|
|
41
|
+
</step>
|
|
42
|
+
|
|
43
|
+
<step name="analyze_commits">
|
|
44
|
+
Classify commits:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
# Get all commits ahead of target
|
|
48
|
+
git log --oneline "$TARGET".."$CURRENT_BRANCH" --no-merges
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
For each commit, check if it ONLY touches .planning/ files:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
# For each commit hash
|
|
55
|
+
FILES=$(git diff-tree --no-commit-id --name-only -r $HASH)
|
|
56
|
+
ALL_PLANNING=$(echo "$FILES" | grep -v "^\.planning/" | wc -l)
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Classify:
|
|
60
|
+
- **Code commits**: Touch at least one non-.planning/ file → INCLUDE
|
|
61
|
+
- **Planning-only commits**: Touch only .planning/ files → EXCLUDE
|
|
62
|
+
- **Mixed commits**: Touch both → INCLUDE (planning changes come along)
|
|
63
|
+
|
|
64
|
+
Display analysis:
|
|
65
|
+
```
|
|
66
|
+
Commits to include: {N} (code changes)
|
|
67
|
+
Commits to exclude: {N} (planning-only)
|
|
68
|
+
Mixed commits: {N} (code + planning — included)
|
|
69
|
+
```
|
|
70
|
+
</step>
|
|
71
|
+
|
|
72
|
+
<step name="create_pr_branch">
|
|
73
|
+
```bash
|
|
74
|
+
PR_BRANCH="${CURRENT_BRANCH}-pr"
|
|
75
|
+
|
|
76
|
+
# Create PR branch from target
|
|
77
|
+
git checkout -b "$PR_BRANCH" "$TARGET"
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Cherry-pick only code commits (in order):
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
for HASH in $CODE_COMMITS; do
|
|
84
|
+
git cherry-pick "$HASH" --no-commit
|
|
85
|
+
# Remove any .planning/ files that came along in mixed commits
|
|
86
|
+
git rm -r --cached .planning/ 2>/dev/null || true
|
|
87
|
+
git commit -C "$HASH"
|
|
88
|
+
done
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Return to original branch:
|
|
92
|
+
```bash
|
|
93
|
+
git checkout "$CURRENT_BRANCH"
|
|
94
|
+
```
|
|
95
|
+
</step>
|
|
96
|
+
|
|
97
|
+
<step name="verify">
|
|
98
|
+
```bash
|
|
99
|
+
# Verify no .planning/ files in PR branch
|
|
100
|
+
PLANNING_FILES=$(git diff --name-only "$TARGET".."$PR_BRANCH" | grep "^\.planning/" | wc -l)
|
|
101
|
+
TOTAL_FILES=$(git diff --name-only "$TARGET".."$PR_BRANCH" | wc -l)
|
|
102
|
+
PR_COMMITS=$(git rev-list --count "$TARGET".."$PR_BRANCH")
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Display results:
|
|
106
|
+
```
|
|
107
|
+
✅ PR branch created: {PR_BRANCH}
|
|
108
|
+
|
|
109
|
+
Original: {AHEAD} commits, {ORIGINAL_FILES} files
|
|
110
|
+
PR branch: {PR_COMMITS} commits, {TOTAL_FILES} files
|
|
111
|
+
Planning files: {PLANNING_FILES} (should be 0)
|
|
112
|
+
|
|
113
|
+
Next steps:
|
|
114
|
+
git push origin {PR_BRANCH}
|
|
115
|
+
gh pr create --base {TARGET} --head {PR_BRANCH}
|
|
116
|
+
|
|
117
|
+
Or use /ccp:ship to create the PR automatically.
|
|
118
|
+
```
|
|
119
|
+
</step>
|
|
120
|
+
|
|
121
|
+
</process>
|
|
122
|
+
|
|
123
|
+
<success_criteria>
|
|
124
|
+
- [ ] PR branch created from target
|
|
125
|
+
- [ ] Planning-only commits excluded
|
|
126
|
+
- [ ] No .planning/ files in PR branch diff
|
|
127
|
+
- [ ] Commit messages preserved from original
|
|
128
|
+
- [ ] User shown next steps
|
|
129
|
+
</success_criteria>
|
|
@@ -12,37 +12,41 @@ Read all files referenced by the invoking prompt's execution_context before star
|
|
|
12
12
|
**Load progress context (paths only):**
|
|
13
13
|
|
|
14
14
|
```bash
|
|
15
|
-
INIT=$(node "$HOME/.claude/
|
|
15
|
+
INIT=$(node "$HOME/.claude/pilot/bin/ccp-tools.cjs" init progress)
|
|
16
16
|
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
17
17
|
```
|
|
18
18
|
|
|
19
19
|
Extract from init JSON: `project_exists`, `roadmap_exists`, `state_exists`, `phases`, `current_phase`, `next_phase`, `milestone_version`, `completed_count`, `phase_count`, `paused_at`, `state_path`, `roadmap_path`, `project_path`, `config_path`.
|
|
20
20
|
|
|
21
|
+
```bash
|
|
22
|
+
DISCUSS_MODE=$(node "$HOME/.claude/pilot/bin/ccp-tools.cjs" config-get workflow.discuss_mode 2>/dev/null || echo "discuss")
|
|
23
|
+
```
|
|
24
|
+
|
|
21
25
|
If `project_exists` is false (no `.planning/` directory):
|
|
22
26
|
|
|
23
27
|
```
|
|
24
28
|
No planning structure found.
|
|
25
29
|
|
|
26
|
-
Run /
|
|
30
|
+
Run /ccp:new-project to start a new project.
|
|
27
31
|
```
|
|
28
32
|
|
|
29
33
|
Exit.
|
|
30
34
|
|
|
31
|
-
If missing STATE.md: suggest `/
|
|
35
|
+
If missing STATE.md: suggest `/ccp:new-project`.
|
|
32
36
|
|
|
33
37
|
**If ROADMAP.md missing but PROJECT.md exists:**
|
|
34
38
|
|
|
35
39
|
This means a milestone was completed and archived. Go to **Route F** (between milestones).
|
|
36
40
|
|
|
37
|
-
If missing both ROADMAP.md and PROJECT.md: suggest `/
|
|
41
|
+
If missing both ROADMAP.md and PROJECT.md: suggest `/ccp:new-project`.
|
|
38
42
|
</step>
|
|
39
43
|
|
|
40
44
|
<step name="load">
|
|
41
|
-
**Use structured extraction from
|
|
45
|
+
**Use structured extraction from ccp-tools:**
|
|
42
46
|
|
|
43
47
|
Instead of reading full files, use targeted tools to get only the data needed for the report:
|
|
44
|
-
- `ROADMAP=$(node "$HOME/.claude/
|
|
45
|
-
- `STATE=$(node "$HOME/.claude/
|
|
48
|
+
- `ROADMAP=$(node "$HOME/.claude/pilot/bin/ccp-tools.cjs" roadmap analyze)`
|
|
49
|
+
- `STATE=$(node "$HOME/.claude/pilot/bin/ccp-tools.cjs" state-snapshot)`
|
|
46
50
|
|
|
47
51
|
This minimizes orchestrator context usage.
|
|
48
52
|
</step>
|
|
@@ -51,7 +55,7 @@ This minimizes orchestrator context usage.
|
|
|
51
55
|
**Get comprehensive roadmap analysis (replaces manual parsing):**
|
|
52
56
|
|
|
53
57
|
```bash
|
|
54
|
-
ROADMAP=$(node "$HOME/.claude/
|
|
58
|
+
ROADMAP=$(node "$HOME/.claude/pilot/bin/ccp-tools.cjs" roadmap analyze)
|
|
55
59
|
```
|
|
56
60
|
|
|
57
61
|
This returns structured JSON with:
|
|
@@ -70,7 +74,7 @@ Use this instead of manually reading/parsing ROADMAP.md.
|
|
|
70
74
|
- Find the 2-3 most recent SUMMARY.md files
|
|
71
75
|
- Use `summary-extract` for efficient parsing:
|
|
72
76
|
```bash
|
|
73
|
-
node "$HOME/.claude/
|
|
77
|
+
node "$HOME/.claude/pilot/bin/ccp-tools.cjs" summary-extract <path> --fields one_liner
|
|
74
78
|
```
|
|
75
79
|
- This shows "what we've been working on"
|
|
76
80
|
</step>
|
|
@@ -85,11 +89,11 @@ Use this instead of manually reading/parsing ROADMAP.md.
|
|
|
85
89
|
</step>
|
|
86
90
|
|
|
87
91
|
<step name="report">
|
|
88
|
-
**Generate progress bar from
|
|
92
|
+
**Generate progress bar from ccp-tools, then present rich status report:**
|
|
89
93
|
|
|
90
94
|
```bash
|
|
91
95
|
# Get formatted progress bar
|
|
92
|
-
PROGRESS_BAR=$(node "$HOME/.claude/
|
|
96
|
+
PROGRESS_BAR=$(node "$HOME/.claude/pilot/bin/ccp-tools.cjs" progress bar --raw)
|
|
93
97
|
```
|
|
94
98
|
|
|
95
99
|
Present:
|
|
@@ -98,7 +102,8 @@ Present:
|
|
|
98
102
|
# [Project Name]
|
|
99
103
|
|
|
100
104
|
**Progress:** {PROGRESS_BAR}
|
|
101
|
-
**Profile:** [quality/balanced/budget]
|
|
105
|
+
**Profile:** [quality/balanced/budget/inherit]
|
|
106
|
+
**Discuss mode:** {DISCUSS_MODE}
|
|
102
107
|
|
|
103
108
|
## Recent Work
|
|
104
109
|
- [Phase X, Plan Y]: [what was accomplished - 1 line from summary-extract]
|
|
@@ -118,10 +123,10 @@ CONTEXT: [✓ if has_context | - if not]
|
|
|
118
123
|
- [e.g. jq -r '.blockers[].text' from state-snapshot]
|
|
119
124
|
|
|
120
125
|
## Pending Todos
|
|
121
|
-
- [count] pending — /
|
|
126
|
+
- [count] pending — /ccp:check-todos to review
|
|
122
127
|
|
|
123
128
|
## Active Debug Sessions
|
|
124
|
-
- [count] active — /
|
|
129
|
+
- [count] active — /ccp:debug to continue
|
|
125
130
|
(Only show this section if count > 0)
|
|
126
131
|
|
|
127
132
|
## What's Next
|
|
@@ -150,17 +155,47 @@ State: "This phase has {X} plans, {Y} summaries."
|
|
|
150
155
|
Check for UAT.md files with status "diagnosed" (has gaps needing fixes).
|
|
151
156
|
|
|
152
157
|
```bash
|
|
153
|
-
# Check for diagnosed UAT with gaps
|
|
154
|
-
grep -l "status: diagnosed" .planning/phases/[current-phase-dir]/*-UAT.md 2>/dev/null
|
|
158
|
+
# Check for diagnosed UAT with gaps or partial (incomplete) testing
|
|
159
|
+
grep -l "status: diagnosed\|status: partial" .planning/phases/[current-phase-dir]/*-UAT.md 2>/dev/null
|
|
155
160
|
```
|
|
156
161
|
|
|
157
162
|
Track:
|
|
158
163
|
- `uat_with_gaps`: UAT.md files with status "diagnosed" (gaps need fixing)
|
|
164
|
+
- `uat_partial`: UAT.md files with status "partial" (incomplete testing)
|
|
165
|
+
|
|
166
|
+
**Step 1.6: Cross-phase health check**
|
|
167
|
+
|
|
168
|
+
Scan ALL phases in the current milestone for outstanding verification debt using the CLI:
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
DEBT=$(node "$HOME/.claude/pilot/bin/ccp-tools.cjs" audit-uat --raw 2>/dev/null)
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
Parse JSON for `summary.total_items` and `summary.total_files`.
|
|
175
|
+
|
|
176
|
+
Track: `outstanding_debt` — `summary.total_items` from the audit.
|
|
177
|
+
|
|
178
|
+
**If outstanding_debt > 0:** Add a warning section to the progress report output (in the `report` step), placed between "## What's Next" and the route suggestion:
|
|
179
|
+
|
|
180
|
+
```markdown
|
|
181
|
+
## Verification Debt ({N} files across prior phases)
|
|
182
|
+
|
|
183
|
+
| Phase | File | Issue |
|
|
184
|
+
|-------|------|-------|
|
|
185
|
+
| {phase} | {filename} | {pending_count} pending, {skipped_count} skipped, {blocked_count} blocked |
|
|
186
|
+
| {phase} | {filename} | human_needed — {count} items |
|
|
187
|
+
|
|
188
|
+
Review: `/ccp:audit-uat` — full cross-phase audit
|
|
189
|
+
Resume testing: `/ccp:verify-work {phase}` — retest specific phase
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
This is a WARNING, not a blocker — routing proceeds normally. The debt is visible so the user can make an informed choice.
|
|
159
193
|
|
|
160
194
|
**Step 2: Route based on counts**
|
|
161
195
|
|
|
162
196
|
| Condition | Meaning | Action |
|
|
163
197
|
|-----------|---------|--------|
|
|
198
|
+
| uat_partial > 0 | UAT testing incomplete | Go to **Route E.2** |
|
|
164
199
|
| uat_with_gaps > 0 | UAT gaps need fix plans | Go to **Route E** |
|
|
165
200
|
| summaries < plans | Unexecuted plans exist | Go to **Route A** |
|
|
166
201
|
| summaries = plans AND plans > 0 | Phase complete | Go to Step 3 |
|
|
@@ -180,7 +215,7 @@ Read its `<objective>` section.
|
|
|
180
215
|
|
|
181
216
|
**{phase}-{plan}: [Plan Name]** — [objective summary from PLAN.md]
|
|
182
217
|
|
|
183
|
-
`/
|
|
218
|
+
`/ccp:execute-phase {phase}`
|
|
184
219
|
|
|
185
220
|
<sub>`/clear` first → fresh context window</sub>
|
|
186
221
|
|
|
@@ -203,7 +238,7 @@ Check if `{phase_num}-CONTEXT.md` exists in phase directory.
|
|
|
203
238
|
**Phase {N}: {Name}** — {Goal from ROADMAP.md}
|
|
204
239
|
<sub>✓ Context gathered, ready to plan</sub>
|
|
205
240
|
|
|
206
|
-
`/
|
|
241
|
+
`/ccp:plan-phase {phase-number}`
|
|
207
242
|
|
|
208
243
|
<sub>`/clear` first → fresh context window</sub>
|
|
209
244
|
|
|
@@ -219,15 +254,15 @@ Check if `{phase_num}-CONTEXT.md` exists in phase directory.
|
|
|
219
254
|
|
|
220
255
|
**Phase {N}: {Name}** — {Goal from ROADMAP.md}
|
|
221
256
|
|
|
222
|
-
`/
|
|
257
|
+
`/ccp:discuss-phase {phase}` — gather context and clarify approach
|
|
223
258
|
|
|
224
259
|
<sub>`/clear` first → fresh context window</sub>
|
|
225
260
|
|
|
226
261
|
---
|
|
227
262
|
|
|
228
263
|
**Also available:**
|
|
229
|
-
- `/
|
|
230
|
-
- `/
|
|
264
|
+
- `/ccp:plan-phase {phase}` — skip discussion, plan directly
|
|
265
|
+
- `/ccp:list-phase-assumptions {phase}` — see Claude's assumptions
|
|
231
266
|
|
|
232
267
|
---
|
|
233
268
|
```
|
|
@@ -245,15 +280,41 @@ UAT.md exists with gaps (diagnosed issues). User needs to plan fixes.
|
|
|
245
280
|
|
|
246
281
|
**{phase_num}-UAT.md** has {N} gaps requiring fixes.
|
|
247
282
|
|
|
248
|
-
`/
|
|
283
|
+
`/ccp:plan-phase {phase} --gaps`
|
|
284
|
+
|
|
285
|
+
<sub>`/clear` first → fresh context window</sub>
|
|
286
|
+
|
|
287
|
+
---
|
|
288
|
+
|
|
289
|
+
**Also available:**
|
|
290
|
+
- `/ccp:execute-phase {phase}` — execute phase plans
|
|
291
|
+
- `/ccp:verify-work {phase}` — run more UAT testing
|
|
292
|
+
|
|
293
|
+
---
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
---
|
|
297
|
+
|
|
298
|
+
**Route E.2: UAT testing incomplete (partial)**
|
|
299
|
+
|
|
300
|
+
UAT.md exists with `status: partial` — testing session ended before all items resolved.
|
|
301
|
+
|
|
302
|
+
```
|
|
303
|
+
---
|
|
304
|
+
|
|
305
|
+
## Incomplete UAT Testing
|
|
306
|
+
|
|
307
|
+
**{phase_num}-UAT.md** has {N} unresolved tests (pending, blocked, or skipped).
|
|
308
|
+
|
|
309
|
+
`/ccp:verify-work {phase}` — resume testing from where you left off
|
|
249
310
|
|
|
250
311
|
<sub>`/clear` first → fresh context window</sub>
|
|
251
312
|
|
|
252
313
|
---
|
|
253
314
|
|
|
254
315
|
**Also available:**
|
|
255
|
-
- `/
|
|
256
|
-
- `/
|
|
316
|
+
- `/ccp:audit-uat` — full cross-phase UAT audit
|
|
317
|
+
- `/ccp:execute-phase {phase}` — execute phase plans
|
|
257
318
|
|
|
258
319
|
---
|
|
259
320
|
```
|
|
@@ -292,15 +353,15 @@ Read ROADMAP.md to get the next phase's name and goal.
|
|
|
292
353
|
|
|
293
354
|
**Phase {Z+1}: {Name}** — {Goal from ROADMAP.md}
|
|
294
355
|
|
|
295
|
-
`/
|
|
356
|
+
`/ccp:discuss-phase {Z+1}` — gather context and clarify approach
|
|
296
357
|
|
|
297
358
|
<sub>`/clear` first → fresh context window</sub>
|
|
298
359
|
|
|
299
360
|
---
|
|
300
361
|
|
|
301
362
|
**Also available:**
|
|
302
|
-
- `/
|
|
303
|
-
- `/
|
|
363
|
+
- `/ccp:plan-phase {Z+1}` — skip discussion, plan directly
|
|
364
|
+
- `/ccp:verify-work {Z}` — user acceptance test before continuing
|
|
304
365
|
|
|
305
366
|
---
|
|
306
367
|
```
|
|
@@ -320,14 +381,14 @@ All {N} phases finished!
|
|
|
320
381
|
|
|
321
382
|
**Complete Milestone** — archive and prepare for next
|
|
322
383
|
|
|
323
|
-
`/
|
|
384
|
+
`/ccp:complete-milestone`
|
|
324
385
|
|
|
325
386
|
<sub>`/clear` first → fresh context window</sub>
|
|
326
387
|
|
|
327
388
|
---
|
|
328
389
|
|
|
329
390
|
**Also available:**
|
|
330
|
-
- `/
|
|
391
|
+
- `/ccp:verify-work` — user acceptance test before completing milestone
|
|
331
392
|
|
|
332
393
|
---
|
|
333
394
|
```
|
|
@@ -351,7 +412,7 @@ Ready to plan the next milestone.
|
|
|
351
412
|
|
|
352
413
|
**Start Next Milestone** — questioning → research → requirements → roadmap
|
|
353
414
|
|
|
354
|
-
`/
|
|
415
|
+
`/ccp:new-milestone`
|
|
355
416
|
|
|
356
417
|
<sub>`/clear` first → fresh context window</sub>
|
|
357
418
|
|
|
@@ -363,10 +424,10 @@ Ready to plan the next milestone.
|
|
|
363
424
|
<step name="edge_cases">
|
|
364
425
|
**Handle edge cases:**
|
|
365
426
|
|
|
366
|
-
- Phase complete but next phase not planned → offer `/
|
|
427
|
+
- Phase complete but next phase not planned → offer `/ccp:plan-phase [next]`
|
|
367
428
|
- All work complete → offer milestone completion
|
|
368
429
|
- Blockers present → highlight before offering to continue
|
|
369
|
-
- Handoff file exists → mention it, offer `/
|
|
430
|
+
- Handoff file exists → mention it, offer `/ccp:resume-work`
|
|
370
431
|
</step>
|
|
371
432
|
|
|
372
433
|
</process>
|
|
@@ -376,7 +437,7 @@ Ready to plan the next milestone.
|
|
|
376
437
|
- [ ] Rich context provided (recent work, decisions, issues)
|
|
377
438
|
- [ ] Current position clear with visual progress
|
|
378
439
|
- [ ] What's next clearly explained
|
|
379
|
-
- [ ] Smart routing: /
|
|
440
|
+
- [ ] Smart routing: /ccp:execute-phase if plans exist, /ccp:plan-phase if not
|
|
380
441
|
- [ ] User confirms before any action
|
|
381
|
-
- [ ] Seamless handoff to appropriate
|
|
442
|
+
- [ ] Seamless handoff to appropriate ccp command
|
|
382
443
|
</success_criteria>
|