claude-code-pilot 2.0.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (514) hide show
  1. package/README.md +76 -97
  2. package/bin/install.js +267 -250
  3. package/manifest.json +5 -18
  4. package/package.json +5 -7
  5. package/src/agents/build-error-resolver.md +114 -0
  6. package/src/agents/ccp-advisor-researcher.md +104 -0
  7. package/src/agents/ccp-assumptions-analyzer.md +105 -0
  8. package/{gsd/agents/gsd-codebase-mapper.md → src/agents/ccp-codebase-mapper.md} +7 -7
  9. package/{gsd/agents/gsd-debugger.md → src/agents/ccp-debugger.md} +125 -8
  10. package/{gsd/agents/gsd-executor.md → src/agents/ccp-executor.md} +31 -20
  11. package/{gsd/agents/gsd-integration-checker.md → src/agents/ccp-integration-checker.md} +2 -2
  12. package/{gsd/agents/gsd-nyquist-auditor.md → src/agents/ccp-nyquist-auditor.md} +3 -3
  13. package/{gsd/agents/gsd-phase-researcher.md → src/agents/ccp-phase-researcher.md} +127 -13
  14. package/{gsd/agents/gsd-plan-checker.md → src/agents/ccp-plan-checker.md} +57 -21
  15. package/{gsd/agents/gsd-planner.md → src/agents/ccp-planner.md} +61 -23
  16. package/{gsd/agents/gsd-project-researcher.md → src/agents/ccp-project-researcher.md} +33 -6
  17. package/{gsd/agents/gsd-research-synthesizer.md → src/agents/ccp-research-synthesizer.md} +11 -11
  18. package/{gsd/agents/gsd-roadmapper.md → src/agents/ccp-roadmapper.md} +39 -10
  19. package/src/agents/ccp-ui-auditor.md +439 -0
  20. package/src/agents/ccp-ui-checker.md +300 -0
  21. package/src/agents/ccp-ui-researcher.md +357 -0
  22. package/{gsd/agents/gsd-verifier.md → src/agents/ccp-verifier.md} +81 -15
  23. package/src/agents/cpp-build-resolver.md +90 -0
  24. package/src/agents/cpp-reviewer.md +72 -0
  25. package/src/agents/database-reviewer.md +91 -0
  26. package/{ecc → src}/agents/doc-updater.md +1 -1
  27. package/src/agents/docs-lookup.md +68 -0
  28. package/src/agents/flutter-reviewer.md +243 -0
  29. package/src/agents/gan-evaluator.md +209 -0
  30. package/src/agents/gan-generator.md +131 -0
  31. package/src/agents/gan-planner.md +99 -0
  32. package/src/agents/go-build-resolver.md +94 -0
  33. package/src/agents/go-reviewer.md +76 -0
  34. package/src/agents/harness-optimizer.md +35 -0
  35. package/src/agents/java-build-resolver.md +153 -0
  36. package/src/agents/java-reviewer.md +92 -0
  37. package/src/agents/kotlin-build-resolver.md +118 -0
  38. package/src/agents/kotlin-reviewer.md +159 -0
  39. package/src/agents/loop-operator.md +36 -0
  40. package/src/agents/opensource-forker.md +198 -0
  41. package/src/agents/opensource-packager.md +249 -0
  42. package/src/agents/opensource-sanitizer.md +188 -0
  43. package/src/agents/performance-optimizer.md +446 -0
  44. package/src/agents/planner.md +212 -0
  45. package/src/agents/python-reviewer.md +98 -0
  46. package/src/agents/pytorch-build-resolver.md +120 -0
  47. package/src/agents/refactor-cleaner.md +85 -0
  48. package/src/agents/rust-build-resolver.md +148 -0
  49. package/src/agents/rust-reviewer.md +94 -0
  50. package/src/agents/typescript-reviewer.md +112 -0
  51. package/src/available-rules/README.md +80 -0
  52. package/src/available-rules/cpp/coding-style.md +44 -0
  53. package/src/available-rules/cpp/hooks.md +39 -0
  54. package/src/available-rules/cpp/patterns.md +51 -0
  55. package/src/available-rules/cpp/security.md +51 -0
  56. package/src/available-rules/cpp/testing.md +44 -0
  57. package/src/available-rules/csharp/coding-style.md +72 -0
  58. package/src/available-rules/csharp/hooks.md +25 -0
  59. package/src/available-rules/csharp/patterns.md +50 -0
  60. package/src/available-rules/csharp/security.md +58 -0
  61. package/src/available-rules/csharp/testing.md +46 -0
  62. package/src/available-rules/java/coding-style.md +114 -0
  63. package/src/available-rules/java/hooks.md +18 -0
  64. package/src/available-rules/java/patterns.md +146 -0
  65. package/src/available-rules/java/security.md +100 -0
  66. package/src/available-rules/java/testing.md +131 -0
  67. package/src/available-rules/kotlin/hooks.md +17 -0
  68. package/src/available-rules/rust/coding-style.md +151 -0
  69. package/src/available-rules/rust/hooks.md +16 -0
  70. package/src/available-rules/rust/patterns.md +168 -0
  71. package/src/available-rules/rust/security.md +141 -0
  72. package/src/available-rules/rust/testing.md +154 -0
  73. package/src/commands/ccp/add-backlog.md +76 -0
  74. package/{gsd/commands-gsd → src/commands/ccp}/add-phase.md +3 -3
  75. package/{gsd/commands-gsd → src/commands/ccp}/add-tests.md +5 -5
  76. package/{gsd/commands-gsd → src/commands/ccp}/add-todo.md +4 -4
  77. package/src/commands/ccp/aside.md +165 -0
  78. package/{gsd/commands-gsd → src/commands/ccp}/audit-milestone.md +3 -3
  79. package/src/commands/ccp/audit-uat.md +24 -0
  80. package/src/commands/ccp/autonomous.md +41 -0
  81. package/src/commands/ccp/build-fix.md +67 -0
  82. package/{gsd/commands-gsd → src/commands/ccp}/check-todos.md +3 -3
  83. package/{ecc/commands → src/commands/ccp}/checkpoint.md +12 -7
  84. package/{gsd/commands-gsd → src/commands/ccp}/cleanup.md +3 -3
  85. package/src/commands/ccp/code-review.md +45 -0
  86. package/{gsd/commands-gsd → src/commands/ccp}/complete-milestone.md +9 -9
  87. package/src/commands/ccp/context-budget.md +30 -0
  88. package/src/commands/ccp/cpp-build.md +174 -0
  89. package/src/commands/ccp/cpp-review.md +133 -0
  90. package/src/commands/ccp/cpp-test.md +252 -0
  91. package/{gsd/commands-gsd → src/commands/ccp}/debug.md +14 -9
  92. package/src/commands/ccp/discuss-phase.md +64 -0
  93. package/src/commands/ccp/do.md +30 -0
  94. package/src/commands/ccp/docs-update.md +48 -0
  95. package/src/commands/ccp/docs.md +32 -0
  96. package/src/commands/ccp/e2e.md +365 -0
  97. package/src/commands/ccp/eval.md +125 -0
  98. package/{ecc/commands → src/commands/ccp}/evolve.md +5 -5
  99. package/src/commands/ccp/execute-phase.md +59 -0
  100. package/src/commands/ccp/fast.md +30 -0
  101. package/src/commands/ccp/forensics.md +56 -0
  102. package/src/commands/ccp/go-build.md +184 -0
  103. package/src/commands/ccp/go-review.md +149 -0
  104. package/src/commands/ccp/go-test.md +269 -0
  105. package/src/commands/ccp/gradle-build.md +71 -0
  106. package/src/commands/ccp/harness-audit.md +76 -0
  107. package/{gsd/commands-gsd → src/commands/ccp}/health.md +3 -3
  108. package/{gsd/commands-gsd → src/commands/ccp}/help.md +5 -5
  109. package/{gsd/commands-gsd → src/commands/ccp}/insert-phase.md +3 -3
  110. package/src/commands/ccp/kotlin-build.md +175 -0
  111. package/src/commands/ccp/kotlin-review.md +141 -0
  112. package/src/commands/ccp/kotlin-test.md +313 -0
  113. package/{ecc/commands → src/commands/ccp}/learn.md +7 -2
  114. package/{gsd/commands-gsd → src/commands/ccp}/list-phase-assumptions.md +2 -2
  115. package/src/commands/ccp/manager.md +39 -0
  116. package/{gsd/commands-gsd → src/commands/ccp}/map-codebase.md +7 -7
  117. package/src/commands/ccp/milestone-summary.md +51 -0
  118. package/{ecc/commands → src/commands/ccp}/model-route.md +6 -1
  119. package/{gsd/commands-gsd → src/commands/ccp}/new-milestone.md +8 -8
  120. package/{gsd/commands-gsd → src/commands/ccp}/new-project.md +8 -8
  121. package/src/commands/ccp/next.md +24 -0
  122. package/src/commands/ccp/note.md +34 -0
  123. package/src/commands/ccp/orchestrate.md +232 -0
  124. package/{gsd/commands-gsd → src/commands/ccp}/pause-work.md +3 -3
  125. package/{gsd/commands-gsd → src/commands/ccp}/plan-milestone-gaps.md +5 -5
  126. package/{gsd/commands-gsd → src/commands/ccp}/plan-phase.md +9 -7
  127. package/src/commands/ccp/plan.md +115 -0
  128. package/src/commands/ccp/plant-seed.md +28 -0
  129. package/src/commands/ccp/pr-branch.md +25 -0
  130. package/src/commands/ccp/profile-user.md +46 -0
  131. package/{gsd/commands-gsd → src/commands/ccp}/progress.md +3 -3
  132. package/src/commands/ccp/prompt-optimize.md +39 -0
  133. package/src/commands/ccp/prune.md +25 -0
  134. package/src/commands/ccp/python-review.md +298 -0
  135. package/{ecc/commands → src/commands/ccp}/quality-gate.md +7 -2
  136. package/{gsd/commands-gsd → src/commands/ccp}/quick.md +10 -8
  137. package/src/commands/ccp/refactor-clean.md +85 -0
  138. package/{gsd/commands-gsd → src/commands/ccp}/remove-phase.md +3 -3
  139. package/{gsd/commands-gsd → src/commands/ccp}/research-phase.md +17 -12
  140. package/{ecc/commands → src/commands/ccp}/resume-session.md +9 -8
  141. package/{gsd/commands-gsd → src/commands/ccp}/resume-work.md +3 -3
  142. package/src/commands/ccp/review-backlog.md +61 -0
  143. package/src/commands/ccp/review.md +37 -0
  144. package/src/commands/ccp/rules-distill.md +12 -0
  145. package/src/commands/ccp/rust-build.md +188 -0
  146. package/src/commands/ccp/rust-review.md +143 -0
  147. package/src/commands/ccp/rust-test.md +309 -0
  148. package/{ecc/commands → src/commands/ccp}/save-session.md +2 -1
  149. package/src/commands/ccp/secure-phase.md +35 -0
  150. package/src/commands/ccp/session-report.md +19 -0
  151. package/{ecc/commands → src/commands/ccp}/sessions.md +39 -34
  152. package/src/commands/ccp/set-profile.md +12 -0
  153. package/{gsd/commands-gsd → src/commands/ccp}/settings.md +5 -5
  154. package/src/commands/ccp/setup-pm.md +81 -0
  155. package/{kit/commands → src/commands/ccp}/setup-refresh.md +4 -3
  156. package/{kit/commands → src/commands/ccp}/setup.md +67 -40
  157. package/src/commands/ccp/ship.md +23 -0
  158. package/src/commands/ccp/skill-create.md +172 -0
  159. package/src/commands/ccp/skill-health.md +51 -0
  160. package/src/commands/ccp/stats.md +18 -0
  161. package/src/commands/ccp/tdd.md +329 -0
  162. package/src/commands/ccp/test-coverage.md +74 -0
  163. package/src/commands/ccp/thread.md +127 -0
  164. package/{kit/commands → src/commands/ccp}/tool-guide.md +2 -1
  165. package/src/commands/ccp/ui-phase.md +34 -0
  166. package/src/commands/ccp/ui-review.md +32 -0
  167. package/src/commands/ccp/update-codemaps.md +77 -0
  168. package/src/commands/ccp/update-docs.md +89 -0
  169. package/{gsd/commands-gsd → src/commands/ccp}/update.md +5 -5
  170. package/{gsd/commands-gsd → src/commands/ccp}/validate-phase.md +3 -3
  171. package/{gsd/commands-gsd → src/commands/ccp}/verify-work.md +5 -5
  172. package/{ecc/commands → src/commands/ccp}/verify.md +5 -0
  173. package/src/commands/ccp/workstreams.md +68 -0
  174. package/{ecc → src}/examples/CLAUDE.md +4 -4
  175. package/{ecc → src}/examples/django-api-CLAUDE.md +5 -5
  176. package/{ecc → src}/examples/go-microservice-CLAUDE.md +6 -6
  177. package/{ecc → src}/examples/rust-api-CLAUDE.md +4 -4
  178. package/{ecc → src}/examples/saas-nextjs-CLAUDE.md +8 -8
  179. package/{gsd/hooks/gsd-context-monitor.js → src/hooks/ccp-context-monitor.js} +3 -3
  180. package/src/hooks/ccp-prompt-guard.js +96 -0
  181. package/{gsd/hooks/gsd-statusline.js → src/hooks/ccp-statusline.js} +7 -7
  182. package/src/hooks/ccp-workflow-guard.js +94 -0
  183. package/src/hooks/config-protection.js +141 -0
  184. package/{kit → src}/hooks/kit-check-update.js +7 -4
  185. package/src/hooks/mcp-health-check.js +620 -0
  186. package/{ecc/scripts → src}/hooks/run-with-flags-shell.sh +1 -1
  187. package/{ecc/scripts → src}/hooks/run-with-flags.js +74 -13
  188. package/src/hooks/session-end-marker.js +29 -0
  189. package/{ecc/scripts → src}/hooks/session-end.js +83 -40
  190. package/{ecc/scripts → src}/hooks/session-start.js +76 -10
  191. package/{ecc/scripts → src}/lib/hook-flags.js +8 -4
  192. package/{ecc/scripts → src}/lib/project-detect.js +2 -1
  193. package/{ecc/scripts → src}/lib/session-manager.d.ts +5 -1
  194. package/{ecc/scripts → src}/lib/session-manager.js +202 -92
  195. package/{ecc/scripts → src}/lib/utils.d.ts +23 -1
  196. package/{ecc/scripts → src}/lib/utils.js +91 -3
  197. package/{gsd/get-shit-done/bin/gsd-tools.cjs → src/pilot/bin/ccp-tools.cjs} +257 -86
  198. package/{gsd/get-shit-done → src/pilot}/bin/lib/commands.cjs +1 -1
  199. package/src/pilot/bin/lib/config.cjs +444 -0
  200. package/src/pilot/bin/lib/core.cjs +1190 -0
  201. package/src/pilot/bin/lib/init.cjs +1281 -0
  202. package/src/pilot/bin/lib/model-profiles.cjs +67 -0
  203. package/{gsd/get-shit-done → src/pilot}/bin/lib/phase.cjs +2 -2
  204. package/src/pilot/bin/lib/security.cjs +382 -0
  205. package/{gsd/get-shit-done → src/pilot}/bin/lib/state.cjs +1 -1
  206. package/src/pilot/bin/lib/uat.cjs +282 -0
  207. package/{gsd/get-shit-done → src/pilot}/bin/lib/verify.cjs +10 -10
  208. package/{gsd/get-shit-done → src/pilot}/references/continuation-format.md +16 -16
  209. package/{gsd/get-shit-done → src/pilot}/references/decimal-phase-calculation.md +5 -5
  210. package/{gsd/get-shit-done → src/pilot}/references/git-integration.md +5 -5
  211. package/{gsd/get-shit-done → src/pilot}/references/git-planning-commit.md +4 -4
  212. package/src/pilot/references/mcp-servers.json +153 -0
  213. package/{gsd/get-shit-done → src/pilot}/references/model-profile-resolution.md +2 -2
  214. package/{gsd/get-shit-done → src/pilot}/references/model-profiles.md +20 -20
  215. package/{gsd/get-shit-done → src/pilot}/references/phase-argument-parsing.md +4 -4
  216. package/{gsd/get-shit-done → src/pilot}/references/planning-config.md +15 -15
  217. package/{gsd/get-shit-done → src/pilot}/references/ui-brand.md +5 -5
  218. package/{gsd/get-shit-done → src/pilot}/references/verification-patterns.md +1 -1
  219. package/{gsd/get-shit-done → src/pilot}/templates/DEBUG.md +1 -1
  220. package/{gsd/get-shit-done → src/pilot}/templates/UAT.md +3 -3
  221. package/src/pilot/templates/UI-SPEC.md +100 -0
  222. package/{gsd/get-shit-done → src/pilot}/templates/VALIDATION.md +1 -1
  223. package/src/pilot/templates/claude-md.md +122 -0
  224. package/{gsd/get-shit-done → src/pilot}/templates/codebase/architecture.md +2 -2
  225. package/{gsd/get-shit-done → src/pilot}/templates/codebase/structure.md +13 -13
  226. package/{gsd/get-shit-done → src/pilot}/templates/context.md +4 -4
  227. package/src/pilot/templates/copilot-instructions.md +7 -0
  228. package/{gsd/get-shit-done → src/pilot}/templates/debug-subagent-prompt.md +4 -4
  229. package/src/pilot/templates/dev-preferences.md +21 -0
  230. package/{gsd/get-shit-done → src/pilot}/templates/discovery.md +2 -2
  231. package/src/pilot/templates/discussion-log.md +63 -0
  232. package/{gsd/get-shit-done → src/pilot}/templates/phase-prompt.md +12 -12
  233. package/{gsd/get-shit-done → src/pilot}/templates/planner-subagent-prompt.md +7 -7
  234. package/{gsd/get-shit-done → src/pilot}/templates/project.md +1 -1
  235. package/{gsd/get-shit-done → src/pilot}/templates/research.md +2 -2
  236. package/{gsd/get-shit-done → src/pilot}/templates/state.md +2 -2
  237. package/{gsd/get-shit-done → src/pilot}/templates/summary-complex.md +1 -1
  238. package/{gsd/get-shit-done → src/pilot}/workflows/add-phase.md +11 -11
  239. package/{gsd/get-shit-done → src/pilot}/workflows/add-tests.md +15 -15
  240. package/{gsd/get-shit-done → src/pilot}/workflows/add-todo.md +7 -7
  241. package/{gsd/get-shit-done → src/pilot}/workflows/audit-milestone.md +24 -16
  242. package/src/pilot/workflows/audit-uat.md +109 -0
  243. package/src/pilot/workflows/autonomous.md +891 -0
  244. package/{gsd/get-shit-done → src/pilot}/workflows/check-todos.md +10 -10
  245. package/{gsd/get-shit-done → src/pilot}/workflows/cleanup.md +3 -3
  246. package/{gsd/get-shit-done → src/pilot}/workflows/complete-milestone.md +19 -16
  247. package/{gsd/get-shit-done → src/pilot}/workflows/diagnose-issues.md +9 -4
  248. package/{gsd/get-shit-done → src/pilot}/workflows/discovery-phase.md +8 -8
  249. package/src/pilot/workflows/discuss-phase-assumptions.md +653 -0
  250. package/{gsd/get-shit-done → src/pilot}/workflows/discuss-phase.md +407 -49
  251. package/src/pilot/workflows/do.md +104 -0
  252. package/src/pilot/workflows/docs-update.md +1165 -0
  253. package/src/pilot/workflows/execute-phase.md +821 -0
  254. package/{gsd/get-shit-done → src/pilot}/workflows/execute-plan.md +79 -28
  255. package/src/pilot/workflows/fast.md +105 -0
  256. package/src/pilot/workflows/forensics.md +265 -0
  257. package/{gsd/get-shit-done → src/pilot}/workflows/health.md +34 -11
  258. package/src/pilot/workflows/help.md +767 -0
  259. package/{gsd/get-shit-done → src/pilot}/workflows/insert-phase.md +10 -10
  260. package/{gsd/get-shit-done → src/pilot}/workflows/list-phase-assumptions.md +4 -4
  261. package/src/pilot/workflows/manager.md +362 -0
  262. package/{gsd/get-shit-done → src/pilot}/workflows/map-codebase.md +27 -17
  263. package/src/pilot/workflows/milestone-summary.md +223 -0
  264. package/{gsd/get-shit-done → src/pilot}/workflows/new-milestone.md +135 -33
  265. package/{gsd/get-shit-done → src/pilot}/workflows/new-project.md +152 -79
  266. package/src/pilot/workflows/next.md +97 -0
  267. package/src/pilot/workflows/node-repair.md +92 -0
  268. package/src/pilot/workflows/note.md +156 -0
  269. package/src/pilot/workflows/pause-work.md +177 -0
  270. package/{gsd/get-shit-done → src/pilot}/workflows/plan-milestone-gaps.md +10 -11
  271. package/src/pilot/workflows/plan-phase.md +859 -0
  272. package/src/pilot/workflows/plant-seed.md +169 -0
  273. package/src/pilot/workflows/pr-branch.md +129 -0
  274. package/src/pilot/workflows/profile-user.md +452 -0
  275. package/{gsd/get-shit-done → src/pilot}/workflows/progress.md +95 -34
  276. package/{gsd/get-shit-done → src/pilot}/workflows/quick.md +33 -21
  277. package/{gsd/get-shit-done → src/pilot}/workflows/remove-phase.md +14 -14
  278. package/{gsd/get-shit-done → src/pilot}/workflows/research-phase.md +18 -10
  279. package/{gsd/get-shit-done → src/pilot}/workflows/resume-project.md +37 -18
  280. package/src/pilot/workflows/review.md +244 -0
  281. package/src/pilot/workflows/secure-phase.md +164 -0
  282. package/src/pilot/workflows/session-report.md +146 -0
  283. package/{gsd/get-shit-done → src/pilot}/workflows/set-profile.md +7 -7
  284. package/{gsd/get-shit-done → src/pilot}/workflows/settings.md +75 -22
  285. package/src/pilot/workflows/ship.md +228 -0
  286. package/src/pilot/workflows/stats.md +60 -0
  287. package/{gsd/get-shit-done → src/pilot}/workflows/transition.md +57 -17
  288. package/src/pilot/workflows/ui-phase.md +302 -0
  289. package/src/pilot/workflows/ui-review.md +165 -0
  290. package/{gsd/get-shit-done → src/pilot}/workflows/update.md +88 -58
  291. package/{gsd/get-shit-done → src/pilot}/workflows/validate-phase.md +24 -17
  292. package/{gsd/get-shit-done → src/pilot}/workflows/verify-phase.md +26 -15
  293. package/{gsd/get-shit-done → src/pilot}/workflows/verify-work.md +89 -37
  294. package/{ecc → src}/rules/common/agents.md +1 -0
  295. package/src/rules/common/code-review.md +124 -0
  296. package/{ecc → src}/rules/common/coding-style.md +21 -0
  297. package/src/rules/zh/README.md +108 -0
  298. package/src/rules/zh/agents.md +50 -0
  299. package/src/rules/zh/code-review.md +124 -0
  300. package/src/rules/zh/coding-style.md +48 -0
  301. package/src/rules/zh/development-workflow.md +44 -0
  302. package/src/rules/zh/git-workflow.md +24 -0
  303. package/src/rules/zh/hooks.md +30 -0
  304. package/src/rules/zh/patterns.md +31 -0
  305. package/src/rules/zh/performance.md +55 -0
  306. package/src/rules/zh/security.md +29 -0
  307. package/src/rules/zh/testing.md +29 -0
  308. package/src/skills/agentic-engineering/SKILL.md +63 -0
  309. package/src/skills/ai-first-engineering/SKILL.md +51 -0
  310. package/src/skills/ai-regression-testing/SKILL.md +385 -0
  311. package/src/skills/api-design/SKILL.md +523 -0
  312. package/src/skills/architecture-decision-records/SKILL.md +179 -0
  313. package/src/skills/autonomous-agent-harness/SKILL.md +267 -0
  314. package/src/skills/autonomous-loops/SKILL.md +610 -0
  315. package/src/skills/backend-patterns/SKILL.md +598 -0
  316. package/src/skills/benchmark/SKILL.md +87 -0
  317. package/src/skills/blueprint/SKILL.md +90 -0
  318. package/src/skills/browser-qa/SKILL.md +81 -0
  319. package/src/skills/bun-runtime/SKILL.md +84 -0
  320. package/src/skills/claude-api/SKILL.md +337 -0
  321. package/src/skills/codebase-onboarding/SKILL.md +233 -0
  322. package/src/skills/coding-standards/SKILL.md +530 -0
  323. package/src/skills/content-hash-cache-pattern/SKILL.md +161 -0
  324. package/src/skills/context-budget/SKILL.md +135 -0
  325. package/{ecc → src}/skills/continuous-learning-v2/SKILL.md +6 -6
  326. package/{ecc → src}/skills/continuous-learning-v2/agents/observer-loop.sh +1 -1
  327. package/{ecc → src}/skills/continuous-learning-v2/agents/observer.md +1 -1
  328. package/src/skills/cost-aware-llm-pipeline/SKILL.md +183 -0
  329. package/src/skills/cpp-coding-standards/SKILL.md +723 -0
  330. package/src/skills/cpp-testing/SKILL.md +324 -0
  331. package/src/skills/database-migrations/SKILL.md +429 -0
  332. package/src/skills/deep-research/SKILL.md +155 -0
  333. package/src/skills/deployment-patterns/SKILL.md +427 -0
  334. package/src/skills/design-system/SKILL.md +82 -0
  335. package/src/skills/django-patterns/SKILL.md +734 -0
  336. package/src/skills/django-security/SKILL.md +593 -0
  337. package/src/skills/django-tdd/SKILL.md +729 -0
  338. package/src/skills/django-verification/SKILL.md +469 -0
  339. package/src/skills/docker-patterns/SKILL.md +364 -0
  340. package/src/skills/documentation-lookup/SKILL.md +90 -0
  341. package/src/skills/e2e-testing/SKILL.md +326 -0
  342. package/src/skills/eval-harness/SKILL.md +270 -0
  343. package/src/skills/exa-search/SKILL.md +103 -0
  344. package/src/skills/flutter-dart-code-review/SKILL.md +435 -0
  345. package/src/skills/frontend-patterns/SKILL.md +642 -0
  346. package/src/skills/gan-style-harness/SKILL.md +278 -0
  347. package/src/skills/git-workflow/SKILL.md +715 -0
  348. package/src/skills/golang-patterns/SKILL.md +674 -0
  349. package/src/skills/golang-testing/SKILL.md +720 -0
  350. package/src/skills/hexagonal-architecture/SKILL.md +276 -0
  351. package/src/skills/iterative-retrieval/SKILL.md +211 -0
  352. package/src/skills/java-coding-standards/SKILL.md +147 -0
  353. package/src/skills/jpa-patterns/SKILL.md +151 -0
  354. package/src/skills/kotlin-coroutines-flows/SKILL.md +284 -0
  355. package/src/skills/kotlin-exposed-patterns/SKILL.md +719 -0
  356. package/src/skills/kotlin-ktor-patterns/SKILL.md +689 -0
  357. package/src/skills/kotlin-patterns/SKILL.md +711 -0
  358. package/src/skills/kotlin-testing/SKILL.md +824 -0
  359. package/src/skills/laravel-patterns/SKILL.md +415 -0
  360. package/src/skills/laravel-plugin-discovery/SKILL.md +229 -0
  361. package/src/skills/laravel-security/SKILL.md +285 -0
  362. package/src/skills/laravel-tdd/SKILL.md +283 -0
  363. package/src/skills/laravel-verification/SKILL.md +179 -0
  364. package/src/skills/mcp-server-patterns/SKILL.md +67 -0
  365. package/src/skills/nextjs-turbopack/SKILL.md +44 -0
  366. package/src/skills/nuxt4-patterns/SKILL.md +100 -0
  367. package/src/skills/opensource-pipeline/SKILL.md +255 -0
  368. package/src/skills/perl-patterns/SKILL.md +504 -0
  369. package/src/skills/perl-security/SKILL.md +503 -0
  370. package/src/skills/perl-testing/SKILL.md +475 -0
  371. package/src/skills/postgres-patterns/SKILL.md +147 -0
  372. package/src/skills/project-flow-ops/SKILL.md +111 -0
  373. package/src/skills/project-guidelines-example/SKILL.md +349 -0
  374. package/src/skills/prompt-optimizer/SKILL.md +397 -0
  375. package/src/skills/python-patterns/SKILL.md +750 -0
  376. package/src/skills/python-testing/SKILL.md +816 -0
  377. package/src/skills/pytorch-patterns/SKILL.md +396 -0
  378. package/src/skills/regex-vs-llm-structured-text/SKILL.md +220 -0
  379. package/src/skills/repo-scan/SKILL.md +78 -0
  380. package/src/skills/rules-distill/SKILL.md +264 -0
  381. package/src/skills/rules-distill/scripts/scan-rules.sh +58 -0
  382. package/src/skills/rules-distill/scripts/scan-skills.sh +129 -0
  383. package/src/skills/rust-patterns/SKILL.md +499 -0
  384. package/src/skills/rust-testing/SKILL.md +500 -0
  385. package/src/skills/safety-guard/SKILL.md +69 -0
  386. package/src/skills/search-first/SKILL.md +161 -0
  387. package/src/skills/security-review/SKILL.md +495 -0
  388. package/src/skills/security-review/cloud-infrastructure-security.md +361 -0
  389. package/src/skills/security-scan/SKILL.md +165 -0
  390. package/src/skills/springboot-patterns/SKILL.md +314 -0
  391. package/src/skills/springboot-security/SKILL.md +272 -0
  392. package/src/skills/springboot-tdd/SKILL.md +158 -0
  393. package/src/skills/springboot-verification/SKILL.md +231 -0
  394. package/src/skills/swift-concurrency-6-2/SKILL.md +216 -0
  395. package/src/skills/tdd-workflow/SKILL.md +410 -0
  396. package/src/skills/token-budget-advisor/SKILL.md +133 -0
  397. package/{ecc/skills/verification-loop-SKILL.md → src/skills/verification-loop/SKILL.md} +1 -1
  398. package/src/skills/workspace-surface-audit/SKILL.md +125 -0
  399. package/ecc/scripts/hooks/session-end-marker.js +0 -15
  400. package/gsd/LICENSE +0 -21
  401. package/gsd/commands-gsd/discuss-phase.md +0 -90
  402. package/gsd/commands-gsd/execute-phase.md +0 -41
  403. package/gsd/commands-gsd/join-discord.md +0 -18
  404. package/gsd/commands-gsd/reapply-patches.md +0 -123
  405. package/gsd/commands-gsd/set-profile.md +0 -34
  406. package/gsd/get-shit-done/bin/lib/config.cjs +0 -169
  407. package/gsd/get-shit-done/bin/lib/core.cjs +0 -492
  408. package/gsd/get-shit-done/bin/lib/init.cjs +0 -710
  409. package/gsd/get-shit-done/workflows/execute-phase.md +0 -459
  410. package/gsd/get-shit-done/workflows/help.md +0 -489
  411. package/gsd/get-shit-done/workflows/pause-work.md +0 -122
  412. package/gsd/get-shit-done/workflows/plan-phase.md +0 -560
  413. package/gsd/hooks/gsd-check-update.js +0 -81
  414. package/kit/CLAUDE.md +0 -43
  415. package/kit/commands/kit/update.md +0 -46
  416. package/kit/mcp.json +0 -10
  417. package/kit/rules/code-style.md +0 -24
  418. /package/{ecc → src}/agents/architect.md +0 -0
  419. /package/{ecc → src}/agents/code-reviewer.md +0 -0
  420. /package/{ecc → src}/agents/e2e-runner.md +0 -0
  421. /package/{ecc → src}/agents/security-reviewer.md +0 -0
  422. /package/{ecc → src}/agents/tdd-guide.md +0 -0
  423. /package/{ecc/rules → src/available-rules}/golang/coding-style.md +0 -0
  424. /package/{ecc/rules → src/available-rules}/golang/hooks.md +0 -0
  425. /package/{ecc/rules → src/available-rules}/golang/patterns.md +0 -0
  426. /package/{ecc/rules → src/available-rules}/golang/security.md +0 -0
  427. /package/{ecc/rules → src/available-rules}/golang/testing.md +0 -0
  428. /package/{ecc/rules → src/available-rules}/kotlin/coding-style.md +0 -0
  429. /package/{ecc/rules → src/available-rules}/kotlin/patterns.md +0 -0
  430. /package/{ecc/rules → src/available-rules}/kotlin/security.md +0 -0
  431. /package/{ecc/rules → src/available-rules}/kotlin/testing.md +0 -0
  432. /package/{ecc/rules → src/available-rules}/perl/coding-style.md +0 -0
  433. /package/{ecc/rules → src/available-rules}/perl/hooks.md +0 -0
  434. /package/{ecc/rules → src/available-rules}/perl/patterns.md +0 -0
  435. /package/{ecc/rules → src/available-rules}/perl/security.md +0 -0
  436. /package/{ecc/rules → src/available-rules}/perl/testing.md +0 -0
  437. /package/{ecc/rules → src/available-rules}/php/coding-style.md +0 -0
  438. /package/{ecc/rules → src/available-rules}/php/hooks.md +0 -0
  439. /package/{ecc/rules → src/available-rules}/php/patterns.md +0 -0
  440. /package/{ecc/rules → src/available-rules}/php/security.md +0 -0
  441. /package/{ecc/rules → src/available-rules}/php/testing.md +0 -0
  442. /package/{ecc/rules → src/available-rules}/python/coding-style.md +0 -0
  443. /package/{ecc/rules → src/available-rules}/python/hooks.md +0 -0
  444. /package/{ecc/rules → src/available-rules}/python/patterns.md +0 -0
  445. /package/{ecc/rules → src/available-rules}/python/security.md +0 -0
  446. /package/{ecc/rules → src/available-rules}/python/testing.md +0 -0
  447. /package/{ecc/rules → src/available-rules}/swift/coding-style.md +0 -0
  448. /package/{ecc/rules → src/available-rules}/swift/hooks.md +0 -0
  449. /package/{ecc/rules → src/available-rules}/swift/patterns.md +0 -0
  450. /package/{ecc/rules → src/available-rules}/swift/security.md +0 -0
  451. /package/{ecc/rules → src/available-rules}/swift/testing.md +0 -0
  452. /package/{ecc/rules → src/available-rules}/typescript/coding-style.md +0 -0
  453. /package/{ecc/rules → src/available-rules}/typescript/hooks.md +0 -0
  454. /package/{ecc/rules → src/available-rules}/typescript/patterns.md +0 -0
  455. /package/{ecc/rules → src/available-rules}/typescript/security.md +0 -0
  456. /package/{ecc/rules → src/available-rules}/typescript/testing.md +0 -0
  457. /package/{ecc → src}/contexts/dev.md +0 -0
  458. /package/{ecc → src}/contexts/research.md +0 -0
  459. /package/{ecc → src}/contexts/review.md +0 -0
  460. /package/{ecc → src}/examples/user-CLAUDE.md +0 -0
  461. /package/{ecc/scripts → src}/hooks/check-hook-enabled.js +0 -0
  462. /package/{ecc/scripts → src}/hooks/evaluate-session.js +0 -0
  463. /package/{ecc/scripts → src}/hooks/pre-compact.js +0 -0
  464. /package/{ecc/scripts → src}/hooks/suggest-compact.js +0 -0
  465. /package/{ecc/scripts → src}/lib/package-manager.d.ts +0 -0
  466. /package/{ecc/scripts → src}/lib/package-manager.js +0 -0
  467. /package/{ecc/scripts → src}/lib/resolve-formatter.js +0 -0
  468. /package/{ecc/scripts → src}/lib/session-aliases.d.ts +0 -0
  469. /package/{ecc/scripts → src}/lib/session-aliases.js +0 -0
  470. /package/{ecc/scripts → src}/lib/shell-split.js +0 -0
  471. /package/{gsd/get-shit-done → src/pilot}/bin/lib/frontmatter.cjs +0 -0
  472. /package/{gsd/get-shit-done → src/pilot}/bin/lib/milestone.cjs +0 -0
  473. /package/{gsd/get-shit-done → src/pilot}/bin/lib/roadmap.cjs +0 -0
  474. /package/{gsd/get-shit-done → src/pilot}/bin/lib/template.cjs +0 -0
  475. /package/{gsd/get-shit-done → src/pilot}/references/checkpoints.md +0 -0
  476. /package/{gsd/get-shit-done → src/pilot}/references/questioning.md +0 -0
  477. /package/{gsd/get-shit-done → src/pilot}/references/tdd.md +0 -0
  478. /package/{gsd/get-shit-done → src/pilot}/templates/codebase/concerns.md +0 -0
  479. /package/{gsd/get-shit-done → src/pilot}/templates/codebase/conventions.md +0 -0
  480. /package/{gsd/get-shit-done → src/pilot}/templates/codebase/integrations.md +0 -0
  481. /package/{gsd/get-shit-done → src/pilot}/templates/codebase/stack.md +0 -0
  482. /package/{gsd/get-shit-done → src/pilot}/templates/codebase/testing.md +0 -0
  483. /package/{gsd/get-shit-done → src/pilot}/templates/config.json +0 -0
  484. /package/{gsd/get-shit-done → src/pilot}/templates/continue-here.md +0 -0
  485. /package/{gsd/get-shit-done → src/pilot}/templates/milestone-archive.md +0 -0
  486. /package/{gsd/get-shit-done → src/pilot}/templates/milestone.md +0 -0
  487. /package/{gsd/get-shit-done → src/pilot}/templates/requirements.md +0 -0
  488. /package/{gsd/get-shit-done → src/pilot}/templates/research-project/ARCHITECTURE.md +0 -0
  489. /package/{gsd/get-shit-done → src/pilot}/templates/research-project/FEATURES.md +0 -0
  490. /package/{gsd/get-shit-done → src/pilot}/templates/research-project/PITFALLS.md +0 -0
  491. /package/{gsd/get-shit-done → src/pilot}/templates/research-project/STACK.md +0 -0
  492. /package/{gsd/get-shit-done → src/pilot}/templates/research-project/SUMMARY.md +0 -0
  493. /package/{gsd/get-shit-done → src/pilot}/templates/retrospective.md +0 -0
  494. /package/{gsd/get-shit-done → src/pilot}/templates/roadmap.md +0 -0
  495. /package/{gsd/get-shit-done → src/pilot}/templates/summary-minimal.md +0 -0
  496. /package/{gsd/get-shit-done → src/pilot}/templates/summary-standard.md +0 -0
  497. /package/{gsd/get-shit-done → src/pilot}/templates/summary.md +0 -0
  498. /package/{gsd/get-shit-done → src/pilot}/templates/user-setup.md +0 -0
  499. /package/{gsd/get-shit-done → src/pilot}/templates/verification-report.md +0 -0
  500. /package/{ecc → src}/rules/common/development-workflow.md +0 -0
  501. /package/{ecc → src}/rules/common/git-workflow.md +0 -0
  502. /package/{ecc → src}/rules/common/hooks.md +0 -0
  503. /package/{ecc → src}/rules/common/patterns.md +0 -0
  504. /package/{ecc → src}/rules/common/performance.md +0 -0
  505. /package/{ecc → src}/rules/common/security.md +0 -0
  506. /package/{ecc → src}/rules/common/testing.md +0 -0
  507. /package/{ecc → src}/skills/continuous-learning-v2/agents/start-observer.sh +0 -0
  508. /package/{ecc → src}/skills/continuous-learning-v2/config.json +0 -0
  509. /package/{ecc → src}/skills/continuous-learning-v2/hooks/observe.sh +0 -0
  510. /package/{ecc → src}/skills/continuous-learning-v2/scripts/detect-project.sh +0 -0
  511. /package/{ecc → src}/skills/continuous-learning-v2/scripts/instinct-cli.py +0 -0
  512. /package/{ecc → src}/skills/continuous-learning-v2/scripts/test_parse_instinct.py +0 -0
  513. /package/{ecc → src}/skills/strategic-compact/SKILL.md +0 -0
  514. /package/{ecc → src}/skills/strategic-compact/suggest-compact.sh +0 -0
