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,560 +0,0 @@
|
|
|
1
|
-
<purpose>
|
|
2
|
-
Create executable phase prompts (PLAN.md files) for a roadmap phase with integrated research and verification. Default flow: Research (if needed) -> Plan -> Verify -> Done. Orchestrates gsd-phase-researcher, gsd-planner, and gsd-plan-checker agents with a revision loop (max 3 iterations).
|
|
3
|
-
</purpose>
|
|
4
|
-
|
|
5
|
-
<required_reading>
|
|
6
|
-
Read all files referenced by the invoking prompt's execution_context before starting.
|
|
7
|
-
|
|
8
|
-
@~/.claude/get-shit-done/references/ui-brand.md
|
|
9
|
-
</required_reading>
|
|
10
|
-
|
|
11
|
-
<process>
|
|
12
|
-
|
|
13
|
-
## 1. Initialize
|
|
14
|
-
|
|
15
|
-
Load all context in one call (paths only to minimize orchestrator context):
|
|
16
|
-
|
|
17
|
-
```bash
|
|
18
|
-
INIT=$(node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" init plan-phase "$PHASE")
|
|
19
|
-
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
Parse JSON for: `researcher_model`, `planner_model`, `checker_model`, `research_enabled`, `plan_checker_enabled`, `nyquist_validation_enabled`, `commit_docs`, `phase_found`, `phase_dir`, `phase_number`, `phase_name`, `phase_slug`, `padded_phase`, `has_research`, `has_context`, `has_plans`, `plan_count`, `planning_exists`, `roadmap_exists`, `phase_req_ids`.
|
|
23
|
-
|
|
24
|
-
**File paths (for <files_to_read> blocks):** `state_path`, `roadmap_path`, `requirements_path`, `context_path`, `research_path`, `verification_path`, `uat_path`. These are null if files don't exist.
|
|
25
|
-
|
|
26
|
-
**If `planning_exists` is false:** Error — run `/gsd:new-project` first.
|
|
27
|
-
|
|
28
|
-
## 2. Parse and Normalize Arguments
|
|
29
|
-
|
|
30
|
-
Extract from $ARGUMENTS: phase number (integer or decimal like `2.1`), flags (`--research`, `--skip-research`, `--gaps`, `--skip-verify`, `--prd <filepath>`).
|
|
31
|
-
|
|
32
|
-
Extract `--prd <filepath>` from $ARGUMENTS. If present, set PRD_FILE to the filepath.
|
|
33
|
-
|
|
34
|
-
**If no phase number:** Detect next unplanned phase from roadmap.
|
|
35
|
-
|
|
36
|
-
**If `phase_found` is false:** Validate phase exists in ROADMAP.md. If valid, create the directory using `phase_slug` and `padded_phase` from init:
|
|
37
|
-
```bash
|
|
38
|
-
mkdir -p ".planning/phases/${padded_phase}-${phase_slug}"
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
**Existing artifacts from init:** `has_research`, `has_plans`, `plan_count`.
|
|
42
|
-
|
|
43
|
-
## 3. Validate Phase
|
|
44
|
-
|
|
45
|
-
```bash
|
|
46
|
-
PHASE_INFO=$(node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" roadmap get-phase "${PHASE}")
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
**If `found` is false:** Error with available phases. **If `found` is true:** Extract `phase_number`, `phase_name`, `goal` from JSON.
|
|
50
|
-
|
|
51
|
-
## 3.5. Handle PRD Express Path
|
|
52
|
-
|
|
53
|
-
**Skip if:** No `--prd` flag in arguments.
|
|
54
|
-
|
|
55
|
-
**If `--prd <filepath>` provided:**
|
|
56
|
-
|
|
57
|
-
1. Read the PRD file:
|
|
58
|
-
```bash
|
|
59
|
-
PRD_CONTENT=$(cat "$PRD_FILE" 2>/dev/null)
|
|
60
|
-
if [ -z "$PRD_CONTENT" ]; then
|
|
61
|
-
echo "Error: PRD file not found: $PRD_FILE"
|
|
62
|
-
exit 1
|
|
63
|
-
fi
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
2. Display banner:
|
|
67
|
-
```
|
|
68
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
69
|
-
GSD ► PRD EXPRESS PATH
|
|
70
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
71
|
-
|
|
72
|
-
Using PRD: {PRD_FILE}
|
|
73
|
-
Generating CONTEXT.md from requirements...
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
3. Parse the PRD content and generate CONTEXT.md. The orchestrator should:
|
|
77
|
-
- Extract all requirements, user stories, acceptance criteria, and constraints from the PRD
|
|
78
|
-
- Map each to a locked decision (everything in the PRD is treated as a locked decision)
|
|
79
|
-
- Identify any areas the PRD doesn't cover and mark as "Claude's Discretion"
|
|
80
|
-
- Create CONTEXT.md in the phase directory
|
|
81
|
-
|
|
82
|
-
4. Write CONTEXT.md:
|
|
83
|
-
```markdown
|
|
84
|
-
# Phase [X]: [Name] - Context
|
|
85
|
-
|
|
86
|
-
**Gathered:** [date]
|
|
87
|
-
**Status:** Ready for planning
|
|
88
|
-
**Source:** PRD Express Path ({PRD_FILE})
|
|
89
|
-
|
|
90
|
-
<domain>
|
|
91
|
-
## Phase Boundary
|
|
92
|
-
|
|
93
|
-
[Extracted from PRD — what this phase delivers]
|
|
94
|
-
|
|
95
|
-
</domain>
|
|
96
|
-
|
|
97
|
-
<decisions>
|
|
98
|
-
## Implementation Decisions
|
|
99
|
-
|
|
100
|
-
{For each requirement/story/criterion in the PRD:}
|
|
101
|
-
### [Category derived from content]
|
|
102
|
-
- [Requirement as locked decision]
|
|
103
|
-
|
|
104
|
-
### Claude's Discretion
|
|
105
|
-
[Areas not covered by PRD — implementation details, technical choices]
|
|
106
|
-
|
|
107
|
-
</decisions>
|
|
108
|
-
|
|
109
|
-
<specifics>
|
|
110
|
-
## Specific Ideas
|
|
111
|
-
|
|
112
|
-
[Any specific references, examples, or concrete requirements from PRD]
|
|
113
|
-
|
|
114
|
-
</specifics>
|
|
115
|
-
|
|
116
|
-
<deferred>
|
|
117
|
-
## Deferred Ideas
|
|
118
|
-
|
|
119
|
-
[Items in PRD explicitly marked as future/v2/out-of-scope]
|
|
120
|
-
[If none: "None — PRD covers phase scope"]
|
|
121
|
-
|
|
122
|
-
</deferred>
|
|
123
|
-
|
|
124
|
-
---
|
|
125
|
-
|
|
126
|
-
*Phase: XX-name*
|
|
127
|
-
*Context gathered: [date] via PRD Express Path*
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
5. Commit:
|
|
131
|
-
```bash
|
|
132
|
-
node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" commit "docs(${padded_phase}): generate context from PRD" --files "${phase_dir}/${padded_phase}-CONTEXT.md"
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
6. Set `context_content` to the generated CONTEXT.md content and continue to step 5 (Handle Research).
|
|
136
|
-
|
|
137
|
-
**Effect:** This completely bypasses step 4 (Load CONTEXT.md) since we just created it. The rest of the workflow (research, planning, verification) proceeds normally with the PRD-derived context.
|
|
138
|
-
|
|
139
|
-
## 4. Load CONTEXT.md
|
|
140
|
-
|
|
141
|
-
**Skip if:** PRD express path was used (CONTEXT.md already created in step 3.5).
|
|
142
|
-
|
|
143
|
-
Check `context_path` from init JSON.
|
|
144
|
-
|
|
145
|
-
If `context_path` is not null, display: `Using phase context from: ${context_path}`
|
|
146
|
-
|
|
147
|
-
**If `context_path` is null (no CONTEXT.md exists):**
|
|
148
|
-
|
|
149
|
-
Use AskUserQuestion:
|
|
150
|
-
- header: "No context"
|
|
151
|
-
- question: "No CONTEXT.md found for Phase {X}. Plans will use research and requirements only — your design preferences won't be included. Continue or capture context first?"
|
|
152
|
-
- options:
|
|
153
|
-
- "Continue without context" — Plan using research + requirements only
|
|
154
|
-
- "Run discuss-phase first" — Capture design decisions before planning
|
|
155
|
-
|
|
156
|
-
If "Continue without context": Proceed to step 5.
|
|
157
|
-
If "Run discuss-phase first": Display `/gsd:discuss-phase {X}` and exit workflow.
|
|
158
|
-
|
|
159
|
-
## 5. Handle Research
|
|
160
|
-
|
|
161
|
-
**Skip if:** `--gaps` flag, `--skip-research` flag, or `research_enabled` is false (from init) without `--research` override.
|
|
162
|
-
|
|
163
|
-
**If `has_research` is true (from init) AND no `--research` flag:** Use existing, skip to step 6.
|
|
164
|
-
|
|
165
|
-
**If RESEARCH.md missing OR `--research` flag:**
|
|
166
|
-
|
|
167
|
-
Display banner:
|
|
168
|
-
```
|
|
169
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
170
|
-
GSD ► RESEARCHING PHASE {X}
|
|
171
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
172
|
-
|
|
173
|
-
◆ Spawning researcher...
|
|
174
|
-
```
|
|
175
|
-
|
|
176
|
-
### Spawn gsd-phase-researcher
|
|
177
|
-
|
|
178
|
-
```bash
|
|
179
|
-
PHASE_DESC=$(node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" roadmap get-phase "${PHASE}" | jq -r '.section')
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
Research prompt:
|
|
183
|
-
|
|
184
|
-
```markdown
|
|
185
|
-
<objective>
|
|
186
|
-
Research how to implement Phase {phase_number}: {phase_name}
|
|
187
|
-
Answer: "What do I need to know to PLAN this phase well?"
|
|
188
|
-
</objective>
|
|
189
|
-
|
|
190
|
-
<files_to_read>
|
|
191
|
-
- {context_path} (USER DECISIONS from /gsd:discuss-phase)
|
|
192
|
-
- {requirements_path} (Project requirements)
|
|
193
|
-
- {state_path} (Project decisions and history)
|
|
194
|
-
</files_to_read>
|
|
195
|
-
|
|
196
|
-
<additional_context>
|
|
197
|
-
**Phase description:** {phase_description}
|
|
198
|
-
**Phase requirement IDs (MUST address):** {phase_req_ids}
|
|
199
|
-
|
|
200
|
-
**Project instructions:** Read ./CLAUDE.md if exists — follow project-specific guidelines
|
|
201
|
-
**Project skills:** Check .claude/skills/ or .agents/skills/ directory (if either exists) — read SKILL.md files, research should account for project skill patterns
|
|
202
|
-
</additional_context>
|
|
203
|
-
|
|
204
|
-
<output>
|
|
205
|
-
Write to: {phase_dir}/{phase_num}-RESEARCH.md
|
|
206
|
-
</output>
|
|
207
|
-
```
|
|
208
|
-
|
|
209
|
-
```
|
|
210
|
-
Task(
|
|
211
|
-
prompt=research_prompt,
|
|
212
|
-
subagent_type="gsd-phase-researcher",
|
|
213
|
-
model="{researcher_model}",
|
|
214
|
-
description="Research Phase {phase}"
|
|
215
|
-
)
|
|
216
|
-
```
|
|
217
|
-
|
|
218
|
-
### Handle Researcher Return
|
|
219
|
-
|
|
220
|
-
- **`## RESEARCH COMPLETE`:** Display confirmation, continue to step 6
|
|
221
|
-
- **`## RESEARCH BLOCKED`:** Display blocker, offer: 1) Provide context, 2) Skip research, 3) Abort
|
|
222
|
-
|
|
223
|
-
## 5.5. Create Validation Strategy
|
|
224
|
-
|
|
225
|
-
MANDATORY unless `nyquist_validation_enabled` is false.
|
|
226
|
-
|
|
227
|
-
```bash
|
|
228
|
-
grep -l "## Validation Architecture" "${PHASE_DIR}"/*-RESEARCH.md 2>/dev/null
|
|
229
|
-
```
|
|
230
|
-
|
|
231
|
-
**If found:**
|
|
232
|
-
1. Read template: `~/.claude/get-shit-done/templates/VALIDATION.md`
|
|
233
|
-
2. Write to `${PHASE_DIR}/${PADDED_PHASE}-VALIDATION.md` (use Write tool)
|
|
234
|
-
3. Fill frontmatter: `{N}` → phase number, `{phase-slug}` → slug, `{date}` → current date
|
|
235
|
-
4. Verify:
|
|
236
|
-
```bash
|
|
237
|
-
test -f "${PHASE_DIR}/${PADDED_PHASE}-VALIDATION.md" && echo "VALIDATION_CREATED=true" || echo "VALIDATION_CREATED=false"
|
|
238
|
-
```
|
|
239
|
-
5. If `VALIDATION_CREATED=false`: STOP — do not proceed to Step 6
|
|
240
|
-
6. If `commit_docs`: `commit-docs "docs(phase-${PHASE}): add validation strategy"`
|
|
241
|
-
|
|
242
|
-
**If not found:** Warn and continue — plans may fail Dimension 8.
|
|
243
|
-
|
|
244
|
-
## 6. Check Existing Plans
|
|
245
|
-
|
|
246
|
-
```bash
|
|
247
|
-
ls "${PHASE_DIR}"/*-PLAN.md 2>/dev/null
|
|
248
|
-
```
|
|
249
|
-
|
|
250
|
-
**If exists:** Offer: 1) Add more plans, 2) View existing, 3) Replan from scratch.
|
|
251
|
-
|
|
252
|
-
## 7. Use Context Paths from INIT
|
|
253
|
-
|
|
254
|
-
Extract from INIT JSON:
|
|
255
|
-
|
|
256
|
-
```bash
|
|
257
|
-
STATE_PATH=$(printf '%s\n' "$INIT" | jq -r '.state_path // empty')
|
|
258
|
-
ROADMAP_PATH=$(printf '%s\n' "$INIT" | jq -r '.roadmap_path // empty')
|
|
259
|
-
REQUIREMENTS_PATH=$(printf '%s\n' "$INIT" | jq -r '.requirements_path // empty')
|
|
260
|
-
RESEARCH_PATH=$(printf '%s\n' "$INIT" | jq -r '.research_path // empty')
|
|
261
|
-
VERIFICATION_PATH=$(printf '%s\n' "$INIT" | jq -r '.verification_path // empty')
|
|
262
|
-
UAT_PATH=$(printf '%s\n' "$INIT" | jq -r '.uat_path // empty')
|
|
263
|
-
CONTEXT_PATH=$(printf '%s\n' "$INIT" | jq -r '.context_path // empty')
|
|
264
|
-
```
|
|
265
|
-
|
|
266
|
-
## 7.5. Verify Nyquist Artifacts
|
|
267
|
-
|
|
268
|
-
Skip if `nyquist_validation_enabled` is false.
|
|
269
|
-
|
|
270
|
-
```bash
|
|
271
|
-
VALIDATION_EXISTS=$(ls "${PHASE_DIR}"/*-VALIDATION.md 2>/dev/null | head -1)
|
|
272
|
-
```
|
|
273
|
-
|
|
274
|
-
If missing and Nyquist enabled — ask user:
|
|
275
|
-
1. Re-run: `/gsd:plan-phase {PHASE} --research`
|
|
276
|
-
2. Disable Nyquist in config
|
|
277
|
-
3. Continue anyway (plans fail Dimension 8)
|
|
278
|
-
|
|
279
|
-
Proceed to Step 8 only if user selects 2 or 3.
|
|
280
|
-
|
|
281
|
-
## 8. Spawn gsd-planner Agent
|
|
282
|
-
|
|
283
|
-
Display banner:
|
|
284
|
-
```
|
|
285
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
286
|
-
GSD ► PLANNING PHASE {X}
|
|
287
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
288
|
-
|
|
289
|
-
◆ Spawning planner...
|
|
290
|
-
```
|
|
291
|
-
|
|
292
|
-
Planner prompt:
|
|
293
|
-
|
|
294
|
-
```markdown
|
|
295
|
-
<planning_context>
|
|
296
|
-
**Phase:** {phase_number}
|
|
297
|
-
**Mode:** {standard | gap_closure}
|
|
298
|
-
|
|
299
|
-
<files_to_read>
|
|
300
|
-
- {state_path} (Project State)
|
|
301
|
-
- {roadmap_path} (Roadmap)
|
|
302
|
-
- {requirements_path} (Requirements)
|
|
303
|
-
- {context_path} (USER DECISIONS from /gsd:discuss-phase)
|
|
304
|
-
- {research_path} (Technical Research)
|
|
305
|
-
- {verification_path} (Verification Gaps - if --gaps)
|
|
306
|
-
- {uat_path} (UAT Gaps - if --gaps)
|
|
307
|
-
</files_to_read>
|
|
308
|
-
|
|
309
|
-
**Phase requirement IDs (every ID MUST appear in a plan's `requirements` field):** {phase_req_ids}
|
|
310
|
-
|
|
311
|
-
**Project instructions:** Read ./CLAUDE.md if exists — follow project-specific guidelines
|
|
312
|
-
**Project skills:** Check .claude/skills/ or .agents/skills/ directory (if either exists) — read SKILL.md files, plans should account for project skill rules
|
|
313
|
-
</planning_context>
|
|
314
|
-
|
|
315
|
-
<downstream_consumer>
|
|
316
|
-
Output consumed by /gsd:execute-phase. Plans need:
|
|
317
|
-
- Frontmatter (wave, depends_on, files_modified, autonomous)
|
|
318
|
-
- Tasks in XML format
|
|
319
|
-
- Verification criteria
|
|
320
|
-
- must_haves for goal-backward verification
|
|
321
|
-
</downstream_consumer>
|
|
322
|
-
|
|
323
|
-
<quality_gate>
|
|
324
|
-
- [ ] PLAN.md files created in phase directory
|
|
325
|
-
- [ ] Each plan has valid frontmatter
|
|
326
|
-
- [ ] Tasks are specific and actionable
|
|
327
|
-
- [ ] Dependencies correctly identified
|
|
328
|
-
- [ ] Waves assigned for parallel execution
|
|
329
|
-
- [ ] must_haves derived from phase goal
|
|
330
|
-
</quality_gate>
|
|
331
|
-
```
|
|
332
|
-
|
|
333
|
-
```
|
|
334
|
-
Task(
|
|
335
|
-
prompt=filled_prompt,
|
|
336
|
-
subagent_type="gsd-planner",
|
|
337
|
-
model="{planner_model}",
|
|
338
|
-
description="Plan Phase {phase}"
|
|
339
|
-
)
|
|
340
|
-
```
|
|
341
|
-
|
|
342
|
-
## 9. Handle Planner Return
|
|
343
|
-
|
|
344
|
-
- **`## PLANNING COMPLETE`:** Display plan count. If `--skip-verify` or `plan_checker_enabled` is false (from init): skip to step 13. Otherwise: step 10.
|
|
345
|
-
- **`## CHECKPOINT REACHED`:** Present to user, get response, spawn continuation (step 12)
|
|
346
|
-
- **`## PLANNING INCONCLUSIVE`:** Show attempts, offer: Add context / Retry / Manual
|
|
347
|
-
|
|
348
|
-
## 10. Spawn gsd-plan-checker Agent
|
|
349
|
-
|
|
350
|
-
Display banner:
|
|
351
|
-
```
|
|
352
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
353
|
-
GSD ► VERIFYING PLANS
|
|
354
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
355
|
-
|
|
356
|
-
◆ Spawning plan checker...
|
|
357
|
-
```
|
|
358
|
-
|
|
359
|
-
Checker prompt:
|
|
360
|
-
|
|
361
|
-
```markdown
|
|
362
|
-
<verification_context>
|
|
363
|
-
**Phase:** {phase_number}
|
|
364
|
-
**Phase Goal:** {goal from ROADMAP}
|
|
365
|
-
|
|
366
|
-
<files_to_read>
|
|
367
|
-
- {PHASE_DIR}/*-PLAN.md (Plans to verify)
|
|
368
|
-
- {roadmap_path} (Roadmap)
|
|
369
|
-
- {requirements_path} (Requirements)
|
|
370
|
-
- {context_path} (USER DECISIONS from /gsd:discuss-phase)
|
|
371
|
-
- {research_path} (Technical Research — includes Validation Architecture)
|
|
372
|
-
</files_to_read>
|
|
373
|
-
|
|
374
|
-
**Phase requirement IDs (MUST ALL be covered):** {phase_req_ids}
|
|
375
|
-
|
|
376
|
-
**Project instructions:** Read ./CLAUDE.md if exists — verify plans honor project guidelines
|
|
377
|
-
**Project skills:** Check .claude/skills/ or .agents/skills/ directory (if either exists) — verify plans account for project skill rules
|
|
378
|
-
</verification_context>
|
|
379
|
-
|
|
380
|
-
<expected_output>
|
|
381
|
-
- ## VERIFICATION PASSED — all checks pass
|
|
382
|
-
- ## ISSUES FOUND — structured issue list
|
|
383
|
-
</expected_output>
|
|
384
|
-
```
|
|
385
|
-
|
|
386
|
-
```
|
|
387
|
-
Task(
|
|
388
|
-
prompt=checker_prompt,
|
|
389
|
-
subagent_type="gsd-plan-checker",
|
|
390
|
-
model="{checker_model}",
|
|
391
|
-
description="Verify Phase {phase} plans"
|
|
392
|
-
)
|
|
393
|
-
```
|
|
394
|
-
|
|
395
|
-
## 11. Handle Checker Return
|
|
396
|
-
|
|
397
|
-
- **`## VERIFICATION PASSED`:** Display confirmation, proceed to step 13.
|
|
398
|
-
- **`## ISSUES FOUND`:** Display issues, check iteration count, proceed to step 12.
|
|
399
|
-
|
|
400
|
-
## 12. Revision Loop (Max 3 Iterations)
|
|
401
|
-
|
|
402
|
-
Track `iteration_count` (starts at 1 after initial plan + check).
|
|
403
|
-
|
|
404
|
-
**If iteration_count < 3:**
|
|
405
|
-
|
|
406
|
-
Display: `Sending back to planner for revision... (iteration {N}/3)`
|
|
407
|
-
|
|
408
|
-
Revision prompt:
|
|
409
|
-
|
|
410
|
-
```markdown
|
|
411
|
-
<revision_context>
|
|
412
|
-
**Phase:** {phase_number}
|
|
413
|
-
**Mode:** revision
|
|
414
|
-
|
|
415
|
-
<files_to_read>
|
|
416
|
-
- {PHASE_DIR}/*-PLAN.md (Existing plans)
|
|
417
|
-
- {context_path} (USER DECISIONS from /gsd:discuss-phase)
|
|
418
|
-
</files_to_read>
|
|
419
|
-
|
|
420
|
-
**Checker issues:** {structured_issues_from_checker}
|
|
421
|
-
</revision_context>
|
|
422
|
-
|
|
423
|
-
<instructions>
|
|
424
|
-
Make targeted updates to address checker issues.
|
|
425
|
-
Do NOT replan from scratch unless issues are fundamental.
|
|
426
|
-
Return what changed.
|
|
427
|
-
</instructions>
|
|
428
|
-
```
|
|
429
|
-
|
|
430
|
-
```
|
|
431
|
-
Task(
|
|
432
|
-
prompt=revision_prompt,
|
|
433
|
-
subagent_type="gsd-planner",
|
|
434
|
-
model="{planner_model}",
|
|
435
|
-
description="Revise Phase {phase} plans"
|
|
436
|
-
)
|
|
437
|
-
```
|
|
438
|
-
|
|
439
|
-
After planner returns -> spawn checker again (step 10), increment iteration_count.
|
|
440
|
-
|
|
441
|
-
**If iteration_count >= 3:**
|
|
442
|
-
|
|
443
|
-
Display: `Max iterations reached. {N} issues remain:` + issue list
|
|
444
|
-
|
|
445
|
-
Offer: 1) Force proceed, 2) Provide guidance and retry, 3) Abandon
|
|
446
|
-
|
|
447
|
-
## 13. Present Final Status
|
|
448
|
-
|
|
449
|
-
Route to `<offer_next>` OR `auto_advance` depending on flags/config.
|
|
450
|
-
|
|
451
|
-
## 14. Auto-Advance Check
|
|
452
|
-
|
|
453
|
-
Check for auto-advance trigger:
|
|
454
|
-
|
|
455
|
-
1. Parse `--auto` flag from $ARGUMENTS
|
|
456
|
-
2. **Sync chain flag with intent** — if user invoked manually (no `--auto`), clear the ephemeral chain flag from any previous interrupted `--auto` chain. This does NOT touch `workflow.auto_advance` (the user's persistent settings preference):
|
|
457
|
-
```bash
|
|
458
|
-
if [[ ! "$ARGUMENTS" =~ --auto ]]; then
|
|
459
|
-
node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" config-set workflow._auto_chain_active false 2>/dev/null
|
|
460
|
-
fi
|
|
461
|
-
```
|
|
462
|
-
3. Read both the chain flag and user preference:
|
|
463
|
-
```bash
|
|
464
|
-
AUTO_CHAIN=$(node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" config-get workflow._auto_chain_active 2>/dev/null || echo "false")
|
|
465
|
-
AUTO_CFG=$(node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" config-get workflow.auto_advance 2>/dev/null || echo "false")
|
|
466
|
-
```
|
|
467
|
-
|
|
468
|
-
**If `--auto` flag present OR `AUTO_CHAIN` is true OR `AUTO_CFG` is true:**
|
|
469
|
-
|
|
470
|
-
Display banner:
|
|
471
|
-
```
|
|
472
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
473
|
-
GSD ► AUTO-ADVANCING TO EXECUTE
|
|
474
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
475
|
-
|
|
476
|
-
Plans ready. Launching execute-phase...
|
|
477
|
-
```
|
|
478
|
-
|
|
479
|
-
Launch execute-phase using the Skill tool to avoid nested Task sessions (which cause runtime freezes due to deep agent nesting):
|
|
480
|
-
```
|
|
481
|
-
Skill(skill="gsd:execute-phase", args="${PHASE} --auto --no-transition")
|
|
482
|
-
```
|
|
483
|
-
|
|
484
|
-
The `--no-transition` flag tells execute-phase to return status after verification instead of chaining further. This keeps the auto-advance chain flat — each phase runs at the same nesting level rather than spawning deeper Task agents.
|
|
485
|
-
|
|
486
|
-
**Handle execute-phase return:**
|
|
487
|
-
- **PHASE COMPLETE** → Display final summary:
|
|
488
|
-
```
|
|
489
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
490
|
-
GSD ► PHASE ${PHASE} COMPLETE ✓
|
|
491
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
492
|
-
|
|
493
|
-
Auto-advance pipeline finished.
|
|
494
|
-
|
|
495
|
-
Next: /gsd:discuss-phase ${NEXT_PHASE} --auto
|
|
496
|
-
```
|
|
497
|
-
- **GAPS FOUND / VERIFICATION FAILED** → Display result, stop chain:
|
|
498
|
-
```
|
|
499
|
-
Auto-advance stopped: Execution needs review.
|
|
500
|
-
|
|
501
|
-
Review the output above and continue manually:
|
|
502
|
-
/gsd:execute-phase ${PHASE}
|
|
503
|
-
```
|
|
504
|
-
|
|
505
|
-
**If neither `--auto` nor config enabled:**
|
|
506
|
-
Route to `<offer_next>` (existing behavior).
|
|
507
|
-
|
|
508
|
-
</process>
|
|
509
|
-
|
|
510
|
-
<offer_next>
|
|
511
|
-
Output this markdown directly (not as a code block):
|
|
512
|
-
|
|
513
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
514
|
-
GSD ► PHASE {X} PLANNED ✓
|
|
515
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
516
|
-
|
|
517
|
-
**Phase {X}: {Name}** — {N} plan(s) in {M} wave(s)
|
|
518
|
-
|
|
519
|
-
| Wave | Plans | What it builds |
|
|
520
|
-
|------|-------|----------------|
|
|
521
|
-
| 1 | 01, 02 | [objectives] |
|
|
522
|
-
| 2 | 03 | [objective] |
|
|
523
|
-
|
|
524
|
-
Research: {Completed | Used existing | Skipped}
|
|
525
|
-
Verification: {Passed | Passed with override | Skipped}
|
|
526
|
-
|
|
527
|
-
───────────────────────────────────────────────────────────────
|
|
528
|
-
|
|
529
|
-
## ▶ Next Up
|
|
530
|
-
|
|
531
|
-
**Execute Phase {X}** — run all {N} plans
|
|
532
|
-
|
|
533
|
-
/gsd:execute-phase {X}
|
|
534
|
-
|
|
535
|
-
<sub>/clear first → fresh context window</sub>
|
|
536
|
-
|
|
537
|
-
───────────────────────────────────────────────────────────────
|
|
538
|
-
|
|
539
|
-
**Also available:**
|
|
540
|
-
- cat .planning/phases/{phase-dir}/*-PLAN.md — review plans
|
|
541
|
-
- /gsd:plan-phase {X} --research — re-research first
|
|
542
|
-
|
|
543
|
-
───────────────────────────────────────────────────────────────
|
|
544
|
-
</offer_next>
|
|
545
|
-
|
|
546
|
-
<success_criteria>
|
|
547
|
-
- [ ] .planning/ directory validated
|
|
548
|
-
- [ ] Phase validated against roadmap
|
|
549
|
-
- [ ] Phase directory created if needed
|
|
550
|
-
- [ ] CONTEXT.md loaded early (step 4) and passed to ALL agents
|
|
551
|
-
- [ ] Research completed (unless --skip-research or --gaps or exists)
|
|
552
|
-
- [ ] gsd-phase-researcher spawned with CONTEXT.md
|
|
553
|
-
- [ ] Existing plans checked
|
|
554
|
-
- [ ] gsd-planner spawned with CONTEXT.md + RESEARCH.md
|
|
555
|
-
- [ ] Plans created (PLANNING COMPLETE or CHECKPOINT handled)
|
|
556
|
-
- [ ] gsd-plan-checker spawned with CONTEXT.md
|
|
557
|
-
- [ ] Verification passed OR user override OR max iterations with user decision
|
|
558
|
-
- [ ] User sees status between agent spawns
|
|
559
|
-
- [ ] User knows next steps
|
|
560
|
-
</success_criteria>
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
// Check for GSD updates in background, write result to cache
|
|
3
|
-
// Called by SessionStart hook - runs once per session
|
|
4
|
-
|
|
5
|
-
const fs = require('fs');
|
|
6
|
-
const path = require('path');
|
|
7
|
-
const os = require('os');
|
|
8
|
-
const { spawn } = require('child_process');
|
|
9
|
-
|
|
10
|
-
const homeDir = os.homedir();
|
|
11
|
-
const cwd = process.cwd();
|
|
12
|
-
|
|
13
|
-
// Detect runtime config directory (supports Claude, OpenCode, Gemini)
|
|
14
|
-
// Respects CLAUDE_CONFIG_DIR for custom config directory setups
|
|
15
|
-
function detectConfigDir(baseDir) {
|
|
16
|
-
// Check env override first (supports multi-account setups)
|
|
17
|
-
const envDir = process.env.CLAUDE_CONFIG_DIR;
|
|
18
|
-
if (envDir && fs.existsSync(path.join(envDir, 'get-shit-done', 'VERSION'))) {
|
|
19
|
-
return envDir;
|
|
20
|
-
}
|
|
21
|
-
for (const dir of ['.config/opencode', '.opencode', '.gemini', '.claude']) {
|
|
22
|
-
if (fs.existsSync(path.join(baseDir, dir, 'get-shit-done', 'VERSION'))) {
|
|
23
|
-
return path.join(baseDir, dir);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
return envDir || path.join(baseDir, '.claude');
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
const globalConfigDir = detectConfigDir(homeDir);
|
|
30
|
-
const projectConfigDir = detectConfigDir(cwd);
|
|
31
|
-
const cacheDir = path.join(globalConfigDir, 'cache');
|
|
32
|
-
const cacheFile = path.join(cacheDir, 'gsd-update-check.json');
|
|
33
|
-
|
|
34
|
-
// VERSION file locations (check project first, then global)
|
|
35
|
-
const projectVersionFile = path.join(projectConfigDir, 'get-shit-done', 'VERSION');
|
|
36
|
-
const globalVersionFile = path.join(globalConfigDir, 'get-shit-done', 'VERSION');
|
|
37
|
-
|
|
38
|
-
// Ensure cache directory exists
|
|
39
|
-
if (!fs.existsSync(cacheDir)) {
|
|
40
|
-
fs.mkdirSync(cacheDir, { recursive: true });
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
// Run check in background (spawn background process, windowsHide prevents console flash)
|
|
44
|
-
const child = spawn(process.execPath, ['-e', `
|
|
45
|
-
const fs = require('fs');
|
|
46
|
-
const { execSync } = require('child_process');
|
|
47
|
-
|
|
48
|
-
const cacheFile = ${JSON.stringify(cacheFile)};
|
|
49
|
-
const projectVersionFile = ${JSON.stringify(projectVersionFile)};
|
|
50
|
-
const globalVersionFile = ${JSON.stringify(globalVersionFile)};
|
|
51
|
-
|
|
52
|
-
// Check project directory first (local install), then global
|
|
53
|
-
let installed = '0.0.0';
|
|
54
|
-
try {
|
|
55
|
-
if (fs.existsSync(projectVersionFile)) {
|
|
56
|
-
installed = fs.readFileSync(projectVersionFile, 'utf8').trim();
|
|
57
|
-
} else if (fs.existsSync(globalVersionFile)) {
|
|
58
|
-
installed = fs.readFileSync(globalVersionFile, 'utf8').trim();
|
|
59
|
-
}
|
|
60
|
-
} catch (e) {}
|
|
61
|
-
|
|
62
|
-
let latest = null;
|
|
63
|
-
try {
|
|
64
|
-
latest = execSync('npm view get-shit-done-cc version', { encoding: 'utf8', timeout: 10000, windowsHide: true }).trim();
|
|
65
|
-
} catch (e) {}
|
|
66
|
-
|
|
67
|
-
const result = {
|
|
68
|
-
update_available: latest && installed !== latest,
|
|
69
|
-
installed,
|
|
70
|
-
latest: latest || 'unknown',
|
|
71
|
-
checked: Math.floor(Date.now() / 1000)
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
fs.writeFileSync(cacheFile, JSON.stringify(result));
|
|
75
|
-
`], {
|
|
76
|
-
stdio: 'ignore',
|
|
77
|
-
windowsHide: true,
|
|
78
|
-
detached: true // Required on Windows for proper process detachment
|
|
79
|
-
});
|
|
80
|
-
|
|
81
|
-
child.unref();
|
package/kit/CLAUDE.md
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
# Project Agent Guide
|
|
2
|
-
|
|
3
|
-
> **First time?** Run `/setup` to auto-configure this project.
|
|
4
|
-
> **Update kit?** Run `/kit:update` to get the latest version.
|
|
5
|
-
|
|
6
|
-
This file will be generated by `/setup` with project-specific details.
|
|
7
|
-
|
|
8
|
-
## Methodology — GSD (Get Shit Done)
|
|
9
|
-
|
|
10
|
-
Spec-driven development with fresh 200k contexts per task:
|
|
11
|
-
|
|
12
|
-
- `/gsd:new-project` → Initialize with roadmap and milestones
|
|
13
|
-
- `/gsd:discuss-phase N` → Capture requirements
|
|
14
|
-
- `/gsd:plan-phase N` → Atomic plans
|
|
15
|
-
- `/gsd:execute-phase N` → Build with fresh contexts, atomic commits
|
|
16
|
-
- `/gsd:verify-work N` → Goal-backward verification ("does it match the spec?")
|
|
17
|
-
- `/gsd:quick "task"` → Lightweight mode
|
|
18
|
-
- `/gsd:help` → All 32 GSD commands
|
|
19
|
-
|
|
20
|
-
## Toolbox — ECC (Everything Claude Code)
|
|
21
|
-
|
|
22
|
-
Quality gates, learning, and session management:
|
|
23
|
-
|
|
24
|
-
- `/verify` → Multi-phase verification (build → types → lint → tests → security)
|
|
25
|
-
- `/checkpoint create "name"` → Git-backed snapshots with before/after comparison
|
|
26
|
-
- `/save-session` → Persist session state (what worked, what didn't, next step)
|
|
27
|
-
- `/resume-session` → Load previous session context
|
|
28
|
-
- `/learn` → Extract reusable patterns from current session
|
|
29
|
-
- `/evolve` → Promote learned instincts into skills/commands/agents
|
|
30
|
-
- `/quality-gate` → On-demand quality pipeline
|
|
31
|
-
- `/model-route` → Recommend model tier for current task
|
|
32
|
-
|
|
33
|
-
## Before ANY Work
|
|
34
|
-
|
|
35
|
-
```bash
|
|
36
|
-
npx skills find <keywords> # Discover ecosystem skills
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
## Reference Docs & MCP
|
|
40
|
-
|
|
41
|
-
- `docs/agent-guides/*.md` — Detailed guides (loaded on demand)
|
|
42
|
-
- `.claude/contexts/` — dev.md, research.md, review.md (mode switching)
|
|
43
|
-
- MCP: **github.com/mcp** (official) or **mcp.so** (8000+ servers)
|