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.
Files changed (455) hide show
  1. package/bin/install.js +267 -250
  2. package/manifest.json +5 -18
  3. package/package.json +5 -7
  4. package/src/agents/build-error-resolver.md +114 -0
  5. package/src/agents/ccp-advisor-researcher.md +104 -0
  6. package/src/agents/ccp-assumptions-analyzer.md +105 -0
  7. package/{gsd/agents/gsd-codebase-mapper.md → src/agents/ccp-codebase-mapper.md} +7 -7
  8. package/{gsd/agents/gsd-debugger.md → src/agents/ccp-debugger.md} +125 -8
  9. package/{gsd/agents/gsd-executor.md → src/agents/ccp-executor.md} +31 -20
  10. package/{gsd/agents/gsd-integration-checker.md → src/agents/ccp-integration-checker.md} +2 -2
  11. package/{gsd/agents/gsd-nyquist-auditor.md → src/agents/ccp-nyquist-auditor.md} +3 -3
  12. package/{gsd/agents/gsd-phase-researcher.md → src/agents/ccp-phase-researcher.md} +127 -13
  13. package/{gsd/agents/gsd-plan-checker.md → src/agents/ccp-plan-checker.md} +57 -21
  14. package/{gsd/agents/gsd-planner.md → src/agents/ccp-planner.md} +61 -23
  15. package/{gsd/agents/gsd-project-researcher.md → src/agents/ccp-project-researcher.md} +33 -6
  16. package/{gsd/agents/gsd-research-synthesizer.md → src/agents/ccp-research-synthesizer.md} +11 -11
  17. package/{gsd/agents/gsd-roadmapper.md → src/agents/ccp-roadmapper.md} +39 -10
  18. package/src/agents/ccp-ui-auditor.md +439 -0
  19. package/src/agents/ccp-ui-checker.md +300 -0
  20. package/src/agents/ccp-ui-researcher.md +357 -0
  21. package/{gsd/agents/gsd-verifier.md → src/agents/ccp-verifier.md} +81 -15
  22. package/src/agents/cpp-build-resolver.md +90 -0
  23. package/src/agents/cpp-reviewer.md +72 -0
  24. package/src/agents/database-reviewer.md +91 -0
  25. package/src/agents/docs-lookup.md +68 -0
  26. package/src/agents/flutter-reviewer.md +243 -0
  27. package/src/agents/go-build-resolver.md +94 -0
  28. package/src/agents/go-reviewer.md +76 -0
  29. package/src/agents/java-build-resolver.md +153 -0
  30. package/src/agents/java-reviewer.md +92 -0
  31. package/src/agents/kotlin-build-resolver.md +118 -0
  32. package/src/agents/kotlin-reviewer.md +159 -0
  33. package/src/agents/planner.md +212 -0
  34. package/src/agents/python-reviewer.md +98 -0
  35. package/src/agents/pytorch-build-resolver.md +120 -0
  36. package/src/agents/refactor-cleaner.md +85 -0
  37. package/src/agents/rust-build-resolver.md +148 -0
  38. package/src/agents/rust-reviewer.md +94 -0
  39. package/src/agents/typescript-reviewer.md +112 -0
  40. package/src/available-rules/README.md +80 -0
  41. package/src/available-rules/cpp/coding-style.md +44 -0
  42. package/src/available-rules/cpp/hooks.md +39 -0
  43. package/src/available-rules/cpp/patterns.md +51 -0
  44. package/src/available-rules/cpp/security.md +51 -0
  45. package/src/available-rules/cpp/testing.md +44 -0
  46. package/src/available-rules/csharp/coding-style.md +72 -0
  47. package/src/available-rules/csharp/hooks.md +25 -0
  48. package/src/available-rules/csharp/patterns.md +50 -0
  49. package/src/available-rules/csharp/security.md +58 -0
  50. package/src/available-rules/csharp/testing.md +46 -0
  51. package/src/available-rules/java/coding-style.md +114 -0
  52. package/src/available-rules/java/hooks.md +18 -0
  53. package/src/available-rules/java/patterns.md +146 -0
  54. package/src/available-rules/java/security.md +100 -0
  55. package/src/available-rules/java/testing.md +131 -0
  56. package/src/available-rules/kotlin/hooks.md +17 -0
  57. package/src/available-rules/rust/coding-style.md +151 -0
  58. package/src/available-rules/rust/hooks.md +16 -0
  59. package/src/available-rules/rust/patterns.md +168 -0
  60. package/src/available-rules/rust/security.md +141 -0
  61. package/src/available-rules/rust/testing.md +154 -0
  62. package/src/commands/aside.md +164 -0
  63. package/src/commands/build-fix.md +62 -0
  64. package/src/commands/ccp/add-backlog.md +76 -0
  65. package/{gsd/commands-gsd → src/commands/ccp}/add-phase.md +3 -3
  66. package/{gsd/commands-gsd → src/commands/ccp}/add-tests.md +5 -5
  67. package/{gsd/commands-gsd → src/commands/ccp}/add-todo.md +4 -4
  68. package/{gsd/commands-gsd → src/commands/ccp}/audit-milestone.md +3 -3
  69. package/src/commands/ccp/audit-uat.md +24 -0
  70. package/src/commands/ccp/autonomous.md +41 -0
  71. package/{gsd/commands-gsd → src/commands/ccp}/check-todos.md +3 -3
  72. package/{gsd/commands-gsd → src/commands/ccp}/cleanup.md +3 -3
  73. package/{gsd/commands-gsd → src/commands/ccp}/complete-milestone.md +9 -9
  74. package/{gsd/commands-gsd → src/commands/ccp}/debug.md +14 -9
  75. package/src/commands/ccp/discuss-phase.md +64 -0
  76. package/src/commands/ccp/do.md +30 -0
  77. package/src/commands/ccp/execute-phase.md +59 -0
  78. package/src/commands/ccp/fast.md +30 -0
  79. package/src/commands/ccp/forensics.md +56 -0
  80. package/{gsd/commands-gsd → src/commands/ccp}/health.md +3 -3
  81. package/{gsd/commands-gsd → src/commands/ccp}/help.md +5 -5
  82. package/{gsd/commands-gsd → src/commands/ccp}/insert-phase.md +3 -3
  83. package/{gsd/commands-gsd → src/commands/ccp}/list-phase-assumptions.md +2 -2
  84. package/src/commands/ccp/manager.md +39 -0
  85. package/{gsd/commands-gsd → src/commands/ccp}/map-codebase.md +7 -7
  86. package/src/commands/ccp/milestone-summary.md +51 -0
  87. package/{gsd/commands-gsd → src/commands/ccp}/new-milestone.md +8 -8
  88. package/{gsd/commands-gsd → src/commands/ccp}/new-project.md +8 -8
  89. package/src/commands/ccp/next.md +24 -0
  90. package/src/commands/ccp/note.md +34 -0
  91. package/{gsd/commands-gsd → src/commands/ccp}/pause-work.md +3 -3
  92. package/{gsd/commands-gsd → src/commands/ccp}/plan-milestone-gaps.md +5 -5
  93. package/{gsd/commands-gsd → src/commands/ccp}/plan-phase.md +9 -7
  94. package/src/commands/ccp/plant-seed.md +28 -0
  95. package/src/commands/ccp/pr-branch.md +25 -0
  96. package/{gsd/commands-gsd → src/commands/ccp}/progress.md +3 -3
  97. package/{gsd/commands-gsd → src/commands/ccp}/quick.md +10 -8
  98. package/{gsd/commands-gsd → src/commands/ccp}/remove-phase.md +3 -3
  99. package/{gsd/commands-gsd → src/commands/ccp}/research-phase.md +17 -12
  100. package/{gsd/commands-gsd → src/commands/ccp}/resume-work.md +3 -3
  101. package/src/commands/ccp/review-backlog.md +61 -0
  102. package/src/commands/ccp/session-report.md +19 -0
  103. package/src/commands/ccp/set-profile.md +12 -0
  104. package/{gsd/commands-gsd → src/commands/ccp}/settings.md +5 -5
  105. package/src/commands/ccp/ship.md +23 -0
  106. package/src/commands/ccp/stats.md +18 -0
  107. package/src/commands/ccp/thread.md +127 -0
  108. package/src/commands/ccp/ui-phase.md +34 -0
  109. package/src/commands/ccp/ui-review.md +32 -0
  110. package/{gsd/commands-gsd → src/commands/ccp}/update.md +5 -5
  111. package/{gsd/commands-gsd → src/commands/ccp}/validate-phase.md +3 -3
  112. package/{gsd/commands-gsd → src/commands/ccp}/verify-work.md +5 -5
  113. package/src/commands/code-review.md +40 -0
  114. package/src/commands/context-budget.md +29 -0
  115. package/src/commands/cpp-build.md +173 -0
  116. package/src/commands/cpp-review.md +132 -0
  117. package/src/commands/cpp-test.md +251 -0
  118. package/src/commands/docs.md +31 -0
  119. package/src/commands/e2e.md +364 -0
  120. package/src/commands/eval.md +120 -0
  121. package/{ecc → src}/commands/evolve.md +2 -2
  122. package/src/commands/go-build.md +183 -0
  123. package/src/commands/go-review.md +148 -0
  124. package/src/commands/go-test.md +268 -0
  125. package/src/commands/gradle-build.md +70 -0
  126. package/src/commands/harness-audit.md +71 -0
  127. package/src/commands/kotlin-build.md +174 -0
  128. package/src/commands/kotlin-review.md +140 -0
  129. package/src/commands/kotlin-test.md +312 -0
  130. package/src/commands/orchestrate.md +231 -0
  131. package/src/commands/plan.md +114 -0
  132. package/src/commands/prompt-optimize.md +38 -0
  133. package/src/commands/prune.md +25 -0
  134. package/src/commands/python-review.md +297 -0
  135. package/{ecc → src}/commands/quality-gate.md +1 -1
  136. package/src/commands/refactor-clean.md +80 -0
  137. package/src/commands/rules-distill.md +11 -0
  138. package/src/commands/rust-build.md +187 -0
  139. package/src/commands/rust-review.md +142 -0
  140. package/src/commands/rust-test.md +308 -0
  141. package/{ecc → src}/commands/sessions.md +10 -10
  142. package/src/commands/setup-pm.md +80 -0
  143. package/{kit → src}/commands/setup.md +45 -19
  144. package/src/commands/skill-create.md +172 -0
  145. package/src/commands/skill-health.md +51 -0
  146. package/src/commands/tdd.md +328 -0
  147. package/src/commands/test-coverage.md +69 -0
  148. package/src/commands/update-codemaps.md +72 -0
  149. package/src/commands/update-docs.md +84 -0
  150. package/{gsd/hooks/gsd-context-monitor.js → src/hooks/ccp-context-monitor.js} +3 -3
  151. package/src/hooks/ccp-prompt-guard.js +96 -0
  152. package/{gsd/hooks/gsd-statusline.js → src/hooks/ccp-statusline.js} +7 -7
  153. package/src/hooks/ccp-workflow-guard.js +94 -0
  154. package/src/hooks/config-protection.js +141 -0
  155. package/{kit → src}/hooks/kit-check-update.js +7 -4
  156. package/src/hooks/mcp-health-check.js +620 -0
  157. package/{ecc/scripts → src}/hooks/run-with-flags-shell.sh +1 -1
  158. package/{ecc/scripts → src}/hooks/run-with-flags.js +74 -13
  159. package/src/hooks/session-end-marker.js +29 -0
  160. package/{ecc/scripts → src}/hooks/session-end.js +83 -40
  161. package/{ecc/scripts → src}/hooks/session-start.js +75 -9
  162. package/{ecc/scripts → src}/lib/hook-flags.js +8 -4
  163. package/{ecc/scripts → src}/lib/project-detect.js +2 -1
  164. package/{ecc/scripts → src}/lib/session-manager.d.ts +5 -1
  165. package/{ecc/scripts → src}/lib/session-manager.js +202 -92
  166. package/{ecc/scripts → src}/lib/utils.d.ts +23 -1
  167. package/{ecc/scripts → src}/lib/utils.js +91 -3
  168. package/{gsd/get-shit-done/bin/gsd-tools.cjs → src/pilot/bin/ccp-tools.cjs} +257 -86
  169. package/{gsd/get-shit-done → src/pilot}/bin/lib/commands.cjs +1 -1
  170. package/src/pilot/bin/lib/config.cjs +444 -0
  171. package/src/pilot/bin/lib/core.cjs +1190 -0
  172. package/src/pilot/bin/lib/init.cjs +1281 -0
  173. package/src/pilot/bin/lib/model-profiles.cjs +67 -0
  174. package/{gsd/get-shit-done → src/pilot}/bin/lib/phase.cjs +2 -2
  175. package/src/pilot/bin/lib/security.cjs +382 -0
  176. package/{gsd/get-shit-done → src/pilot}/bin/lib/state.cjs +1 -1
  177. package/src/pilot/bin/lib/uat.cjs +282 -0
  178. package/{gsd/get-shit-done → src/pilot}/bin/lib/verify.cjs +10 -10
  179. package/{gsd/get-shit-done → src/pilot}/references/continuation-format.md +16 -16
  180. package/{gsd/get-shit-done → src/pilot}/references/decimal-phase-calculation.md +5 -5
  181. package/{gsd/get-shit-done → src/pilot}/references/git-integration.md +5 -5
  182. package/{gsd/get-shit-done → src/pilot}/references/git-planning-commit.md +4 -4
  183. package/src/pilot/references/mcp-servers.json +153 -0
  184. package/{gsd/get-shit-done → src/pilot}/references/model-profile-resolution.md +2 -2
  185. package/{gsd/get-shit-done → src/pilot}/references/model-profiles.md +20 -20
  186. package/{gsd/get-shit-done → src/pilot}/references/phase-argument-parsing.md +4 -4
  187. package/{gsd/get-shit-done → src/pilot}/references/planning-config.md +15 -15
  188. package/{gsd/get-shit-done → src/pilot}/references/ui-brand.md +5 -5
  189. package/{gsd/get-shit-done → src/pilot}/references/verification-patterns.md +1 -1
  190. package/{gsd/get-shit-done → src/pilot}/templates/DEBUG.md +1 -1
  191. package/{gsd/get-shit-done → src/pilot}/templates/UAT.md +3 -3
  192. package/src/pilot/templates/UI-SPEC.md +100 -0
  193. package/{gsd/get-shit-done → src/pilot}/templates/VALIDATION.md +1 -1
  194. package/src/pilot/templates/claude-md.md +122 -0
  195. package/{gsd/get-shit-done → src/pilot}/templates/codebase/architecture.md +2 -2
  196. package/{gsd/get-shit-done → src/pilot}/templates/codebase/structure.md +13 -13
  197. package/{gsd/get-shit-done → src/pilot}/templates/context.md +4 -4
  198. package/src/pilot/templates/copilot-instructions.md +7 -0
  199. package/{gsd/get-shit-done → src/pilot}/templates/debug-subagent-prompt.md +4 -4
  200. package/src/pilot/templates/dev-preferences.md +21 -0
  201. package/{gsd/get-shit-done → src/pilot}/templates/discovery.md +2 -2
  202. package/src/pilot/templates/discussion-log.md +63 -0
  203. package/{gsd/get-shit-done → src/pilot}/templates/phase-prompt.md +12 -12
  204. package/{gsd/get-shit-done → src/pilot}/templates/planner-subagent-prompt.md +7 -7
  205. package/{gsd/get-shit-done → src/pilot}/templates/project.md +1 -1
  206. package/{gsd/get-shit-done → src/pilot}/templates/research.md +2 -2
  207. package/{gsd/get-shit-done → src/pilot}/templates/state.md +2 -2
  208. package/{gsd/get-shit-done → src/pilot}/templates/summary-complex.md +1 -1
  209. package/{gsd/get-shit-done → src/pilot}/workflows/add-phase.md +11 -11
  210. package/{gsd/get-shit-done → src/pilot}/workflows/add-tests.md +15 -15
  211. package/{gsd/get-shit-done → src/pilot}/workflows/add-todo.md +7 -7
  212. package/{gsd/get-shit-done → src/pilot}/workflows/audit-milestone.md +24 -16
  213. package/src/pilot/workflows/audit-uat.md +109 -0
  214. package/src/pilot/workflows/autonomous.md +891 -0
  215. package/{gsd/get-shit-done → src/pilot}/workflows/check-todos.md +10 -10
  216. package/{gsd/get-shit-done → src/pilot}/workflows/cleanup.md +3 -3
  217. package/{gsd/get-shit-done → src/pilot}/workflows/complete-milestone.md +19 -16
  218. package/{gsd/get-shit-done → src/pilot}/workflows/diagnose-issues.md +9 -4
  219. package/{gsd/get-shit-done → src/pilot}/workflows/discovery-phase.md +8 -8
  220. package/src/pilot/workflows/discuss-phase-assumptions.md +653 -0
  221. package/{gsd/get-shit-done → src/pilot}/workflows/discuss-phase.md +407 -49
  222. package/src/pilot/workflows/do.md +104 -0
  223. package/src/pilot/workflows/execute-phase.md +821 -0
  224. package/{gsd/get-shit-done → src/pilot}/workflows/execute-plan.md +79 -28
  225. package/src/pilot/workflows/fast.md +105 -0
  226. package/src/pilot/workflows/forensics.md +265 -0
  227. package/{gsd/get-shit-done → src/pilot}/workflows/health.md +34 -11
  228. package/src/pilot/workflows/help.md +775 -0
  229. package/{gsd/get-shit-done → src/pilot}/workflows/insert-phase.md +10 -10
  230. package/{gsd/get-shit-done → src/pilot}/workflows/list-phase-assumptions.md +4 -4
  231. package/src/pilot/workflows/manager.md +362 -0
  232. package/{gsd/get-shit-done → src/pilot}/workflows/map-codebase.md +27 -17
  233. package/src/pilot/workflows/milestone-summary.md +223 -0
  234. package/{gsd/get-shit-done → src/pilot}/workflows/new-milestone.md +135 -33
  235. package/{gsd/get-shit-done → src/pilot}/workflows/new-project.md +152 -79
  236. package/src/pilot/workflows/next.md +97 -0
  237. package/src/pilot/workflows/node-repair.md +92 -0
  238. package/src/pilot/workflows/note.md +156 -0
  239. package/src/pilot/workflows/pause-work.md +177 -0
  240. package/{gsd/get-shit-done → src/pilot}/workflows/plan-milestone-gaps.md +10 -11
  241. package/src/pilot/workflows/plan-phase.md +859 -0
  242. package/src/pilot/workflows/plant-seed.md +169 -0
  243. package/src/pilot/workflows/pr-branch.md +129 -0
  244. package/{gsd/get-shit-done → src/pilot}/workflows/progress.md +95 -34
  245. package/{gsd/get-shit-done → src/pilot}/workflows/quick.md +33 -21
  246. package/{gsd/get-shit-done → src/pilot}/workflows/remove-phase.md +14 -14
  247. package/{gsd/get-shit-done → src/pilot}/workflows/research-phase.md +18 -10
  248. package/{gsd/get-shit-done → src/pilot}/workflows/resume-project.md +37 -18
  249. package/src/pilot/workflows/session-report.md +146 -0
  250. package/{gsd/get-shit-done → src/pilot}/workflows/set-profile.md +7 -7
  251. package/{gsd/get-shit-done → src/pilot}/workflows/settings.md +75 -22
  252. package/src/pilot/workflows/ship.md +228 -0
  253. package/src/pilot/workflows/stats.md +60 -0
  254. package/{gsd/get-shit-done → src/pilot}/workflows/transition.md +57 -17
  255. package/src/pilot/workflows/ui-phase.md +302 -0
  256. package/src/pilot/workflows/ui-review.md +165 -0
  257. package/{gsd/get-shit-done → src/pilot}/workflows/update.md +88 -58
  258. package/{gsd/get-shit-done → src/pilot}/workflows/validate-phase.md +24 -17
  259. package/{gsd/get-shit-done → src/pilot}/workflows/verify-phase.md +26 -15
  260. package/{gsd/get-shit-done → src/pilot}/workflows/verify-work.md +89 -37
  261. package/{ecc → src}/rules/common/agents.md +1 -0
  262. package/{ecc → src}/rules/common/coding-style.md +21 -0
  263. package/src/skills/agentic-engineering/SKILL.md +63 -0
  264. package/src/skills/ai-first-engineering/SKILL.md +51 -0
  265. package/src/skills/ai-regression-testing/SKILL.md +385 -0
  266. package/src/skills/api-design/SKILL.md +523 -0
  267. package/src/skills/architecture-decision-records/SKILL.md +179 -0
  268. package/src/skills/backend-patterns/SKILL.md +598 -0
  269. package/src/skills/benchmark/SKILL.md +87 -0
  270. package/src/skills/blueprint/SKILL.md +90 -0
  271. package/src/skills/browser-qa/SKILL.md +81 -0
  272. package/src/skills/claude-api/SKILL.md +337 -0
  273. package/src/skills/codebase-onboarding/SKILL.md +233 -0
  274. package/src/skills/coding-standards/SKILL.md +530 -0
  275. package/src/skills/context-budget/SKILL.md +135 -0
  276. package/{ecc → src}/skills/continuous-learning-v2/SKILL.md +2 -2
  277. package/{ecc → src}/skills/continuous-learning-v2/agents/observer-loop.sh +1 -1
  278. package/src/skills/cpp-coding-standards/SKILL.md +723 -0
  279. package/src/skills/cpp-testing/SKILL.md +324 -0
  280. package/src/skills/database-migrations/SKILL.md +429 -0
  281. package/src/skills/deep-research/SKILL.md +155 -0
  282. package/src/skills/deployment-patterns/SKILL.md +427 -0
  283. package/src/skills/django-patterns/SKILL.md +734 -0
  284. package/src/skills/django-security/SKILL.md +593 -0
  285. package/src/skills/django-tdd/SKILL.md +729 -0
  286. package/src/skills/django-verification/SKILL.md +469 -0
  287. package/src/skills/docker-patterns/SKILL.md +364 -0
  288. package/src/skills/documentation-lookup/SKILL.md +90 -0
  289. package/src/skills/e2e-testing/SKILL.md +326 -0
  290. package/src/skills/exa-search/SKILL.md +103 -0
  291. package/src/skills/frontend-patterns/SKILL.md +642 -0
  292. package/src/skills/golang-patterns/SKILL.md +674 -0
  293. package/src/skills/golang-testing/SKILL.md +720 -0
  294. package/src/skills/java-coding-standards/SKILL.md +147 -0
  295. package/src/skills/jpa-patterns/SKILL.md +151 -0
  296. package/src/skills/kotlin-coroutines-flows/SKILL.md +284 -0
  297. package/src/skills/kotlin-exposed-patterns/SKILL.md +719 -0
  298. package/src/skills/kotlin-ktor-patterns/SKILL.md +689 -0
  299. package/src/skills/kotlin-patterns/SKILL.md +711 -0
  300. package/src/skills/kotlin-testing/SKILL.md +824 -0
  301. package/src/skills/laravel-patterns/SKILL.md +415 -0
  302. package/src/skills/laravel-security/SKILL.md +285 -0
  303. package/src/skills/laravel-tdd/SKILL.md +283 -0
  304. package/src/skills/laravel-verification/SKILL.md +179 -0
  305. package/src/skills/mcp-server-patterns/SKILL.md +67 -0
  306. package/src/skills/perl-patterns/SKILL.md +504 -0
  307. package/src/skills/perl-testing/SKILL.md +475 -0
  308. package/src/skills/postgres-patterns/SKILL.md +147 -0
  309. package/src/skills/prompt-optimizer/SKILL.md +397 -0
  310. package/src/skills/python-patterns/SKILL.md +750 -0
  311. package/src/skills/python-testing/SKILL.md +816 -0
  312. package/src/skills/rust-patterns/SKILL.md +499 -0
  313. package/src/skills/rust-testing/SKILL.md +500 -0
  314. package/src/skills/safety-guard/SKILL.md +69 -0
  315. package/src/skills/search-first/SKILL.md +161 -0
  316. package/src/skills/security-review/SKILL.md +495 -0
  317. package/src/skills/security-review/cloud-infrastructure-security.md +361 -0
  318. package/src/skills/security-scan/SKILL.md +165 -0
  319. package/src/skills/springboot-patterns/SKILL.md +314 -0
  320. package/src/skills/springboot-security/SKILL.md +272 -0
  321. package/src/skills/springboot-tdd/SKILL.md +158 -0
  322. package/src/skills/springboot-verification/SKILL.md +231 -0
  323. package/src/skills/tdd-workflow/SKILL.md +410 -0
  324. package/ecc/scripts/hooks/session-end-marker.js +0 -15
  325. package/gsd/LICENSE +0 -21
  326. package/gsd/commands-gsd/discuss-phase.md +0 -90
  327. package/gsd/commands-gsd/execute-phase.md +0 -41
  328. package/gsd/commands-gsd/join-discord.md +0 -18
  329. package/gsd/commands-gsd/reapply-patches.md +0 -123
  330. package/gsd/commands-gsd/set-profile.md +0 -34
  331. package/gsd/get-shit-done/bin/lib/config.cjs +0 -169
  332. package/gsd/get-shit-done/bin/lib/core.cjs +0 -492
  333. package/gsd/get-shit-done/bin/lib/init.cjs +0 -710
  334. package/gsd/get-shit-done/workflows/execute-phase.md +0 -459
  335. package/gsd/get-shit-done/workflows/help.md +0 -489
  336. package/gsd/get-shit-done/workflows/pause-work.md +0 -122
  337. package/gsd/get-shit-done/workflows/plan-phase.md +0 -560
  338. package/gsd/hooks/gsd-check-update.js +0 -81
  339. package/kit/CLAUDE.md +0 -43
  340. package/kit/commands/kit/update.md +0 -46
  341. package/kit/mcp.json +0 -10
  342. package/kit/rules/code-style.md +0 -24
  343. /package/{ecc → src}/agents/architect.md +0 -0
  344. /package/{ecc → src}/agents/code-reviewer.md +0 -0
  345. /package/{ecc → src}/agents/doc-updater.md +0 -0
  346. /package/{ecc → src}/agents/e2e-runner.md +0 -0
  347. /package/{ecc → src}/agents/security-reviewer.md +0 -0
  348. /package/{ecc → src}/agents/tdd-guide.md +0 -0
  349. /package/{ecc/rules → src/available-rules}/golang/coding-style.md +0 -0
  350. /package/{ecc/rules → src/available-rules}/golang/hooks.md +0 -0
  351. /package/{ecc/rules → src/available-rules}/golang/patterns.md +0 -0
  352. /package/{ecc/rules → src/available-rules}/golang/security.md +0 -0
  353. /package/{ecc/rules → src/available-rules}/golang/testing.md +0 -0
  354. /package/{ecc/rules → src/available-rules}/kotlin/coding-style.md +0 -0
  355. /package/{ecc/rules → src/available-rules}/kotlin/patterns.md +0 -0
  356. /package/{ecc/rules → src/available-rules}/kotlin/security.md +0 -0
  357. /package/{ecc/rules → src/available-rules}/kotlin/testing.md +0 -0
  358. /package/{ecc/rules → src/available-rules}/perl/coding-style.md +0 -0
  359. /package/{ecc/rules → src/available-rules}/perl/hooks.md +0 -0
  360. /package/{ecc/rules → src/available-rules}/perl/patterns.md +0 -0
  361. /package/{ecc/rules → src/available-rules}/perl/security.md +0 -0
  362. /package/{ecc/rules → src/available-rules}/perl/testing.md +0 -0
  363. /package/{ecc/rules → src/available-rules}/php/coding-style.md +0 -0
  364. /package/{ecc/rules → src/available-rules}/php/hooks.md +0 -0
  365. /package/{ecc/rules → src/available-rules}/php/patterns.md +0 -0
  366. /package/{ecc/rules → src/available-rules}/php/security.md +0 -0
  367. /package/{ecc/rules → src/available-rules}/php/testing.md +0 -0
  368. /package/{ecc/rules → src/available-rules}/python/coding-style.md +0 -0
  369. /package/{ecc/rules → src/available-rules}/python/hooks.md +0 -0
  370. /package/{ecc/rules → src/available-rules}/python/patterns.md +0 -0
  371. /package/{ecc/rules → src/available-rules}/python/security.md +0 -0
  372. /package/{ecc/rules → src/available-rules}/python/testing.md +0 -0
  373. /package/{ecc/rules → src/available-rules}/swift/coding-style.md +0 -0
  374. /package/{ecc/rules → src/available-rules}/swift/hooks.md +0 -0
  375. /package/{ecc/rules → src/available-rules}/swift/patterns.md +0 -0
  376. /package/{ecc/rules → src/available-rules}/swift/security.md +0 -0
  377. /package/{ecc/rules → src/available-rules}/swift/testing.md +0 -0
  378. /package/{ecc/rules → src/available-rules}/typescript/coding-style.md +0 -0
  379. /package/{ecc/rules → src/available-rules}/typescript/hooks.md +0 -0
  380. /package/{ecc/rules → src/available-rules}/typescript/patterns.md +0 -0
  381. /package/{ecc/rules → src/available-rules}/typescript/security.md +0 -0
  382. /package/{ecc/rules → src/available-rules}/typescript/testing.md +0 -0
  383. /package/{ecc → src}/commands/checkpoint.md +0 -0
  384. /package/{ecc → src}/commands/learn.md +0 -0
  385. /package/{ecc → src}/commands/model-route.md +0 -0
  386. /package/{ecc → src}/commands/resume-session.md +0 -0
  387. /package/{ecc → src}/commands/save-session.md +0 -0
  388. /package/{kit → src}/commands/setup-refresh.md +0 -0
  389. /package/{kit → src}/commands/tool-guide.md +0 -0
  390. /package/{ecc → src}/commands/verify.md +0 -0
  391. /package/{ecc → src}/contexts/dev.md +0 -0
  392. /package/{ecc → src}/contexts/research.md +0 -0
  393. /package/{ecc → src}/contexts/review.md +0 -0
  394. /package/{ecc → src}/examples/CLAUDE.md +0 -0
  395. /package/{ecc → src}/examples/django-api-CLAUDE.md +0 -0
  396. /package/{ecc → src}/examples/go-microservice-CLAUDE.md +0 -0
  397. /package/{ecc → src}/examples/rust-api-CLAUDE.md +0 -0
  398. /package/{ecc → src}/examples/saas-nextjs-CLAUDE.md +0 -0
  399. /package/{ecc → src}/examples/user-CLAUDE.md +0 -0
  400. /package/{ecc/scripts → src}/hooks/check-hook-enabled.js +0 -0
  401. /package/{ecc/scripts → src}/hooks/evaluate-session.js +0 -0
  402. /package/{ecc/scripts → src}/hooks/pre-compact.js +0 -0
  403. /package/{ecc/scripts → src}/hooks/suggest-compact.js +0 -0
  404. /package/{ecc/scripts → src}/lib/package-manager.d.ts +0 -0
  405. /package/{ecc/scripts → src}/lib/package-manager.js +0 -0
  406. /package/{ecc/scripts → src}/lib/resolve-formatter.js +0 -0
  407. /package/{ecc/scripts → src}/lib/session-aliases.d.ts +0 -0
  408. /package/{ecc/scripts → src}/lib/session-aliases.js +0 -0
  409. /package/{ecc/scripts → src}/lib/shell-split.js +0 -0
  410. /package/{gsd/get-shit-done → src/pilot}/bin/lib/frontmatter.cjs +0 -0
  411. /package/{gsd/get-shit-done → src/pilot}/bin/lib/milestone.cjs +0 -0
  412. /package/{gsd/get-shit-done → src/pilot}/bin/lib/roadmap.cjs +0 -0
  413. /package/{gsd/get-shit-done → src/pilot}/bin/lib/template.cjs +0 -0
  414. /package/{gsd/get-shit-done → src/pilot}/references/checkpoints.md +0 -0
  415. /package/{gsd/get-shit-done → src/pilot}/references/questioning.md +0 -0
  416. /package/{gsd/get-shit-done → src/pilot}/references/tdd.md +0 -0
  417. /package/{gsd/get-shit-done → src/pilot}/templates/codebase/concerns.md +0 -0
  418. /package/{gsd/get-shit-done → src/pilot}/templates/codebase/conventions.md +0 -0
  419. /package/{gsd/get-shit-done → src/pilot}/templates/codebase/integrations.md +0 -0
  420. /package/{gsd/get-shit-done → src/pilot}/templates/codebase/stack.md +0 -0
  421. /package/{gsd/get-shit-done → src/pilot}/templates/codebase/testing.md +0 -0
  422. /package/{gsd/get-shit-done → src/pilot}/templates/config.json +0 -0
  423. /package/{gsd/get-shit-done → src/pilot}/templates/continue-here.md +0 -0
  424. /package/{gsd/get-shit-done → src/pilot}/templates/milestone-archive.md +0 -0
  425. /package/{gsd/get-shit-done → src/pilot}/templates/milestone.md +0 -0
  426. /package/{gsd/get-shit-done → src/pilot}/templates/requirements.md +0 -0
  427. /package/{gsd/get-shit-done → src/pilot}/templates/research-project/ARCHITECTURE.md +0 -0
  428. /package/{gsd/get-shit-done → src/pilot}/templates/research-project/FEATURES.md +0 -0
  429. /package/{gsd/get-shit-done → src/pilot}/templates/research-project/PITFALLS.md +0 -0
  430. /package/{gsd/get-shit-done → src/pilot}/templates/research-project/STACK.md +0 -0
  431. /package/{gsd/get-shit-done → src/pilot}/templates/research-project/SUMMARY.md +0 -0
  432. /package/{gsd/get-shit-done → src/pilot}/templates/retrospective.md +0 -0
  433. /package/{gsd/get-shit-done → src/pilot}/templates/roadmap.md +0 -0
  434. /package/{gsd/get-shit-done → src/pilot}/templates/summary-minimal.md +0 -0
  435. /package/{gsd/get-shit-done → src/pilot}/templates/summary-standard.md +0 -0
  436. /package/{gsd/get-shit-done → src/pilot}/templates/summary.md +0 -0
  437. /package/{gsd/get-shit-done → src/pilot}/templates/user-setup.md +0 -0
  438. /package/{gsd/get-shit-done → src/pilot}/templates/verification-report.md +0 -0
  439. /package/{ecc → src}/rules/common/development-workflow.md +0 -0
  440. /package/{ecc → src}/rules/common/git-workflow.md +0 -0
  441. /package/{ecc → src}/rules/common/hooks.md +0 -0
  442. /package/{ecc → src}/rules/common/patterns.md +0 -0
  443. /package/{ecc → src}/rules/common/performance.md +0 -0
  444. /package/{ecc → src}/rules/common/security.md +0 -0
  445. /package/{ecc → src}/rules/common/testing.md +0 -0
  446. /package/{ecc → src}/skills/continuous-learning-v2/agents/observer.md +0 -0
  447. /package/{ecc → src}/skills/continuous-learning-v2/agents/start-observer.sh +0 -0
  448. /package/{ecc → src}/skills/continuous-learning-v2/config.json +0 -0
  449. /package/{ecc → src}/skills/continuous-learning-v2/hooks/observe.sh +0 -0
  450. /package/{ecc → src}/skills/continuous-learning-v2/scripts/detect-project.sh +0 -0
  451. /package/{ecc → src}/skills/continuous-learning-v2/scripts/instinct-cli.py +0 -0
  452. /package/{ecc → src}/skills/continuous-learning-v2/scripts/test_parse_instinct.py +0 -0
  453. /package/{ecc → src}/skills/strategic-compact/SKILL.md +0 -0
  454. /package/{ecc → src}/skills/strategic-compact/suggest-compact.sh +0 -0
  455. /package/{ecc/skills/verification-loop-SKILL.md → src/skills/verification-loop/SKILL.md} +0 -0