@@ -0,0 +1,309 @@
1
+ ---
2
+ name: ccp:rust-test
3
+ description: Enforce TDD workflow for Rust. Write tests first, then implement. Verify 80%+ coverage with cargo-llvm-cov.
4
+ ---
5
+
6
+ # Rust TDD Command
7
+
8
+ This command enforces test-driven development methodology for Rust code using `#[test]`, rstest, proptest, and mockall.
9
+
10
+ ## What This Command Does
11
+
12
+ 1. **Define Types/Traits**: Scaffold function signatures with `todo!()`
13
+ 2. **Write Tests**: Create comprehensive test module (RED)
14
+ 3. **Run Tests**: Verify tests fail for the right reason
15
+ 4. **Implement Code**: Write minimal code to pass (GREEN)
16
+ 5. **Refactor**: Improve while keeping tests green
17
+ 6. **Check Coverage**: Ensure 80%+ coverage with cargo-llvm-cov
18
+
19
+ ## When to Use
20
+
21
+ Use `/ccp:rust-test` when:
22
+ - Implementing new Rust functions, methods, or traits
23
+ - Adding test coverage to existing Rust code
24
+ - Fixing bugs (write failing test first)
25
+ - Building critical business logic
26
+ - Learning TDD workflow in Rust
27
+
28
+ ## TDD Cycle
29
+
30
+ ```
31
+ RED -> Write failing test first
32
+ GREEN -> Implement minimal code to pass
33
+ REFACTOR -> Improve code, tests stay green
34
+ REPEAT -> Next test case
35
+ ```
36
+
37
+ ## Example Session
38
+
39
+ ````text
40
+ User: /ccp:rust-test I need a function to validate user registration
41
+
42
+ Agent:
43
+ # TDD Session: Registration Validator
44
+
45
+ ## Step 1: Define Interface
46
+
47
+ ```rust
48
+ // src/validator.rs
49
+ pub struct RegistrationRequest {
50
+ pub name: String,
51
+ pub email: String,
52
+ pub password: String,
53
+ }
54
+
55
+ pub enum ValidationResult {
56
+ Valid,
57
+ Invalid(Vec<String>),
58
+ }
59
+
60
+ pub fn validate_registration(request: &RegistrationRequest) -> ValidationResult {
61
+ todo!()
62
+ }
63
+ ```
64
+
65
+ ## Step 2: Write Tests (RED)
66
+
67
+ ```rust
68
+ #[cfg(test)]
69
+ mod tests {
70
+ use super::*;
71
+
72
+ #[test]
73
+ fn valid_registration_returns_valid() {
74
+ let request = RegistrationRequest {
75
+ name: "Alice".into(),
76
+ email: "alice@example.com".into(),
77
+ password: "SecureP@ss1".into(),
78
+ };
79
+ assert!(matches!(validate_registration(&request), ValidationResult::Valid));
80
+ }
81
+
82
+ #[test]
83
+ fn blank_name_returns_invalid() {
84
+ let request = RegistrationRequest {
85
+ name: "".into(),
86
+ email: "alice@example.com".into(),
87
+ password: "SecureP@ss1".into(),
88
+ };
89
+ match validate_registration(&request) {
90
+ ValidationResult::Invalid(errors) => {
91
+ assert!(errors.contains(&"Name is required".to_string()));
92
+ }
93
+ ValidationResult::Valid => panic!("expected Invalid"),
94
+ }
95
+ }
96
+
97
+ #[test]
98
+ fn invalid_email_returns_invalid() {
99
+ let request = RegistrationRequest {
100
+ name: "Alice".into(),
101
+ email: "not-an-email".into(),
102
+ password: "SecureP@ss1".into(),
103
+ };
104
+ assert!(matches!(
105
+ validate_registration(&request),
106
+ ValidationResult::Invalid(_)
107
+ ));
108
+ }
109
+
110
+ #[test]
111
+ fn short_password_returns_invalid() {
112
+ let request = RegistrationRequest {
113
+ name: "Alice".into(),
114
+ email: "alice@example.com".into(),
115
+ password: "short".into(),
116
+ };
117
+ assert!(matches!(
118
+ validate_registration(&request),
119
+ ValidationResult::Invalid(_)
120
+ ));
121
+ }
122
+ }
123
+ ```
124
+
125
+ ## Step 3: Run Tests — Verify FAIL
126
+
127
+ ```bash
128
+ $ cargo test
129
+ running 4 tests
130
+ test tests::valid_registration_returns_valid ... FAILED (not yet implemented)
131
+ test tests::blank_name_returns_invalid ... FAILED
132
+ test tests::invalid_email_returns_invalid ... FAILED
133
+ test tests::short_password_returns_invalid ... FAILED
134
+ ```
135
+
136
+ Tests fail as expected (todo! panic).
137
+
138
+ ## Step 4: Implement Minimal Code (GREEN)
139
+
140
+ ```rust
141
+ pub fn validate_registration(request: &RegistrationRequest) -> ValidationResult {
142
+ let mut errors = Vec::new();
143
+
144
+ if request.name.trim().is_empty() {
145
+ errors.push("Name is required".into());
146
+ }
147
+ if !request.email.contains('@') {
148
+ errors.push("Invalid email format".into());
149
+ }
150
+ if request.password.len() < 8 {
151
+ errors.push("Password must be at least 8 characters".into());
152
+ }
153
+
154
+ if errors.is_empty() {
155
+ ValidationResult::Valid
156
+ } else {
157
+ ValidationResult::Invalid(errors)
158
+ }
159
+ }
160
+ ```
161
+
162
+ ## Step 5: Run Tests — Verify PASS
163
+
164
+ ```bash
165
+ $ cargo test
166
+ running 4 tests
167
+ test tests::valid_registration_returns_valid ... ok
168
+ test tests::blank_name_returns_invalid ... ok
169
+ test tests::invalid_email_returns_invalid ... ok
170
+ test tests::short_password_returns_invalid ... ok
171
+
172
+ test result: ok. 4 passed; 0 failed
173
+ ```
174
+
175
+ All tests passing!
176
+
177
+ ## Step 6: Check Coverage
178
+
179
+ ```bash
180
+ $ cargo llvm-cov
181
+ Coverage: 100.0% of lines
182
+ ```
183
+
184
+ Coverage: 100%
185
+
186
+ ## TDD Complete!
187
+ ````
188
+
189
+ ## Test Patterns
190
+
191
+ ### Unit Tests
192
+
193
+ ```rust
194
+ #[cfg(test)]
195
+ mod tests {
196
+ use super::*;
197
+
198
+ #[test]
199
+ fn adds_two_numbers() {
200
+ assert_eq!(add(2, 3), 5);
201
+ }
202
+
203
+ #[test]
204
+ fn handles_error() -> Result<(), Box<dyn std::error::Error>> {
205
+ let result = parse_config(r#"port = 8080"#)?;
206
+ assert_eq!(result.port, 8080);
207
+ Ok(())
208
+ }
209
+ }
210
+ ```
211
+
212
+ ### Parameterized Tests with rstest
213
+
214
+ ```rust
215
+ use rstest::{rstest, fixture};
216
+
217
+ #[rstest]
218
+ #[case("hello", 5)]
219
+ #[case("", 0)]
220
+ #[case("rust", 4)]
221
+ fn test_string_length(#[case] input: &str, #[case] expected: usize) {
222
+ assert_eq!(input.len(), expected);
223
+ }
224
+ ```
225
+
226
+ ### Async Tests
227
+
228
+ ```rust
229
+ #[tokio::test]
230
+ async fn fetches_data_successfully() {
231
+ let client = TestClient::new().await;
232
+ let result = client.get("/data").await;
233
+ assert!(result.is_ok());
234
+ }
235
+ ```
236
+
237
+ ### Property-Based Tests
238
+
239
+ ```rust
240
+ use proptest::prelude::*;
241
+
242
+ proptest! {
243
+ #[test]
244
+ fn encode_decode_roundtrip(input in ".*") {
245
+ let encoded = encode(&input);
246
+ let decoded = decode(&encoded).unwrap();
247
+ assert_eq!(input, decoded);
248
+ }
249
+ }
250
+ ```
251
+
252
+ ## Coverage Commands
253
+
254
+ ```bash
255
+ # Summary report
256
+ cargo llvm-cov
257
+
258
+ # HTML report
259
+ cargo llvm-cov --html
260
+
261
+ # Fail if below threshold
262
+ cargo llvm-cov --fail-under-lines 80
263
+
264
+ # Run specific test
265
+ cargo test test_name
266
+
267
+ # Run with output
268
+ cargo test -- --nocapture
269
+
270
+ # Run without stopping on first failure
271
+ cargo test --no-fail-fast
272
+ ```
273
+
274
+ ## Coverage Targets
275
+
276
+ | Code Type | Target |
277
+ |-----------|--------|
278
+ | Critical business logic | 100% |
279
+ | Public API | 90%+ |
280
+ | General code | 80%+ |
281
+ | Generated / FFI bindings | Exclude |
282
+
283
+ ## TDD Best Practices
284
+
285
+ **DO:**
286
+ - Write test FIRST, before any implementation
287
+ - Run tests after each change
288
+ - Use `assert_eq!` over `assert!` for better error messages
289
+ - Use `?` in tests that return `Result` for cleaner output
290
+ - Test behavior, not implementation
291
+ - Include edge cases (empty, boundary, error paths)
292
+
293
+ **DON'T:**
294
+ - Write implementation before tests
295
+ - Skip the RED phase
296
+ - Use `#[should_panic]` when `Result::is_err()` works
297
+ - Use `sleep()` in tests — use channels or `tokio::time::pause()`
298
+ - Mock everything — prefer integration tests when feasible
299
+
300
+ ## Related Commands
301
+
302
+ - `/ccp:rust-build` - Fix build errors
303
+ - `/ccp:rust-review` - Review code after implementation
304
+ - `/ccp:verify` - Run full verification loop
305
+
306
+ ## Related
307
+
308
+ - Skill: `skills/rust-testing/`
309
+ - Skill: `skills/rust-patterns/`
@@ -1,4 +1,5 @@
1
1
  ---
