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
|
@@ -11,7 +11,7 @@ Instantly restore full project context so "Where were we?" has an immediate, com
|
|
|
11
11
|
</purpose>
|
|
12
12
|
|
|
13
13
|
<required_reading>
|
|
14
|
-
@~/.claude/
|
|
14
|
+
@~/.claude/pilot/references/continuation-format.md
|
|
15
15
|
</required_reading>
|
|
16
16
|
|
|
17
17
|
<process>
|
|
@@ -20,7 +20,7 @@ Instantly restore full project context so "Where were we?" has an immediate, com
|
|
|
20
20
|
Load all context in one call:
|
|
21
21
|
|
|
22
22
|
```bash
|
|
23
|
-
INIT=$(node "$HOME/.claude/
|
|
23
|
+
INIT=$(node "$HOME/.claude/pilot/bin/ccp-tools.cjs" init resume)
|
|
24
24
|
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
25
25
|
```
|
|
26
26
|
|
|
@@ -28,7 +28,7 @@ Parse JSON for: `state_exists`, `roadmap_exists`, `project_exists`, `planning_ex
|
|
|
28
28
|
|
|
29
29
|
**If `state_exists` is true:** Proceed to load_state
|
|
30
30
|
**If `state_exists` is false but `roadmap_exists` or `project_exists` is true:** Offer to reconstruct STATE.md
|
|
31
|
-
**If `planning_exists` is false:** This is a new project - route to /
|
|
31
|
+
**If `planning_exists` is false:** This is a new project - route to /ccp:new-project
|
|
32
32
|
</step>
|
|
33
33
|
|
|
34
34
|
<step name="load_state">
|
|
@@ -63,14 +63,18 @@ cat .planning/PROJECT.md
|
|
|
63
63
|
Look for incomplete work that needs attention:
|
|
64
64
|
|
|
65
65
|
```bash
|
|
66
|
+
# Check for structured handoff (preferred — machine-readable)
|
|
67
|
+
cat .planning/HANDOFF.json 2>/dev/null || true
|
|
68
|
+
|
|
66
69
|
# Check for continue-here files (mid-plan resumption)
|
|
67
|
-
ls .planning/phases/*/.continue-here*.md 2>/dev/null
|
|
70
|
+
ls .planning/phases/*/.continue-here*.md 2>/dev/null || true
|
|
68
71
|
|
|
69
72
|
# Check for plans without summaries (incomplete execution)
|
|
70
73
|
for plan in .planning/phases/*/*-PLAN.md; do
|
|
74
|
+
[ -e "$plan" ] || continue
|
|
71
75
|
summary="${plan/PLAN/SUMMARY}"
|
|
72
76
|
[ ! -f "$summary" ] && echo "Incomplete: $plan"
|
|
73
|
-
done 2>/dev/null
|
|
77
|
+
done 2>/dev/null || true
|
|
74
78
|
|
|
75
79
|
# Check for interrupted agents (use has_interrupted_agent and interrupted_agent_id from init)
|
|
76
80
|
if [ "$has_interrupted_agent" = "true" ]; then
|
|
@@ -78,7 +82,18 @@ if [ "$has_interrupted_agent" = "true" ]; then
|
|
|
78
82
|
fi
|
|
79
83
|
```
|
|
80
84
|
|
|
81
|
-
**If .
|
|
85
|
+
**If HANDOFF.json exists:**
|
|
86
|
+
|
|
87
|
+
- This is the primary resumption source — structured data from `/ccp:pause-work`
|
|
88
|
+
- Parse `status`, `phase`, `plan`, `task`, `total_tasks`, `next_action`
|
|
89
|
+
- Check `blockers` and `human_actions_pending` — surface these immediately
|
|
90
|
+
- Check `completed_tasks` for `in_progress` items — these need attention first
|
|
91
|
+
- Validate `uncommitted_files` against `git status` — flag divergence
|
|
92
|
+
- Use `context_notes` to restore mental model
|
|
93
|
+
- Flag: "Found structured handoff — resuming from task {task}/{total_tasks}"
|
|
94
|
+
- **After successful resumption, delete HANDOFF.json** (it's a one-shot artifact)
|
|
95
|
+
|
|
96
|
+
**If .continue-here file exists (fallback):**
|
|
82
97
|
|
|
83
98
|
- This is a mid-plan resumption point
|
|
84
99
|
- Read the file for specific resumption context
|
|
@@ -125,7 +140,7 @@ Present complete project status to user:
|
|
|
125
140
|
Resume with: Task tool (resume parameter with agent ID)
|
|
126
141
|
|
|
127
142
|
[If pending todos exist:]
|
|
128
|
-
📋 [N] pending todos — /
|
|
143
|
+
📋 [N] pending todos — /ccp:check-todos to review
|
|
129
144
|
|
|
130
145
|
[If blockers exist:]
|
|
131
146
|
⚠️ Carried concerns:
|
|
@@ -145,8 +160,12 @@ Based on project state, determine the most logical next action:
|
|
|
145
160
|
→ Primary: Resume interrupted agent (Task tool with resume parameter)
|
|
146
161
|
→ Option: Start fresh (abandon agent work)
|
|
147
162
|
|
|
148
|
-
**If .
|
|
149
|
-
→ Primary: Resume from
|
|
163
|
+
**If HANDOFF.json exists:**
|
|
164
|
+
→ Primary: Resume from structured handoff (highest priority — specific task/blocker context)
|
|
165
|
+
→ Option: Discard handoff and reassess from files
|
|
166
|
+
|
|
167
|
+
**If .continue-here file exists (fallback):**
|
|
168
|
+
→ Fallback: Resume from checkpoint
|
|
150
169
|
→ Option: Start fresh on current plan
|
|
151
170
|
|
|
152
171
|
**If incomplete plan (PLAN without SUMMARY):**
|
|
@@ -181,11 +200,11 @@ What would you like to do?
|
|
|
181
200
|
[Primary action based on state - e.g.:]
|
|
182
201
|
1. Resume interrupted agent [if interrupted agent found]
|
|
183
202
|
OR
|
|
184
|
-
1. Execute phase (/
|
|
203
|
+
1. Execute phase (/ccp:execute-phase {phase})
|
|
185
204
|
OR
|
|
186
|
-
1. Discuss Phase 3 context (/
|
|
205
|
+
1. Discuss Phase 3 context (/ccp:discuss-phase 3) [if CONTEXT.md missing]
|
|
187
206
|
OR
|
|
188
|
-
1. Plan Phase 3 (/
|
|
207
|
+
1. Plan Phase 3 (/ccp:plan-phase 3) [if CONTEXT.md exists or discuss option declined]
|
|
189
208
|
|
|
190
209
|
[Secondary options:]
|
|
191
210
|
2. Review current phase status
|
|
@@ -197,7 +216,7 @@ What would you like to do?
|
|
|
197
216
|
**Note:** When offering phase planning, check for CONTEXT.md existence first:
|
|
198
217
|
|
|
199
218
|
```bash
|
|
200
|
-
ls .planning/phases/XX-name/*-CONTEXT.md 2>/dev/null
|
|
219
|
+
ls .planning/phases/XX-name/*-CONTEXT.md 2>/dev/null || true
|
|
201
220
|
```
|
|
202
221
|
|
|
203
222
|
If missing, suggest discuss-phase before plan. If exists, offer plan directly.
|
|
@@ -216,7 +235,7 @@ Based on user selection, route to appropriate workflow:
|
|
|
216
235
|
|
|
217
236
|
**{phase}-{plan}: [Plan Name]** — [objective from PLAN.md]
|
|
218
237
|
|
|
219
|
-
`/
|
|
238
|
+
`/ccp:execute-phase {phase}`
|
|
220
239
|
|
|
221
240
|
<sub>`/clear` first → fresh context window</sub>
|
|
222
241
|
|
|
@@ -230,19 +249,19 @@ Based on user selection, route to appropriate workflow:
|
|
|
230
249
|
|
|
231
250
|
**Phase [N]: [Name]** — [Goal from ROADMAP.md]
|
|
232
251
|
|
|
233
|
-
`/
|
|
252
|
+
`/ccp:plan-phase [phase-number]`
|
|
234
253
|
|
|
235
254
|
<sub>`/clear` first → fresh context window</sub>
|
|
236
255
|
|
|
237
256
|
---
|
|
238
257
|
|
|
239
258
|
**Also available:**
|
|
240
|
-
- `/
|
|
241
|
-
- `/
|
|
259
|
+
- `/ccp:discuss-phase [N]` — gather context first
|
|
260
|
+
- `/ccp:research-phase [N]` — investigate unknowns
|
|
242
261
|
|
|
243
262
|
---
|
|
244
263
|
```
|
|
245
|
-
- **
|
|
264
|
+
- **Advance to next phase** → ./transition.md (internal workflow, invoked inline — NOT a user command)
|
|
246
265
|
- **Check todos** → Read .planning/todos/pending/, present summary
|
|
247
266
|
- **Review alignment** → Read PROJECT.md, compare to current state
|
|
248
267
|
- **Something else** → Ask what they need
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
<purpose>
|
|
2
|
+
Cross-AI peer review — invoke external AI CLIs to independently review phase plans.
|
|
3
|
+
Each CLI gets the same prompt (PROJECT.md context, phase plans, requirements) and
|
|
4
|
+
produces structured feedback. Results are combined into REVIEWS.md for the planner
|
|
5
|
+
to incorporate via --reviews flag.
|
|
6
|
+
|
|
7
|
+
This implements adversarial review: different AI models catch different blind spots.
|
|
8
|
+
A plan that survives review from 2-3 independent AI systems is more robust.
|
|
9
|
+
</purpose>
|
|
10
|
+
|
|
11
|
+
<process>
|
|
12
|
+
|
|
13
|
+
<step name="detect_clis">
|
|
14
|
+
Check which AI CLIs are available on the system:
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
# Check each CLI
|
|
18
|
+
command -v gemini >/dev/null 2>&1 && echo "gemini:available" || echo "gemini:missing"
|
|
19
|
+
command -v claude >/dev/null 2>&1 && echo "claude:available" || echo "claude:missing"
|
|
20
|
+
command -v codex >/dev/null 2>&1 && echo "codex:available" || echo "codex:missing"
|
|
21
|
+
command -v coderabbit >/dev/null 2>&1 && echo "coderabbit:available" || echo "coderabbit:missing"
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Parse flags from `$ARGUMENTS`:
|
|
25
|
+
- `--gemini` → include Gemini
|
|
26
|
+
- `--claude` → include Claude
|
|
27
|
+
- `--codex` → include Codex
|
|
28
|
+
- `--coderabbit` → include CodeRabbit
|
|
29
|
+
- `--all` → include all available
|
|
30
|
+
- No flags → include all available
|
|
31
|
+
|
|
32
|
+
If no CLIs are available:
|
|
33
|
+
```
|
|
34
|
+
No external AI CLIs found. Install at least one:
|
|
35
|
+
- gemini: https://github.com/google-gemini/gemini-cli
|
|
36
|
+
- codex: https://github.com/openai/codex
|
|
37
|
+
- claude: https://github.com/anthropics/claude-code
|
|
38
|
+
|
|
39
|
+
Then run /ccp:review again.
|
|
40
|
+
```
|
|
41
|
+
Exit.
|
|
42
|
+
|
|
43
|
+
If only one CLI is the current runtime (e.g. running inside Claude), skip it for the review
|
|
44
|
+
to ensure independence. At least one DIFFERENT CLI must be available.
|
|
45
|
+
</step>
|
|
46
|
+
|
|
47
|
+
<step name="gather_context">
|
|
48
|
+
Collect phase artifacts for the review prompt:
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
INIT=$(node "$HOME/.claude/pilot/bin/ccp-tools.cjs" init phase-op "${PHASE_ARG}")
|
|
52
|
+
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Read from init: `phase_dir`, `phase_number`, `padded_phase`.
|
|
56
|
+
|
|
57
|
+
Then read:
|
|
58
|
+
1. `.planning/PROJECT.md` (first 80 lines — project context)
|
|
59
|
+
2. Phase section from `.planning/ROADMAP.md`
|
|
60
|
+
3. All `*-PLAN.md` files in the phase directory
|
|
61
|
+
4. `*-CONTEXT.md` if present (user decisions)
|
|
62
|
+
5. `*-RESEARCH.md` if present (domain research)
|
|
63
|
+
6. `.planning/REQUIREMENTS.md` (requirements this phase addresses)
|
|
64
|
+
</step>
|
|
65
|
+
|
|
66
|
+
<step name="build_prompt">
|
|
67
|
+
Build a structured review prompt:
|
|
68
|
+
|
|
69
|
+
```markdown
|
|
70
|
+
# Cross-AI Plan Review Request
|
|
71
|
+
|
|
72
|
+
You are reviewing implementation plans for a software project phase.
|
|
73
|
+
Provide structured feedback on plan quality, completeness, and risks.
|
|
74
|
+
|
|
75
|
+
## Project Context
|
|
76
|
+
{first 80 lines of PROJECT.md}
|
|
77
|
+
|
|
78
|
+
## Phase {N}: {phase name}
|
|
79
|
+
### Roadmap Section
|
|
80
|
+
{roadmap phase section}
|
|
81
|
+
|
|
82
|
+
### Requirements Addressed
|
|
83
|
+
{requirements for this phase}
|
|
84
|
+
|
|
85
|
+
### User Decisions (CONTEXT.md)
|
|
86
|
+
{context if present}
|
|
87
|
+
|
|
88
|
+
### Research Findings
|
|
89
|
+
{research if present}
|
|
90
|
+
|
|
91
|
+
### Plans to Review
|
|
92
|
+
{all PLAN.md contents}
|
|
93
|
+
|
|
94
|
+
## Review Instructions
|
|
95
|
+
|
|
96
|
+
Analyze each plan and provide:
|
|
97
|
+
|
|
98
|
+
1. **Summary** — One-paragraph assessment
|
|
99
|
+
2. **Strengths** — What's well-designed (bullet points)
|
|
100
|
+
3. **Concerns** — Potential issues, gaps, risks (bullet points with severity: HIGH/MEDIUM/LOW)
|
|
101
|
+
4. **Suggestions** — Specific improvements (bullet points)
|
|
102
|
+
5. **Risk Assessment** — Overall risk level (LOW/MEDIUM/HIGH) with justification
|
|
103
|
+
|
|
104
|
+
Focus on:
|
|
105
|
+
- Missing edge cases or error handling
|
|
106
|
+
- Dependency ordering issues
|
|
107
|
+
- Scope creep or over-engineering
|
|
108
|
+
- Security considerations
|
|
109
|
+
- Performance implications
|
|
110
|
+
- Whether the plans actually achieve the phase goals
|
|
111
|
+
|
|
112
|
+
Output your review in markdown format.
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Write to a temp file: `/tmp/ccp-review-prompt-{phase}.md`
|
|
116
|
+
</step>
|
|
117
|
+
|
|
118
|
+
<step name="invoke_reviewers">
|
|
119
|
+
For each selected CLI, invoke in sequence (not parallel — avoid rate limits):
|
|
120
|
+
|
|
121
|
+
**Gemini:**
|
|
122
|
+
```bash
|
|
123
|
+
gemini -p "$(cat /tmp/ccp-review-prompt-{phase}.md)" 2>/dev/null > /tmp/ccp-review-gemini-{phase}.md
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
**Claude (separate session):**
|
|
127
|
+
```bash
|
|
128
|
+
claude -p "$(cat /tmp/ccp-review-prompt-{phase}.md)" --no-input 2>/dev/null > /tmp/ccp-review-claude-{phase}.md
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
**Codex:**
|
|
132
|
+
```bash
|
|
133
|
+
codex exec --skip-git-repo-check "$(cat /tmp/ccp-review-prompt-{phase}.md)" 2>/dev/null > /tmp/ccp-review-codex-{phase}.md
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
**CodeRabbit:**
|
|
137
|
+
|
|
138
|
+
Note: CodeRabbit reviews the current git diff/working tree — it does not accept a prompt. It may take up to 5 minutes. Use `timeout: 360000` on the Bash tool call.
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
coderabbit review --prompt-only 2>/dev/null > /tmp/ccp-review-coderabbit-{phase}.md
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
If a CLI fails, log the error and continue with remaining CLIs.
|
|
145
|
+
|
|
146
|
+
Display progress:
|
|
147
|
+
```
|
|
148
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
149
|
+
CCP > CROSS-AI REVIEW — Phase {N}
|
|
150
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
151
|
+
|
|
152
|
+
◆ Reviewing with {CLI}... done ✓
|
|
153
|
+
◆ Reviewing with {CLI}... done ✓
|
|
154
|
+
```
|
|
155
|
+
</step>
|
|
156
|
+
|
|
157
|
+
<step name="write_reviews">
|
|
158
|
+
Combine all review responses into `{phase_dir}/{padded_phase}-REVIEWS.md`:
|
|
159
|
+
|
|
160
|
+
```markdown
|
|
161
|
+
---
|
|
162
|
+
phase: {N}
|
|
163
|
+
reviewers: [gemini, claude, codex, coderabbit]
|
|
164
|
+
reviewed_at: {ISO timestamp}
|
|
165
|
+
plans_reviewed: [{list of PLAN.md files}]
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
# Cross-AI Plan Review — Phase {N}
|
|
169
|
+
|
|
170
|
+
## Gemini Review
|
|
171
|
+
|
|
172
|
+
{gemini review content}
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
## Claude Review
|
|
177
|
+
|
|
178
|
+
{claude review content}
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
## Codex Review
|
|
183
|
+
|
|
184
|
+
{codex review content}
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
## CodeRabbit Review
|
|
189
|
+
|
|
190
|
+
{coderabbit review content}
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## Consensus Summary
|
|
195
|
+
|
|
196
|
+
{synthesize common concerns across all reviewers}
|
|
197
|
+
|
|
198
|
+
### Agreed Strengths
|
|
199
|
+
{strengths mentioned by 2+ reviewers}
|
|
200
|
+
|
|
201
|
+
### Agreed Concerns
|
|
202
|
+
{concerns raised by 2+ reviewers — highest priority}
|
|
203
|
+
|
|
204
|
+
### Divergent Views
|
|
205
|
+
{where reviewers disagreed — worth investigating}
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
Commit:
|
|
209
|
+
```bash
|
|
210
|
+
node "$HOME/.claude/pilot/bin/ccp-tools.cjs" commit "docs: cross-AI review for phase {N}" --files {phase_dir}/{padded_phase}-REVIEWS.md
|
|
211
|
+
```
|
|
212
|
+
</step>
|
|
213
|
+
|
|
214
|
+
<step name="present_results">
|
|
215
|
+
Display summary:
|
|
216
|
+
|
|
217
|
+
```
|
|
218
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
219
|
+
CCP > REVIEW COMPLETE
|
|
220
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
221
|
+
|
|
222
|
+
Phase {N} reviewed by {count} AI systems.
|
|
223
|
+
|
|
224
|
+
Consensus concerns:
|
|
225
|
+
{top 3 shared concerns}
|
|
226
|
+
|
|
227
|
+
Full review: {padded_phase}-REVIEWS.md
|
|
228
|
+
|
|
229
|
+
To incorporate feedback into planning:
|
|
230
|
+
/ccp:plan-phase {N} --reviews
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
Clean up temp files.
|
|
234
|
+
</step>
|
|
235
|
+
|
|
236
|
+
</process>
|
|
237
|
+
|
|
238
|
+
<success_criteria>
|
|
239
|
+
- [ ] At least one external CLI invoked successfully
|
|
240
|
+
- [ ] REVIEWS.md written with structured feedback
|
|
241
|
+
- [ ] Consensus summary synthesized from multiple reviewers
|
|
242
|
+
- [ ] Temp files cleaned up
|
|
243
|
+
- [ ] User knows how to use feedback (/ccp:plan-phase --reviews)
|
|
244
|
+
</success_criteria>
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
<purpose>
|
|
2
|
+
Verify threat mitigations for a completed phase. Confirm PLAN.md threat register dispositions are resolved. Update SECURITY.md.
|
|
3
|
+
</purpose>
|
|
4
|
+
|
|
5
|
+
<required_reading>
|
|
6
|
+
@~/.claude/pilot/references/ui-brand.md
|
|
7
|
+
</required_reading>
|
|
8
|
+
|
|
9
|
+
<available_agent_types>
|
|
10
|
+
Valid CCP subagent types (use exact names — do not fall back to 'general-purpose'):
|
|
11
|
+
- ccp-security-auditor — Verifies threat mitigation coverage
|
|
12
|
+
</available_agent_types>
|
|
13
|
+
|
|
14
|
+
<process>
|
|
15
|
+
|
|
16
|
+
## 0. Initialize
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
INIT=$(node "$HOME/.claude/pilot/bin/ccp-tools.cjs" init phase-op "${PHASE_ARG}")
|
|
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-security-auditor 2>/dev/null)
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Parse: `phase_dir`, `phase_number`, `phase_name`, `phase_slug`, `padded_phase`.
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
AUDITOR_MODEL=$(node "$HOME/.claude/pilot/bin/ccp-tools.cjs" resolve-model ccp-security-auditor --raw)
|
|
28
|
+
SECURITY_CFG=$(node "$HOME/.claude/pilot/bin/ccp-tools.cjs" config-get workflow.security_enforcement --raw 2>/dev/null || echo "true")
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
If `SECURITY_CFG` is `false`: exit with "Security enforcement disabled. Enable via /ccp:settings."
|
|
32
|
+
|
|
33
|
+
Display banner: `CCP > SECURE PHASE {N}: {name}`
|
|
34
|
+
|
|
35
|
+
## 1. Detect Input State
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
SECURITY_FILE=$(ls "${PHASE_DIR}"/*-SECURITY.md 2>/dev/null | head -1)
|
|
39
|
+
PLAN_FILES=$(ls "${PHASE_DIR}"/*-PLAN.md 2>/dev/null)
|
|
40
|
+
SUMMARY_FILES=$(ls "${PHASE_DIR}"/*-SUMMARY.md 2>/dev/null)
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
- **State A** (`SECURITY_FILE` non-empty): Audit existing
|
|
44
|
+
- **State B** (`SECURITY_FILE` empty, `PLAN_FILES` and `SUMMARY_FILES` non-empty): Run from artifacts
|
|
45
|
+
- **State C** (`SUMMARY_FILES` empty): Exit — "Phase {N} not executed. Run /ccp:execute-phase {N} first."
|
|
46
|
+
|
|
47
|
+
## 2. Discovery
|
|
48
|
+
|
|
49
|
+
### 2a. Read Phase Artifacts
|
|
50
|
+
|
|
51
|
+
Read PLAN.md — extract `<threat_model>` block: trust boundaries, STRIDE register (`threat_id`, `category`, `component`, `disposition`, `mitigation_plan`).
|
|
52
|
+
|
|
53
|
+
### 2b. Read Summary Threat Flags
|
|
54
|
+
|
|
55
|
+
Read SUMMARY.md — extract `## Threat Flags` entries.
|
|
56
|
+
|
|
57
|
+
### 2c. Build Threat Register
|
|
58
|
+
|
|
59
|
+
Per threat: `{ threat_id, category, component, disposition, mitigation_pattern, files_to_check }`
|
|
60
|
+
|
|
61
|
+
## 3. Threat Classification
|
|
62
|
+
|
|
63
|
+
Classify each threat:
|
|
64
|
+
|
|
65
|
+
| Status | Criteria |
|
|
66
|
+
|--------|----------|
|
|
67
|
+
| CLOSED | mitigation found OR accepted risk documented in SECURITY.md OR transfer documented |
|
|
68
|
+
| OPEN | none of the above |
|
|
69
|
+
|
|
70
|
+
Build: `{ threat_id, category, component, disposition, status, evidence }`
|
|
71
|
+
|
|
72
|
+
If `threats_open: 0` → skip to Step 6 directly.
|
|
73
|
+
|
|
74
|
+
## 4. Present Threat Plan
|
|
75
|
+
|
|
76
|
+
Call AskUserQuestion with threat table and options:
|
|
77
|
+
1. "Verify all open threats" → Step 5
|
|
78
|
+
2. "Accept all open — document in accepted risks log" → add to SECURITY.md accepted risks, set all CLOSED, Step 6
|
|
79
|
+
3. "Cancel" → exit
|
|
80
|
+
|
|
81
|
+
## 5. Spawn ccp-security-auditor
|
|
82
|
+
|
|
83
|
+
```
|
|
84
|
+
Task(
|
|
85
|
+
prompt="Read ./.claude/agents/ccp-security-auditor.md for instructions.\n\n" +
|
|
86
|
+
"<files_to_read>{PLAN, SUMMARY, impl files, SECURITY.md}</files_to_read>" +
|
|
87
|
+
"<threat_register>{threat register}</threat_register>" +
|
|
88
|
+
"<config>asvs_level: {SECURITY_ASVS}, block_on: {SECURITY_BLOCK_ON}</config>" +
|
|
89
|
+
"<constraints>Never modify implementation files. Verify mitigations exist — do not scan for new threats. Escalate implementation gaps.</constraints>" +
|
|
90
|
+
"${AGENT_SKILLS_AUDITOR}",
|
|
91
|
+
subagent_type="ccp-security-auditor",
|
|
92
|
+
model="{AUDITOR_MODEL}",
|
|
93
|
+
description="Verify threat mitigations for Phase {N}"
|
|
94
|
+
)
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Handle return:
|
|
98
|
+
- `## SECURED` → record closures → Step 6
|
|
99
|
+
- `## OPEN_THREATS` → record closed + open, present user with accept/block choice → Step 6
|
|
100
|
+
- `## ESCALATE` → present to user → Step 6
|
|
101
|
+
|
|
102
|
+
## 6. Write/Update SECURITY.md
|
|
103
|
+
|
|
104
|
+
**State B (create):**
|
|
105
|
+
1. Read template from `./.claude/pilot/templates/SECURITY.md`
|
|
106
|
+
2. Fill: frontmatter, threat register, accepted risks, audit trail
|
|
107
|
+
3. Write to `${PHASE_DIR}/${PADDED_PHASE}-SECURITY.md`
|
|
108
|
+
|
|
109
|
+
**State A (update):**
|
|
110
|
+
1. Update threat register statuses, append to audit trail:
|
|
111
|
+
|
|
112
|
+
```markdown
|
|
113
|
+
## Security Audit {date}
|
|
114
|
+
| Metric | Count |
|
|
115
|
+
|--------|-------|
|
|
116
|
+
| Threats found | {N} |
|
|
117
|
+
| Closed | {M} |
|
|
118
|
+
| Open | {K} |
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
**ENFORCING GATE:** If `threats_open > 0` after all options exhausted (user did not accept, not all verified closed):
|
|
122
|
+
|
|
123
|
+
```
|
|
124
|
+
CCP > PHASE {N} SECURITY BLOCKED
|
|
125
|
+
{K} threats open — phase advancement blocked until threats_open: 0
|
|
126
|
+
▶ Fix mitigations then re-run: /ccp:secure-phase {N}
|
|
127
|
+
▶ Or document accepted risks in SECURITY.md and re-run.
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
Do NOT emit next-phase routing. Stop here.
|
|
131
|
+
|
|
132
|
+
## 7. Commit
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
node "$HOME/.claude/pilot/bin/ccp-tools.cjs" commit "docs(phase-${PHASE}): add/update security threat verification"
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
## 8. Results + Routing
|
|
139
|
+
|
|
140
|
+
**Secured (threats_open: 0):**
|
|
141
|
+
```
|
|
142
|
+
CCP > PHASE {N} THREAT-SECURE
|
|
143
|
+
threats_open: 0 — all threats have dispositions.
|
|
144
|
+
▶ /ccp:validate-phase {N} validate test coverage
|
|
145
|
+
▶ /ccp:verify-work {N} run UAT
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
Display `/clear` reminder.
|
|
149
|
+
|
|
150
|
+
</process>
|
|
151
|
+
|
|
152
|
+
<success_criteria>
|
|
153
|
+
- [ ] Security enforcement checked — exit if false
|
|
154
|
+
- [ ] Input state detected (A/B/C) — state C exits cleanly
|
|
155
|
+
- [ ] PLAN.md threat model parsed, register built
|
|
156
|
+
- [ ] SUMMARY.md threat flags incorporated
|
|
157
|
+
- [ ] threats_open: 0 → skip directly to Step 6
|
|
158
|
+
- [ ] User gate with threat table presented
|
|
159
|
+
- [ ] Auditor spawned with complete context
|
|
160
|
+
- [ ] All three return formats (SECURED/OPEN_THREATS/ESCALATE) handled
|
|
161
|
+
- [ ] SECURITY.md created or updated
|
|
162
|
+
- [ ] threats_open > 0 BLOCKS advancement (no next-phase routing emitted)
|
|
163
|
+
- [ ] Results with routing presented on success
|
|
164
|
+
</success_criteria>
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
<purpose>
|
|
2
|
+
Generate a post-session summary document capturing work performed, outcomes achieved, and estimated resource usage. Writes SESSION_REPORT.md to .planning/reports/ for human review and stakeholder sharing.
|
|
3
|
+
</purpose>
|
|
4
|
+
|
|
5
|
+
<required_reading>
|
|
6
|
+
Read all files referenced by the invoking prompt's execution_context before starting.
|
|
7
|
+
</required_reading>
|
|
8
|
+
|
|
9
|
+
<process>
|
|
10
|
+
|
|
11
|
+
<step name="gather_session_data">
|
|
12
|
+
Collect session data from available sources:
|
|
13
|
+
|
|
14
|
+
1. **STATE.md** — current phase, milestone, progress, blockers, decisions
|
|
15
|
+
2. **Git log** — commits made during this session (last 24h or since last report)
|
|
16
|
+
3. **Plan/Summary files** — plans executed, summaries written
|
|
17
|
+
4. **ROADMAP.md** — milestone context and phase goals
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
# Get recent commits (last 24 hours)
|
|
21
|
+
git log --oneline --since="24 hours ago" --no-merges 2>/dev/null || echo "No recent commits"
|
|
22
|
+
|
|
23
|
+
# Count files changed
|
|
24
|
+
git diff --stat HEAD~10 HEAD 2>/dev/null | tail -1 || echo "No diff available"
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Read `.planning/STATE.md` to get:
|
|
28
|
+
- Current milestone and phase
|
|
29
|
+
- Progress percentage
|
|
30
|
+
- Active blockers
|
|
31
|
+
- Recent decisions
|
|
32
|
+
|
|
33
|
+
Read `.planning/ROADMAP.md` to get milestone name and goals.
|
|
34
|
+
|
|
35
|
+
Check for existing reports:
|
|
36
|
+
```bash
|
|
37
|
+
ls -la .planning/reports/SESSION_REPORT*.md 2>/dev/null || echo "No previous reports"
|
|
38
|
+
```
|
|
39
|
+
</step>
|
|
40
|
+
|
|
41
|
+
<step name="estimate_usage">
|
|
42
|
+
Estimate token usage from observable signals:
|
|
43
|
+
|
|
44
|
+
- Count of tool calls is not directly available, so estimate from git activity and file operations
|
|
45
|
+
- Note: This is an **estimate** — exact token counts require API-level instrumentation not available to hooks
|
|
46
|
+
|
|
47
|
+
Estimation heuristics:
|
|
48
|
+
- Each commit ≈ 1 plan cycle (research + plan + execute + verify)
|
|
49
|
+
- Each plan file ≈ 2,000-5,000 tokens of agent context
|
|
50
|
+
- Each summary file ≈ 1,000-2,000 tokens generated
|
|
51
|
+
- Subagent spawns multiply by ~1.5x per agent type used
|
|
52
|
+
</step>
|
|
53
|
+
|
|
54
|
+
<step name="generate_report">
|
|
55
|
+
Create the report directory and file:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
mkdir -p .planning/reports
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Write `.planning/reports/SESSION_REPORT.md` (or `.planning/reports/YYYYMMDD-session-report.md` if previous reports exist):
|
|
62
|
+
|
|
63
|
+
```markdown
|
|
64
|
+
# CCP Session Report
|
|
65
|
+
|
|
66
|
+
**Generated:** [timestamp]
|
|
67
|
+
**Project:** [from PROJECT.md title or directory name]
|
|
68
|
+
**Milestone:** [N] — [milestone name from ROADMAP.md]
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Session Summary
|
|
73
|
+
|
|
74
|
+
**Duration:** [estimated from first to last commit timestamp, or "Single session"]
|
|
75
|
+
**Phase Progress:** [from STATE.md]
|
|
76
|
+
**Plans Executed:** [count of summaries written this session]
|
|
77
|
+
**Commits Made:** [count from git log]
|
|
78
|
+
|
|
79
|
+
## Work Performed
|
|
80
|
+
|
|
81
|
+
### Phases Touched
|
|
82
|
+
[List phases worked on with brief description of what was done]
|
|
83
|
+
|
|
84
|
+
### Key Outcomes
|
|
85
|
+
[Bullet list of concrete deliverables: files created, features implemented, bugs fixed]
|
|
86
|
+
|
|
87
|
+
### Decisions Made
|
|
88
|
+
[From STATE.md decisions table, if any were added this session]
|
|
89
|
+
|
|
90
|
+
## Files Changed
|
|
91
|
+
|
|
92
|
+
[Summary of files modified, created, deleted — from git diff stat]
|
|
93
|
+
|
|
94
|
+
## Blockers & Open Items
|
|
95
|
+
|
|
96
|
+
[Active blockers from STATE.md]
|
|
97
|
+
[Any TODO items created during session]
|
|
98
|
+
|
|
99
|
+
## Estimated Resource Usage
|
|
100
|
+
|
|
101
|
+
| Metric | Estimate |
|
|
102
|
+
|--------|----------|
|
|
103
|
+
| Commits | [N] |
|
|
104
|
+
| Files changed | [N] |
|
|
105
|
+
| Plans executed | [N] |
|
|
106
|
+
| Subagents spawned | [estimated] |
|
|
107
|
+
|
|
108
|
+
> **Note:** Token and cost estimates require API-level instrumentation.
|
|
109
|
+
> These metrics reflect observable session activity only.
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
*Generated by `/ccp:session-report`*
|
|
114
|
+
```
|
|
115
|
+
</step>
|
|
116
|
+
|
|
117
|
+
<step name="display_result">
|
|
118
|
+
Show the user:
|
|
119
|
+
|
|
120
|
+
```
|
|
121
|
+
## Session Report Generated
|
|
122
|
+
|
|
123
|
+
📄 `.planning/reports/[filename].md`
|
|
124
|
+
|
|
125
|
+
### Highlights
|
|
126
|
+
- **Commits:** [N]
|
|
127
|
+
- **Files changed:** [N]
|
|
128
|
+
- **Phase progress:** [X]%
|
|
129
|
+
- **Plans executed:** [N]
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
If this is the first report, mention:
|
|
133
|
+
```
|
|
134
|
+
💡 Run `/ccp:session-report` at the end of each session to build a history of project activity.
|
|
135
|
+
```
|
|
136
|
+
</step>
|
|
137
|
+
|
|
138
|
+
</process>
|
|
139
|
+
|
|
140
|
+
<success_criteria>
|
|
141
|
+
- [ ] Session data gathered from STATE.md, git log, and plan files
|
|
142
|
+
- [ ] Report written to .planning/reports/
|
|
143
|
+
- [ ] Report includes work summary, outcomes, and file changes
|
|
144
|
+
- [ ] Filename includes date to prevent overwrites
|
|
145
|
+
- [ ] Result summary displayed to user
|
|
146
|
+
</success_criteria>
|