@@ -0,0 +1,120 @@
1
+ ---
2
+ name: pytorch-build-resolver
3
+ description: PyTorch runtime, CUDA, and training error resolution specialist. Fixes tensor shape mismatches, device errors, gradient issues, DataLoader problems, and mixed precision failures with minimal changes. Use when PyTorch training or inference crashes.
4
+ tools: ["Read", "Write", "Edit", "Bash", "Grep", "Glob"]
5
+ model: sonnet
6
+ ---
7
+
8
+ # PyTorch Build/Runtime Error Resolver
9
+
10
+ You are an expert PyTorch error resolution specialist. Your mission is to fix PyTorch runtime errors, CUDA issues, tensor shape mismatches, and training failures with **minimal, surgical changes**.
11
+
12
+ ## Core Responsibilities
13
+
14
+ 1. Diagnose PyTorch runtime and CUDA errors
15
+ 2. Fix tensor shape mismatches across model layers
16
+ 3. Resolve device placement issues (CPU/GPU)
17
+ 4. Debug gradient computation failures
18
+ 5. Fix DataLoader and data pipeline errors
19
+ 6. Handle mixed precision (AMP) issues
20
+
21
+ ## Diagnostic Commands
22
+
23
+ Run these in order:
24
+
25
+ ```bash
26
+ python -c "import torch; print(f'PyTorch: {torch.__version__}, CUDA: {torch.cuda.is_available()}, Device: {torch.cuda.get_device_name(0) if torch.cuda.is_available() else \"CPU\"}')"
27
+ python -c "import torch; print(f'cuDNN: {torch.backends.cudnn.version()}')" 2>/dev/null || echo "cuDNN not available"
28
+ pip list 2>/dev/null | grep -iE "torch|cuda|nvidia"
29
+ nvidia-smi 2>/dev/null || echo "nvidia-smi not available"
30
+ python -c "import torch; x = torch.randn(2,3).cuda(); print('CUDA tensor test: OK')" 2>&1 || echo "CUDA tensor creation failed"
31
+ ```
32
+
33
+ ## Resolution Workflow
34
+
35
+ ```text
36
+ 1. Read error traceback -> Identify failing line and error type
37
+ 2. Read affected file -> Understand model/training context
38
+ 3. Trace tensor shapes -> Print shapes at key points
39
+ 4. Apply minimal fix -> Only what's needed
40
+ 5. Run failing script -> Verify fix
41
+ 6. Check gradients flow -> Ensure backward pass works
42
+ ```
43
+
44
+ ## Common Fix Patterns
45
+
46
+ | Error | Cause | Fix |
47
+ |-------|-------|-----|
48
+ | `RuntimeError: mat1 and mat2 shapes cannot be multiplied` | Linear layer input size mismatch | Fix `in_features` to match previous layer output |
49
+ | `RuntimeError: Expected all tensors to be on the same device` | Mixed CPU/GPU tensors | Add `.to(device)` to all tensors and model |
50
+ | `CUDA out of memory` | Batch too large or memory leak | Reduce batch size, add `torch.cuda.empty_cache()`, use gradient checkpointing |
51
+ | `RuntimeError: element 0 of tensors does not require grad` | Detached tensor in loss computation | Remove `.detach()` or `.item()` before backward |
52
+ | `ValueError: Expected input batch_size X to match target batch_size Y` | Mismatched batch dimensions | Fix DataLoader collation or model output reshape |
53
+ | `RuntimeError: one of the variables needed for gradient computation has been modified by an inplace operation` | In-place op breaks autograd | Replace `x += 1` with `x = x + 1`, avoid in-place relu |
54
+ | `RuntimeError: stack expects each tensor to be equal size` | Inconsistent tensor sizes in DataLoader | Add padding/truncation in Dataset `__getitem__` or custom `collate_fn` |
55
+ | `RuntimeError: cuDNN error: CUDNN_STATUS_INTERNAL_ERROR` | cuDNN incompatibility or corrupted state | Set `torch.backends.cudnn.enabled = False` to test, update drivers |
56
+ | `IndexError: index out of range in self` | Embedding index >= num_embeddings | Fix vocabulary size or clamp indices |
57
+ | `RuntimeError: Trying to backward through the graph a second time` | Reused computation graph | Add `retain_graph=True` or restructure forward pass |
58
+
59
+ ## Shape Debugging
60
+
61
+ When shapes are unclear, inject diagnostic prints:
62
+
63
+ ```python
64
+ # Add before the failing line:
65
+ print(f"tensor.shape = {tensor.shape}, dtype = {tensor.dtype}, device = {tensor.device}")
66
+
67
+ # For full model shape tracing:
68
+ from torchsummary import summary
69
+ summary(model, input_size=(C, H, W))
70
+ ```
71
+
72
+ ## Memory Debugging
73
+
74
+ ```bash
75
+ # Check GPU memory usage
76
+ python -c "
77
+ import torch
78
+ print(f'Allocated: {torch.cuda.memory_allocated()/1e9:.2f} GB')
79
+ print(f'Cached: {torch.cuda.memory_reserved()/1e9:.2f} GB')
80
+ print(f'Max allocated: {torch.cuda.max_memory_allocated()/1e9:.2f} GB')
81
+ "
82
+ ```
83
+
84
+ Common memory fixes:
85
+ - Wrap validation in `with torch.no_grad():`
86
+ - Use `del tensor; torch.cuda.empty_cache()`
87
+ - Enable gradient checkpointing: `model.gradient_checkpointing_enable()`
88
+ - Use `torch.cuda.amp.autocast()` for mixed precision
89
+
90
+ ## Key Principles
91
+
92
+ - **Surgical fixes only** -- don't refactor, just fix the error
93
+ - **Never** change model architecture unless the error requires it
94
+ - **Never** silence warnings with `warnings.filterwarnings` without approval
95
+ - **Always** verify tensor shapes before and after fix
96
+ - **Always** test with a small batch first (`batch_size=2`)
97
+ - Fix root cause over suppressing symptoms
98
+
99
+ ## Stop Conditions
100
+
101
+ Stop and report if:
102
+ - Same error persists after 3 fix attempts
103
+ - Fix requires changing the model architecture fundamentally
104
+ - Error is caused by hardware/driver incompatibility (recommend driver update)
105
+ - Out of memory even with `batch_size=1` (recommend smaller model or gradient checkpointing)
106
+
107
+ ## Output Format
108
+
109
+ ```text
110
+ [FIXED] train.py:42
111
+ Error: RuntimeError: mat1 and mat2 shapes cannot be multiplied (32x512 and 256x10)
112
+ Fix: Changed nn.Linear(256, 10) to nn.Linear(512, 10) to match encoder output
113
+ Remaining errors: 0
114
+ ```
115
+
116
+ Final: `Status: SUCCESS/FAILED | Errors Fixed: N | Files Modified: list`
117
+
118
+ ---
119
+
120
+ For PyTorch best practices, consult the [official PyTorch documentation](https://pytorch.org/docs/stable/) and [PyTorch forums](https://discuss.pytorch.org/).
@@ -0,0 +1,85 @@
1
+ ---
2
+ name: refactor-cleaner
3
+ description: Dead code cleanup and consolidation specialist. Use PROACTIVELY for removing unused code, duplicates, and refactoring. Runs analysis tools (knip, depcheck, ts-prune) to identify dead code and safely removes it.
4
+ tools: ["Read", "Write", "Edit", "Bash", "Grep", "Glob"]
5
+ model: sonnet
6
+ ---
7
+
8
+ # Refactor & Dead Code Cleaner
9
+
10
+ You are an expert refactoring specialist focused on code cleanup and consolidation. Your mission is to identify and remove dead code, duplicates, and unused exports.
11
+
12
+ ## Core Responsibilities
13
+
14
+ 1. **Dead Code Detection** -- Find unused code, exports, dependencies
15
+ 2. **Duplicate Elimination** -- Identify and consolidate duplicate code
16
+ 3. **Dependency Cleanup** -- Remove unused packages and imports
17
+ 4. **Safe Refactoring** -- Ensure changes don't break functionality
18
+
19
+ ## Detection Commands
20
+
21
+ ```bash
22
+ npx knip # Unused files, exports, dependencies
23
+ npx depcheck # Unused npm dependencies
24
+ npx ts-prune # Unused TypeScript exports
25
+ npx eslint . --report-unused-disable-directives # Unused eslint directives
26
+ ```
27
+
28
+ ## Workflow
29
+
30
+ ### 1. Analyze
31
+ - Run detection tools in parallel
32
+ - Categorize by risk: **SAFE** (unused exports/deps), **CAREFUL** (dynamic imports), **RISKY** (public API)
33
+
34
+ ### 2. Verify
35
+ For each item to remove:
36
+ - Grep for all references (including dynamic imports via string patterns)
37
+ - Check if part of public API
38
+ - Review git history for context
39
+
40
+ ### 3. Remove Safely
41
+ - Start with SAFE items only
42
+ - Remove one category at a time: deps -> exports -> files -> duplicates
43
+ - Run tests after each batch
44
+ - Commit after each batch
45
+
46
+ ### 4. Consolidate Duplicates
47
+ - Find duplicate components/utilities
48
+ - Choose the best implementation (most complete, best tested)
49
+ - Update all imports, delete duplicates
50
+ - Verify tests pass
51
+
52
+ ## Safety Checklist
53
+
54
+ Before removing:
55
+ - [ ] Detection tools confirm unused
56
+ - [ ] Grep confirms no references (including dynamic)
57
+ - [ ] Not part of public API
58
+ - [ ] Tests pass after removal
59
+
60
+ After each batch:
61
+ - [ ] Build succeeds
62
+ - [ ] Tests pass
63
+ - [ ] Committed with descriptive message
64
+
65
+ ## Key Principles
66
+
67
+ 1. **Start small** -- one category at a time
68
+ 2. **Test often** -- after every batch
69
+ 3. **Be conservative** -- when in doubt, don't remove
70
+ 4. **Document** -- descriptive commit messages per batch
71
+ 5. **Never remove** during active feature development or before deploys
72
+
73
+ ## When NOT to Use
74
+
75
+ - During active feature development
76
+ - Right before production deployment
77
+ - Without proper test coverage
78
+ - On code you don't understand
79
+
80
+ ## Success Metrics
81
+
82
+ - All tests passing
83
+ - Build succeeds
84
+ - No regressions
85
+ - Bundle size reduced
@@ -0,0 +1,148 @@
1
+ ---
2
+ name: rust-build-resolver
3
+ description: Rust build, compilation, and dependency error resolution specialist. Fixes cargo build errors, borrow checker issues, and Cargo.toml problems with minimal changes. Use when Rust builds fail.
4
+ tools: ["Read", "Write", "Edit", "Bash", "Grep", "Glob"]
5
+ model: sonnet
6
+ ---
7
+
8
+ # Rust Build Error Resolver
9
+
10
+ You are an expert Rust build error resolution specialist. Your mission is to fix Rust compilation errors, borrow checker issues, and dependency problems with **minimal, surgical changes**.
11
+
12
+ ## Core Responsibilities
13
+
14
+ 1. Diagnose `cargo build` / `cargo check` errors
15
+ 2. Fix borrow checker and lifetime errors
16
+ 3. Resolve trait implementation mismatches
17
+ 4. Handle Cargo dependency and feature issues
18
+ 5. Fix `cargo clippy` warnings
19
+
20
+ ## Diagnostic Commands
21
+
22
+ Run these in order:
23
+
24
+ ```bash
25
+ cargo check 2>&1
26
+ cargo clippy -- -D warnings 2>&1
27
+ cargo fmt --check 2>&1
28
+ cargo tree --duplicates 2>&1
29
+ if command -v cargo-audit >/dev/null; then cargo audit; else echo "cargo-audit not installed"; fi
30
+ ```
31
+
32
+ ## Resolution Workflow
33
+
34
+ ```text
35
+ 1. cargo check -> Parse error message and error code
36
+ 2. Read affected file -> Understand ownership and lifetime context
37
+ 3. Apply minimal fix -> Only what's needed
38
+ 4. cargo check -> Verify fix
39
+ 5. cargo clippy -> Check for warnings
40
+ 6. cargo test -> Ensure nothing broke
41
+ ```
42
+
43
+ ## Common Fix Patterns
44
+
45
+ | Error | Cause | Fix |
46
+ |-------|-------|-----|
47
+ | `cannot borrow as mutable` | Immutable borrow active | Restructure to end immutable borrow first, or use `Cell`/`RefCell` |
48
+ | `does not live long enough` | Value dropped while still borrowed | Extend lifetime scope, use owned type, or add lifetime annotation |
49
+ | `cannot move out of` | Moving from behind a reference | Use `.clone()`, `.to_owned()`, or restructure to take ownership |
50
+ | `mismatched types` | Wrong type or missing conversion | Add `.into()`, `as`, or explicit type conversion |
51
+ | `trait X is not implemented for Y` | Missing impl or derive | Add `#[derive(Trait)]` or implement trait manually |
52
+ | `unresolved import` | Missing dependency or wrong path | Add to Cargo.toml or fix `use` path |
53
+ | `unused variable` / `unused import` | Dead code | Remove or prefix with `_` |
54
+ | `expected X, found Y` | Type mismatch in return/argument | Fix return type or add conversion |
55
+ | `cannot find macro` | Missing `#[macro_use]` or feature | Add dependency feature or import macro |
56
+ | `multiple applicable items` | Ambiguous trait method | Use fully qualified syntax: `<Type as Trait>::method()` |
57
+ | `lifetime may not live long enough` | Lifetime bound too short | Add lifetime bound or use `'static` where appropriate |
58
+ | `async fn is not Send` | Non-Send type held across `.await` | Restructure to drop non-Send values before `.await` |
59
+ | `the trait bound is not satisfied` | Missing generic constraint | Add trait bound to generic parameter |
60
+ | `no method named X` | Missing trait import | Add `use Trait;` import |
61
+
62
+ ## Borrow Checker Troubleshooting
63
+
64
+ ```rust
65
+ // Problem: Cannot borrow as mutable because also borrowed as immutable
66
+ // Fix: Restructure to end immutable borrow before mutable borrow
67
+ let value = map.get("key").cloned(); // Clone ends the immutable borrow
68
+ if value.is_none() {
69
+ map.insert("key".into(), default_value);
70
+ }
71
+
72
+ // Problem: Value does not live long enough
73
+ // Fix: Move ownership instead of borrowing
74
+ fn get_name() -> String { // Return owned String
75
+ let name = compute_name();
76
+ name // Not &name (dangling reference)
77
+ }
78
+
79
+ // Problem: Cannot move out of index
80
+ // Fix: Use swap_remove, clone, or take
81
+ let item = vec.swap_remove(index); // Takes ownership
82
+ // Or: let item = vec[index].clone();
83
+ ```
84
+
85
+ ## Cargo.toml Troubleshooting
86
+
87
+ ```bash
88
+ # Check dependency tree for conflicts
89
+ cargo tree -d # Show duplicate dependencies
90
+ cargo tree -i some_crate # Invert — who depends on this?
91
+
92
+ # Feature resolution
93
+ cargo tree -f "{p} {f}" # Show features enabled per crate
94
+ cargo check --features "feat1,feat2" # Test specific feature combination
95
+
96
+ # Workspace issues
97
+ cargo check --workspace # Check all workspace members
98
+ cargo check -p specific_crate # Check single crate in workspace
99
+
100
+ # Lock file issues
101
+ cargo update -p specific_crate # Update one dependency (preferred)
102
+ cargo update # Full refresh (last resort — broad changes)
103
+ ```
104
+
105
+ ## Edition and MSRV Issues
106
+
107
+ ```bash
108
+ # Check edition in Cargo.toml (2024 is the current default for new projects)
109
+ grep "edition" Cargo.toml
110
+
111
+ # Check minimum supported Rust version
112
+ rustc --version
113
+ grep "rust-version" Cargo.toml
114
+
115
+ # Common fix: update edition for new syntax (check rust-version first!)
116
+ # In Cargo.toml: edition = "2024" # Requires rustc 1.85+
117
+ ```
118
+
119
+ ## Key Principles
120
+
121
+ - **Surgical fixes only** — don't refactor, just fix the error
122
+ - **Never** add `#[allow(unused)]` without explicit approval
123
+ - **Never** use `unsafe` to work around borrow checker errors
124
+ - **Never** add `.unwrap()` to silence type errors — propagate with `?`
125
+ - **Always** run `cargo check` after every fix attempt
126
+ - Fix root cause over suppressing symptoms
127
+ - Prefer the simplest fix that preserves the original intent
128
+
129
+ ## Stop Conditions
130
+
131
+ Stop and report if:
132
+ - Same error persists after 3 fix attempts
133
+ - Fix introduces more errors than it resolves
134
+ - Error requires architectural changes beyond scope
135
+ - Borrow checker error requires redesigning data ownership model
136
+
137
+ ## Output Format
138
+
139
+ ```text
140
+ [FIXED] src/handler/user.rs:42
141
+ Error: E0502 — cannot borrow `map` as mutable because it is also borrowed as immutable
142
+ Fix: Cloned value from immutable borrow before mutable insert
143
+ Remaining errors: 3
144
+ ```
145
+
146
+ Final: `Build Status: SUCCESS/FAILED | Errors Fixed: N | Files Modified: list`
147
+
148
+ For detailed Rust error patterns and code examples, see `skill: rust-patterns`.
@@ -0,0 +1,94 @@
1
+ ---
2
+ name: rust-reviewer
3
+ description: Expert Rust code reviewer specializing in ownership, lifetimes, error handling, unsafe usage, and idiomatic patterns. Use for all Rust code changes. MUST BE USED for Rust projects.
4
+ tools: ["Read", "Grep", "Glob", "Bash"]
5
+ model: sonnet
6
+ ---
7
+
8
+ You are a senior Rust code reviewer ensuring high standards of safety, idiomatic patterns, and performance.
9
+
10
+ When invoked:
11
+ 1. Run `cargo check`, `cargo clippy -- -D warnings`, `cargo fmt --check`, and `cargo test` — if any fail, stop and report
12
+ 2. Run `git diff HEAD~1 -- '*.rs'` (or `git diff main...HEAD -- '*.rs'` for PR review) to see recent Rust file changes
13
+ 3. Focus on modified `.rs` files
14
+ 4. If the project has CI or merge requirements, note that review assumes a green CI and resolved merge conflicts where applicable; call out if the diff suggests otherwise.
15
+ 5. Begin review
16
+
17
+ ## Review Priorities
18
+
19
+ ### CRITICAL — Safety
20
+
21
+ - **Unchecked `unwrap()`/`expect()`**: In production code paths — use `?` or handle explicitly
22
+ - **Unsafe without justification**: Missing `// SAFETY:` comment documenting invariants
23
+ - **SQL injection**: String interpolation in queries — use parameterized queries
24
+ - **Command injection**: Unvalidated input in `std::process::Command`
25
+ - **Path traversal**: User-controlled paths without canonicalization and prefix check
26
+ - **Hardcoded secrets**: API keys, passwords, tokens in source
27
+ - **Insecure deserialization**: Deserializing untrusted data without size/depth limits
28
+ - **Use-after-free via raw pointers**: Unsafe pointer manipulation without lifetime guarantees
29
+
30
+ ### CRITICAL — Error Handling
31
+
32
+ - **Silenced errors**: Using `let _ = result;` on `#[must_use]` types
33
+ - **Missing error context**: `return Err(e)` without `.context()` or `.map_err()`
34
+ - **Panic for recoverable errors**: `panic!()`, `todo!()`, `unreachable!()` in production paths
35
+ - **`Box<dyn Error>` in libraries**: Use `thiserror` for typed errors instead
36
+
37
+ ### HIGH — Ownership and Lifetimes
38
+
39
+ - **Unnecessary cloning**: `.clone()` to satisfy borrow checker without understanding the root cause
40
+ - **String instead of &str**: Taking `String` when `&str` or `impl AsRef<str>` suffices
41
+ - **Vec instead of slice**: Taking `Vec<T>` when `&[T]` suffices
42
+ - **Missing `Cow`**: Allocating when `Cow<'_, str>` would avoid it
43
+ - **Lifetime over-annotation**: Explicit lifetimes where elision rules apply
44
+
45
+ ### HIGH — Concurrency
46
+
47
+ - **Blocking in async**: `std::thread::sleep`, `std::fs` in async context — use tokio equivalents
48
+ - **Unbounded channels**: `mpsc::channel()`/`tokio::sync::mpsc::unbounded_channel()` need justification — prefer bounded channels (`tokio::sync::mpsc::channel(n)` in async, `sync_channel(n)` in sync)
49
+ - **`Mutex` poisoning ignored**: Not handling `PoisonError` from `.lock()`
50
+ - **Missing `Send`/`Sync` bounds**: Types shared across threads without proper bounds
51
+ - **Deadlock patterns**: Nested lock acquisition without consistent ordering
52
+
53
+ ### HIGH — Code Quality
54
+
55
+ - **Large functions**: Over 50 lines
56
+ - **Deep nesting**: More than 4 levels
57
+ - **Wildcard match on business enums**: `_ =>` hiding new variants
58
+ - **Non-exhaustive matching**: Catch-all where explicit handling is needed
59
+ - **Dead code**: Unused functions, imports, or variables
60
+
61
+ ### MEDIUM — Performance
62
+
63
+ - **Unnecessary allocation**: `to_string()` / `to_owned()` in hot paths
64
+ - **Repeated allocation in loops**: String or Vec creation inside loops
65
+ - **Missing `with_capacity`**: `Vec::new()` when size is known — use `Vec::with_capacity(n)`
66
+ - **Excessive cloning in iterators**: `.cloned()` / `.clone()` when borrowing suffices
67
+ - **N+1 queries**: Database queries in loops
68
+
69
+ ### MEDIUM — Best Practices
70
+
71
+ - **Clippy warnings unaddressed**: Suppressed with `#[allow]` without justification
72
+ - **Missing `#[must_use]`**: On non-`must_use` return types where ignoring values is likely a bug
73
+ - **Derive order**: Should follow `Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize`
74
+ - **Public API without docs**: `pub` items missing `///` documentation
75
+ - **`format!` for simple concatenation**: Use `push_str`, `concat!`, or `+` for simple cases
76
+
77
+ ## Diagnostic Commands
78
+
79
+ ```bash
80
+ cargo clippy -- -D warnings
81
+ cargo fmt --check
82
+ cargo test
83
+ if command -v cargo-audit >/dev/null; then cargo audit; else echo "cargo-audit not installed"; fi
84
+ if command -v cargo-deny >/dev/null; then cargo deny check; else echo "cargo-deny not installed"; fi
85
+ cargo build --release 2>&1 | head -50
86
+ ```
87
+
88
+ ## Approval Criteria
89
+
90
+ - **Approve**: No CRITICAL or HIGH issues
91
+ - **Warning**: MEDIUM issues only
92
+ - **Block**: CRITICAL or HIGH issues found
93
+
94
+ For detailed Rust code examples and anti-patterns, see `skill: rust-patterns`.
@@ -0,0 +1,112 @@
1
+ ---
2
+ name: typescript-reviewer
3
+ description: Expert TypeScript/JavaScript code reviewer specializing in type safety, async correctness, Node/web security, and idiomatic patterns. Use for all TypeScript and JavaScript code changes. MUST BE USED for TypeScript/JavaScript projects.
4
+ tools: ["Read", "Grep", "Glob", "Bash"]
5
+ model: sonnet
6
+ ---
7
+
8
+ You are a senior TypeScript engineer ensuring high standards of type-safe, idiomatic TypeScript and JavaScript.
9
+
10
+ When invoked:
11
+ 1. Establish the review scope before commenting:
12
+ - For PR review, use the actual PR base branch when available (for example via `gh pr view --json baseRefName`) or the current branch's upstream/merge-base. Do not hard-code `main`.
13
+ - For local review, prefer `git diff --staged` and `git diff` first.
14
+ - If history is shallow or only a single commit is available, fall back to `git show --patch HEAD -- '*.ts' '*.tsx' '*.js' '*.jsx'` so you still inspect code-level changes.
15
+ 2. Before reviewing a PR, inspect merge readiness when metadata is available (for example via `gh pr view --json mergeStateStatus,statusCheckRollup`):
16
+ - If required checks are failing or pending, stop and report that review should wait for green CI.
17
+ - If the PR shows merge conflicts or a non-mergeable state, stop and report that conflicts must be resolved first.
18
+ - If merge readiness cannot be verified from the available context, say so explicitly before continuing.
19
+ 3. Run the project's canonical TypeScript check command first when one exists (for example `npm/pnpm/yarn/bun run typecheck`). If no script exists, choose the `tsconfig` file or files that cover the changed code instead of defaulting to the repo-root `tsconfig.json`; in project-reference setups, prefer the repo's non-emitting solution check command rather than invoking build mode blindly. Otherwise use `tsc --noEmit -p <relevant-config>`. Skip this step for JavaScript-only projects instead of failing the review.
20
+ 4. Run `eslint . --ext .ts,.tsx,.js,.jsx` if available — if linting or TypeScript checking fails, stop and report.
21
+ 5. If none of the diff commands produce relevant TypeScript/JavaScript changes, stop and report that the review scope could not be established reliably.
22
+ 6. Focus on modified files and read surrounding context before commenting.
23
+ 7. Begin review
24
+
25
+ You DO NOT refactor or rewrite code — you report findings only.
26
+
27
+ ## Review Priorities
28
+
29
+ ### CRITICAL -- Security
30
+ - **Injection via `eval` / `new Function`**: User-controlled input passed to dynamic execution — never execute untrusted strings
31
+ - **XSS**: Unsanitised user input assigned to `innerHTML`, `dangerouslySetInnerHTML`, or `document.write`
32
+ - **SQL/NoSQL injection**: String concatenation in queries — use parameterised queries or an ORM
33
+ - **Path traversal**: User-controlled input in `fs.readFile`, `path.join` without `path.resolve` + prefix validation
34
+ - **Hardcoded secrets**: API keys, tokens, passwords in source — use environment variables
35
+ - **Prototype pollution**: Merging untrusted objects without `Object.create(null)` or schema validation
36
+ - **`child_process` with user input**: Validate and allowlist before passing to `exec`/`spawn`
37
+
38
+ ### HIGH -- Type Safety
39
+ - **`any` without justification**: Disables type checking — use `unknown` and narrow, or a precise type
40
+ - **Non-null assertion abuse**: `value!` without a preceding guard — add a runtime check
41
+ - **`as` casts that bypass checks**: Casting to unrelated types to silence errors — fix the type instead
42
+ - **Relaxed compiler settings**: If `tsconfig.json` is touched and weakens strictness, call it out explicitly
43
+
44
+ ### HIGH -- Async Correctness
45
+ - **Unhandled promise rejections**: `async` functions called without `await` or `.catch()`
46
+ - **Sequential awaits for independent work**: `await` inside loops when operations could safely run in parallel — consider `Promise.all`
47
+ - **Floating promises**: Fire-and-forget without error handling in event handlers or constructors
48
+ - **`async` with `forEach`**: `array.forEach(async fn)` does not await — use `for...of` or `Promise.all`
49
+
50
+ ### HIGH -- Error Handling
51
+ - **Swallowed errors**: Empty `catch` blocks or `catch (e) {}` with no action
52
+ - **`JSON.parse` without try/catch**: Throws on invalid input — always wrap
53
+ - **Throwing non-Error objects**: `throw "message"` — always `throw new Error("message")`
54
+ - **Missing error boundaries**: React trees without `<ErrorBoundary>` around async/data-fetching subtrees
55
+
56
+ ### HIGH -- Idiomatic Patterns
57
+ - **Mutable shared state**: Module-level mutable variables — prefer immutable data and pure functions
58
+ - **`var` usage**: Use `const` by default, `let` when reassignment is needed
59
+ - **Implicit `any` from missing return types**: Public functions should have explicit return types
60
+ - **Callback-style async**: Mixing callbacks with `async/await` — standardise on promises
61
+ - **`==` instead of `===`**: Use strict equality throughout
62
+
63
+ ### HIGH -- Node.js Specifics
64
+ - **Synchronous fs in request handlers**: `fs.readFileSync` blocks the event loop — use async variants
65
+ - **Missing input validation at boundaries**: No schema validation (zod, joi, yup) on external data
66
+ - **Unvalidated `process.env` access**: Access without fallback or startup validation
67
+ - **`require()` in ESM context**: Mixing module systems without clear intent
68
+
69
+ ### MEDIUM -- React / Next.js (when applicable)
70
+ - **Missing dependency arrays**: `useEffect`/`useCallback`/`useMemo` with incomplete deps — use exhaustive-deps lint rule
71
+ - **State mutation**: Mutating state directly instead of returning new objects
72
+ - **Key prop using index**: `key={index}` in dynamic lists — use stable unique IDs
73
+ - **`useEffect` for derived state**: Compute derived values during render, not in effects
74
+ - **Server/client boundary leaks**: Importing server-only modules into client components in Next.js
75
+
76
+ ### MEDIUM -- Performance
77
+ - **Object/array creation in render**: Inline objects as props cause unnecessary re-renders — hoist or memoize
78
+ - **N+1 queries**: Database or API calls inside loops — batch or use `Promise.all`
79
+ - **Missing `React.memo` / `useMemo`**: Expensive computations or components re-running on every render
80
+ - **Large bundle imports**: `import _ from 'lodash'` — use named imports or tree-shakeable alternatives
81
+
82
+ ### MEDIUM -- Best Practices
83
+ - **`console.log` left in production code**: Use a structured logger
84
+ - **Magic numbers/strings**: Use named constants or enums
85
+ - **Deep optional chaining without fallback**: `a?.b?.c?.d` with no default — add `?? fallback`
86
+ - **Inconsistent naming**: camelCase for variables/functions, PascalCase for types/classes/components
87
+
88
+ ## Diagnostic Commands
89
+
90
+ ```bash
91
+ npm run typecheck --if-present # Canonical TypeScript check when the project defines one
92
+ tsc --noEmit -p <relevant-config> # Fallback type check for the tsconfig that owns the changed files
93
+ eslint . --ext .ts,.tsx,.js,.jsx # Linting
94
+ prettier --check . # Format check
95
+ npm audit # Dependency vulnerabilities (or the equivalent yarn/pnpm/bun audit command)
96
+ vitest run # Tests (Vitest)
97
+ jest --ci # Tests (Jest)
98
+ ```
99
+
100
+ ## Approval Criteria
101
+
102
+ - **Approve**: No CRITICAL or HIGH issues
103
+ - **Warning**: MEDIUM issues only (can merge with caution)
104
+ - **Block**: CRITICAL or HIGH issues found
105
+
106
+ ## Reference
107
+
108
+ This repo does not yet ship a dedicated `typescript-patterns` skill. For detailed TypeScript and JavaScript patterns, use `coding-standards` plus `frontend-patterns` or `backend-patterns` based on the code being reviewed.
109
+
110
+ ---
111
+
112
+ Review with the mindset: "Would this code pass review at a top TypeScript shop or well-maintained open-source project?"
@@ -0,0 +1,80 @@
1
+ # Rules
2
+ ## Structure
3
+
4
+ Rules are organized into a **common** layer plus **language-specific** directories:
5
+
6
+ ```
7
+ available-rules/
8
+ ├── common/ # Language-agnostic principles (always installed)
9
+ │ ├── coding-style.md
10
+ │ ├── git-workflow.md
11
+ │ ├── testing.md
12
+ │ ├── performance.md
13
+ │ ├── patterns.md
14
+ │ ├── hooks.md
15
+ │ ├── agents.md
16
+ │ └── security.md
17
+ ├── cpp/ # C/C++ specific
18
+ ├── csharp/ # C# specific
19
+ ├── golang/ # Go specific
20
+ ├── java/ # Java specific
21
+ ├── kotlin/ # Kotlin specific
22
+ ├── perl/ # Perl specific
23
+ ├── php/ # PHP specific
24
+ ├── python/ # Python specific
25
+ ├── rust/ # Rust specific
26
+ ├── swift/ # Swift specific
27
+ └── typescript/ # TypeScript/JavaScript specific
28
+ ```
29
+
30
+ - **common/** contains universal principles — no language-specific code examples.
31
+ - **Language directories** extend the common rules with framework-specific patterns, tools, and code examples. Each file references its common counterpart.
32
+
33
+ ## Installation
34
+
35
+ Rules are installed automatically by Claude Code Pilot. The `/setup` wizard detects your project's tech stack and copies the appropriate common + language-specific rule directories into `.claude/rules/`.
36
+
37
+ > **Important:** Rules directories must maintain their structure (common/ and language-specific/ as separate directories). Do NOT flatten them -- common and language-specific directories contain files with the same names. Flattening causes language-specific files to overwrite common rules, and breaks the relative `../common/` references.
38
+
39
+ ## Rules vs Skills
40
+
41
+ - **Rules** define standards, conventions, and checklists that apply broadly (e.g., "80% test coverage", "no hardcoded secrets").
42
+ - **Skills** (`skills/` directory) provide deep, actionable reference material for specific tasks (e.g., `python-patterns`, `golang-testing`).
43
+
44
+ Language-specific rule files reference relevant skills where appropriate. Rules tell you *what* to do; skills tell you *how* to do it.
45
+
46
+ ## Adding a New Language
47
+
48
+ To add support for a new language (e.g., `elixir/`):
49
+
50
+ 1. Create an `available-rules/elixir/` directory
51
+ 2. Add files that extend the common rules:
52
+ - `coding-style.md` — formatting tools, idioms, error handling patterns
53
+ - `testing.md` — test framework, coverage tools, test organization
54
+ - `patterns.md` — language-specific design patterns
55
+ - `hooks.md` — PostToolUse hooks for formatters, linters, type checkers
56
+ - `security.md` — secret management, security scanning tools
57
+ 3. Each file should start with:
58
+ ```
59
+ > This file extends [common/xxx.md](../common/xxx.md) with <Language> specific content.
60
+ ```
61
+ 4. Reference existing skills if available, or create new ones under `skills/`.
62
+
63
+ ## Rule Priority
64
+
65
+ When language-specific rules and common rules conflict, **language-specific rules take precedence** (specific overrides general). This follows the standard layered configuration pattern (similar to CSS specificity or `.gitignore` precedence).
66
+
67
+ - `common/` defines universal defaults applicable to all projects.
68
+ - Language directories (`golang/`, `python/`, `rust/`, `typescript/`, etc.) override those defaults where language idioms differ.
69
+
70
+ ### Example
71
+
72
+ `common/coding-style.md` recommends immutability as a default principle. A language-specific `golang/coding-style.md` can override this:
73
+
74
+ > Idiomatic Go uses pointer receivers for struct mutation — see [common/coding-style.md](../common/coding-style.md) for the general principle, but Go-idiomatic mutation is preferred here.
75
+
76
+ ### Common rules with override notes
77
+
78
+ Rules in `common/` that may be overridden by language-specific files are marked with:
79
+
80
+ > **Language note**: This rule may be overridden by language-specific rules for languages where this pattern is not idiomatic.