2
+ name: ccp:save-session
2
3
  description: Save current session state to a dated file in ~/.claude/sessions/ so work can be resumed in a future session with full context.
3
4
  ---
4
5
 
@@ -270,6 +271,6 @@ Then test with Postman — the response should include a `Set-Cookie` header.
270
271
  - Each session gets its own file — never append to a previous session's file
271
272
  - The "What Did NOT Work" section is the most critical — future sessions will blindly retry failed approaches without it
272
273
  - If the user asks to save mid-session (not just at the end), save what's known so far and mark in-progress items clearly
273
- - The file is meant to be read by Claude at the start of the next session via `/resume-session`
274
+ - The file is meant to be read by Claude at the start of the next session via `/ccp:resume-session`
274
275
  - Use the canonical global session store: `~/.claude/sessions/`
275
276
  - Prefer the short-id filename form (`YYYY-MM-DD-<short-id>-session.tmp`) for any new session file
@@ -0,0 +1,35 @@
1
+ ---
2
+ name: ccp:secure-phase
3
+ description: Retroactively verify threat mitigations for a completed phase
4
+ argument-hint: "[phase number]"
5
+ allowed-tools:
6
+ - Read
7
+ - Write
8
+ - Edit
9
+ - Bash
10
+ - Glob
11
+ - Grep
12
+ - Task
13
+ - AskUserQuestion
14
+ ---
15
+ <objective>
16
+ Verify threat mitigations for a completed phase. Three states:
17
+ - (A) SECURITY.md exists — audit and verify mitigations
18
+ - (B) No SECURITY.md, PLAN.md with threat model exists — run from artifacts
19
+ - (C) Phase not executed — exit with guidance
20
+
21
+ Output: updated SECURITY.md.
22
+ </objective>
23
+
24
+ <execution_context>
25
+ @~/.claude/pilot/workflows/secure-phase.md
26
+ </execution_context>
27
+
28
+ <context>
29
+ Phase: $ARGUMENTS — optional, defaults to last completed phase.
30
+ </context>
31
+
32
+ <process>
33
+ Execute @~/.claude/pilot/workflows/secure-phase.md.
34
+ Preserve all workflow gates.
35
+ </process>
@@ -0,0 +1,19 @@
1
+ ---
2
+ name: ccp:session-report
3
+ description: Generate a session report with token usage estimates, work summary, and outcomes
4
+ allowed-tools:
5
+ - Read
6
+ - Bash
7
+ - Write
8
+ ---
9
+ <objective>
10
+ Generate a structured SESSION_REPORT.md document capturing session outcomes, work performed, and estimated resource usage. Provides a shareable artifact for post-session review.
11
+ </objective>
12
+
13
+ <execution_context>
14
+ @~/.claude/pilot/workflows/session-report.md
15
+ </execution_context>
16
+
17
+ <process>
18
+ Execute the session-report workflow from @~/.claude/pilot/workflows/session-report.md end-to-end.
19
+ </process>
@@ -1,10 +1,15 @@
1
+ ---
2
+ name: ccp:sessions
3
+ description: "Manage Claude Code session history - list, load, alias, and edit sessions"
4
+ ---
5
+
1
6
  # Sessions Command
