claude-code-pilot 2.0.0 → 3.1.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/README.md +76 -97
- 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/{ecc → src}/agents/doc-updater.md +1 -1
- package/src/agents/docs-lookup.md +68 -0
- package/src/agents/flutter-reviewer.md +243 -0
- package/src/agents/gan-evaluator.md +209 -0
- package/src/agents/gan-generator.md +131 -0
- package/src/agents/gan-planner.md +99 -0
- package/src/agents/go-build-resolver.md +94 -0
- package/src/agents/go-reviewer.md +76 -0
- package/src/agents/harness-optimizer.md +35 -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/loop-operator.md +36 -0
- package/src/agents/opensource-forker.md +198 -0
- package/src/agents/opensource-packager.md +249 -0
- package/src/agents/opensource-sanitizer.md +188 -0
- package/src/agents/performance-optimizer.md +446 -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/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/src/commands/ccp/aside.md +165 -0
- 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/src/commands/ccp/build-fix.md +67 -0
- package/{gsd/commands-gsd → src/commands/ccp}/check-todos.md +3 -3
- package/{ecc/commands → src/commands/ccp}/checkpoint.md +12 -7
- package/{gsd/commands-gsd → src/commands/ccp}/cleanup.md +3 -3
- package/src/commands/ccp/code-review.md +45 -0
- package/{gsd/commands-gsd → src/commands/ccp}/complete-milestone.md +9 -9
- package/src/commands/ccp/context-budget.md +30 -0
- package/src/commands/ccp/cpp-build.md +174 -0
- package/src/commands/ccp/cpp-review.md +133 -0
- package/src/commands/ccp/cpp-test.md +252 -0
- 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/docs-update.md +48 -0
- package/src/commands/ccp/docs.md +32 -0
- package/src/commands/ccp/e2e.md +365 -0
- package/src/commands/ccp/eval.md +125 -0
- package/{ecc/commands → src/commands/ccp}/evolve.md +5 -5
- 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/src/commands/ccp/go-build.md +184 -0
- package/src/commands/ccp/go-review.md +149 -0
- package/src/commands/ccp/go-test.md +269 -0
- package/src/commands/ccp/gradle-build.md +71 -0
- package/src/commands/ccp/harness-audit.md +76 -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/src/commands/ccp/kotlin-build.md +175 -0
- package/src/commands/ccp/kotlin-review.md +141 -0
- package/src/commands/ccp/kotlin-test.md +313 -0
- package/{ecc/commands → src/commands/ccp}/learn.md +7 -2
- 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/{ecc/commands → src/commands/ccp}/model-route.md +6 -1
- 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/src/commands/ccp/orchestrate.md +232 -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/plan.md +115 -0
- package/src/commands/ccp/plant-seed.md +28 -0
- package/src/commands/ccp/pr-branch.md +25 -0
- package/src/commands/ccp/profile-user.md +46 -0
- package/{gsd/commands-gsd → src/commands/ccp}/progress.md +3 -3
- package/src/commands/ccp/prompt-optimize.md +39 -0
- package/src/commands/ccp/prune.md +25 -0
- package/src/commands/ccp/python-review.md +298 -0
- package/{ecc/commands → src/commands/ccp}/quality-gate.md +7 -2
- package/{gsd/commands-gsd → src/commands/ccp}/quick.md +10 -8
- package/src/commands/ccp/refactor-clean.md +85 -0
- 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/{ecc/commands → src/commands/ccp}/resume-session.md +9 -8
- 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/review.md +37 -0
- package/src/commands/ccp/rules-distill.md +12 -0
- package/src/commands/ccp/rust-build.md +188 -0
- package/src/commands/ccp/rust-review.md +143 -0
- package/src/commands/ccp/rust-test.md +309 -0
- package/{ecc/commands → src/commands/ccp}/save-session.md +2 -1
- package/src/commands/ccp/secure-phase.md +35 -0
- package/src/commands/ccp/session-report.md +19 -0
- package/{ecc/commands → src/commands/ccp}/sessions.md +39 -34
- package/src/commands/ccp/set-profile.md +12 -0
- package/{gsd/commands-gsd → src/commands/ccp}/settings.md +5 -5
- package/src/commands/ccp/setup-pm.md +81 -0
- package/{kit/commands → src/commands/ccp}/setup-refresh.md +4 -3
- package/{kit/commands → src/commands/ccp}/setup.md +67 -40
- package/src/commands/ccp/ship.md +23 -0
- package/src/commands/ccp/skill-create.md +172 -0
- package/src/commands/ccp/skill-health.md +51 -0
- package/src/commands/ccp/stats.md +18 -0
- package/src/commands/ccp/tdd.md +329 -0
- package/src/commands/ccp/test-coverage.md +74 -0
- package/src/commands/ccp/thread.md +127 -0
- package/{kit/commands → src/commands/ccp}/tool-guide.md +2 -1
- package/src/commands/ccp/ui-phase.md +34 -0
- package/src/commands/ccp/ui-review.md +32 -0
- package/src/commands/ccp/update-codemaps.md +77 -0
- package/src/commands/ccp/update-docs.md +89 -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/{ecc/commands → src/commands/ccp}/verify.md +5 -0
- package/src/commands/ccp/workstreams.md +68 -0
- package/{ecc → src}/examples/CLAUDE.md +4 -4
- package/{ecc → src}/examples/django-api-CLAUDE.md +5 -5
- package/{ecc → src}/examples/go-microservice-CLAUDE.md +6 -6
- package/{ecc → src}/examples/rust-api-CLAUDE.md +4 -4
- package/{ecc → src}/examples/saas-nextjs-CLAUDE.md +8 -8
- 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 +76 -10
- 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/docs-update.md +1165 -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 +767 -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/src/pilot/workflows/profile-user.md +452 -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/review.md +244 -0
- package/src/pilot/workflows/secure-phase.md +164 -0
- 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/src/rules/common/code-review.md +124 -0
- package/{ecc → src}/rules/common/coding-style.md +21 -0
- package/src/rules/zh/README.md +108 -0
- package/src/rules/zh/agents.md +50 -0
- package/src/rules/zh/code-review.md +124 -0
- package/src/rules/zh/coding-style.md +48 -0
- package/src/rules/zh/development-workflow.md +44 -0
- package/src/rules/zh/git-workflow.md +24 -0
- package/src/rules/zh/hooks.md +30 -0
- package/src/rules/zh/patterns.md +31 -0
- package/src/rules/zh/performance.md +55 -0
- package/src/rules/zh/security.md +29 -0
- package/src/rules/zh/testing.md +29 -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/autonomous-agent-harness/SKILL.md +267 -0
- package/src/skills/autonomous-loops/SKILL.md +610 -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/bun-runtime/SKILL.md +84 -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/content-hash-cache-pattern/SKILL.md +161 -0
- package/src/skills/context-budget/SKILL.md +135 -0
- package/{ecc → src}/skills/continuous-learning-v2/SKILL.md +6 -6
- package/{ecc → src}/skills/continuous-learning-v2/agents/observer-loop.sh +1 -1
- package/{ecc → src}/skills/continuous-learning-v2/agents/observer.md +1 -1
- package/src/skills/cost-aware-llm-pipeline/SKILL.md +183 -0
- 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/design-system/SKILL.md +82 -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/eval-harness/SKILL.md +270 -0
- package/src/skills/exa-search/SKILL.md +103 -0
- package/src/skills/flutter-dart-code-review/SKILL.md +435 -0
- package/src/skills/frontend-patterns/SKILL.md +642 -0
- package/src/skills/gan-style-harness/SKILL.md +278 -0
- package/src/skills/git-workflow/SKILL.md +715 -0
- package/src/skills/golang-patterns/SKILL.md +674 -0
- package/src/skills/golang-testing/SKILL.md +720 -0
- package/src/skills/hexagonal-architecture/SKILL.md +276 -0
- package/src/skills/iterative-retrieval/SKILL.md +211 -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-plugin-discovery/SKILL.md +229 -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/nextjs-turbopack/SKILL.md +44 -0
- package/src/skills/nuxt4-patterns/SKILL.md +100 -0
- package/src/skills/opensource-pipeline/SKILL.md +255 -0
- package/src/skills/perl-patterns/SKILL.md +504 -0
- package/src/skills/perl-security/SKILL.md +503 -0
- package/src/skills/perl-testing/SKILL.md +475 -0
- package/src/skills/postgres-patterns/SKILL.md +147 -0
- package/src/skills/project-flow-ops/SKILL.md +111 -0
- package/src/skills/project-guidelines-example/SKILL.md +349 -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/pytorch-patterns/SKILL.md +396 -0
- package/src/skills/regex-vs-llm-structured-text/SKILL.md +220 -0
- package/src/skills/repo-scan/SKILL.md +78 -0
- package/src/skills/rules-distill/SKILL.md +264 -0
- package/src/skills/rules-distill/scripts/scan-rules.sh +58 -0
- package/src/skills/rules-distill/scripts/scan-skills.sh +129 -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/swift-concurrency-6-2/SKILL.md +216 -0
- package/src/skills/tdd-workflow/SKILL.md +410 -0
- package/src/skills/token-budget-advisor/SKILL.md +133 -0
- package/{ecc/skills/verification-loop-SKILL.md → src/skills/verification-loop/SKILL.md} +1 -1
- package/src/skills/workspace-surface-audit/SKILL.md +125 -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/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}/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/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/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
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<purpose>
|
|
2
|
-
Check for
|
|
2
|
+
Check for CCP updates via npm, display changelog for versions between installed and latest, obtain user confirmation, and execute clean installation with cache clearing.
|
|
3
3
|
</purpose>
|
|
4
4
|
|
|
5
5
|
<required_reading>
|
|
@@ -9,29 +9,22 @@ Read all files referenced by the invoking prompt's execution_context before star
|
|
|
9
9
|
<process>
|
|
10
10
|
|
|
11
11
|
<step name="get_installed_version">
|
|
12
|
-
Detect whether
|
|
12
|
+
Detect whether CCP is installed locally or globally by checking both locations and validating install integrity:
|
|
13
13
|
|
|
14
14
|
```bash
|
|
15
15
|
# Check local first (takes priority only if valid)
|
|
16
|
-
# Detect runtime config directory (supports Claude, OpenCode, Gemini)
|
|
17
16
|
LOCAL_VERSION_FILE="" LOCAL_MARKER_FILE="" LOCAL_DIR=""
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
break
|
|
24
|
-
fi
|
|
25
|
-
done
|
|
17
|
+
if [ -f "./.claude/pilot/VERSION" ]; then
|
|
18
|
+
LOCAL_VERSION_FILE="./.claude/pilot/VERSION"
|
|
19
|
+
LOCAL_MARKER_FILE="./.claude/pilot/workflows/update.md"
|
|
20
|
+
LOCAL_DIR="$(cd "./.claude" 2>/dev/null && pwd)"
|
|
21
|
+
fi
|
|
26
22
|
GLOBAL_VERSION_FILE="" GLOBAL_MARKER_FILE="" GLOBAL_DIR=""
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
break
|
|
33
|
-
fi
|
|
34
|
-
done
|
|
23
|
+
if [ -f "$HOME/.claude/pilot/VERSION" ]; then
|
|
24
|
+
GLOBAL_VERSION_FILE="$HOME/.claude/pilot/VERSION"
|
|
25
|
+
GLOBAL_MARKER_FILE="$HOME/.claude/pilot/workflows/update.md"
|
|
26
|
+
GLOBAL_DIR="$(cd "$HOME/.claude" 2>/dev/null && pwd)"
|
|
27
|
+
fi
|
|
35
28
|
|
|
36
29
|
# Only treat as LOCAL if the resolved paths differ (prevents misdetection when CWD=$HOME)
|
|
37
30
|
IS_LOCAL=false
|
|
@@ -42,24 +35,35 @@ if [ -n "$LOCAL_VERSION_FILE" ] && [ -f "$LOCAL_VERSION_FILE" ] && [ -f "$LOCAL_
|
|
|
42
35
|
fi
|
|
43
36
|
|
|
44
37
|
if [ "$IS_LOCAL" = true ]; then
|
|
45
|
-
cat "$LOCAL_VERSION_FILE"
|
|
46
|
-
|
|
38
|
+
INSTALLED_VERSION="$(cat "$LOCAL_VERSION_FILE")"
|
|
39
|
+
INSTALL_SCOPE="LOCAL"
|
|
47
40
|
elif [ -n "$GLOBAL_VERSION_FILE" ] && [ -f "$GLOBAL_VERSION_FILE" ] && [ -f "$GLOBAL_MARKER_FILE" ] && grep -Eq '^[0-9]+\.[0-9]+\.[0-9]+' "$GLOBAL_VERSION_FILE"; then
|
|
48
|
-
cat "$GLOBAL_VERSION_FILE"
|
|
49
|
-
|
|
41
|
+
INSTALLED_VERSION="$(cat "$GLOBAL_VERSION_FILE")"
|
|
42
|
+
INSTALL_SCOPE="GLOBAL"
|
|
43
|
+
elif [ -n "$LOCAL_MARKER_FILE" ] && [ -f "$LOCAL_MARKER_FILE" ]; then
|
|
44
|
+
# Runtime detected but VERSION missing/corrupt: treat as unknown version
|
|
45
|
+
INSTALLED_VERSION="0.0.0"
|
|
46
|
+
INSTALL_SCOPE="LOCAL"
|
|
47
|
+
elif [ -n "$GLOBAL_MARKER_FILE" ] && [ -f "$GLOBAL_MARKER_FILE" ]; then
|
|
48
|
+
INSTALLED_VERSION="0.0.0"
|
|
49
|
+
INSTALL_SCOPE="GLOBAL"
|
|
50
50
|
else
|
|
51
|
-
|
|
51
|
+
INSTALLED_VERSION="0.0.0"
|
|
52
|
+
INSTALL_SCOPE="UNKNOWN"
|
|
52
53
|
fi
|
|
54
|
+
|
|
55
|
+
echo "$INSTALLED_VERSION"
|
|
56
|
+
echo "$INSTALL_SCOPE"
|
|
53
57
|
```
|
|
54
58
|
|
|
55
59
|
Parse output:
|
|
56
|
-
-
|
|
57
|
-
-
|
|
58
|
-
- If
|
|
60
|
+
- Line 1 = installed version (`0.0.0` means unknown version)
|
|
61
|
+
- Line 2 = install scope (`LOCAL`, `GLOBAL`, or `UNKNOWN`)
|
|
62
|
+
- If scope is `UNKNOWN`, proceed to install step using `--global` fallback.
|
|
59
63
|
|
|
60
64
|
**If VERSION file missing:**
|
|
61
65
|
```
|
|
62
|
-
##
|
|
66
|
+
## CCP Update
|
|
63
67
|
|
|
64
68
|
**Installed version:** Unknown
|
|
65
69
|
|
|
@@ -75,14 +79,14 @@ Proceed to install step (treat as version 0.0.0 for comparison).
|
|
|
75
79
|
Check npm for latest version:
|
|
76
80
|
|
|
77
81
|
```bash
|
|
78
|
-
npm view
|
|
82
|
+
npm view claude-code-pilot version 2>/dev/null
|
|
79
83
|
```
|
|
80
84
|
|
|
81
85
|
**If npm check fails:**
|
|
82
86
|
```
|
|
83
87
|
Couldn't check for updates (offline or npm unavailable).
|
|
84
88
|
|
|
85
|
-
To update manually: `npx
|
|
89
|
+
To update manually: `npx claude-code-pilot --global`
|
|
86
90
|
```
|
|
87
91
|
|
|
88
92
|
Exit.
|
|
@@ -93,7 +97,7 @@ Compare installed vs latest:
|
|
|
93
97
|
|
|
94
98
|
**If installed == latest:**
|
|
95
99
|
```
|
|
96
|
-
##
|
|
100
|
+
## CCP Update
|
|
97
101
|
|
|
98
102
|
**Installed:** X.Y.Z
|
|
99
103
|
**Latest:** X.Y.Z
|
|
@@ -105,7 +109,7 @@ Exit.
|
|
|
105
109
|
|
|
106
110
|
**If installed > latest:**
|
|
107
111
|
```
|
|
108
|
-
##
|
|
112
|
+
## CCP Update
|
|
109
113
|
|
|
110
114
|
**Installed:** X.Y.Z
|
|
111
115
|
**Latest:** A.B.C
|
|
@@ -124,7 +128,7 @@ Exit.
|
|
|
124
128
|
3. Display preview and ask for confirmation:
|
|
125
129
|
|
|
126
130
|
```
|
|
127
|
-
##
|
|
131
|
+
## CCP Update Available
|
|
128
132
|
|
|
129
133
|
**Installed:** 1.5.10
|
|
130
134
|
**Latest:** 1.5.15
|
|
@@ -144,20 +148,20 @@ Exit.
|
|
|
144
148
|
|
|
145
149
|
────────────────────────────────────────────────────────────
|
|
146
150
|
|
|
147
|
-
|
|
148
|
-
- `commands/
|
|
149
|
-
- `
|
|
150
|
-
- `agents/
|
|
151
|
+
**Note:** The installer performs a clean install of CCP folders:
|
|
152
|
+
- `commands/ccp/` will be wiped and replaced
|
|
153
|
+
- `pilot/` will be wiped and replaced
|
|
154
|
+
- `agents/ccp-*` files will be replaced
|
|
151
155
|
|
|
152
156
|
(Paths are relative to your install location: `~/.claude/` for global, `./.claude/` for local)
|
|
153
157
|
|
|
154
158
|
Your custom files in other locations are preserved:
|
|
155
|
-
- Custom commands not in `commands/
|
|
156
|
-
- Custom agents not prefixed with `
|
|
157
|
-
- Custom hooks
|
|
158
|
-
- Your CLAUDE.md files
|
|
159
|
+
- Custom commands not in `commands/ccp/`
|
|
160
|
+
- Custom agents not prefixed with `ccp-`
|
|
161
|
+
- Custom hooks
|
|
162
|
+
- Your CLAUDE.md files
|
|
159
163
|
|
|
160
|
-
If you've modified any
|
|
164
|
+
If you've modified any CCP files directly, they'll be automatically backed up to `ccp-local-patches/` and can be reapplied with `/ccp:reapply-patches` after the update.
|
|
161
165
|
```
|
|
162
166
|
|
|
163
167
|
Use AskUserQuestion:
|
|
@@ -174,12 +178,17 @@ Run the update using the install type detected in step 1:
|
|
|
174
178
|
|
|
175
179
|
**If LOCAL install:**
|
|
176
180
|
```bash
|
|
177
|
-
npx -y
|
|
181
|
+
npx -y claude-code-pilot@latest --local
|
|
178
182
|
```
|
|
179
183
|
|
|
180
|
-
**If GLOBAL install
|
|
184
|
+
**If GLOBAL install:**
|
|
181
185
|
```bash
|
|
182
|
-
npx -y
|
|
186
|
+
npx -y claude-code-pilot@latest --global
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
**If UNKNOWN install:**
|
|
190
|
+
```bash
|
|
191
|
+
npx -y claude-code-pilot@latest --global
|
|
183
192
|
```
|
|
184
193
|
|
|
185
194
|
Capture output. If install fails, show error and exit.
|
|
@@ -187,27 +196,47 @@ Capture output. If install fails, show error and exit.
|
|
|
187
196
|
Clear the update cache so statusline indicator disappears:
|
|
188
197
|
|
|
189
198
|
```bash
|
|
190
|
-
# Clear update cache
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
rm -f "$HOME/$dir/cache/gsd-update-check.json"
|
|
194
|
-
done
|
|
199
|
+
# Clear update cache
|
|
200
|
+
rm -f "./.claude/cache/ccp-update-check.json"
|
|
201
|
+
rm -f "$HOME/.claude/cache/ccp-update-check.json"
|
|
195
202
|
```
|
|
196
203
|
|
|
197
|
-
The SessionStart hook (`
|
|
204
|
+
The SessionStart hook (`ccp-check-update.js`) writes to the detected runtime's cache directory, so all paths must be cleared to prevent stale update indicators.
|
|
205
|
+
</step>
|
|
206
|
+
|
|
207
|
+
<step name="check_stale_hooks">
|
|
208
|
+
After update completes, check if the new version added or removed hooks that conflict with the user's existing settings.json:
|
|
209
|
+
|
|
210
|
+
```bash
|
|
211
|
+
# Compare installed hooks against expected hooks
|
|
212
|
+
if [ -f "./.claude/settings.json" ]; then
|
|
213
|
+
SETTINGS="./.claude/settings.json"
|
|
214
|
+
elif [ -f "$HOME/.claude/settings.json" ]; then
|
|
215
|
+
SETTINGS="$HOME/.claude/settings.json"
|
|
216
|
+
fi
|
|
217
|
+
|
|
218
|
+
if [ -n "$SETTINGS" ]; then
|
|
219
|
+
# Count hooks — stale hooks from older versions may linger
|
|
220
|
+
HOOK_COUNT=$(grep -c '"command"' "$SETTINGS" 2>/dev/null || echo "0")
|
|
221
|
+
echo "Installed hooks: $HOOK_COUNT"
|
|
222
|
+
fi
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
If hook count seems abnormal (doubled hooks from failed dedup), flag for user review:
|
|
226
|
+
```
|
|
227
|
+
Note: Found $HOOK_COUNT hooks in settings.json. If this seems high, the update may have added duplicate hooks. Run /ccp:health --repair to check.
|
|
228
|
+
```
|
|
198
229
|
</step>
|
|
199
230
|
|
|
200
231
|
<step name="display_result">
|
|
201
232
|
Format completion message (changelog was already shown in confirmation step):
|
|
202
233
|
|
|
203
234
|
```
|
|
204
|
-
|
|
205
|
-
║ GSD Updated: v1.5.10 → v1.5.15 ║
|
|
206
|
-
╚═══════════════════════════════════════════════════════════╝
|
|
235
|
+
CCP Updated: v1.5.10 -> v1.5.15
|
|
207
236
|
|
|
208
|
-
|
|
237
|
+
Restart Claude Code to pick up the new commands.
|
|
209
238
|
|
|
210
|
-
[View full changelog](https://github.com/glittercowboy/
|
|
239
|
+
[View full changelog](https://github.com/glittercowboy/pilot/blob/main/CHANGELOG.md)
|
|
211
240
|
```
|
|
212
241
|
</step>
|
|
213
242
|
|
|
@@ -215,13 +244,13 @@ Format completion message (changelog was already shown in confirmation step):
|
|
|
215
244
|
<step name="check_local_patches">
|
|
216
245
|
After update completes, check if the installer detected and backed up any locally modified files:
|
|
217
246
|
|
|
218
|
-
Check for
|
|
247
|
+
Check for ccp-local-patches/backup-meta.json in the config directory.
|
|
219
248
|
|
|
220
249
|
**If patches found:**
|
|
221
250
|
|
|
222
251
|
```
|
|
223
252
|
Local patches were backed up before the update.
|
|
224
|
-
Run /
|
|
253
|
+
Run /ccp:reapply-patches to merge your modifications into the new version.
|
|
225
254
|
```
|
|
226
255
|
|
|
227
256
|
**If no patches:** Continue normally.
|
|
@@ -236,5 +265,6 @@ Run /gsd:reapply-patches to merge your modifications into the new version.
|
|
|
236
265
|
- [ ] Clean install warning shown
|
|
237
266
|
- [ ] User confirmation obtained
|
|
238
267
|
- [ ] Update executed successfully
|
|
268
|
+
- [ ] Stale hooks detected if present
|
|
239
269
|
- [ ] Restart reminder shown
|
|
240
270
|
</success_criteria>
|
|
@@ -3,28 +3,34 @@ Audit Nyquist validation gaps for a completed phase. Generate missing tests. Upd
|
|
|
3
3
|
</purpose>
|
|
4
4
|
|
|
5
5
|
<required_reading>
|
|
6
|
-
@~/.claude/
|
|
6
|
+
@~/.claude/pilot/references/ui-brand.md
|
|
7
7
|
</required_reading>
|
|
8
8
|
|
|
9
|
+
<available_agent_types>
|
|
10
|
+
Valid CCP subagent types (use exact names — do not fall back to 'general-purpose'):
|
|
11
|
+
- ccp-nyquist-auditor — Validates verification coverage
|
|
12
|
+
</available_agent_types>
|
|
13
|
+
|
|
9
14
|
<process>
|
|
10
15
|
|
|
11
16
|
## 0. Initialize
|
|
12
17
|
|
|
13
18
|
```bash
|
|
14
|
-
INIT=$(node "$HOME/.claude/
|
|
19
|
+
INIT=$(node "$HOME/.claude/pilot/bin/ccp-tools.cjs" init phase-op "${PHASE_ARG}")
|
|
15
20
|
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
21
|
+
AGENT_SKILLS_AUDITOR=$(node "$HOME/.claude/pilot/bin/ccp-tools.cjs" agent-skills ccp-nyquist-auditor 2>/dev/null)
|
|
16
22
|
```
|
|
17
23
|
|
|
18
24
|
Parse: `phase_dir`, `phase_number`, `phase_name`, `phase_slug`, `padded_phase`.
|
|
19
25
|
|
|
20
26
|
```bash
|
|
21
|
-
AUDITOR_MODEL=$(node "$HOME/.claude/
|
|
22
|
-
NYQUIST_CFG=$(node "$HOME/.claude/
|
|
27
|
+
AUDITOR_MODEL=$(node "$HOME/.claude/pilot/bin/ccp-tools.cjs" resolve-model ccp-nyquist-auditor --raw)
|
|
28
|
+
NYQUIST_CFG=$(node "$HOME/.claude/pilot/bin/ccp-tools.cjs" config get workflow.nyquist_validation --raw)
|
|
23
29
|
```
|
|
24
30
|
|
|
25
|
-
If `NYQUIST_CFG` is `false`: exit with "Nyquist validation is disabled. Enable via /
|
|
31
|
+
If `NYQUIST_CFG` is `false`: exit with "Nyquist validation is disabled. Enable via /ccp:settings."
|
|
26
32
|
|
|
27
|
-
Display banner: `
|
|
33
|
+
Display banner: `Pilot > VALIDATE PHASE {N}: {name}`
|
|
28
34
|
|
|
29
35
|
## 1. Detect Input State
|
|
30
36
|
|
|
@@ -35,7 +41,7 @@ SUMMARY_FILES=$(ls "${PHASE_DIR}"/*-SUMMARY.md 2>/dev/null)
|
|
|
35
41
|
|
|
36
42
|
- **State A** (`VALIDATION_FILE` non-empty): Audit existing
|
|
37
43
|
- **State B** (`VALIDATION_FILE` empty, `SUMMARY_FILES` non-empty): Reconstruct from artifacts
|
|
38
|
-
- **State C** (`SUMMARY_FILES` empty): Exit — "Phase {N} not executed. Run /
|
|
44
|
+
- **State C** (`SUMMARY_FILES` empty): Exit — "Phase {N} not executed. Run /ccp:execute-phase {N} first."
|
|
39
45
|
|
|
40
46
|
## 2. Discovery
|
|
41
47
|
|
|
@@ -82,16 +88,17 @@ Call AskUserQuestion with gap table and options:
|
|
|
82
88
|
2. "Skip — mark manual-only" → add to Manual-Only, Step 6
|
|
83
89
|
3. "Cancel" → exit
|
|
84
90
|
|
|
85
|
-
## 5. Spawn
|
|
91
|
+
## 5. Spawn ccp-nyquist-auditor
|
|
86
92
|
|
|
87
93
|
```
|
|
88
94
|
Task(
|
|
89
|
-
prompt="Read ~/.claude/agents/
|
|
95
|
+
prompt="Read ~/.claude/agents/ccp-nyquist-auditor.md for instructions.\n\n" +
|
|
90
96
|
"<files_to_read>{PLAN, SUMMARY, impl files, VALIDATION.md}</files_to_read>" +
|
|
91
97
|
"<gaps>{gap list}</gaps>" +
|
|
92
98
|
"<test_infrastructure>{framework, config, commands}</test_infrastructure>" +
|
|
93
|
-
"<constraints>Never modify impl files. Max 3 debug iterations. Escalate impl bugs.</constraints>"
|
|
94
|
-
|
|
99
|
+
"<constraints>Never modify impl files. Max 3 debug iterations. Escalate impl bugs.</constraints>" +
|
|
100
|
+
"${AGENT_SKILLS_AUDITOR}",
|
|
101
|
+
subagent_type="ccp-nyquist-auditor",
|
|
95
102
|
model="{AUDITOR_MODEL}",
|
|
96
103
|
description="Fill validation gaps for Phase {N}"
|
|
97
104
|
)
|
|
@@ -105,7 +112,7 @@ Handle return:
|
|
|
105
112
|
## 6. Generate/Update VALIDATION.md
|
|
106
113
|
|
|
107
114
|
**State B (create):**
|
|
108
|
-
1. Read template from `~/.claude/
|
|
115
|
+
1. Read template from `~/.claude/pilot/templates/VALIDATION.md`
|
|
109
116
|
2. Fill: frontmatter, Test Infrastructure, Per-Task Map, Manual-Only, Sign-Off
|
|
110
117
|
3. Write to `${PHASE_DIR}/${PADDED_PHASE}-VALIDATION.md`
|
|
111
118
|
|
|
@@ -128,23 +135,23 @@ Handle return:
|
|
|
128
135
|
git add {test_files}
|
|
129
136
|
git commit -m "test(phase-${PHASE}): add Nyquist validation tests"
|
|
130
137
|
|
|
131
|
-
node "$HOME/.claude/
|
|
138
|
+
node "$HOME/.claude/pilot/bin/ccp-tools.cjs" commit-docs "docs(phase-${PHASE}): add/update validation strategy"
|
|
132
139
|
```
|
|
133
140
|
|
|
134
141
|
## 8. Results + Routing
|
|
135
142
|
|
|
136
143
|
**Compliant:**
|
|
137
144
|
```
|
|
138
|
-
|
|
145
|
+
Pilot > PHASE {N} IS NYQUIST-COMPLIANT
|
|
139
146
|
All requirements have automated verification.
|
|
140
|
-
▶ Next: /
|
|
147
|
+
▶ Next: /ccp:audit-milestone
|
|
141
148
|
```
|
|
142
149
|
|
|
143
150
|
**Partial:**
|
|
144
151
|
```
|
|
145
|
-
|
|
152
|
+
Pilot > PHASE {N} VALIDATED (PARTIAL)
|
|
146
153
|
{M} automated, {K} manual-only.
|
|
147
|
-
▶ Retry: /
|
|
154
|
+
▶ Retry: /ccp:validate-phase {N}
|
|
148
155
|
```
|
|
149
156
|
|
|
150
157
|
Display `/clear` reminder.
|
|
@@ -18,8 +18,8 @@ Then verify each level against the actual codebase.
|
|
|
18
18
|
</core_principle>
|
|
19
19
|
|
|
20
20
|
<required_reading>
|
|
21
|
-
@~/.claude/
|
|
22
|
-
@~/.claude/
|
|
21
|
+
@~/.claude/pilot/references/verification-patterns.md
|
|
22
|
+
@~/.claude/pilot/templates/verification-report.md
|
|
23
23
|
</required_reading>
|
|
24
24
|
|
|
25
25
|
<process>
|
|
@@ -28,7 +28,7 @@ Then verify each level against the actual codebase.
|
|
|
28
28
|
Load phase operation context:
|
|
29
29
|
|
|
30
30
|
```bash
|
|
31
|
-
INIT=$(node "$HOME/.claude/
|
|
31
|
+
INIT=$(node "$HOME/.claude/pilot/bin/ccp-tools.cjs" init phase-op "${PHASE_ARG}")
|
|
32
32
|
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
33
33
|
```
|
|
34
34
|
|
|
@@ -36,9 +36,9 @@ Extract from init JSON: `phase_dir`, `phase_number`, `phase_name`, `has_plans`,
|
|
|
36
36
|
|
|
37
37
|
Then load phase details and list plans/summaries:
|
|
38
38
|
```bash
|
|
39
|
-
node "$HOME/.claude/
|
|
40
|
-
grep -E "^| ${phase_number}" .planning/REQUIREMENTS.md 2>/dev/null
|
|
41
|
-
ls "$phase_dir"/*-SUMMARY.md "$phase_dir"/*-PLAN.md 2>/dev/null
|
|
39
|
+
node "$HOME/.claude/pilot/bin/ccp-tools.cjs" roadmap get-phase "${phase_number}"
|
|
40
|
+
grep -E "^| ${phase_number}" .planning/REQUIREMENTS.md 2>/dev/null || true
|
|
41
|
+
ls "$phase_dir"/*-SUMMARY.md "$phase_dir"/*-PLAN.md 2>/dev/null || true
|
|
42
42
|
```
|
|
43
43
|
|
|
44
44
|
Extract **phase goal** from ROADMAP.md (the outcome to verify, not tasks) and **requirements** from REQUIREMENTS.md if it exists.
|
|
@@ -47,11 +47,11 @@ Extract **phase goal** from ROADMAP.md (the outcome to verify, not tasks) and **
|
|
|
47
47
|
<step name="establish_must_haves">
|
|
48
48
|
**Option A: Must-haves in PLAN frontmatter**
|
|
49
49
|
|
|
50
|
-
Use
|
|
50
|
+
Use ccp-tools to extract must_haves from each PLAN:
|
|
51
51
|
|
|
52
52
|
```bash
|
|
53
53
|
for plan in "$PHASE_DIR"/*-PLAN.md; do
|
|
54
|
-
MUST_HAVES=$(node "$HOME/.claude/
|
|
54
|
+
MUST_HAVES=$(node "$HOME/.claude/pilot/bin/ccp-tools.cjs" frontmatter get "$plan" --field must_haves)
|
|
55
55
|
echo "=== $plan ===" && echo "$MUST_HAVES"
|
|
56
56
|
done
|
|
57
57
|
```
|
|
@@ -65,7 +65,7 @@ Aggregate all must_haves across plans for phase-level verification.
|
|
|
65
65
|
If no must_haves in frontmatter (MUST_HAVES returns error or empty), check for Success Criteria:
|
|
66
66
|
|
|
67
67
|
```bash
|
|
68
|
-
PHASE_DATA=$(node "$HOME/.claude/
|
|
68
|
+
PHASE_DATA=$(node "$HOME/.claude/pilot/bin/ccp-tools.cjs" roadmap get-phase "${phase_number}" --raw)
|
|
69
69
|
```
|
|
70
70
|
|
|
71
71
|
Parse the `success_criteria` array from the JSON output. If non-empty:
|
|
@@ -97,11 +97,11 @@ For each truth: identify supporting artifacts → check artifact status → chec
|
|
|
97
97
|
</step>
|
|
98
98
|
|
|
99
99
|
<step name="verify_artifacts">
|
|
100
|
-
Use
|
|
100
|
+
Use ccp-tools for artifact verification against must_haves in each PLAN:
|
|
101
101
|
|
|
102
102
|
```bash
|
|
103
103
|
for plan in "$PHASE_DIR"/*-PLAN.md; do
|
|
104
|
-
ARTIFACT_RESULT=$(node "$HOME/.claude/
|
|
104
|
+
ARTIFACT_RESULT=$(node "$HOME/.claude/pilot/bin/ccp-tools.cjs" verify artifacts "$plan")
|
|
105
105
|
echo "=== $plan ===" && echo "$ARTIFACT_RESULT"
|
|
106
106
|
done
|
|
107
107
|
```
|
|
@@ -126,14 +126,25 @@ WIRED = imported AND used. ORPHANED = exists but not imported/used.
|
|
|
126
126
|
| ✓ | ✓ | ✗ | ⚠️ ORPHANED |
|
|
127
127
|
| ✓ | ✗ | - | ✗ STUB |
|
|
128
128
|
| ✗ | - | - | ✗ MISSING |
|
|
129
|
+
|
|
130
|
+
**Export-level spot check (WARNING severity):**
|
|
131
|
+
|
|
132
|
+
For artifacts that pass Level 3, spot-check individual exports:
|
|
133
|
+
- Extract key exported symbols (functions, constants, classes — skip types/interfaces)
|
|
134
|
+
- For each, grep for usage outside the defining file
|
|
135
|
+
- Flag exports with zero external call sites as "exported but unused"
|
|
136
|
+
|
|
137
|
+
This catches dead stores like `setPlan()` that exist in a wired file but are
|
|
138
|
+
never actually called. Report as WARNING — may indicate incomplete cross-plan
|
|
139
|
+
wiring or leftover code from plan revisions.
|
|
129
140
|
</step>
|
|
130
141
|
|
|
131
142
|
<step name="verify_wiring">
|
|
132
|
-
Use
|
|
143
|
+
Use ccp-tools for key link verification against must_haves in each PLAN:
|
|
133
144
|
|
|
134
145
|
```bash
|
|
135
146
|
for plan in "$PHASE_DIR"/*-PLAN.md; do
|
|
136
|
-
LINKS_RESULT=$(node "$HOME/.claude/
|
|
147
|
+
LINKS_RESULT=$(node "$HOME/.claude/pilot/bin/ccp-tools.cjs" verify key-links "$plan")
|
|
137
148
|
echo "=== $plan ===" && echo "$LINKS_RESULT"
|
|
138
149
|
done
|
|
139
150
|
```
|
|
@@ -160,7 +171,7 @@ Record status and evidence for each key link.
|
|
|
160
171
|
<step name="verify_requirements">
|
|
161
172
|
If REQUIREMENTS.md exists:
|
|
162
173
|
```bash
|
|
163
|
-
grep -E "Phase ${PHASE_NUM}" .planning/REQUIREMENTS.md 2>/dev/null
|
|
174
|
+
grep -E "Phase ${PHASE_NUM}" .planning/REQUIREMENTS.md 2>/dev/null || true
|
|
164
175
|
```
|
|
165
176
|
|
|
166
177
|
For each requirement: parse description → identify supporting truths/artifacts → status: ✓ SATISFIED / ✗ BLOCKED / ? NEEDS HUMAN.
|
|
@@ -214,7 +225,7 @@ REPORT_PATH="$PHASE_DIR/${PHASE_NUM}-VERIFICATION.md"
|
|
|
214
225
|
|
|
215
226
|
Fill template sections: frontmatter (phase/timestamp/status/score), goal achievement, artifact table, wiring table, requirements coverage, anti-patterns, human verification, gaps summary, fix plans (if gaps_found), metadata.
|
|
216
227
|
|
|
217
|
-
See ~/.claude/
|
|
228
|
+
See ~/.claude/pilot/templates/verification-report.md for complete template.
|
|
218
229
|
</step>
|
|
219
230
|
|
|
220
231
|
<step name="return_to_orchestrator">
|