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,329 @@
1
+ ---
2
+ name: ccp:tdd
3
+ description: Enforce test-driven development workflow. Scaffold interfaces, generate tests FIRST, then implement minimal code to pass. Ensure 80%+ coverage.
4
+ ---
5
+
6
+ # TDD Command
7
+
8
+ This command invokes the **tdd-guide** agent to enforce test-driven development methodology.
9
+
10
+ ## What This Command Does
11
+
12
+ 1. **Scaffold Interfaces** - Define types/interfaces first
13
+ 2. **Generate Tests First** - Write failing tests (RED)
14
+ 3. **Implement Minimal Code** - Write just enough to pass (GREEN)
15
+ 4. **Refactor** - Improve code while keeping tests green (REFACTOR)
16
+ 5. **Verify Coverage** - Ensure 80%+ test coverage
17
+
18
+ ## When to Use
19
+
20
+ Use `/ccp:tdd` when:
21
+ - Implementing new features
22
+ - Adding new functions/components
23
+ - Fixing bugs (write test that reproduces bug first)
24
+ - Refactoring existing code
25
+ - Building critical business logic
26
+
27
+ ## How It Works
28
+
29
+ The tdd-guide agent will:
30
+
31
+ 1. **Define interfaces** for inputs/outputs
32
+ 2. **Write tests that will FAIL** (because code doesn't exist yet)
33
+ 3. **Run tests** and verify they fail for the right reason
34
+ 4. **Write minimal implementation** to make tests pass
35
+ 5. **Run tests** and verify they pass
36
+ 6. **Refactor** code while keeping tests green
37
+ 7. **Check coverage** and add more tests if below 80%
38
+
39
+ ## TDD Cycle
40
+
41
+ ```
42
+ RED → GREEN → REFACTOR → REPEAT
43
+
44
+ RED: Write a failing test
45
+ GREEN: Write minimal code to pass
46
+ REFACTOR: Improve code, keep tests passing
47
+ REPEAT: Next feature/scenario
48
+ ```
49
+
50
+ ## Example Usage
51
+
52
+ ```
53
+ User: /ccp:tdd I need a function to calculate market liquidity score
54
+
55
+ Agent (tdd-guide):
56
+ # TDD Session: Market Liquidity Score Calculator
57
+
58
+ ## Step 1: Define Interface (SCAFFOLD)
59
+
60
+ ```typescript
61
+ // lib/liquidity.ts
62
+ export interface MarketData {
63
+ totalVolume: number
64
+ bidAskSpread: number
65
+ activeTraders: number
66
+ lastTradeTime: Date
67
+ }
68
+
69
+ export function calculateLiquidityScore(market: MarketData): number {
70
+ // TODO: Implementation
71
+ throw new Error('Not implemented')
72
+ }
73
+ ```
74
+
75
+ ## Step 2: Write Failing Test (RED)
76
+
77
+ ```typescript
78
+ // lib/liquidity.test.ts
79
+ import { calculateLiquidityScore } from './liquidity'
80
+
81
+ describe('calculateLiquidityScore', () => {
82
+ it('should return high score for liquid market', () => {
83
+ const market = {
84
+ totalVolume: 100000,
85
+ bidAskSpread: 0.01,
86
+ activeTraders: 500,
87
+ lastTradeTime: new Date()
88
+ }
89
+
90
+ const score = calculateLiquidityScore(market)
91
+
92
+ expect(score).toBeGreaterThan(80)
93
+ expect(score).toBeLessThanOrEqual(100)
94
+ })
95
+
96
+ it('should return low score for illiquid market', () => {
97
+ const market = {
98
+ totalVolume: 100,
99
+ bidAskSpread: 0.5,
100
+ activeTraders: 2,
101
+ lastTradeTime: new Date(Date.now() - 86400000) // 1 day ago
102
+ }
103
+
104
+ const score = calculateLiquidityScore(market)
105
+
106
+ expect(score).toBeLessThan(30)
107
+ expect(score).toBeGreaterThanOrEqual(0)
108
+ })
109
+
110
+ it('should handle edge case: zero volume', () => {
111
+ const market = {
112
+ totalVolume: 0,
113
+ bidAskSpread: 0,
114
+ activeTraders: 0,
115
+ lastTradeTime: new Date()
116
+ }
117
+
118
+ const score = calculateLiquidityScore(market)
119
+
120
+ expect(score).toBe(0)
121
+ })
122
+ })
123
+ ```
124
+
125
+ ## Step 3: Run Tests - Verify FAIL
126
+
127
+ ```bash
128
+ npm test lib/liquidity.test.ts
129
+
130
+ FAIL lib/liquidity.test.ts
131
+ ✕ should return high score for liquid market (2 ms)
132
+ Error: Not implemented
133
+
134
+ 1 test failed, 0 passed
135
+ ```
136
+
137
+ ✅ Tests fail as expected. Ready to implement.
138
+
139
+ ## Step 4: Implement Minimal Code (GREEN)
140
+
141
+ ```typescript
142
+ // lib/liquidity.ts
143
+ export function calculateLiquidityScore(market: MarketData): number {
144
+ // Handle zero volume edge case
145
+ if (market.totalVolume === 0) {
146
+ return 0
147
+ }
148
+
149
+ // Calculate component scores (0-100 scale)
150
+ const volumeScore = Math.min(market.totalVolume / 1000, 100)
151
+ const spreadScore = Math.max(100 - (market.bidAskSpread * 1000), 0)
152
+ const traderScore = Math.min(market.activeTraders / 10, 100)
153
+
154
+ // Recent activity bonus
155
+ const hoursSinceLastTrade = (Date.now() - market.lastTradeTime.getTime()) / (1000 * 60 * 60)
156
+ const recencyScore = Math.max(100 - (hoursSinceLastTrade * 10), 0)
157
+
158
+ // Weighted average
159
+ const score = (
160
+ volumeScore * 0.4 +
161
+ spreadScore * 0.3 +
162
+ traderScore * 0.2 +
163
+ recencyScore * 0.1
164
+ )
165
+
166
+ return Math.min(Math.max(score, 0), 100) // Clamp to 0-100
167
+ }
168
+ ```
169
+
170
+ ## Step 5: Run Tests - Verify PASS
171
+
172
+ ```bash
173
+ npm test lib/liquidity.test.ts
174
+
175
+ PASS lib/liquidity.test.ts
176
+ ✓ should return high score for liquid market (3 ms)
177
+ ✓ should return low score for illiquid market (2 ms)
178
+ ✓ should handle edge case: zero volume (1 ms)
179
+
180
+ 3 tests passed
181
+ ```
182
+
183
+ ✅ All tests passing!
184
+
185
+ ## Step 6: Refactor (IMPROVE)
186
+
187
+ ```typescript
188
+ // lib/liquidity.ts - Refactored with constants and better readability
189
+ const WEIGHTS = {
190
+ VOLUME: 0.4,
191
+ SPREAD: 0.3,
192
+ TRADERS: 0.2,
193
+ RECENCY: 0.1,
194
+ } as const
195
+
196
+ const SCALE_FACTORS = {
197
+ VOLUME: 1000,
198
+ SPREAD: 1000,
199
+ TRADERS: 10,
200
+ RECENCY_PENALTY: 10,
201
+ } as const
202
+
203
+ function clamp(value: number, min: number, max: number): number {
204
+ return Math.min(Math.max(value, min), max)
205
+ }
206
+
207
+ export function calculateLiquidityScore(market: MarketData): number {
208
+ if (market.totalVolume === 0) return 0
209
+
210
+ const volumeScore = Math.min(market.totalVolume / SCALE_FACTORS.VOLUME, 100)
211
+ const spreadScore = clamp(100 - (market.bidAskSpread * SCALE_FACTORS.SPREAD), 0, 100)
212
+ const traderScore = Math.min(market.activeTraders / SCALE_FACTORS.TRADERS, 100)
213
+
214
+ const hoursSinceLastTrade = (Date.now() - market.lastTradeTime.getTime()) / (1000 * 60 * 60)
215
+ const recencyScore = clamp(100 - (hoursSinceLastTrade * SCALE_FACTORS.RECENCY_PENALTY), 0, 100)
216
+
217
+ const weightedScore =
218
+ volumeScore * WEIGHTS.VOLUME +
219
+ spreadScore * WEIGHTS.SPREAD +
220
+ traderScore * WEIGHTS.TRADERS +
221
+ recencyScore * WEIGHTS.RECENCY
222
+
223
+ return clamp(weightedScore, 0, 100)
224
+ }
225
+ ```
226
+
227
+ ## Step 7: Verify Tests Still Pass
228
+
229
+ ```bash
230
+ npm test lib/liquidity.test.ts
231
+
232
+ PASS lib/liquidity.test.ts
233
+ ✓ should return high score for liquid market (3 ms)
234
+ ✓ should return low score for illiquid market (2 ms)
235
+ ✓ should handle edge case: zero volume (1 ms)
236
+
237
+ 3 tests passed
238
+ ```
239
+
240
+ ✅ Refactoring complete, tests still passing!
241
+
242
+ ## Step 8: Check Coverage
243
+
244
+ ```bash
245
+ npm test -- --coverage lib/liquidity.test.ts
246
+
247
+ File | % Stmts | % Branch | % Funcs | % Lines
248
+ ---------------|---------|----------|---------|--------
249
+ liquidity.ts | 100 | 100 | 100 | 100
250
+
251
+ Coverage: 100% ✅ (Target: 80%)
252
+ ```
253
+
254
+ ✅ TDD session complete!
255
+ ```
256
+
257
+ ## TDD Best Practices
258
+
259
+ **DO:**
260
+ - ✅ Write the test FIRST, before any implementation
261
+ - ✅ Run tests and verify they FAIL before implementing
262
+ - ✅ Write minimal code to make tests pass
263
+ - ✅ Refactor only after tests are green
264
+ - ✅ Add edge cases and error scenarios
265
+ - ✅ Aim for 80%+ coverage (100% for critical code)
266
+
267
+ **DON'T:**
268
+ - ❌ Write implementation before tests
269
+ - ❌ Skip running tests after each change
270
+ - ❌ Write too much code at once
271
+ - ❌ Ignore failing tests
272
+ - ❌ Test implementation details (test behavior)
273
+ - ❌ Mock everything (prefer integration tests)
274
+
275
+ ## Test Types to Include
276
+
277
+ **Unit Tests** (Function-level):
278
+ - Happy path scenarios
279
+ - Edge cases (empty, null, max values)
280
+ - Error conditions
281
+ - Boundary values
282
+
283
+ **Integration Tests** (Component-level):
284
+ - API endpoints
285
+ - Database operations
286
+ - External service calls
287
+ - React components with hooks
288
+
289
+ **E2E Tests** (use `/ccp:e2e` command):
290
+ - Critical user flows
291
+ - Multi-step processes
292
+ - Full stack integration
293
+
294
+ ## Coverage Requirements
295
+
296
+ - **80% minimum** for all code
297
+ - **100% required** for:
298
+ - Financial calculations
299
+ - Authentication logic
300
+ - Security-critical code
301
+ - Core business logic
302
+
303
+ ## Important Notes
304
+
305
+ **MANDATORY**: Tests must be written BEFORE implementation. The TDD cycle is:
306
+
307
+ 1. **RED** - Write failing test
308
+ 2. **GREEN** - Implement to pass
309
+ 3. **REFACTOR** - Improve code
310
+
311
+ Never skip the RED phase. Never write code before tests.
312
+
313
+ ## Integration with Other Commands
314
+
315
+ - Use `/ccp:plan` first to understand what to build
316
+ - Use `/ccp:tdd` to implement with tests
317
+ - Use `/ccp:build-fix` if build errors occur
318
+ - Use `/ccp:code-review` to review implementation
319
+ - Use `/ccp:test-coverage` to verify coverage
320
+
321
+ ## Related Agents
322
+
323
+ This command invokes the `tdd-guide` agent.
324
+
325
+ The related `tdd-workflow` skill is also bundled.
326
+
327
+ Source files:
328
+ - `~/.claude/agents/tdd-guide.md`
329
+ - `~/.claude/skills/tdd-workflow/SKILL.md`
@@ -0,0 +1,74 @@
1
+ ---
2
+ name: ccp:test-coverage
3
+ description: "Analyze test coverage, identify gaps, and generate missing tests for 80%+ coverage"
4
+ ---
5
+
6
+ # Test Coverage
7
+
8
+ Analyze test coverage, identify gaps, and generate missing tests to reach 80%+ coverage.
9
+
10
+ ## Step 1: Detect Test Framework
11
+
12
+ | Indicator | Coverage Command |
13
+ |-----------|-----------------|
14
+ | `jest.config.*` or `package.json` jest | `npx jest --coverage --coverageReporters=json-summary` |
15
+ | `vitest.config.*` | `npx vitest run --coverage` |
16
+ | `pytest.ini` / `pyproject.toml` pytest | `pytest --cov=src --cov-report=json` |
17
+ | `Cargo.toml` | `cargo llvm-cov --json` |
18
+ | `pom.xml` with JaCoCo | `mvn test jacoco:report` |
19
+ | `go.mod` | `go test -coverprofile=coverage.out ./...` |
20
+
21
+ ## Step 2: Analyze Coverage Report
22
+
23
+ 1. Run the coverage command
24
+ 2. Parse the output (JSON summary or terminal output)
25
+ 3. List files **below 80% coverage**, sorted worst-first
26
+ 4. For each under-covered file, identify:
27
+ - Untested functions or methods
28
+ - Missing branch coverage (if/else, switch, error paths)
29
+ - Dead code that inflates the denominator
30
+
31
+ ## Step 3: Generate Missing Tests
32
+
33
+ For each under-covered file, generate tests following this priority:
34
+
35
+ 1. **Happy path** — Core functionality with valid inputs
36
+ 2. **Error handling** — Invalid inputs, missing data, network failures
37
+ 3. **Edge cases** — Empty arrays, null/undefined, boundary values (0, -1, MAX_INT)
38
+ 4. **Branch coverage** — Each if/else, switch case, ternary
39
+
40
+ ### Test Generation Rules
41
+
42
+ - Place tests adjacent to source: `foo.ts` → `foo.test.ts` (or project convention)
43
+ - Use existing test patterns from the project (import style, assertion library, mocking approach)
44
+ - Mock external dependencies (database, APIs, file system)
45
+ - Each test should be independent — no shared mutable state between tests
46
+ - Name tests descriptively: `test_create_user_with_duplicate_email_returns_409`
47
+
48
+ ## Step 4: Verify
49
+
50
+ 1. Run the full test suite — all tests must pass
51
+ 2. Re-run coverage — verify improvement
52
+ 3. If still below 80%, repeat Step 3 for remaining gaps
53
+
54
+ ## Step 5: Report
55
+
56
+ Show before/after comparison:
57
+
58
+ ```
59
+ Coverage Report
60
+ ──────────────────────────────
61
+ File Before After
62
+ src/services/auth.ts 45% 88%
63
+ src/utils/validation.ts 32% 82%
64
+ ──────────────────────────────
65
+ Overall: 67% 84% ✅
66
+ ```
67
+
68
+ ## Focus Areas
69
+
70
+ - Functions with complex branching (high cyclomatic complexity)
71
+ - Error handlers and catch blocks
72
+ - Utility functions used across the codebase
73
+ - API endpoint handlers (request → response flow)
74
+ - Edge cases: null, undefined, empty string, empty array, zero, negative numbers
@@ -0,0 +1,127 @@
1
+ ---
2
+ name: ccp:thread
3
+ description: Manage persistent context threads for cross-session work
4
+ argument-hint: [name | description]
5
+ allowed-tools:
6
+ - Read
7
+ - Write
8
+ - Bash
9
+ ---
10
+
11
+ <objective>
12
+ Create, list, or resume persistent context threads. Threads are lightweight
13
+ cross-session knowledge stores for work that spans multiple sessions but
14
+ doesn't belong to any specific phase.
15
+ </objective>
16
+
17
+ <process>
18
+
19
+ **Parse $ARGUMENTS to determine mode:**
20
+
21
+ <mode_list>
22
+ **If no arguments or $ARGUMENTS is empty:**
23
+
24
+ List all threads:
25
+ ```bash
26
+ ls .planning/threads/*.md 2>/dev/null
27
+ ```
28
+
29
+ For each thread, read the first few lines to show title and status:
30
+ ```
31
+ ## Active Threads
32
+
33
+ | Thread | Status | Last Updated |
34
+ |--------|--------|-------------|
35
+ | fix-deploy-key-auth | OPEN | 2026-03-15 |
36
+ | pasta-tcp-timeout | RESOLVED | 2026-03-12 |
37
+ | perf-investigation | IN PROGRESS | 2026-03-17 |
38
+ ```
39
+
40
+ If no threads exist, show:
41
+ ```
42
+ No threads found. Create one with: /ccp:thread <description>
43
+ ```
44
+ </mode_list>
45
+
46
+ <mode_resume>
47
+ **If $ARGUMENTS matches an existing thread name (file exists):**
48
+
49
+ Resume the thread — load its context into the current session:
50
+ ```bash
51
+ cat ".planning/threads/${THREAD_NAME}.md"
52
+ ```
53
+
54
+ Display the thread content and ask what the user wants to work on next.
55
+ Update the thread's status to `IN PROGRESS` if it was `OPEN`.
56
+ </mode_resume>
57
+
58
+ <mode_create>
59
+ **If $ARGUMENTS is a new description (no matching thread file):**
60
+
61
+ Create a new thread:
62
+
63
+ 1. Generate slug from description:
64
+ ```bash
65
+ SLUG=$(node "$HOME/.claude/pilot/bin/ccp-tools.cjs" generate-slug "$ARGUMENTS")
66
+ ```
67
+
68
+ 2. Create the threads directory if needed:
69
+ ```bash
70
+ mkdir -p .planning/threads
71
+ ```
72
+
73
+ 3. Write the thread file:
74
+ ```bash
75
+ cat > ".planning/threads/${SLUG}.md" << 'EOF'
76
+ # Thread: {description}
77
+
78
+ ## Status: OPEN
79
+
80
+ ## Goal
81
+
82
+ {description}
83
+
84
+ ## Context
85
+
86
+ *Created from conversation on {today's date}.*
87
+
88
+ ## References
89
+
90
+ - *(add links, file paths, or issue numbers)*
91
+
92
+ ## Next Steps
93
+
94
+ - *(what the next session should do first)*
95
+ EOF
96
+ ```
97
+
98
+ 4. If there's relevant context in the current conversation (code snippets,
99
+ error messages, investigation results), extract and add it to the Context
100
+ section.
101
+
102
+ 5. Commit:
103
+ ```bash
104
+ node "$HOME/.claude/pilot/bin/ccp-tools.cjs" commit "docs: create thread — ${ARGUMENTS}" --files ".planning/threads/${SLUG}.md"
105
+ ```
106
+
107
+ 6. Report:
108
+ ```
109
+ ## 🧵 Thread Created
110
+
111
+ Thread: {slug}
112
+ File: .planning/threads/{slug}.md
113
+
114
+ Resume anytime with: /ccp:thread {slug}
115
+ ```
116
+ </mode_create>
117
+
118
+ </process>
119
+
120
+ <notes>
121
+ - Threads are NOT phase-scoped — they exist independently of the roadmap
122
+ - Lighter weight than /ccp:pause-work — no phase state, no plan context
123
+ - The value is in Context and Next Steps — a cold-start session can pick up immediately
124
+ - Threads can be promoted to phases or backlog items when they mature:
125
+ /ccp:add-phase or /ccp:add-backlog with context from the thread
126
+ - Thread files live in .planning/threads/ — no collision with phases or other CCP structures
127
+ </notes>
@@ -1,4 +1,5 @@
1
1
  ---