2
7
 
3
8
  Manage Claude Code session history - list, load, alias, and edit sessions stored in `~/.claude/sessions/`.
4
9
 
5
10
  ## Usage
6
11
 
7
- `/sessions [list|load|alias|info|help] [options]`
12
+ `/ccp:sessions [list|load|alias|info|help] [options]`
8
13
 
9
14
  ## Actions
10
15
 
@@ -13,18 +18,18 @@ Manage Claude Code session history - list, load, alias, and edit sessions stored
13
18
  Display all sessions with metadata, filtering, and pagination.
14
19
 
15
20
  ```bash
16
- /sessions # List all sessions (default)
17
- /sessions list # Same as above
18
- /sessions list --limit 10 # Show 10 sessions
19
- /sessions list --date 2026-02-01 # Filter by date
20
- /sessions list --search abc # Search by session ID
21
+ /ccp:sessions # List all sessions (default)
22
+ /ccp:sessions list # Same as above
23
+ /ccp:sessions list --limit 10 # Show 10 sessions
24
+ /ccp:sessions list --date 2026-02-01 # Filter by date
25
+ /ccp:sessions list --search abc # Search by session ID
21
26
  ```
22
27
 
23
28
  **Script:**
24
29
  ```bash
25
30
  node -e "
26
- const sm = require((process.env.CLAUDE_PLUGIN_ROOT||require('path').join(require('os').homedir(),'.claude'))+'/scripts/lib/session-manager');
27
- const aa = require((process.env.CLAUDE_PLUGIN_ROOT||require('path').join(require('os').homedir(),'.claude'))+'/scripts/lib/session-aliases');
31
+ const sm = require((process.env.CCP_CLAUDE_DIR||require('path').join(require('os').homedir(),'.claude'))+'/scripts/lib/session-manager');
32
+ const aa = require((process.env.CCP_CLAUDE_DIR||require('path').join(require('os').homedir(),'.claude'))+'/scripts/lib/session-aliases');
28
33
 
29
34
  const result = sm.getAllSessions({ limit: 20 });
30
35
  const aliases = aa.listAliases();
@@ -53,17 +58,17 @@ for (const s of result.sessions) {
53
58
  Load and display a session's content (by ID or alias).
54
59
 
55
60
  ```bash
