claude-code-pilot 2.0.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/install.js +267 -250
- package/manifest.json +5 -18
- package/package.json +5 -7
- package/src/agents/build-error-resolver.md +114 -0
- package/src/agents/ccp-advisor-researcher.md +104 -0
- package/src/agents/ccp-assumptions-analyzer.md +105 -0
- package/{gsd/agents/gsd-codebase-mapper.md → src/agents/ccp-codebase-mapper.md} +7 -7
- package/{gsd/agents/gsd-debugger.md → src/agents/ccp-debugger.md} +125 -8
- package/{gsd/agents/gsd-executor.md → src/agents/ccp-executor.md} +31 -20
- package/{gsd/agents/gsd-integration-checker.md → src/agents/ccp-integration-checker.md} +2 -2
- package/{gsd/agents/gsd-nyquist-auditor.md → src/agents/ccp-nyquist-auditor.md} +3 -3
- package/{gsd/agents/gsd-phase-researcher.md → src/agents/ccp-phase-researcher.md} +127 -13
- package/{gsd/agents/gsd-plan-checker.md → src/agents/ccp-plan-checker.md} +57 -21
- package/{gsd/agents/gsd-planner.md → src/agents/ccp-planner.md} +61 -23
- package/{gsd/agents/gsd-project-researcher.md → src/agents/ccp-project-researcher.md} +33 -6
- package/{gsd/agents/gsd-research-synthesizer.md → src/agents/ccp-research-synthesizer.md} +11 -11
- package/{gsd/agents/gsd-roadmapper.md → src/agents/ccp-roadmapper.md} +39 -10
- package/src/agents/ccp-ui-auditor.md +439 -0
- package/src/agents/ccp-ui-checker.md +300 -0
- package/src/agents/ccp-ui-researcher.md +357 -0
- package/{gsd/agents/gsd-verifier.md → src/agents/ccp-verifier.md} +81 -15
- package/src/agents/cpp-build-resolver.md +90 -0
- package/src/agents/cpp-reviewer.md +72 -0
- package/src/agents/database-reviewer.md +91 -0
- package/src/agents/docs-lookup.md +68 -0
- package/src/agents/flutter-reviewer.md +243 -0
- package/src/agents/go-build-resolver.md +94 -0
- package/src/agents/go-reviewer.md +76 -0
- package/src/agents/java-build-resolver.md +153 -0
- package/src/agents/java-reviewer.md +92 -0
- package/src/agents/kotlin-build-resolver.md +118 -0
- package/src/agents/kotlin-reviewer.md +159 -0
- package/src/agents/planner.md +212 -0
- package/src/agents/python-reviewer.md +98 -0
- package/src/agents/pytorch-build-resolver.md +120 -0
- package/src/agents/refactor-cleaner.md +85 -0
- package/src/agents/rust-build-resolver.md +148 -0
- package/src/agents/rust-reviewer.md +94 -0
- package/src/agents/typescript-reviewer.md +112 -0
- package/src/available-rules/README.md +80 -0
- package/src/available-rules/cpp/coding-style.md +44 -0
- package/src/available-rules/cpp/hooks.md +39 -0
- package/src/available-rules/cpp/patterns.md +51 -0
- package/src/available-rules/cpp/security.md +51 -0
- package/src/available-rules/cpp/testing.md +44 -0
- package/src/available-rules/csharp/coding-style.md +72 -0
- package/src/available-rules/csharp/hooks.md +25 -0
- package/src/available-rules/csharp/patterns.md +50 -0
- package/src/available-rules/csharp/security.md +58 -0
- package/src/available-rules/csharp/testing.md +46 -0
- package/src/available-rules/java/coding-style.md +114 -0
- package/src/available-rules/java/hooks.md +18 -0
- package/src/available-rules/java/patterns.md +146 -0
- package/src/available-rules/java/security.md +100 -0
- package/src/available-rules/java/testing.md +131 -0
- package/src/available-rules/kotlin/hooks.md +17 -0
- package/src/available-rules/rust/coding-style.md +151 -0
- package/src/available-rules/rust/hooks.md +16 -0
- package/src/available-rules/rust/patterns.md +168 -0
- package/src/available-rules/rust/security.md +141 -0
- package/src/available-rules/rust/testing.md +154 -0
- package/src/commands/aside.md +164 -0
- package/src/commands/build-fix.md +62 -0
- package/src/commands/ccp/add-backlog.md +76 -0
- package/{gsd/commands-gsd → src/commands/ccp}/add-phase.md +3 -3
- package/{gsd/commands-gsd → src/commands/ccp}/add-tests.md +5 -5
- package/{gsd/commands-gsd → src/commands/ccp}/add-todo.md +4 -4
- package/{gsd/commands-gsd → src/commands/ccp}/audit-milestone.md +3 -3
- package/src/commands/ccp/audit-uat.md +24 -0
- package/src/commands/ccp/autonomous.md +41 -0
- package/{gsd/commands-gsd → src/commands/ccp}/check-todos.md +3 -3
- package/{gsd/commands-gsd → src/commands/ccp}/cleanup.md +3 -3
- package/{gsd/commands-gsd → src/commands/ccp}/complete-milestone.md +9 -9
- package/{gsd/commands-gsd → src/commands/ccp}/debug.md +14 -9
- package/src/commands/ccp/discuss-phase.md +64 -0
- package/src/commands/ccp/do.md +30 -0
- package/src/commands/ccp/execute-phase.md +59 -0
- package/src/commands/ccp/fast.md +30 -0
- package/src/commands/ccp/forensics.md +56 -0
- package/{gsd/commands-gsd → src/commands/ccp}/health.md +3 -3
- package/{gsd/commands-gsd → src/commands/ccp}/help.md +5 -5
- package/{gsd/commands-gsd → src/commands/ccp}/insert-phase.md +3 -3
- package/{gsd/commands-gsd → src/commands/ccp}/list-phase-assumptions.md +2 -2
- package/src/commands/ccp/manager.md +39 -0
- package/{gsd/commands-gsd → src/commands/ccp}/map-codebase.md +7 -7
- package/src/commands/ccp/milestone-summary.md +51 -0
- package/{gsd/commands-gsd → src/commands/ccp}/new-milestone.md +8 -8
- package/{gsd/commands-gsd → src/commands/ccp}/new-project.md +8 -8
- package/src/commands/ccp/next.md +24 -0
- package/src/commands/ccp/note.md +34 -0
- package/{gsd/commands-gsd → src/commands/ccp}/pause-work.md +3 -3
- package/{gsd/commands-gsd → src/commands/ccp}/plan-milestone-gaps.md +5 -5
- package/{gsd/commands-gsd → src/commands/ccp}/plan-phase.md +9 -7
- package/src/commands/ccp/plant-seed.md +28 -0
- package/src/commands/ccp/pr-branch.md +25 -0
- package/{gsd/commands-gsd → src/commands/ccp}/progress.md +3 -3
- package/{gsd/commands-gsd → src/commands/ccp}/quick.md +10 -8
- package/{gsd/commands-gsd → src/commands/ccp}/remove-phase.md +3 -3
- package/{gsd/commands-gsd → src/commands/ccp}/research-phase.md +17 -12
- package/{gsd/commands-gsd → src/commands/ccp}/resume-work.md +3 -3
- package/src/commands/ccp/review-backlog.md +61 -0
- package/src/commands/ccp/session-report.md +19 -0
- package/src/commands/ccp/set-profile.md +12 -0
- package/{gsd/commands-gsd → src/commands/ccp}/settings.md +5 -5
- package/src/commands/ccp/ship.md +23 -0
- package/src/commands/ccp/stats.md +18 -0
- package/src/commands/ccp/thread.md +127 -0
- package/src/commands/ccp/ui-phase.md +34 -0
- package/src/commands/ccp/ui-review.md +32 -0
- package/{gsd/commands-gsd → src/commands/ccp}/update.md +5 -5
- package/{gsd/commands-gsd → src/commands/ccp}/validate-phase.md +3 -3
- package/{gsd/commands-gsd → src/commands/ccp}/verify-work.md +5 -5
- package/src/commands/code-review.md +40 -0
- package/src/commands/context-budget.md +29 -0
- package/src/commands/cpp-build.md +173 -0
- package/src/commands/cpp-review.md +132 -0
- package/src/commands/cpp-test.md +251 -0
- package/src/commands/docs.md +31 -0
- package/src/commands/e2e.md +364 -0
- package/src/commands/eval.md +120 -0
- package/{ecc → src}/commands/evolve.md +2 -2
- package/src/commands/go-build.md +183 -0
- package/src/commands/go-review.md +148 -0
- package/src/commands/go-test.md +268 -0
- package/src/commands/gradle-build.md +70 -0
- package/src/commands/harness-audit.md +71 -0
- package/src/commands/kotlin-build.md +174 -0
- package/src/commands/kotlin-review.md +140 -0
- package/src/commands/kotlin-test.md +312 -0
- package/src/commands/orchestrate.md +231 -0
- package/src/commands/plan.md +114 -0
- package/src/commands/prompt-optimize.md +38 -0
- package/src/commands/prune.md +25 -0
- package/src/commands/python-review.md +297 -0
- package/{ecc → src}/commands/quality-gate.md +1 -1
- package/src/commands/refactor-clean.md +80 -0
- package/src/commands/rules-distill.md +11 -0
- package/src/commands/rust-build.md +187 -0
- package/src/commands/rust-review.md +142 -0
- package/src/commands/rust-test.md +308 -0
- package/{ecc → src}/commands/sessions.md +10 -10
- package/src/commands/setup-pm.md +80 -0
- package/{kit → src}/commands/setup.md +45 -19
- package/src/commands/skill-create.md +172 -0
- package/src/commands/skill-health.md +51 -0
- package/src/commands/tdd.md +328 -0
- package/src/commands/test-coverage.md +69 -0
- package/src/commands/update-codemaps.md +72 -0
- package/src/commands/update-docs.md +84 -0
- package/{gsd/hooks/gsd-context-monitor.js → src/hooks/ccp-context-monitor.js} +3 -3
- package/src/hooks/ccp-prompt-guard.js +96 -0
- package/{gsd/hooks/gsd-statusline.js → src/hooks/ccp-statusline.js} +7 -7
- package/src/hooks/ccp-workflow-guard.js +94 -0
- package/src/hooks/config-protection.js +141 -0
- package/{kit → src}/hooks/kit-check-update.js +7 -4
- package/src/hooks/mcp-health-check.js +620 -0
- package/{ecc/scripts → src}/hooks/run-with-flags-shell.sh +1 -1
- package/{ecc/scripts → src}/hooks/run-with-flags.js +74 -13
- package/src/hooks/session-end-marker.js +29 -0
- package/{ecc/scripts → src}/hooks/session-end.js +83 -40
- package/{ecc/scripts → src}/hooks/session-start.js +75 -9
- package/{ecc/scripts → src}/lib/hook-flags.js +8 -4
- package/{ecc/scripts → src}/lib/project-detect.js +2 -1
- package/{ecc/scripts → src}/lib/session-manager.d.ts +5 -1
- package/{ecc/scripts → src}/lib/session-manager.js +202 -92
- package/{ecc/scripts → src}/lib/utils.d.ts +23 -1
- package/{ecc/scripts → src}/lib/utils.js +91 -3
- package/{gsd/get-shit-done/bin/gsd-tools.cjs → src/pilot/bin/ccp-tools.cjs} +257 -86
- package/{gsd/get-shit-done → src/pilot}/bin/lib/commands.cjs +1 -1
- package/src/pilot/bin/lib/config.cjs +444 -0
- package/src/pilot/bin/lib/core.cjs +1190 -0
- package/src/pilot/bin/lib/init.cjs +1281 -0
- package/src/pilot/bin/lib/model-profiles.cjs +67 -0
- package/{gsd/get-shit-done → src/pilot}/bin/lib/phase.cjs +2 -2
- package/src/pilot/bin/lib/security.cjs +382 -0
- package/{gsd/get-shit-done → src/pilot}/bin/lib/state.cjs +1 -1
- package/src/pilot/bin/lib/uat.cjs +282 -0
- package/{gsd/get-shit-done → src/pilot}/bin/lib/verify.cjs +10 -10
- package/{gsd/get-shit-done → src/pilot}/references/continuation-format.md +16 -16
- package/{gsd/get-shit-done → src/pilot}/references/decimal-phase-calculation.md +5 -5
- package/{gsd/get-shit-done → src/pilot}/references/git-integration.md +5 -5
- package/{gsd/get-shit-done → src/pilot}/references/git-planning-commit.md +4 -4
- package/src/pilot/references/mcp-servers.json +153 -0
- package/{gsd/get-shit-done → src/pilot}/references/model-profile-resolution.md +2 -2
- package/{gsd/get-shit-done → src/pilot}/references/model-profiles.md +20 -20
- package/{gsd/get-shit-done → src/pilot}/references/phase-argument-parsing.md +4 -4
- package/{gsd/get-shit-done → src/pilot}/references/planning-config.md +15 -15
- package/{gsd/get-shit-done → src/pilot}/references/ui-brand.md +5 -5
- package/{gsd/get-shit-done → src/pilot}/references/verification-patterns.md +1 -1
- package/{gsd/get-shit-done → src/pilot}/templates/DEBUG.md +1 -1
- package/{gsd/get-shit-done → src/pilot}/templates/UAT.md +3 -3
- package/src/pilot/templates/UI-SPEC.md +100 -0
- package/{gsd/get-shit-done → src/pilot}/templates/VALIDATION.md +1 -1
- package/src/pilot/templates/claude-md.md +122 -0
- package/{gsd/get-shit-done → src/pilot}/templates/codebase/architecture.md +2 -2
- package/{gsd/get-shit-done → src/pilot}/templates/codebase/structure.md +13 -13
- package/{gsd/get-shit-done → src/pilot}/templates/context.md +4 -4
- package/src/pilot/templates/copilot-instructions.md +7 -0
- package/{gsd/get-shit-done → src/pilot}/templates/debug-subagent-prompt.md +4 -4
- package/src/pilot/templates/dev-preferences.md +21 -0
- package/{gsd/get-shit-done → src/pilot}/templates/discovery.md +2 -2
- package/src/pilot/templates/discussion-log.md +63 -0
- package/{gsd/get-shit-done → src/pilot}/templates/phase-prompt.md +12 -12
- package/{gsd/get-shit-done → src/pilot}/templates/planner-subagent-prompt.md +7 -7
- package/{gsd/get-shit-done → src/pilot}/templates/project.md +1 -1
- package/{gsd/get-shit-done → src/pilot}/templates/research.md +2 -2
- package/{gsd/get-shit-done → src/pilot}/templates/state.md +2 -2
- package/{gsd/get-shit-done → src/pilot}/templates/summary-complex.md +1 -1
- package/{gsd/get-shit-done → src/pilot}/workflows/add-phase.md +11 -11
- package/{gsd/get-shit-done → src/pilot}/workflows/add-tests.md +15 -15
- package/{gsd/get-shit-done → src/pilot}/workflows/add-todo.md +7 -7
- package/{gsd/get-shit-done → src/pilot}/workflows/audit-milestone.md +24 -16
- package/src/pilot/workflows/audit-uat.md +109 -0
- package/src/pilot/workflows/autonomous.md +891 -0
- package/{gsd/get-shit-done → src/pilot}/workflows/check-todos.md +10 -10
- package/{gsd/get-shit-done → src/pilot}/workflows/cleanup.md +3 -3
- package/{gsd/get-shit-done → src/pilot}/workflows/complete-milestone.md +19 -16
- package/{gsd/get-shit-done → src/pilot}/workflows/diagnose-issues.md +9 -4
- package/{gsd/get-shit-done → src/pilot}/workflows/discovery-phase.md +8 -8
- package/src/pilot/workflows/discuss-phase-assumptions.md +653 -0
- package/{gsd/get-shit-done → src/pilot}/workflows/discuss-phase.md +407 -49
- package/src/pilot/workflows/do.md +104 -0
- package/src/pilot/workflows/execute-phase.md +821 -0
- package/{gsd/get-shit-done → src/pilot}/workflows/execute-plan.md +79 -28
- package/src/pilot/workflows/fast.md +105 -0
- package/src/pilot/workflows/forensics.md +265 -0
- package/{gsd/get-shit-done → src/pilot}/workflows/health.md +34 -11
- package/src/pilot/workflows/help.md +775 -0
- package/{gsd/get-shit-done → src/pilot}/workflows/insert-phase.md +10 -10
- package/{gsd/get-shit-done → src/pilot}/workflows/list-phase-assumptions.md +4 -4
- package/src/pilot/workflows/manager.md +362 -0
- package/{gsd/get-shit-done → src/pilot}/workflows/map-codebase.md +27 -17
- package/src/pilot/workflows/milestone-summary.md +223 -0
- package/{gsd/get-shit-done → src/pilot}/workflows/new-milestone.md +135 -33
- package/{gsd/get-shit-done → src/pilot}/workflows/new-project.md +152 -79
- package/src/pilot/workflows/next.md +97 -0
- package/src/pilot/workflows/node-repair.md +92 -0
- package/src/pilot/workflows/note.md +156 -0
- package/src/pilot/workflows/pause-work.md +177 -0
- package/{gsd/get-shit-done → src/pilot}/workflows/plan-milestone-gaps.md +10 -11
- package/src/pilot/workflows/plan-phase.md +859 -0
- package/src/pilot/workflows/plant-seed.md +169 -0
- package/src/pilot/workflows/pr-branch.md +129 -0
- package/{gsd/get-shit-done → src/pilot}/workflows/progress.md +95 -34
- package/{gsd/get-shit-done → src/pilot}/workflows/quick.md +33 -21
- package/{gsd/get-shit-done → src/pilot}/workflows/remove-phase.md +14 -14
- package/{gsd/get-shit-done → src/pilot}/workflows/research-phase.md +18 -10
- package/{gsd/get-shit-done → src/pilot}/workflows/resume-project.md +37 -18
- package/src/pilot/workflows/session-report.md +146 -0
- package/{gsd/get-shit-done → src/pilot}/workflows/set-profile.md +7 -7
- package/{gsd/get-shit-done → src/pilot}/workflows/settings.md +75 -22
- package/src/pilot/workflows/ship.md +228 -0
- package/src/pilot/workflows/stats.md +60 -0
- package/{gsd/get-shit-done → src/pilot}/workflows/transition.md +57 -17
- package/src/pilot/workflows/ui-phase.md +302 -0
- package/src/pilot/workflows/ui-review.md +165 -0
- package/{gsd/get-shit-done → src/pilot}/workflows/update.md +88 -58
- package/{gsd/get-shit-done → src/pilot}/workflows/validate-phase.md +24 -17
- package/{gsd/get-shit-done → src/pilot}/workflows/verify-phase.md +26 -15
- package/{gsd/get-shit-done → src/pilot}/workflows/verify-work.md +89 -37
- package/{ecc → src}/rules/common/agents.md +1 -0
- package/{ecc → src}/rules/common/coding-style.md +21 -0
- package/src/skills/agentic-engineering/SKILL.md +63 -0
- package/src/skills/ai-first-engineering/SKILL.md +51 -0
- package/src/skills/ai-regression-testing/SKILL.md +385 -0
- package/src/skills/api-design/SKILL.md +523 -0
- package/src/skills/architecture-decision-records/SKILL.md +179 -0
- package/src/skills/backend-patterns/SKILL.md +598 -0
- package/src/skills/benchmark/SKILL.md +87 -0
- package/src/skills/blueprint/SKILL.md +90 -0
- package/src/skills/browser-qa/SKILL.md +81 -0
- package/src/skills/claude-api/SKILL.md +337 -0
- package/src/skills/codebase-onboarding/SKILL.md +233 -0
- package/src/skills/coding-standards/SKILL.md +530 -0
- package/src/skills/context-budget/SKILL.md +135 -0
- package/{ecc → src}/skills/continuous-learning-v2/SKILL.md +2 -2
- package/{ecc → src}/skills/continuous-learning-v2/agents/observer-loop.sh +1 -1
- package/src/skills/cpp-coding-standards/SKILL.md +723 -0
- package/src/skills/cpp-testing/SKILL.md +324 -0
- package/src/skills/database-migrations/SKILL.md +429 -0
- package/src/skills/deep-research/SKILL.md +155 -0
- package/src/skills/deployment-patterns/SKILL.md +427 -0
- package/src/skills/django-patterns/SKILL.md +734 -0
- package/src/skills/django-security/SKILL.md +593 -0
- package/src/skills/django-tdd/SKILL.md +729 -0
- package/src/skills/django-verification/SKILL.md +469 -0
- package/src/skills/docker-patterns/SKILL.md +364 -0
- package/src/skills/documentation-lookup/SKILL.md +90 -0
- package/src/skills/e2e-testing/SKILL.md +326 -0
- package/src/skills/exa-search/SKILL.md +103 -0
- package/src/skills/frontend-patterns/SKILL.md +642 -0
- package/src/skills/golang-patterns/SKILL.md +674 -0
- package/src/skills/golang-testing/SKILL.md +720 -0
- package/src/skills/java-coding-standards/SKILL.md +147 -0
- package/src/skills/jpa-patterns/SKILL.md +151 -0
- package/src/skills/kotlin-coroutines-flows/SKILL.md +284 -0
- package/src/skills/kotlin-exposed-patterns/SKILL.md +719 -0
- package/src/skills/kotlin-ktor-patterns/SKILL.md +689 -0
- package/src/skills/kotlin-patterns/SKILL.md +711 -0
- package/src/skills/kotlin-testing/SKILL.md +824 -0
- package/src/skills/laravel-patterns/SKILL.md +415 -0
- package/src/skills/laravel-security/SKILL.md +285 -0
- package/src/skills/laravel-tdd/SKILL.md +283 -0
- package/src/skills/laravel-verification/SKILL.md +179 -0
- package/src/skills/mcp-server-patterns/SKILL.md +67 -0
- package/src/skills/perl-patterns/SKILL.md +504 -0
- package/src/skills/perl-testing/SKILL.md +475 -0
- package/src/skills/postgres-patterns/SKILL.md +147 -0
- package/src/skills/prompt-optimizer/SKILL.md +397 -0
- package/src/skills/python-patterns/SKILL.md +750 -0
- package/src/skills/python-testing/SKILL.md +816 -0
- package/src/skills/rust-patterns/SKILL.md +499 -0
- package/src/skills/rust-testing/SKILL.md +500 -0
- package/src/skills/safety-guard/SKILL.md +69 -0
- package/src/skills/search-first/SKILL.md +161 -0
- package/src/skills/security-review/SKILL.md +495 -0
- package/src/skills/security-review/cloud-infrastructure-security.md +361 -0
- package/src/skills/security-scan/SKILL.md +165 -0
- package/src/skills/springboot-patterns/SKILL.md +314 -0
- package/src/skills/springboot-security/SKILL.md +272 -0
- package/src/skills/springboot-tdd/SKILL.md +158 -0
- package/src/skills/springboot-verification/SKILL.md +231 -0
- package/src/skills/tdd-workflow/SKILL.md +410 -0
- package/ecc/scripts/hooks/session-end-marker.js +0 -15
- package/gsd/LICENSE +0 -21
- package/gsd/commands-gsd/discuss-phase.md +0 -90
- package/gsd/commands-gsd/execute-phase.md +0 -41
- package/gsd/commands-gsd/join-discord.md +0 -18
- package/gsd/commands-gsd/reapply-patches.md +0 -123
- package/gsd/commands-gsd/set-profile.md +0 -34
- package/gsd/get-shit-done/bin/lib/config.cjs +0 -169
- package/gsd/get-shit-done/bin/lib/core.cjs +0 -492
- package/gsd/get-shit-done/bin/lib/init.cjs +0 -710
- package/gsd/get-shit-done/workflows/execute-phase.md +0 -459
- package/gsd/get-shit-done/workflows/help.md +0 -489
- package/gsd/get-shit-done/workflows/pause-work.md +0 -122
- package/gsd/get-shit-done/workflows/plan-phase.md +0 -560
- package/gsd/hooks/gsd-check-update.js +0 -81
- package/kit/CLAUDE.md +0 -43
- package/kit/commands/kit/update.md +0 -46
- package/kit/mcp.json +0 -10
- package/kit/rules/code-style.md +0 -24
- /package/{ecc → src}/agents/architect.md +0 -0
- /package/{ecc → src}/agents/code-reviewer.md +0 -0
- /package/{ecc → src}/agents/doc-updater.md +0 -0
- /package/{ecc → src}/agents/e2e-runner.md +0 -0
- /package/{ecc → src}/agents/security-reviewer.md +0 -0
- /package/{ecc → src}/agents/tdd-guide.md +0 -0
- /package/{ecc/rules → src/available-rules}/golang/coding-style.md +0 -0
- /package/{ecc/rules → src/available-rules}/golang/hooks.md +0 -0
- /package/{ecc/rules → src/available-rules}/golang/patterns.md +0 -0
- /package/{ecc/rules → src/available-rules}/golang/security.md +0 -0
- /package/{ecc/rules → src/available-rules}/golang/testing.md +0 -0
- /package/{ecc/rules → src/available-rules}/kotlin/coding-style.md +0 -0
- /package/{ecc/rules → src/available-rules}/kotlin/patterns.md +0 -0
- /package/{ecc/rules → src/available-rules}/kotlin/security.md +0 -0
- /package/{ecc/rules → src/available-rules}/kotlin/testing.md +0 -0
- /package/{ecc/rules → src/available-rules}/perl/coding-style.md +0 -0
- /package/{ecc/rules → src/available-rules}/perl/hooks.md +0 -0
- /package/{ecc/rules → src/available-rules}/perl/patterns.md +0 -0
- /package/{ecc/rules → src/available-rules}/perl/security.md +0 -0
- /package/{ecc/rules → src/available-rules}/perl/testing.md +0 -0
- /package/{ecc/rules → src/available-rules}/php/coding-style.md +0 -0
- /package/{ecc/rules → src/available-rules}/php/hooks.md +0 -0
- /package/{ecc/rules → src/available-rules}/php/patterns.md +0 -0
- /package/{ecc/rules → src/available-rules}/php/security.md +0 -0
- /package/{ecc/rules → src/available-rules}/php/testing.md +0 -0
- /package/{ecc/rules → src/available-rules}/python/coding-style.md +0 -0
- /package/{ecc/rules → src/available-rules}/python/hooks.md +0 -0
- /package/{ecc/rules → src/available-rules}/python/patterns.md +0 -0
- /package/{ecc/rules → src/available-rules}/python/security.md +0 -0
- /package/{ecc/rules → src/available-rules}/python/testing.md +0 -0
- /package/{ecc/rules → src/available-rules}/swift/coding-style.md +0 -0
- /package/{ecc/rules → src/available-rules}/swift/hooks.md +0 -0
- /package/{ecc/rules → src/available-rules}/swift/patterns.md +0 -0
- /package/{ecc/rules → src/available-rules}/swift/security.md +0 -0
- /package/{ecc/rules → src/available-rules}/swift/testing.md +0 -0
- /package/{ecc/rules → src/available-rules}/typescript/coding-style.md +0 -0
- /package/{ecc/rules → src/available-rules}/typescript/hooks.md +0 -0
- /package/{ecc/rules → src/available-rules}/typescript/patterns.md +0 -0
- /package/{ecc/rules → src/available-rules}/typescript/security.md +0 -0
- /package/{ecc/rules → src/available-rules}/typescript/testing.md +0 -0
- /package/{ecc → src}/commands/checkpoint.md +0 -0
- /package/{ecc → src}/commands/learn.md +0 -0
- /package/{ecc → src}/commands/model-route.md +0 -0
- /package/{ecc → src}/commands/resume-session.md +0 -0
- /package/{ecc → src}/commands/save-session.md +0 -0
- /package/{kit → src}/commands/setup-refresh.md +0 -0
- /package/{kit → src}/commands/tool-guide.md +0 -0
- /package/{ecc → src}/commands/verify.md +0 -0
- /package/{ecc → src}/contexts/dev.md +0 -0
- /package/{ecc → src}/contexts/research.md +0 -0
- /package/{ecc → src}/contexts/review.md +0 -0
- /package/{ecc → src}/examples/CLAUDE.md +0 -0
- /package/{ecc → src}/examples/django-api-CLAUDE.md +0 -0
- /package/{ecc → src}/examples/go-microservice-CLAUDE.md +0 -0
- /package/{ecc → src}/examples/rust-api-CLAUDE.md +0 -0
- /package/{ecc → src}/examples/saas-nextjs-CLAUDE.md +0 -0
- /package/{ecc → src}/examples/user-CLAUDE.md +0 -0
- /package/{ecc/scripts → src}/hooks/check-hook-enabled.js +0 -0
- /package/{ecc/scripts → src}/hooks/evaluate-session.js +0 -0
- /package/{ecc/scripts → src}/hooks/pre-compact.js +0 -0
- /package/{ecc/scripts → src}/hooks/suggest-compact.js +0 -0
- /package/{ecc/scripts → src}/lib/package-manager.d.ts +0 -0
- /package/{ecc/scripts → src}/lib/package-manager.js +0 -0
- /package/{ecc/scripts → src}/lib/resolve-formatter.js +0 -0
- /package/{ecc/scripts → src}/lib/session-aliases.d.ts +0 -0
- /package/{ecc/scripts → src}/lib/session-aliases.js +0 -0
- /package/{ecc/scripts → src}/lib/shell-split.js +0 -0
- /package/{gsd/get-shit-done → src/pilot}/bin/lib/frontmatter.cjs +0 -0
- /package/{gsd/get-shit-done → src/pilot}/bin/lib/milestone.cjs +0 -0
- /package/{gsd/get-shit-done → src/pilot}/bin/lib/roadmap.cjs +0 -0
- /package/{gsd/get-shit-done → src/pilot}/bin/lib/template.cjs +0 -0
- /package/{gsd/get-shit-done → src/pilot}/references/checkpoints.md +0 -0
- /package/{gsd/get-shit-done → src/pilot}/references/questioning.md +0 -0
- /package/{gsd/get-shit-done → src/pilot}/references/tdd.md +0 -0
- /package/{gsd/get-shit-done → src/pilot}/templates/codebase/concerns.md +0 -0
- /package/{gsd/get-shit-done → src/pilot}/templates/codebase/conventions.md +0 -0
- /package/{gsd/get-shit-done → src/pilot}/templates/codebase/integrations.md +0 -0
- /package/{gsd/get-shit-done → src/pilot}/templates/codebase/stack.md +0 -0
- /package/{gsd/get-shit-done → src/pilot}/templates/codebase/testing.md +0 -0
- /package/{gsd/get-shit-done → src/pilot}/templates/config.json +0 -0
- /package/{gsd/get-shit-done → src/pilot}/templates/continue-here.md +0 -0
- /package/{gsd/get-shit-done → src/pilot}/templates/milestone-archive.md +0 -0
- /package/{gsd/get-shit-done → src/pilot}/templates/milestone.md +0 -0
- /package/{gsd/get-shit-done → src/pilot}/templates/requirements.md +0 -0
- /package/{gsd/get-shit-done → src/pilot}/templates/research-project/ARCHITECTURE.md +0 -0
- /package/{gsd/get-shit-done → src/pilot}/templates/research-project/FEATURES.md +0 -0
- /package/{gsd/get-shit-done → src/pilot}/templates/research-project/PITFALLS.md +0 -0
- /package/{gsd/get-shit-done → src/pilot}/templates/research-project/STACK.md +0 -0
- /package/{gsd/get-shit-done → src/pilot}/templates/research-project/SUMMARY.md +0 -0
- /package/{gsd/get-shit-done → src/pilot}/templates/retrospective.md +0 -0
- /package/{gsd/get-shit-done → src/pilot}/templates/roadmap.md +0 -0
- /package/{gsd/get-shit-done → src/pilot}/templates/summary-minimal.md +0 -0
- /package/{gsd/get-shit-done → src/pilot}/templates/summary-standard.md +0 -0
- /package/{gsd/get-shit-done → src/pilot}/templates/summary.md +0 -0
- /package/{gsd/get-shit-done → src/pilot}/templates/user-setup.md +0 -0
- /package/{gsd/get-shit-done → src/pilot}/templates/verification-report.md +0 -0
- /package/{ecc → src}/rules/common/development-workflow.md +0 -0
- /package/{ecc → src}/rules/common/git-workflow.md +0 -0
- /package/{ecc → src}/rules/common/hooks.md +0 -0
- /package/{ecc → src}/rules/common/patterns.md +0 -0
- /package/{ecc → src}/rules/common/performance.md +0 -0
- /package/{ecc → src}/rules/common/security.md +0 -0
- /package/{ecc → src}/rules/common/testing.md +0 -0
- /package/{ecc → src}/skills/continuous-learning-v2/agents/observer.md +0 -0
- /package/{ecc → src}/skills/continuous-learning-v2/agents/start-observer.sh +0 -0
- /package/{ecc → src}/skills/continuous-learning-v2/config.json +0 -0
- /package/{ecc → src}/skills/continuous-learning-v2/hooks/observe.sh +0 -0
- /package/{ecc → src}/skills/continuous-learning-v2/scripts/detect-project.sh +0 -0
- /package/{ecc → src}/skills/continuous-learning-v2/scripts/instinct-cli.py +0 -0
- /package/{ecc → src}/skills/continuous-learning-v2/scripts/test_parse_instinct.py +0 -0
- /package/{ecc → src}/skills/strategic-compact/SKILL.md +0 -0
- /package/{ecc → src}/skills/strategic-compact/suggest-compact.sh +0 -0
- /package/{ecc/skills/verification-loop-SKILL.md → src/skills/verification-loop/SKILL.md} +0 -0
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# Refactor Clean
|
|
2
|
+
|
|
3
|
+
Safely identify and remove dead code with test verification at every step.
|
|
4
|
+
|
|
5
|
+
## Step 1: Detect Dead Code
|
|
6
|
+
|
|
7
|
+
Run analysis tools based on project type:
|
|
8
|
+
|
|
9
|
+
| Tool | What It Finds | Command |
|
|
10
|
+
|------|--------------|---------|
|
|
11
|
+
| knip | Unused exports, files, dependencies | `npx knip` |
|
|
12
|
+
| depcheck | Unused npm dependencies | `npx depcheck` |
|
|
13
|
+
| ts-prune | Unused TypeScript exports | `npx ts-prune` |
|
|
14
|
+
| vulture | Unused Python code | `vulture src/` |
|
|
15
|
+
| deadcode | Unused Go code | `deadcode ./...` |
|
|
16
|
+
| cargo-udeps | Unused Rust dependencies | `cargo +nightly udeps` |
|
|
17
|
+
|
|
18
|
+
If no tool is available, use Grep to find exports with zero imports:
|
|
19
|
+
```
|
|
20
|
+
# Find exports, then check if they're imported anywhere
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Step 2: Categorize Findings
|
|
24
|
+
|
|
25
|
+
Sort findings into safety tiers:
|
|
26
|
+
|
|
27
|
+
| Tier | Examples | Action |
|
|
28
|
+
|------|----------|--------|
|
|
29
|
+
| **SAFE** | Unused utilities, test helpers, internal functions | Delete with confidence |
|
|
30
|
+
| **CAUTION** | Components, API routes, middleware | Verify no dynamic imports or external consumers |
|
|
31
|
+
| **DANGER** | Config files, entry points, type definitions | Investigate before touching |
|
|
32
|
+
|
|
33
|
+
## Step 3: Safe Deletion Loop
|
|
34
|
+
|
|
35
|
+
For each SAFE item:
|
|
36
|
+
|
|
37
|
+
1. **Run full test suite** — Establish baseline (all green)
|
|
38
|
+
2. **Delete the dead code** — Use Edit tool for surgical removal
|
|
39
|
+
3. **Re-run test suite** — Verify nothing broke
|
|
40
|
+
4. **If tests fail** — Immediately revert with `git checkout -- <file>` and skip this item
|
|
41
|
+
5. **If tests pass** — Move to next item
|
|
42
|
+
|
|
43
|
+
## Step 4: Handle CAUTION Items
|
|
44
|
+
|
|
45
|
+
Before deleting CAUTION items:
|
|
46
|
+
- Search for dynamic imports: `import()`, `require()`, `__import__`
|
|
47
|
+
- Search for string references: route names, component names in configs
|
|
48
|
+
- Check if exported from a public package API
|
|
49
|
+
- Verify no external consumers (check dependents if published)
|
|
50
|
+
|
|
51
|
+
## Step 5: Consolidate Duplicates
|
|
52
|
+
|
|
53
|
+
After removing dead code, look for:
|
|
54
|
+
- Near-duplicate functions (>80% similar) — merge into one
|
|
55
|
+
- Redundant type definitions — consolidate
|
|
56
|
+
- Wrapper functions that add no value — inline them
|
|
57
|
+
- Re-exports that serve no purpose — remove indirection
|
|
58
|
+
|
|
59
|
+
## Step 6: Summary
|
|
60
|
+
|
|
61
|
+
Report results:
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
Dead Code Cleanup
|
|
65
|
+
──────────────────────────────
|
|
66
|
+
Deleted: 12 unused functions
|
|
67
|
+
3 unused files
|
|
68
|
+
5 unused dependencies
|
|
69
|
+
Skipped: 2 items (tests failed)
|
|
70
|
+
Saved: ~450 lines removed
|
|
71
|
+
──────────────────────────────
|
|
72
|
+
All tests passing ✅
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Rules
|
|
76
|
+
|
|
77
|
+
- **Never delete without running tests first**
|
|
78
|
+
- **One deletion at a time** — Atomic changes make rollback easy
|
|
79
|
+
- **Skip if uncertain** — Better to keep dead code than break production
|
|
80
|
+
- **Don't refactor while cleaning** — Separate concerns (clean first, refactor later)
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Scan skills to extract cross-cutting principles and distill them into rules"
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# /rules-distill — Distill Principles from Skills into Rules
|
|
6
|
+
|
|
7
|
+
Scan installed skills, extract cross-cutting principles, and distill them into rules.
|
|
8
|
+
|
|
9
|
+
## Process
|
|
10
|
+
|
|
11
|
+
Follow the full workflow defined in the `rules-distill` skill.
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Fix Rust build errors, borrow checker issues, and dependency problems incrementally. Invokes the rust-build-resolver agent for minimal, surgical fixes.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Rust Build and Fix
|
|
6
|
+
|
|
7
|
+
This command invokes the **rust-build-resolver** agent to incrementally fix Rust build errors with minimal changes.
|
|
8
|
+
|
|
9
|
+
## What This Command Does
|
|
10
|
+
|
|
11
|
+
1. **Run Diagnostics**: Execute `cargo check`, `cargo clippy`, `cargo fmt --check`
|
|
12
|
+
2. **Parse Errors**: Identify error codes and affected files
|
|
13
|
+
3. **Fix Incrementally**: One error at a time
|
|
14
|
+
4. **Verify Each Fix**: Re-run `cargo check` after each change
|
|
15
|
+
5. **Report Summary**: Show what was fixed and what remains
|
|
16
|
+
|
|
17
|
+
## When to Use
|
|
18
|
+
|
|
19
|
+
Use `/rust-build` when:
|
|
20
|
+
- `cargo build` or `cargo check` fails with errors
|
|
21
|
+
- `cargo clippy` reports warnings
|
|
22
|
+
- Borrow checker or lifetime errors block compilation
|
|
23
|
+
- Cargo dependency resolution fails
|
|
24
|
+
- After pulling changes that break the build
|
|
25
|
+
|
|
26
|
+
## Diagnostic Commands Run
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
# Primary build check
|
|
30
|
+
cargo check 2>&1
|
|
31
|
+
|
|
32
|
+
# Lints and suggestions
|
|
33
|
+
cargo clippy -- -D warnings 2>&1
|
|
34
|
+
|
|
35
|
+
# Formatting check
|
|
36
|
+
cargo fmt --check 2>&1
|
|
37
|
+
|
|
38
|
+
# Dependency issues
|
|
39
|
+
cargo tree --duplicates
|
|
40
|
+
|
|
41
|
+
# Security audit (if available)
|
|
42
|
+
if command -v cargo-audit >/dev/null; then cargo audit; else echo "cargo-audit not installed"; fi
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Example Session
|
|
46
|
+
|
|
47
|
+
````text
|
|
48
|
+
User: /rust-build
|
|
49
|
+
|
|
50
|
+
Agent:
|
|
51
|
+
# Rust Build Resolution
|
|
52
|
+
|
|
53
|
+
## Initial Diagnostics
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
$ cargo check
|
|
57
|
+
error[E0502]: cannot borrow `map` as mutable because it is also borrowed as immutable
|
|
58
|
+
--> src/service/cache.rs:25:5
|
|
59
|
+
error[E0308]: mismatched types
|
|
60
|
+
--> src/handler/api.rs:42:12
|
|
61
|
+
error[E0425]: cannot find value `db` in this scope
|
|
62
|
+
--> src/handler/api.rs:58:9
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Errors found: 3
|
|
66
|
+
|
|
67
|
+
## Fix 1: Borrow Checker Error
|
|
68
|
+
|
|
69
|
+
File: src/service/cache.rs:25
|
|
70
|
+
Error: E0502 — cannot borrow `map` as mutable because also borrowed as immutable
|
|
71
|
+
Cause: Immutable borrow still active during mutable insert
|
|
72
|
+
|
|
73
|
+
```rust
|
|
74
|
+
// Changed: restructured to end immutable borrow before mutable access
|
|
75
|
+
if !map.contains_key("key") {
|
|
76
|
+
map.insert("key".into(), default);
|
|
77
|
+
}
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
$ cargo check
|
|
82
|
+
# 2 errors remaining
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Fix 2: Type Mismatch
|
|
86
|
+
|
|
87
|
+
File: src/handler/api.rs:42
|
|
88
|
+
Error: E0308 — mismatched types: expected `usize`, found `&str`
|
|
89
|
+
|
|
90
|
+
```rust
|
|
91
|
+
// Changed
|
|
92
|
+
let count = params.get("count");
|
|
93
|
+
// To
|
|
94
|
+
let count: usize = params.get("count")
|
|
95
|
+
.and_then(|s| s.parse().ok())
|
|
96
|
+
.unwrap_or(0);
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
$ cargo check
|
|
101
|
+
# 1 error remaining
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## Fix 3: Unresolved Name
|
|
105
|
+
|
|
106
|
+
File: src/handler/api.rs:58
|
|
107
|
+
Error: E0425 — cannot find value `db` in this scope
|
|
108
|
+
Cause: Missing import
|
|
109
|
+
|
|
110
|
+
```rust
|
|
111
|
+
// Added
|
|
112
|
+
use crate::db;
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
$ cargo check
|
|
117
|
+
# Build successful!
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## Final Verification
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
$ cargo clippy -- -D warnings
|
|
124
|
+
# No warnings
|
|
125
|
+
|
|
126
|
+
$ cargo test
|
|
127
|
+
running 6 tests
|
|
128
|
+
test service::cache::tests::test_insert ... ok
|
|
129
|
+
test service::cache::tests::test_get ... ok
|
|
130
|
+
test handler::api::tests::test_parse_count ... ok
|
|
131
|
+
test handler::api::tests::test_missing_count ... ok
|
|
132
|
+
test handler::api::tests::test_db_import ... ok
|
|
133
|
+
test handler::api::tests::test_response ... ok
|
|
134
|
+
|
|
135
|
+
test result: ok. 6 passed; 0 failed; 0 ignored
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
## Summary
|
|
139
|
+
|
|
140
|
+
| Metric | Count |
|
|
141
|
+
|--------|-------|
|
|
142
|
+
| Build errors fixed | 3 |
|
|
143
|
+
| Clippy warnings fixed | 0 |
|
|
144
|
+
| Files modified | 2 |
|
|
145
|
+
| Remaining issues | 0 |
|
|
146
|
+
|
|
147
|
+
Build Status: SUCCESS
|
|
148
|
+
````
|
|
149
|
+
|
|
150
|
+
## Common Errors Fixed
|
|
151
|
+
|
|
152
|
+
| Error | Typical Fix |
|
|
153
|
+
|-------|-------------|
|
|
154
|
+
| `cannot borrow as mutable` | Restructure to end immutable borrow first; clone only if justified |
|
|
155
|
+
| `does not live long enough` | Use owned type or add lifetime annotation |
|
|
156
|
+
| `cannot move out of` | Restructure to take ownership; clone only as last resort |
|
|
157
|
+
| `mismatched types` | Add `.into()`, `as`, or explicit conversion |
|
|
158
|
+
| `trait X not implemented` | Add `#[derive(Trait)]` or implement manually |
|
|
159
|
+
| `unresolved import` | Add to Cargo.toml or fix `use` path |
|
|
160
|
+
| `cannot find value` | Add import or fix path |
|
|
161
|
+
|
|
162
|
+
## Fix Strategy
|
|
163
|
+
|
|
164
|
+
1. **Build errors first** - Code must compile
|
|
165
|
+
2. **Clippy warnings second** - Fix suspicious constructs
|
|
166
|
+
3. **Formatting third** - `cargo fmt` compliance
|
|
167
|
+
4. **One fix at a time** - Verify each change
|
|
168
|
+
5. **Minimal changes** - Don't refactor, just fix
|
|
169
|
+
|
|
170
|
+
## Stop Conditions
|
|
171
|
+
|
|
172
|
+
The agent will stop and report if:
|
|
173
|
+
- Same error persists after 3 attempts
|
|
174
|
+
- Fix introduces more errors
|
|
175
|
+
- Requires architectural changes
|
|
176
|
+
- Borrow checker error requires redesigning data ownership
|
|
177
|
+
|
|
178
|
+
## Related Commands
|
|
179
|
+
|
|
180
|
+
- `/rust-test` - Run tests after build succeeds
|
|
181
|
+
- `/rust-review` - Review code quality
|
|
182
|
+
- `/verify` - Full verification loop
|
|
183
|
+
|
|
184
|
+
## Related
|
|
185
|
+
|
|
186
|
+
- Agent: `agents/rust-build-resolver.md`
|
|
187
|
+
- Skill: `skills/rust-patterns/`
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Comprehensive Rust code review for ownership, lifetimes, error handling, unsafe usage, and idiomatic patterns. Invokes the rust-reviewer agent.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Rust Code Review
|
|
6
|
+
|
|
7
|
+
This command invokes the **rust-reviewer** agent for comprehensive Rust-specific code review.
|
|
8
|
+
|
|
9
|
+
## What This Command Does
|
|
10
|
+
|
|
11
|
+
1. **Verify Automated Checks**: Run `cargo check`, `cargo clippy -- -D warnings`, `cargo fmt --check`, and `cargo test` — stop if any fail
|
|
12
|
+
2. **Identify Rust Changes**: Find modified `.rs` files via `git diff HEAD~1` (or `git diff main...HEAD` for PRs)
|
|
13
|
+
3. **Run Security Audit**: Execute `cargo audit` if available
|
|
14
|
+
4. **Security Scan**: Check for unsafe usage, command injection, hardcoded secrets
|
|
15
|
+
5. **Ownership Review**: Analyze unnecessary clones, lifetime issues, borrowing patterns
|
|
16
|
+
6. **Generate Report**: Categorize issues by severity
|
|
17
|
+
|
|
18
|
+
## When to Use
|
|
19
|
+
|
|
20
|
+
Use `/rust-review` when:
|
|
21
|
+
- After writing or modifying Rust code
|
|
22
|
+
- Before committing Rust changes
|
|
23
|
+
- Reviewing pull requests with Rust code
|
|
24
|
+
- Onboarding to a new Rust codebase
|
|
25
|
+
- Learning idiomatic Rust patterns
|
|
26
|
+
|
|
27
|
+
## Review Categories
|
|
28
|
+
|
|
29
|
+
### CRITICAL (Must Fix)
|
|
30
|
+
- Unchecked `unwrap()`/`expect()` in production code paths
|
|
31
|
+
- `unsafe` without `// SAFETY:` comment documenting invariants
|
|
32
|
+
- SQL injection via string interpolation in queries
|
|
33
|
+
- Command injection via unvalidated input in `std::process::Command`
|
|
34
|
+
- Hardcoded credentials
|
|
35
|
+
- Use-after-free via raw pointers
|
|
36
|
+
|
|
37
|
+
### HIGH (Should Fix)
|
|
38
|
+
- Unnecessary `.clone()` to satisfy borrow checker
|
|
39
|
+
- `String` parameter where `&str` or `impl AsRef<str>` suffices
|
|
40
|
+
- Blocking in async context (`std::thread::sleep`, `std::fs`)
|
|
41
|
+
- Missing `Send`/`Sync` bounds on shared types
|
|
42
|
+
- Wildcard `_ =>` match on business-critical enums
|
|
43
|
+
- Large functions (>50 lines)
|
|
44
|
+
|
|
45
|
+
### MEDIUM (Consider)
|
|
46
|
+
- Unnecessary allocation in hot paths
|
|
47
|
+
- Missing `with_capacity` when size is known
|
|
48
|
+
- Suppressed clippy warnings without justification
|
|
49
|
+
- Public API without `///` documentation
|
|
50
|
+
- Consider `#[must_use]` on non-`must_use` return types where ignoring values is likely a bug
|
|
51
|
+
|
|
52
|
+
## Automated Checks Run
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
# Build gate (must pass before review)
|
|
56
|
+
cargo check
|
|
57
|
+
|
|
58
|
+
# Lints and suggestions
|
|
59
|
+
cargo clippy -- -D warnings
|
|
60
|
+
|
|
61
|
+
# Formatting
|
|
62
|
+
cargo fmt --check
|
|
63
|
+
|
|
64
|
+
# Tests
|
|
65
|
+
cargo test
|
|
66
|
+
|
|
67
|
+
# Security audit (if available)
|
|
68
|
+
if command -v cargo-audit >/dev/null; then cargo audit; else echo "cargo-audit not installed"; fi
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## Example Usage
|
|
72
|
+
|
|
73
|
+
````text
|
|
74
|
+
User: /rust-review
|
|
75
|
+
|
|
76
|
+
Agent:
|
|
77
|
+
# Rust Code Review Report
|
|
78
|
+
|
|
79
|
+
## Files Reviewed
|
|
80
|
+
- src/service/user.rs (modified)
|
|
81
|
+
- src/handler/api.rs (modified)
|
|
82
|
+
|
|
83
|
+
## Static Analysis Results
|
|
84
|
+
- Build: Successful
|
|
85
|
+
- Clippy: No warnings
|
|
86
|
+
- Formatting: Passed
|
|
87
|
+
- Tests: All passing
|
|
88
|
+
|
|
89
|
+
## Issues Found
|
|
90
|
+
|
|
91
|
+
[CRITICAL] Unchecked unwrap in Production Path
|
|
92
|
+
File: src/service/user.rs:28
|
|
93
|
+
Issue: Using `.unwrap()` on database query result
|
|
94
|
+
```rust
|
|
95
|
+
let user = db.find_by_id(id).unwrap(); // Panics on missing user
|
|
96
|
+
```
|
|
97
|
+
Fix: Propagate error with context
|
|
98
|
+
```rust
|
|
99
|
+
let user = db.find_by_id(id)
|
|
100
|
+
.context("failed to fetch user")?;
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
[HIGH] Unnecessary Clone
|
|
104
|
+
File: src/handler/api.rs:45
|
|
105
|
+
Issue: Cloning String to satisfy borrow checker
|
|
106
|
+
```rust
|
|
107
|
+
let name = user.name.clone();
|
|
108
|
+
process(&user, &name);
|
|
109
|
+
```
|
|
110
|
+
Fix: Restructure to avoid clone
|
|
111
|
+
```rust
|
|
112
|
+
let result = process_name(&user.name);
|
|
113
|
+
use_user(&user, result);
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
## Summary
|
|
117
|
+
- CRITICAL: 1
|
|
118
|
+
- HIGH: 1
|
|
119
|
+
- MEDIUM: 0
|
|
120
|
+
|
|
121
|
+
Recommendation: Block merge until CRITICAL issue is fixed
|
|
122
|
+
````
|
|
123
|
+
|
|
124
|
+
## Approval Criteria
|
|
125
|
+
|
|
126
|
+
| Status | Condition |
|
|
127
|
+
|--------|-----------|
|
|
128
|
+
| Approve | No CRITICAL or HIGH issues |
|
|
129
|
+
| Warning | Only MEDIUM issues (merge with caution) |
|
|
130
|
+
| Block | CRITICAL or HIGH issues found |
|
|
131
|
+
|
|
132
|
+
## Integration with Other Commands
|
|
133
|
+
|
|
134
|
+
- Use `/rust-test` first to ensure tests pass
|
|
135
|
+
- Use `/rust-build` if build errors occur
|
|
136
|
+
- Use `/rust-review` before committing
|
|
137
|
+
- Use `/code-review` for non-Rust-specific concerns
|
|
138
|
+
|
|
139
|
+
## Related
|
|
140
|
+
|
|
141
|
+
- Agent: `agents/rust-reviewer.md`
|
|
142
|
+
- Skills: `skills/rust-patterns/`, `skills/rust-testing/`
|