2
+ name: ccp:tool-guide
2
3
  description: "MCP tool recommendations per task type -- which tools to use when"
3
4
  ---
4
5
 
@@ -32,7 +33,7 @@ The kit configures or recommends these MCP tools:
32
33
  ## Usage Tips
33
34
 
34
35
  - If a tool is not installed, Claude will skip it automatically -- no errors.
35
- - Use `/setup` to auto-detect and configure available MCP tools.
36
+ - Use `/ccp:setup` to auto-detect and configure available MCP tools.
36
37
  - Context7 is the highest-value tool -- it prevents the #1 cause of agent errors (outdated API usage).
37
38
  - codebase-memory-mcp and cocoindex-code serve similar purposes -- you don't need both.
38
39
  - For large codebases (100+ files), codebase-memory-mcp significantly reduces context waste from file exploration.
@@ -0,0 +1,34 @@
1
+ ---
2
+ name: ccp:ui-phase
3
+ description: Generate UI design contract (UI-SPEC.md) for frontend phases
4
+ argument-hint: "[phase]"
5
+ allowed-tools:
6
+ - Read
7
+ - Write
8
+ - Bash
9
+ - Glob
10
+ - Grep
11
+ - Task
12
+ - WebFetch
13
+ - AskUserQuestion
14
+ - mcp__context7__*
15
+ ---
16
+ <objective>
17
+ Create a UI design contract (UI-SPEC.md) for a frontend phase.
18
+ Orchestrates ccp-ui-researcher and ccp-ui-checker.
19
+ Flow: Validate → Research UI → Verify UI-SPEC → Done
20
+ </objective>
21
+
22
+ <execution_context>
23
+ @~/.claude/pilot/workflows/ui-phase.md
24
+ @~/.claude/pilot/references/ui-brand.md
25
+ </execution_context>
26
+
27
+ <context>
28
+ Phase number: $ARGUMENTS — optional, auto-detects next unplanned phase if omitted.
29
+ </context>
30
+
31
+ <process>
32
+ Execute @~/.claude/pilot/workflows/ui-phase.md end-to-end.
33
+ Preserve all workflow gates.
34
+ </process>
@@ -0,0 +1,32 @@
1
+ ---
2
+ name: ccp:ui-review
3
+ description: Retroactive 6-pillar visual audit of implemented frontend code
4
+ argument-hint: "[phase]"
5
+ allowed-tools:
6
+ - Read
7
+ - Write
8
+ - Bash
9
+ - Glob
10
+ - Grep
11
+ - Task
12
+ - AskUserQuestion
13
+ ---
14
+ <objective>
15
+ Conduct a retroactive 6-pillar visual audit. Produces UI-REVIEW.md with
16
+ graded assessment (1-4 per pillar). Works on any project.
17
+ Output: {phase_num}-UI-REVIEW.md
18
+ </objective>
19
+
20
+ <execution_context>
21
+ @~/.claude/pilot/workflows/ui-review.md
22
+ @~/.claude/pilot/references/ui-brand.md
23
+ </execution_context>
24
+
25
+ <context>
26
+ Phase: $ARGUMENTS — optional, defaults to last completed phase.
27
+ </context>
28
+
29
+ <process>
30
+ Execute @~/.claude/pilot/workflows/ui-review.md end-to-end.
31
+ Preserve all workflow gates.
32
+ </process>
@@ -0,0 +1,77 @@
1
+ ---
2
+ name: ccp:update-codemaps
3
+ description: "Analyze codebase structure and generate token-lean architecture documentation"
4
+ ---
5
+
6
+ # Update Codemaps
7
+
8
+ Analyze the codebase structure and generate token-lean architecture documentation.
9
+
10
+ ## Step 1: Scan Project Structure
11
+
12
+ 1. Identify the project type (monorepo, single app, library, microservice)
13
+ 2. Find all source directories (src/, lib/, app/, packages/)
14
+ 3. Map entry points (main.ts, index.ts, app.py, main.go, etc.)
15
+
16
+ ## Step 2: Generate Codemaps
17
+
18
+ Create or update codemaps in `docs/CODEMAPS/` (or `.reports/codemaps/`):
19
+
20
+ | File | Contents |
21
+ |------|----------|
22
+ | `architecture.md` | High-level system diagram, service boundaries, data flow |
23
+ | `backend.md` | API routes, middleware chain, service → repository mapping |
24
+ | `frontend.md` | Page tree, component hierarchy, state management flow |
25
+ | `data.md` | Database tables, relationships, migration history |
26
+ | `dependencies.md` | External services, third-party integrations, shared libraries |
27
+
28
+ ### Codemap Format
29
+
30
+ Each codemap should be token-lean — optimized for AI context consumption:
31
+
32
+ ```markdown
33
+ # Backend Architecture
34
+
35
+ ## Routes
36
+ POST /api/users → UserController.create → UserService.create → UserRepo.insert
37
+ GET /api/users/:id → UserController.get → UserService.findById → UserRepo.findById
38
+
39
+ ## Key Files
40
+ src/services/user.ts (business logic, 120 lines)
41
+ src/repos/user.ts (database access, 80 lines)
42
+
43
+ ## Dependencies
44
+ - PostgreSQL (primary data store)
45
+ - Redis (session cache, rate limiting)
46
+ - Stripe (payment processing)
47
+ ```
48
+
49
+ ## Step 3: Diff Detection
50
+
51
+ 1. If previous codemaps exist, calculate the diff percentage
52
+ 2. If changes > 30%, show the diff and request user approval before overwriting
53
+ 3. If changes <= 30%, update in place
54
+
55
+ ## Step 4: Add Metadata
56
+
57
+ Add a freshness header to each codemap:
58
+
59
+ ```markdown
60
+ <!-- Generated: 2026-02-11 | Files scanned: 142 | Token estimate: ~800 -->
61
+ ```
62
+
63
+ ## Step 5: Save Analysis Report
64
+
65
+ Write a summary to `.reports/codemap-diff.txt`:
66
+ - Files added/removed/modified since last scan
67
+ - New dependencies detected
68
+ - Architecture changes (new routes, new services, etc.)
69
+ - Staleness warnings for docs not updated in 90+ days
70
+
71
+ ## Tips
72
+
73
+ - Focus on **high-level structure**, not implementation details
74
+ - Prefer **file paths and function signatures** over full code blocks
75
+ - Keep each codemap under **1000 tokens** for efficient context loading
76
+ - Use ASCII diagrams for data flow instead of verbose descriptions
77
+ - Run after major feature additions or refactoring sessions