56
- /sessions load <id|alias> # Load session
57
- /sessions load 2026-02-01 # By date (for no-id sessions)
58
- /sessions load a1b2c3d4 # By short ID
59
- /sessions load my-alias # By alias name
61
+ /ccp:sessions load <id|alias> # Load session
62
+ /ccp:sessions load 2026-02-01 # By date (for no-id sessions)
63
+ /ccp:sessions load a1b2c3d4 # By short ID
64
+ /ccp:sessions load my-alias # By alias name
60
65
  ```
61
66
 
62
67
  **Script:**
63
68
  ```bash
64
69
  node -e "
65
- const sm = require((process.env.CLAUDE_PLUGIN_ROOT||require('path').join(require('os').homedir(),'.claude'))+'/scripts/lib/session-manager');
66
- const aa = require((process.env.CLAUDE_PLUGIN_ROOT||require('path').join(require('os').homedir(),'.claude'))+'/scripts/lib/session-aliases');
70
+ const sm = require((process.env.CCP_CLAUDE_DIR||require('path').join(require('os').homedir(),'.claude'))+'/scripts/lib/session-manager');
71
+ const aa = require((process.env.CCP_CLAUDE_DIR||require('path').join(require('os').homedir(),'.claude'))+'/scripts/lib/session-aliases');
67
72
  const id = process.argv[1];
