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,313 @@
1
+ ---
2
+ name: ccp:kotlin-test
3
+ description: Enforce TDD workflow for Kotlin. Write Kotest tests first, then implement. Verify 80%+ coverage with Kover.
4
+ ---
5
+
6
+ # Kotlin TDD Command
7
+
8
+ This command enforces test-driven development methodology for Kotlin code using Kotest, MockK, and Kover.
9
+
10
+ ## What This Command Does
11
+
12
+ 1. **Define Types/Interfaces**: Scaffold function signatures first
13
+ 2. **Write Kotest Tests**: Create comprehensive test specs (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 Kover
18
+
19
+ ## When to Use
20
+
21
+ Use `/ccp:kotlin-test` when:
22
+ - Implementing new Kotlin functions or classes
23
+ - Adding test coverage to existing Kotlin code
24
+ - Fixing bugs (write failing test first)
25
+ - Building critical business logic
26
+ - Learning TDD workflow in Kotlin
27
+
28
+ ## TDD Cycle
29
+
30
+ ```
31
+ RED -> Write failing Kotest test
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:kotlin-test I need a function to validate user registration requests
41
+
42
+ Agent:
43
+ # TDD Session: Registration Validator
44
+
45
+ ## Step 1: Define Interface
46
+
47
+ ```kotlin
48
+ // validator/RegistrationValidator.kt
49
+ package com.example.validator
50
+
51
+ data class RegistrationRequest(
52
+ val name: String,
53
+ val email: String,
54
+ val password: String,
55
+ )
56
+
57
+ sealed class ValidationResult {
58
+ data object Valid : ValidationResult()
59
+ data class Invalid(val errors: List<String>) : ValidationResult()
60
+ }
61
+
62
+ fun validateRegistration(request: RegistrationRequest): ValidationResult {
63
+ TODO("not implemented")
64
+ }
65
+ ```
66
+
67
+ ## Step 2: Write Kotest Tests (RED)
68
+
69
+ ```kotlin
70
+ // validator/RegistrationValidatorTest.kt
71
+ package com.example.validator
72
+
73
+ import io.kotest.core.spec.style.FunSpec
74
+ import io.kotest.matchers.shouldBe
75
+ import io.kotest.matchers.types.shouldBeInstanceOf
76
+
77
+ class RegistrationValidatorTest : FunSpec({
78
+ test("valid registration returns Valid") {
79
+ val request = RegistrationRequest(
80
+ name = "Alice",
81
+ email = "alice@example.com",
82
+ password = "SecureP@ss1",
83
+ )
84
+
85
+ val result = validateRegistration(request)
86
+
87
+ result.shouldBeInstanceOf<ValidationResult.Valid>()
88
+ }
89
+
90
+ test("blank name returns Invalid") {
91
+ val request = RegistrationRequest(
92
+ name = "",
93
+ email = "alice@example.com",
94
+ password = "SecureP@ss1",
95
+ )
96
+
97
+ val result = validateRegistration(request)
98
+
99
+ val invalid = result.shouldBeInstanceOf<ValidationResult.Invalid>()
100
+ invalid.errors shouldBe listOf("Name is required")
101
+ }
102
+
103
+ test("invalid email returns Invalid") {
104
+ val request = RegistrationRequest(
105
+ name = "Alice",
106
+ email = "not-an-email",
107
+ password = "SecureP@ss1",
108
+ )
109
+
110
+ val result = validateRegistration(request)
111
+
112
+ val invalid = result.shouldBeInstanceOf<ValidationResult.Invalid>()
113
+ invalid.errors shouldBe listOf("Invalid email format")
114
+ }
115
+
116
+ test("short password returns Invalid") {
117
+ val request = RegistrationRequest(
118
+ name = "Alice",
119
+ email = "alice@example.com",
120
+ password = "short",
121
+ )
122
+
123
+ val result = validateRegistration(request)
124
+
125
+ val invalid = result.shouldBeInstanceOf<ValidationResult.Invalid>()
126
+ invalid.errors shouldBe listOf("Password must be at least 8 characters")
127
+ }
128
+
129
+ test("multiple errors returns all errors") {
130
+ val request = RegistrationRequest(
131
+ name = "",
132
+ email = "bad",
133
+ password = "short",
134
+ )
135
+
136
+ val result = validateRegistration(request)
137
+
138
+ val invalid = result.shouldBeInstanceOf<ValidationResult.Invalid>()
139
+ invalid.errors.size shouldBe 3
140
+ }
141
+ })
142
+ ```
143
+
144
+ ## Step 3: Run Tests - Verify FAIL
145
+
146
+ ```bash
147
+ $ ./gradlew test
148
+
149
+ RegistrationValidatorTest > valid registration returns Valid FAILED
150
+ kotlin.NotImplementedError: An operation is not implemented
151
+
152
+ FAILED (5 tests, 0 passed, 5 failed)
153
+ ```
154
+
155
+ ✓ Tests fail as expected (NotImplementedError).
156
+
157
+ ## Step 4: Implement Minimal Code (GREEN)
158
+
159
+ ```kotlin
160
+ // validator/RegistrationValidator.kt
161
+ package com.example.validator
162
+
163
+ private val EMAIL_REGEX = Regex("^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}$")
164
+ private const val MIN_PASSWORD_LENGTH = 8
165
+
166
+ fun validateRegistration(request: RegistrationRequest): ValidationResult {
167
+ val errors = buildList {
168
+ if (request.name.isBlank()) add("Name is required")
169
+ if (!EMAIL_REGEX.matches(request.email)) add("Invalid email format")
170
+ if (request.password.length < MIN_PASSWORD_LENGTH) add("Password must be at least $MIN_PASSWORD_LENGTH characters")
171
+ }
172
+
173
+ return if (errors.isEmpty()) ValidationResult.Valid
174
+ else ValidationResult.Invalid(errors)
175
+ }
176
+ ```
177
+
178
+ ## Step 5: Run Tests - Verify PASS
179
+
180
+ ```bash
181
+ $ ./gradlew test
182
+
183
+ RegistrationValidatorTest > valid registration returns Valid PASSED
184
+ RegistrationValidatorTest > blank name returns Invalid PASSED
185
+ RegistrationValidatorTest > invalid email returns Invalid PASSED
186
+ RegistrationValidatorTest > short password returns Invalid PASSED
187
+ RegistrationValidatorTest > multiple errors returns all errors PASSED
188
+
189
+ PASSED (5 tests, 5 passed, 0 failed)
190
+ ```
191
+
192
+ ✓ All tests passing!
193
+
194
+ ## Step 6: Check Coverage
195
+
196
+ ```bash
197
+ $ ./gradlew koverHtmlReport
198
+
199
+ Coverage: 100.0% of statements
200
+ ```
201
+
202
+ ✓ Coverage: 100%
203
+
204
+ ## TDD Complete!
205
+ ````
206
+
207
+ ## Test Patterns
208
+
209
+ ### StringSpec (Simplest)
210
+
211
+ ```kotlin
212
+ class CalculatorTest : StringSpec({
213
+ "add two positive numbers" {
214
+ Calculator.add(2, 3) shouldBe 5
215
+ }
216
+ })
217
+ ```
218
+
219
+ ### BehaviorSpec (BDD)
220
+
221
+ ```kotlin
222
+ class OrderServiceTest : BehaviorSpec({
223
+ Given("a valid order") {
224
+ When("placed") {
225
+ Then("should be confirmed") { /* ... */ }
226
+ }
227
+ }
228
+ })
229
+ ```
230
+
231
+ ### Data-Driven Tests
232
+
233
+ ```kotlin
234
+ class ParserTest : FunSpec({
235
+ context("valid inputs") {
236
+ withData("2026-01-15", "2026-12-31", "2000-01-01") { input ->
237
+ parseDate(input).shouldNotBeNull()
238
+ }
239
+ }
240
+ })
241
+ ```
242
+
243
+ ### Coroutine Testing
244
+
245
+ ```kotlin
246
+ class AsyncServiceTest : FunSpec({
247
+ test("concurrent fetch completes") {
248
+ runTest {
249
+ val result = service.fetchAll()
250
+ result.shouldNotBeEmpty()
251
+ }
252
+ }
253
+ })
254
+ ```
255
+
256
+ ## Coverage Commands
257
+
258
+ ```bash
259
+ # Run tests with coverage
260
+ ./gradlew koverHtmlReport
261
+
262
+ # Verify coverage thresholds
263
+ ./gradlew koverVerify
264
+
265
+ # XML report for CI
266
+ ./gradlew koverXmlReport
267
+
268
+ # Open HTML report
269
+ open build/reports/kover/html/index.html
270
+
271
+ # Run specific test class
272
+ ./gradlew test --tests "com.example.UserServiceTest"
273
+
274
+ # Run with verbose output
275
+ ./gradlew test --info
276
+ ```
277
+
278
+ ## Coverage Targets
279
+
280
+ | Code Type | Target |
281
+ |-----------|--------|
282
+ | Critical business logic | 100% |
283
+ | Public APIs | 90%+ |
284
+ | General code | 80%+ |
285
+ | Generated code | Exclude |
286
+
287
+ ## TDD Best Practices
288
+
289
+ **DO:**
290
+ - Write test FIRST, before any implementation
291
+ - Run tests after each change
292
+ - Use Kotest matchers for expressive assertions
293
+ - Use MockK's `coEvery`/`coVerify` for suspend functions
294
+ - Test behavior, not implementation details
295
+ - Include edge cases (empty, null, max values)
296
+
297
+ **DON'T:**
298
+ - Write implementation before tests
299
+ - Skip the RED phase
300
+ - Test private functions directly
301
+ - Use `Thread.sleep()` in coroutine tests
302
+ - Ignore flaky tests
303
+
304
+ ## Related Commands
305
+
306
+ - `/ccp:kotlin-build` - Fix build errors
307
+ - `/ccp:kotlin-review` - Review code after implementation
308
+ - `/ccp:verify` - Run full verification loop
309
+
310
+ ## Related
311
+
312
+ - Skill: `skills/kotlin-testing/`
313
+ - Skill: `skills/tdd-workflow/`
@@ -1,10 +1,15 @@
1
- # /learn - Extract Reusable Patterns
1
+ ---
2
+ name: ccp:learn
3
+ description: "Extract reusable patterns from the current session into skills"
4
+ ---
5
+
6
+ # /ccp:learn - Extract Reusable Patterns
2
7
 
3
8
  Analyze the current session and extract any patterns worth saving as skills.
4
9
 
5
10
  ## Trigger
6
11
 
7
- Run `/learn` at any point during a session when you've solved a non-trivial problem.
12
+ Run `/ccp:learn` at any point during a session when you've solved a non-trivial problem.
8
13
 
9
14
  ## What to Extract
10
15
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: gsd:list-phase-assumptions
2
+ name: ccp:list-phase-assumptions
3
3
  description: Surface Claude's assumptions about a phase approach before planning
4
4
  argument-hint: "[phase]"
5
5
  allowed-tools:
@@ -17,7 +17,7 @@ Output: Conversational output only (no file creation) - ends with "What do you t
17
17
  </objective>
18
18
 
19
19
  <execution_context>
20
- @~/.claude/get-shit-done/workflows/list-phase-assumptions.md
20
+ @~/.claude/pilot/workflows/list-phase-assumptions.md
21
21
  </execution_context>
22
22
 
23
23
  <context>
@@ -0,0 +1,39 @@
1
+ ---
2
+ name: ccp:manager
3
+ description: Interactive command center for managing multiple phases from one terminal
4
+ allowed-tools:
5
+ - Read
6
+ - Write
7
+ - Bash
8
+ - Glob
9
+ - Grep
10
+ - AskUserQuestion
11
+ - Task
12
+ ---
13
+ <objective>
14
+ Single-terminal command center for managing a milestone. Shows a dashboard of all phases with visual status indicators, recommends optimal next actions, and dispatches work — discuss runs inline, plan/execute run as background agents.
15
+
16
+ Designed for power users who want to parallelize work across phases from one terminal: discuss a phase while another plans or executes in the background.
17
+
18
+ **Creates/Updates:**
19
+ - No files created directly — dispatches to existing CCP commands via Skill() and background Task agents.
20
+ - Reads `.planning/STATE.md`, `.planning/ROADMAP.md`, phase directories for status.
21
+
22
+ **After:** User exits when done managing, or all phases complete and milestone lifecycle is suggested.
23
+ </objective>
24
+
25
+ <execution_context>
26
+ @~/.claude/pilot/workflows/manager.md
27
+ @~/.claude/pilot/references/ui-brand.md
28
+ </execution_context>
29
+
30
+ <context>
31
+ No arguments required. Requires an active milestone with ROADMAP.md and STATE.md.
32
+
33
+ Project context, phase list, dependencies, and recommendations are resolved inside the workflow using `ccp-tools.cjs init manager`. No upfront context loading needed.
34
+ </context>
35
+
36
+ <process>
37
+ Execute the manager workflow from @~/.claude/pilot/workflows/manager.md end-to-end.
38
+ Maintain the dashboard refresh loop until the user exits or all phases complete.
39
+ </process>
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: gsd:map-codebase
2
+ name: ccp:map-codebase
3
3
  description: Analyze codebase with parallel mapper agents to produce .planning/codebase/ documents
4
4
  argument-hint: "[optional: specific area to map, e.g., 'api' or 'auth']"
5
5
  allowed-tools:
@@ -12,7 +12,7 @@ allowed-tools:
12
12
  ---
13
13
 
14
14
  <objective>
15
- Analyze existing codebase using parallel gsd-codebase-mapper agents to produce structured codebase documents.
15
+ Analyze existing codebase using parallel ccp-codebase-mapper agents to produce structured codebase documents.
16
16
 
17
17
  Each mapper agent explores a focus area and **writes documents directly** to `.planning/codebase/`. The orchestrator only receives confirmations, keeping context usage minimal.
18
18
 
@@ -20,7 +20,7 @@ Output: .planning/codebase/ folder with 7 structured documents about the codebas
20
20
  </objective>
21
21
 
22
22
  <execution_context>
23
- @~/.claude/get-shit-done/workflows/map-codebase.md
23
+ @~/.claude/pilot/workflows/map-codebase.md
24
24
  </execution_context>
25
25
 
26
26
  <context>
@@ -30,8 +30,8 @@ Focus area: $ARGUMENTS (optional - if provided, tells agents to focus on specifi
30
30
  Check for .planning/STATE.md - loads context if project already initialized
31
31
 
32
32
  **This command can run:**
33
- - Before /gsd:new-project (brownfield codebases) - creates codebase map first
34
- - After /gsd:new-project (greenfield codebases) - updates codebase map as code evolves
33
+ - Before /ccp:new-project (brownfield codebases) - creates codebase map first
34
+ - After /ccp:new-project (greenfield codebases) - updates codebase map as code evolves
35
35
  - Anytime to refresh codebase understanding
36
36
  </context>
37
37
 
@@ -51,7 +51,7 @@ Check for .planning/STATE.md - loads context if project already initialized
51
51
  <process>
52
52
  1. Check if .planning/codebase/ already exists (offer to refresh or skip)
53
53
  2. Create .planning/codebase/ directory structure
54
- 3. Spawn 4 parallel gsd-codebase-mapper agents:
54
+ 3. Spawn 4 parallel ccp-codebase-mapper agents:
55
55
  - Agent 1: tech focus → writes STACK.md, INTEGRATIONS.md
56
56
  - Agent 2: arch focus → writes ARCHITECTURE.md, STRUCTURE.md
57
57
  - Agent 3: quality focus → writes CONVENTIONS.md, TESTING.md
@@ -59,7 +59,7 @@ Check for .planning/STATE.md - loads context if project already initialized
59
59
  4. Wait for agents to complete, collect confirmations (NOT document contents)
60
60
  5. Verify all 7 documents exist with line counts
61
61
  6. Commit codebase map
62
- 7. Offer next steps (typically: /gsd:new-project or /gsd:plan-phase)
62
+ 7. Offer next steps (typically: /ccp:new-project or /ccp:plan-phase)
63
63
  </process>
64
64
 
65
65
  <success_criteria>
@@ -0,0 +1,51 @@
1
+ ---
2
+ type: prompt
3
+ name: ccp:milestone-summary
4
+ description: Generate a comprehensive project summary from milestone artifacts for team onboarding and review
5
+ argument-hint: "[version]"
6
+ allowed-tools:
7
+ - Read
8
+ - Write
9
+ - Bash
10
+ - Grep
11
+ - Glob
12
+ ---
13
+
14
+ <objective>
15
+ Generate a structured milestone summary for team onboarding and project review. Reads completed milestone artifacts (ROADMAP, REQUIREMENTS, CONTEXT, SUMMARY, VERIFICATION files) and produces a human-friendly overview of what was built, how, and why.
16
+
17
+ Purpose: Enable new team members to understand a completed project by reading one document and asking follow-up questions.
18
+ Output: MILESTONE_SUMMARY written to `.planning/reports/`, presented inline, optional interactive Q&A.
19
+ </objective>
20
+
21
+ <execution_context>
22
+ @~/.claude/pilot/workflows/milestone-summary.md
23
+ </execution_context>
24
+
25
+ <context>
26
+ **Project files:**
27
+ - `.planning/ROADMAP.md`
28
+ - `.planning/PROJECT.md`
29
+ - `.planning/STATE.md`
30
+ - `.planning/RETROSPECTIVE.md`
31
+ - `.planning/milestones/v{version}-ROADMAP.md` (if archived)
32
+ - `.planning/milestones/v{version}-REQUIREMENTS.md` (if archived)
33
+ - `.planning/phases/*-*/` (SUMMARY.md, VERIFICATION.md, CONTEXT.md, RESEARCH.md)
34
+
35
+ **User input:**
36
+ - Version: $ARGUMENTS (optional — defaults to current/latest milestone)
37
+ </context>
38
+
39
+ <process>
40
+ Read and execute the milestone-summary workflow from @~/.claude/pilot/workflows/milestone-summary.md end-to-end.
41
+ </process>
42
+
43
+ <success_criteria>
44
+ - Milestone version resolved (from args, STATE.md, or archive scan)
45
+ - All available artifacts read (ROADMAP, REQUIREMENTS, CONTEXT, SUMMARY, VERIFICATION, RESEARCH, RETROSPECTIVE)
46
+ - Summary document written to `.planning/reports/MILESTONE_SUMMARY-v{version}.md`
47
+ - All 7 sections generated (Overview, Architecture, Phases, Decisions, Requirements, Tech Debt, Getting Started)
48
+ - Summary presented inline to user
49
+ - Interactive Q&A offered
50
+ - STATE.md updated
51
+ </success_criteria>
@@ -1,10 +1,15 @@
1
+ ---
2
+ name: ccp:model-route
3
+ description: "Recommend the best model tier for the current task by complexity and budget"
4
+ ---
5
+
1
6
  # Model Route Command
2
7
 
3
8
  Recommend the best model tier for the current task by complexity and budget.
4
9
 
5
10
  ## Usage
6
11
 
7
- `/model-route [task-description] [--budget low|med|high]`
12
+ `/ccp:model-route [task-description] [--budget low|med|high]`
8
13
 
9
14
  ## Routing Heuristic
10
15
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: gsd:new-milestone
2
+ name: ccp:new-milestone
3
3
  description: Start a new milestone cycle — update PROJECT.md and route to requirements
4
4
  argument-hint: "[milestone name, e.g., 'v1.1 Notifications']"
5
5
  allowed-tools:
@@ -21,15 +21,15 @@ Brownfield equivalent of new-project. Project exists, PROJECT.md has history. Ga
21
21
  - `.planning/ROADMAP.md` — phase structure (continues numbering)
22
22
  - `.planning/STATE.md` — reset for new milestone
23
23
 
24
- **After:** `/gsd:plan-phase [N]` to start execution.
24
+ **After:** `/ccp:plan-phase [N]` to start execution.
25
25
  </objective>
26
26
 
27
27
  <execution_context>
28
- @~/.claude/get-shit-done/workflows/new-milestone.md
29
- @~/.claude/get-shit-done/references/questioning.md
30
- @~/.claude/get-shit-done/references/ui-brand.md
31
- @~/.claude/get-shit-done/templates/project.md
32
- @~/.claude/get-shit-done/templates/requirements.md
28
+ @~/.claude/pilot/workflows/new-milestone.md
29
+ @~/.claude/pilot/references/questioning.md
30
+ @~/.claude/pilot/references/ui-brand.md
31
+ @~/.claude/pilot/templates/project.md
32
+ @~/.claude/pilot/templates/requirements.md
33
33
  </execution_context>
34
34
 
35
35
  <context>
@@ -39,6 +39,6 @@ Project and milestone context files are resolved inside the workflow (`init new-
39
39
  </context>
40
40
 
41
41
  <process>
42
- Execute the new-milestone workflow from @~/.claude/get-shit-done/workflows/new-milestone.md end-to-end.
42
+ Execute the new-milestone workflow from @~/.claude/pilot/workflows/new-milestone.md end-to-end.
43
43
  Preserve all workflow gates (validation, questioning, research, requirements, roadmap approval, commits).
44
44
  </process>
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: gsd:new-project
2
+ name: ccp:new-project
3
3
  description: Initialize a new project with deep context gathering and PROJECT.md
4
4
  argument-hint: "[--auto]"
5
5
  allowed-tools:
@@ -25,18 +25,18 @@ Initialize a new project through unified flow: questioning → research (optiona
25
25
  - `.planning/ROADMAP.md` — phase structure
26
26
  - `.planning/STATE.md` — project memory
27
27
 
28
- **After this command:** Run `/gsd:plan-phase 1` to start execution.
28
+ **After this command:** Run `/ccp:plan-phase 1` to start execution.
29
29
  </objective>
30
30
 
31
31
  <execution_context>
32
- @~/.claude/get-shit-done/workflows/new-project.md
33
- @~/.claude/get-shit-done/references/questioning.md
34
- @~/.claude/get-shit-done/references/ui-brand.md
35
- @~/.claude/get-shit-done/templates/project.md
36
- @~/.claude/get-shit-done/templates/requirements.md
32
+ @~/.claude/pilot/workflows/new-project.md
33
+ @~/.claude/pilot/references/questioning.md
34
+ @~/.claude/pilot/references/ui-brand.md
35
+ @~/.claude/pilot/templates/project.md
36
+ @~/.claude/pilot/templates/requirements.md
37
37
  </execution_context>
38
38
 
39
39
  <process>
40
- Execute the new-project workflow from @~/.claude/get-shit-done/workflows/new-project.md end-to-end.
40
+ Execute the new-project workflow from @~/.claude/pilot/workflows/new-project.md end-to-end.
41
41
  Preserve all workflow gates (validation, approvals, commits, routing).
42
42
  </process>
@@ -0,0 +1,24 @@
1
+ ---
2
+ name: ccp:next
3
+ description: Automatically advance to the next logical step in the CCP workflow
4
+ allowed-tools:
5
+ - Read
6
+ - Bash
7
+ - Grep
8
+ - Glob
9
+ - SlashCommand
10
+ ---
11
+ <objective>
12
+ Detect the current project state and automatically invoke the next logical CCP workflow step.
13
+ No arguments needed — reads STATE.md, ROADMAP.md, and phase directories to determine what comes next.
14
+
15
+ Designed for rapid multi-project workflows where remembering which phase/step you're on is overhead.
16
+ </objective>
17
+
18
+ <execution_context>
19
+ @~/.claude/pilot/workflows/next.md
20
+ </execution_context>
21
+
22
+ <process>
23
+ Execute the next workflow from @~/.claude/pilot/workflows/next.md end-to-end.
24
+ </process>
@@ -0,0 +1,34 @@
1
+ ---
2
+ name: ccp:note
3
+ description: Zero-friction idea capture. Append, list, or promote notes to todos.
4
+ argument-hint: "<text> | list | promote <N> [--global]"
5
+ allowed-tools:
6
+ - Read
7
+ - Write
8
+ - Glob
9
+ - Grep
10
+ ---
11
+ <objective>
12
+ Zero-friction idea capture — one Write call, one confirmation line.
13
+
14
+ Three subcommands:
15
+ - **append** (default): Save a timestamped note file. No questions, no formatting.
16
+ - **list**: Show all notes from project and global scopes.
17
+ - **promote**: Convert a note into a structured todo.
18
+
19
+ Runs inline — no Task, no AskUserQuestion, no Bash.
20
+ </objective>
21
+
22
+ <execution_context>
23
+ @~/.claude/pilot/workflows/note.md
24
+ @~/.claude/pilot/references/ui-brand.md
25
+ </execution_context>
26
+
27
+ <context>
28
+ $ARGUMENTS
29
+ </context>
30
+
31
+ <process>
32
+ Execute the note workflow from @~/.claude/pilot/workflows/note.md end-to-end.
33
+ Capture the note, list notes, or promote to todo — depending on arguments.
34
+ </process>