68
73
 
69
74
  // First try to resolve as alias
@@ -116,21 +121,21 @@ if (session.metadata.lastUpdated) {
116
121
  Create a memorable alias for a session.
117
122
 
118
123
  ```bash
119
- /sessions alias <id> <name> # Create alias
120
- /sessions alias 2026-02-01 today-work # Create alias named "today-work"
124
+ /ccp:sessions alias <id> <name> # Create alias
125
+ /ccp:sessions alias 2026-02-01 today-work # Create alias named "today-work"
121
126
  ```
122
127
 
123
128
  **Script:**
124
129
  ```bash
125
130
  node -e "
126
- const sm = require((process.env.CLAUDE_PLUGIN_ROOT||require('path').join(require('os').homedir(),'.claude'))+'/scripts/lib/session-manager');
127
- const aa = require((process.env.CLAUDE_PLUGIN_ROOT||require('path').join(require('os').homedir(),'.claude'))+'/scripts/lib/session-aliases');
131
+ const sm = require((process.env.CCP_CLAUDE_DIR||require('path').join(require('os').homedir(),'.claude'))+'/scripts/lib/session-manager');
132
+ const aa = require((process.env.CCP_CLAUDE_DIR||require('path').join(require('os').homedir(),'.claude'))+'/scripts/lib/session-aliases');
128
133
 
129
134
  const sessionId = process.argv[1];
130
135
  const aliasName = process.argv[2];
131
136
 
132
137
  if (!sessionId || !aliasName) {
133
- console.log('Usage: /sessions alias <id> <name>');
138
+ console.log('Usage: /ccp:sessions alias <id> <name>');
134
139
  process.exit(1);
135
140
  }
136
141
 
@@ -156,18 +161,18 @@ if (result.success) {
156
161
  Delete an existing alias.
157
162
 
158
163
  ```bash
159
- /sessions alias --remove <name> # Remove alias
160
- /sessions unalias <name> # Same as above
164
+ /ccp:sessions alias --remove <name> # Remove alias
165
+ /ccp:sessions unalias <name> # Same as above
161
166
  ```
162
167
 
163
168
  **Script:**
164
169
  ```bash
165
170
  node -e "
166
- const aa = require((process.env.CLAUDE_PLUGIN_ROOT||require('path').join(require('os').homedir(),'.claude'))+'/scripts/lib/session-aliases');
171
+ const aa = require((process.env.CCP_CLAUDE_DIR||require('path').join(require('os').homedir(),'.claude'))+'/scripts/lib/session-aliases');
167
172
 
168
173
  const aliasName = process.argv[1];
169
174
  if (!aliasName) {
170
- console.log('Usage: /sessions alias --remove <name>');
175
+ console.log('Usage: /ccp:sessions alias --remove <name>');
171
176
  process.exit(1);
172
177
  }
173
178
 
@@ -186,14 +191,14 @@ if (result.success) {
186
191
  Show detailed information about a session.
187
192
 
188
193
  ```bash
189
- /sessions info <id|alias> # Show session details
194
+ /ccp:sessions info <id|alias> # Show session details
190
195
  ```
191
196
 
192
197
  **Script:**
193
198
  ```bash
194
199
  node -e "
195
- const sm = require((process.env.CLAUDE_PLUGIN_ROOT||require('path').join(require('os').homedir(),'.claude'))+'/scripts/lib/session-manager');
196
- const aa = require((process.env.CLAUDE_PLUGIN_ROOT||require('path').join(require('os').homedir(),'.claude'))+'/scripts/lib/session-aliases');
200
+ const sm = require((process.env.CCP_CLAUDE_DIR||require('path').join(require('os').homedir(),'.claude'))+'/scripts/lib/session-manager');
201
+ const aa = require((process.env.CCP_CLAUDE_DIR||require('path').join(require('os').homedir(),'.claude'))+'/scripts/lib/session-aliases');
197
202
 
198
203
  const id = process.argv[1];
199
204
  const resolved = aa.resolveAlias(id);
@@ -233,13 +238,13 @@ if (aliases.length > 0) {
233
238
  Show all session aliases.
234
239
 
235
240
  ```bash
236
- /sessions aliases # List all aliases
241
+ /ccp:sessions aliases # List all aliases
237
242
  ```
238
243
 
239
244
  **Script:**
240
245
  ```bash
241
246
  node -e "
242
- const aa = require((process.env.CLAUDE_PLUGIN_ROOT||require('path').join(require('os').homedir(),'.claude'))+'/scripts/lib/session-aliases');
247
+ const aa = require((process.env.CCP_CLAUDE_DIR||require('path').join(require('os').homedir(),'.claude'))+'/scripts/lib/session-aliases');
243
248
 
244
249
  const aliases = aa.listAliases();
245
250
  console.log('Session Aliases (' + aliases.length + '):');
@@ -279,22 +284,22 @@ $ARGUMENTS:
279
284
 
280
285
  ```bash
281
286
  # List all sessions
282
- /sessions list
287
+ /ccp:sessions list
283
288
 
284
289
  # Create an alias for today's session
285
- /sessions alias 2026-02-01 today
290
+ /ccp:sessions alias 2026-02-01 today
286
291
 
287
292
  # Load session by alias
288
- /sessions load today
293
+ /ccp:sessions load today
289
294
 
290
295
  # Show session info
291
- /sessions info today
296
+ /ccp:sessions info today
292
297
 
293
298
  # Remove alias
294
- /sessions alias --remove today
299
+ /ccp:sessions alias --remove today
295
300
 
296
301
  # List all aliases
297
- /sessions aliases
302
+ /ccp:sessions aliases
298
303
  ```
299
304
 
300
305
  ## Notes
@@ -0,0 +1,12 @@
1
+ ---
2
+ name: ccp:set-profile
3
+ description: Switch model profile for CCP agents (quality/balanced/budget/inherit)
4
+ argument-hint: <profile (quality|balanced|budget|inherit)>
5
+ model: haiku
6
+ allowed-tools:
7
+ - Bash
8
+ ---
9
+
10
+ Show the following output to the user verbatim, with no extra commentary:
11
+
12
+ !`node "$HOME/.claude/pilot/bin/ccp-tools.cjs" config-set-model-profile $ARGUMENTS --raw`
@@ -1,6 +1,6 @@
1
1
  ---
2
- name: gsd:settings
3
- description: Configure GSD workflow toggles and model profile
2
+ name: ccp:settings
3
+ description: Configure CCP workflow toggles and model profile
4
4
  allowed-tools:
5
5
  - Read
6
6
  - Write
@@ -9,7 +9,7 @@ allowed-tools:
9
9
  ---
10
10
 
11
11
  <objective>
12
- Interactive configuration of GSD workflow agents and model profile via multi-question prompt.
12
+ Interactive configuration of CCP workflow agents and model profile via multi-question prompt.
13
13
 
14
14
  Routes to the settings workflow which handles:
15
15
  - Config existence ensuring
@@ -20,11 +20,11 @@ Routes to the settings workflow which handles:
20
20
  </objective>
21
21
 
22
22
  <execution_context>
23
- @~/.claude/get-shit-done/workflows/settings.md
23
+ @~/.claude/pilot/workflows/settings.md
24
24
  </execution_context>
25
25
 
26
26
  <process>
27
- **Follow the settings workflow** from `@~/.claude/get-shit-done/workflows/settings.md`.
27
+ **Follow the settings workflow** from `@~/.claude/pilot/workflows/settings.md`.
28
28
 
29
29
  The workflow handles all logic including:
30
30
  1. Config file creation with defaults if missing
@@ -0,0 +1,81 @@
1
+ ---
2
+ name: ccp:setup-pm
3
+ description: Configure your preferred package manager (npm/pnpm/yarn/bun)
4
+ disable-model-invocation: true
5
+ ---
6
+
7
+ # Package Manager Setup
8
+
9
+ Configure your preferred package manager for this project or globally.
10
+
11
+ ## Usage
12
+
13
+ ```bash
14
+ # Detect current package manager
15
+ node scripts/setup-package-manager.js --detect
16
+
17
+ # Set global preference
18
+ node scripts/setup-package-manager.js --global pnpm
19
+
20
+ # Set project preference
21
+ node scripts/setup-package-manager.js --project bun
22
+
23
+ # List available package managers
24
+ node scripts/setup-package-manager.js --list
25
+ ```
26
+
27
+ ## Detection Priority
28
+
29
+ When determining which package manager to use, the following order is checked:
30
+
31
+ 1. **Environment variable**: `CLAUDE_PACKAGE_MANAGER`
32
+ 2. **Project config**: `.claude/package-manager.json`
33
+ 3. **package.json**: `packageManager` field
34
+ 4. **Lock file**: Presence of package-lock.json, yarn.lock, pnpm-lock.yaml, or bun.lockb
35
+ 5. **Global config**: `~/.claude/package-manager.json`
36
+ 6. **Fallback**: First available package manager (pnpm > bun > yarn > npm)
37
+
38
+ ## Configuration Files
39
+
40
+ ### Global Configuration
41
+ ```json
42
+ // ~/.claude/package-manager.json
43
+ {
44
+ "packageManager": "pnpm"
45
+ }
46
+ ```
47
+
48
+ ### Project Configuration
49
+ ```json
50
+ // .claude/package-manager.json
51
+ {
52
+ "packageManager": "bun"
53
+ }
54
+ ```
55
+
56
+ ### package.json
57
+ ```json
58
+ {
59
+ "packageManager": "pnpm@8.6.0"
60
+ }
61
+ ```
62
+
63
+ ## Environment Variable
64
+
65
+ Set `CLAUDE_PACKAGE_MANAGER` to override all other detection methods:
66
+
67
+ ```bash
68
+ # Windows (PowerShell)
69
+ $env:CLAUDE_PACKAGE_MANAGER = "pnpm"
70
+
71
+ # macOS/Linux
72
+ export CLAUDE_PACKAGE_MANAGER=pnpm
73
+ ```
74
+
75
+ ## Run the Detection
76
+
77
+ To see current package manager detection results, run:
78
+
79
+ ```bash
80
+ node scripts/setup-package-manager.js --detect
81
+ ```