claude-code-pilot 2.0.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (455) hide show
  1. package/bin/install.js +267 -250
  2. package/manifest.json +5 -18
  3. package/package.json +5 -7
  4. package/src/agents/build-error-resolver.md +114 -0
  5. package/src/agents/ccp-advisor-researcher.md +104 -0
  6. package/src/agents/ccp-assumptions-analyzer.md +105 -0
  7. package/{gsd/agents/gsd-codebase-mapper.md → src/agents/ccp-codebase-mapper.md} +7 -7
  8. package/{gsd/agents/gsd-debugger.md → src/agents/ccp-debugger.md} +125 -8
  9. package/{gsd/agents/gsd-executor.md → src/agents/ccp-executor.md} +31 -20
  10. package/{gsd/agents/gsd-integration-checker.md → src/agents/ccp-integration-checker.md} +2 -2
  11. package/{gsd/agents/gsd-nyquist-auditor.md → src/agents/ccp-nyquist-auditor.md} +3 -3
  12. package/{gsd/agents/gsd-phase-researcher.md → src/agents/ccp-phase-researcher.md} +127 -13
  13. package/{gsd/agents/gsd-plan-checker.md → src/agents/ccp-plan-checker.md} +57 -21
  14. package/{gsd/agents/gsd-planner.md → src/agents/ccp-planner.md} +61 -23
  15. package/{gsd/agents/gsd-project-researcher.md → src/agents/ccp-project-researcher.md} +33 -6
  16. package/{gsd/agents/gsd-research-synthesizer.md → src/agents/ccp-research-synthesizer.md} +11 -11
  17. package/{gsd/agents/gsd-roadmapper.md → src/agents/ccp-roadmapper.md} +39 -10
  18. package/src/agents/ccp-ui-auditor.md +439 -0
  19. package/src/agents/ccp-ui-checker.md +300 -0
  20. package/src/agents/ccp-ui-researcher.md +357 -0
  21. package/{gsd/agents/gsd-verifier.md → src/agents/ccp-verifier.md} +81 -15
  22. package/src/agents/cpp-build-resolver.md +90 -0
  23. package/src/agents/cpp-reviewer.md +72 -0
  24. package/src/agents/database-reviewer.md +91 -0
  25. package/src/agents/docs-lookup.md +68 -0
  26. package/src/agents/flutter-reviewer.md +243 -0
  27. package/src/agents/go-build-resolver.md +94 -0
  28. package/src/agents/go-reviewer.md +76 -0
  29. package/src/agents/java-build-resolver.md +153 -0
  30. package/src/agents/java-reviewer.md +92 -0
  31. package/src/agents/kotlin-build-resolver.md +118 -0
  32. package/src/agents/kotlin-reviewer.md +159 -0
  33. package/src/agents/planner.md +212 -0
  34. package/src/agents/python-reviewer.md +98 -0
  35. package/src/agents/pytorch-build-resolver.md +120 -0
  36. package/src/agents/refactor-cleaner.md +85 -0
  37. package/src/agents/rust-build-resolver.md +148 -0
  38. package/src/agents/rust-reviewer.md +94 -0
  39. package/src/agents/typescript-reviewer.md +112 -0
  40. package/src/available-rules/README.md +80 -0
  41. package/src/available-rules/cpp/coding-style.md +44 -0
  42. package/src/available-rules/cpp/hooks.md +39 -0
  43. package/src/available-rules/cpp/patterns.md +51 -0
  44. package/src/available-rules/cpp/security.md +51 -0
  45. package/src/available-rules/cpp/testing.md +44 -0
  46. package/src/available-rules/csharp/coding-style.md +72 -0
  47. package/src/available-rules/csharp/hooks.md +25 -0
  48. package/src/available-rules/csharp/patterns.md +50 -0
  49. package/src/available-rules/csharp/security.md +58 -0
  50. package/src/available-rules/csharp/testing.md +46 -0
  51. package/src/available-rules/java/coding-style.md +114 -0
  52. package/src/available-rules/java/hooks.md +18 -0
  53. package/src/available-rules/java/patterns.md +146 -0
  54. package/src/available-rules/java/security.md +100 -0
  55. package/src/available-rules/java/testing.md +131 -0
  56. package/src/available-rules/kotlin/hooks.md +17 -0
  57. package/src/available-rules/rust/coding-style.md +151 -0
  58. package/src/available-rules/rust/hooks.md +16 -0
  59. package/src/available-rules/rust/patterns.md +168 -0
  60. package/src/available-rules/rust/security.md +141 -0
  61. package/src/available-rules/rust/testing.md +154 -0
  62. package/src/commands/aside.md +164 -0
  63. package/src/commands/build-fix.md +62 -0
  64. package/src/commands/ccp/add-backlog.md +76 -0
  65. package/{gsd/commands-gsd → src/commands/ccp}/add-phase.md +3 -3
  66. package/{gsd/commands-gsd → src/commands/ccp}/add-tests.md +5 -5
  67. package/{gsd/commands-gsd → src/commands/ccp}/add-todo.md +4 -4
  68. package/{gsd/commands-gsd → src/commands/ccp}/audit-milestone.md +3 -3
  69. package/src/commands/ccp/audit-uat.md +24 -0
  70. package/src/commands/ccp/autonomous.md +41 -0
  71. package/{gsd/commands-gsd → src/commands/ccp}/check-todos.md +3 -3
  72. package/{gsd/commands-gsd → src/commands/ccp}/cleanup.md +3 -3
  73. package/{gsd/commands-gsd → src/commands/ccp}/complete-milestone.md +9 -9
  74. package/{gsd/commands-gsd → src/commands/ccp}/debug.md +14 -9
  75. package/src/commands/ccp/discuss-phase.md +64 -0
  76. package/src/commands/ccp/do.md +30 -0
  77. package/src/commands/ccp/execute-phase.md +59 -0
  78. package/src/commands/ccp/fast.md +30 -0
  79. package/src/commands/ccp/forensics.md +56 -0
  80. package/{gsd/commands-gsd → src/commands/ccp}/health.md +3 -3
  81. package/{gsd/commands-gsd → src/commands/ccp}/help.md +5 -5
  82. package/{gsd/commands-gsd → src/commands/ccp}/insert-phase.md +3 -3
  83. package/{gsd/commands-gsd → src/commands/ccp}/list-phase-assumptions.md +2 -2
  84. package/src/commands/ccp/manager.md +39 -0
  85. package/{gsd/commands-gsd → src/commands/ccp}/map-codebase.md +7 -7
  86. package/src/commands/ccp/milestone-summary.md +51 -0
  87. package/{gsd/commands-gsd → src/commands/ccp}/new-milestone.md +8 -8
  88. package/{gsd/commands-gsd → src/commands/ccp}/new-project.md +8 -8
  89. package/src/commands/ccp/next.md +24 -0
  90. package/src/commands/ccp/note.md +34 -0
  91. package/{gsd/commands-gsd → src/commands/ccp}/pause-work.md +3 -3
  92. package/{gsd/commands-gsd → src/commands/ccp}/plan-milestone-gaps.md +5 -5
  93. package/{gsd/commands-gsd → src/commands/ccp}/plan-phase.md +9 -7
  94. package/src/commands/ccp/plant-seed.md +28 -0
  95. package/src/commands/ccp/pr-branch.md +25 -0
  96. package/{gsd/commands-gsd → src/commands/ccp}/progress.md +3 -3
  97. package/{gsd/commands-gsd → src/commands/ccp}/quick.md +10 -8
  98. package/{gsd/commands-gsd → src/commands/ccp}/remove-phase.md +3 -3
  99. package/{gsd/commands-gsd → src/commands/ccp}/research-phase.md +17 -12
  100. package/{gsd/commands-gsd → src/commands/ccp}/resume-work.md +3 -3
  101. package/src/commands/ccp/review-backlog.md +61 -0
  102. package/src/commands/ccp/session-report.md +19 -0
  103. package/src/commands/ccp/set-profile.md +12 -0
  104. package/{gsd/commands-gsd → src/commands/ccp}/settings.md +5 -5
  105. package/src/commands/ccp/ship.md +23 -0
  106. package/src/commands/ccp/stats.md +18 -0
  107. package/src/commands/ccp/thread.md +127 -0
  108. package/src/commands/ccp/ui-phase.md +34 -0
  109. package/src/commands/ccp/ui-review.md +32 -0
  110. package/{gsd/commands-gsd → src/commands/ccp}/update.md +5 -5
  111. package/{gsd/commands-gsd → src/commands/ccp}/validate-phase.md +3 -3
  112. package/{gsd/commands-gsd → src/commands/ccp}/verify-work.md +5 -5
  113. package/src/commands/code-review.md +40 -0
  114. package/src/commands/context-budget.md +29 -0
  115. package/src/commands/cpp-build.md +173 -0
  116. package/src/commands/cpp-review.md +132 -0
  117. package/src/commands/cpp-test.md +251 -0
  118. package/src/commands/docs.md +31 -0
  119. package/src/commands/e2e.md +364 -0
  120. package/src/commands/eval.md +120 -0
  121. package/{ecc → src}/commands/evolve.md +2 -2
  122. package/src/commands/go-build.md +183 -0
  123. package/src/commands/go-review.md +148 -0
  124. package/src/commands/go-test.md +268 -0
  125. package/src/commands/gradle-build.md +70 -0
  126. package/src/commands/harness-audit.md +71 -0
  127. package/src/commands/kotlin-build.md +174 -0
  128. package/src/commands/kotlin-review.md +140 -0
  129. package/src/commands/kotlin-test.md +312 -0
  130. package/src/commands/orchestrate.md +231 -0
  131. package/src/commands/plan.md +114 -0
  132. package/src/commands/prompt-optimize.md +38 -0
  133. package/src/commands/prune.md +25 -0
  134. package/src/commands/python-review.md +297 -0
  135. package/{ecc → src}/commands/quality-gate.md +1 -1
  136. package/src/commands/refactor-clean.md +80 -0
  137. package/src/commands/rules-distill.md +11 -0
  138. package/src/commands/rust-build.md +187 -0
  139. package/src/commands/rust-review.md +142 -0
  140. package/src/commands/rust-test.md +308 -0
  141. package/{ecc → src}/commands/sessions.md +10 -10
  142. package/src/commands/setup-pm.md +80 -0
  143. package/{kit → src}/commands/setup.md +45 -19
  144. package/src/commands/skill-create.md +172 -0
  145. package/src/commands/skill-health.md +51 -0
  146. package/src/commands/tdd.md +328 -0
  147. package/src/commands/test-coverage.md +69 -0
  148. package/src/commands/update-codemaps.md +72 -0
  149. package/src/commands/update-docs.md +84 -0
  150. package/{gsd/hooks/gsd-context-monitor.js → src/hooks/ccp-context-monitor.js} +3 -3
  151. package/src/hooks/ccp-prompt-guard.js +96 -0
  152. package/{gsd/hooks/gsd-statusline.js → src/hooks/ccp-statusline.js} +7 -7
  153. package/src/hooks/ccp-workflow-guard.js +94 -0
  154. package/src/hooks/config-protection.js +141 -0
  155. package/{kit → src}/hooks/kit-check-update.js +7 -4
  156. package/src/hooks/mcp-health-check.js +620 -0
  157. package/{ecc/scripts → src}/hooks/run-with-flags-shell.sh +1 -1
  158. package/{ecc/scripts → src}/hooks/run-with-flags.js +74 -13
  159. package/src/hooks/session-end-marker.js +29 -0
  160. package/{ecc/scripts → src}/hooks/session-end.js +83 -40
  161. package/{ecc/scripts → src}/hooks/session-start.js +75 -9
  162. package/{ecc/scripts → src}/lib/hook-flags.js +8 -4
  163. package/{ecc/scripts → src}/lib/project-detect.js +2 -1
  164. package/{ecc/scripts → src}/lib/session-manager.d.ts +5 -1
  165. package/{ecc/scripts → src}/lib/session-manager.js +202 -92
  166. package/{ecc/scripts → src}/lib/utils.d.ts +23 -1
  167. package/{ecc/scripts → src}/lib/utils.js +91 -3
  168. package/{gsd/get-shit-done/bin/gsd-tools.cjs → src/pilot/bin/ccp-tools.cjs} +257 -86
  169. package/{gsd/get-shit-done → src/pilot}/bin/lib/commands.cjs +1 -1
  170. package/src/pilot/bin/lib/config.cjs +444 -0
  171. package/src/pilot/bin/lib/core.cjs +1190 -0
  172. package/src/pilot/bin/lib/init.cjs +1281 -0
  173. package/src/pilot/bin/lib/model-profiles.cjs +67 -0
  174. package/{gsd/get-shit-done → src/pilot}/bin/lib/phase.cjs +2 -2
  175. package/src/pilot/bin/lib/security.cjs +382 -0
  176. package/{gsd/get-shit-done → src/pilot}/bin/lib/state.cjs +1 -1
  177. package/src/pilot/bin/lib/uat.cjs +282 -0
  178. package/{gsd/get-shit-done → src/pilot}/bin/lib/verify.cjs +10 -10
  179. package/{gsd/get-shit-done → src/pilot}/references/continuation-format.md +16 -16
  180. package/{gsd/get-shit-done → src/pilot}/references/decimal-phase-calculation.md +5 -5
  181. package/{gsd/get-shit-done → src/pilot}/references/git-integration.md +5 -5
  182. package/{gsd/get-shit-done → src/pilot}/references/git-planning-commit.md +4 -4
  183. package/src/pilot/references/mcp-servers.json +153 -0
  184. package/{gsd/get-shit-done → src/pilot}/references/model-profile-resolution.md +2 -2
  185. package/{gsd/get-shit-done → src/pilot}/references/model-profiles.md +20 -20
  186. package/{gsd/get-shit-done → src/pilot}/references/phase-argument-parsing.md +4 -4
  187. package/{gsd/get-shit-done → src/pilot}/references/planning-config.md +15 -15
  188. package/{gsd/get-shit-done → src/pilot}/references/ui-brand.md +5 -5
  189. package/{gsd/get-shit-done → src/pilot}/references/verification-patterns.md +1 -1
  190. package/{gsd/get-shit-done → src/pilot}/templates/DEBUG.md +1 -1
  191. package/{gsd/get-shit-done → src/pilot}/templates/UAT.md +3 -3
  192. package/src/pilot/templates/UI-SPEC.md +100 -0
  193. package/{gsd/get-shit-done → src/pilot}/templates/VALIDATION.md +1 -1
  194. package/src/pilot/templates/claude-md.md +122 -0
  195. package/{gsd/get-shit-done → src/pilot}/templates/codebase/architecture.md +2 -2
  196. package/{gsd/get-shit-done → src/pilot}/templates/codebase/structure.md +13 -13
  197. package/{gsd/get-shit-done → src/pilot}/templates/context.md +4 -4
  198. package/src/pilot/templates/copilot-instructions.md +7 -0
  199. package/{gsd/get-shit-done → src/pilot}/templates/debug-subagent-prompt.md +4 -4
  200. package/src/pilot/templates/dev-preferences.md +21 -0
  201. package/{gsd/get-shit-done → src/pilot}/templates/discovery.md +2 -2
  202. package/src/pilot/templates/discussion-log.md +63 -0
  203. package/{gsd/get-shit-done → src/pilot}/templates/phase-prompt.md +12 -12
  204. package/{gsd/get-shit-done → src/pilot}/templates/planner-subagent-prompt.md +7 -7
  205. package/{gsd/get-shit-done → src/pilot}/templates/project.md +1 -1
  206. package/{gsd/get-shit-done → src/pilot}/templates/research.md +2 -2
  207. package/{gsd/get-shit-done → src/pilot}/templates/state.md +2 -2
  208. package/{gsd/get-shit-done → src/pilot}/templates/summary-complex.md +1 -1
  209. package/{gsd/get-shit-done → src/pilot}/workflows/add-phase.md +11 -11
  210. package/{gsd/get-shit-done → src/pilot}/workflows/add-tests.md +15 -15
  211. package/{gsd/get-shit-done → src/pilot}/workflows/add-todo.md +7 -7
  212. package/{gsd/get-shit-done → src/pilot}/workflows/audit-milestone.md +24 -16
  213. package/src/pilot/workflows/audit-uat.md +109 -0
  214. package/src/pilot/workflows/autonomous.md +891 -0
  215. package/{gsd/get-shit-done → src/pilot}/workflows/check-todos.md +10 -10
  216. package/{gsd/get-shit-done → src/pilot}/workflows/cleanup.md +3 -3
  217. package/{gsd/get-shit-done → src/pilot}/workflows/complete-milestone.md +19 -16
  218. package/{gsd/get-shit-done → src/pilot}/workflows/diagnose-issues.md +9 -4
  219. package/{gsd/get-shit-done → src/pilot}/workflows/discovery-phase.md +8 -8
  220. package/src/pilot/workflows/discuss-phase-assumptions.md +653 -0
  221. package/{gsd/get-shit-done → src/pilot}/workflows/discuss-phase.md +407 -49
  222. package/src/pilot/workflows/do.md +104 -0
  223. package/src/pilot/workflows/execute-phase.md +821 -0
  224. package/{gsd/get-shit-done → src/pilot}/workflows/execute-plan.md +79 -28
  225. package/src/pilot/workflows/fast.md +105 -0
  226. package/src/pilot/workflows/forensics.md +265 -0
  227. package/{gsd/get-shit-done → src/pilot}/workflows/health.md +34 -11
  228. package/src/pilot/workflows/help.md +775 -0
  229. package/{gsd/get-shit-done → src/pilot}/workflows/insert-phase.md +10 -10
  230. package/{gsd/get-shit-done → src/pilot}/workflows/list-phase-assumptions.md +4 -4
  231. package/src/pilot/workflows/manager.md +362 -0
  232. package/{gsd/get-shit-done → src/pilot}/workflows/map-codebase.md +27 -17
  233. package/src/pilot/workflows/milestone-summary.md +223 -0
  234. package/{gsd/get-shit-done → src/pilot}/workflows/new-milestone.md +135 -33
  235. package/{gsd/get-shit-done → src/pilot}/workflows/new-project.md +152 -79
  236. package/src/pilot/workflows/next.md +97 -0
  237. package/src/pilot/workflows/node-repair.md +92 -0
  238. package/src/pilot/workflows/note.md +156 -0
  239. package/src/pilot/workflows/pause-work.md +177 -0
  240. package/{gsd/get-shit-done → src/pilot}/workflows/plan-milestone-gaps.md +10 -11
  241. package/src/pilot/workflows/plan-phase.md +859 -0
  242. package/src/pilot/workflows/plant-seed.md +169 -0
  243. package/src/pilot/workflows/pr-branch.md +129 -0
  244. package/{gsd/get-shit-done → src/pilot}/workflows/progress.md +95 -34
  245. package/{gsd/get-shit-done → src/pilot}/workflows/quick.md +33 -21
  246. package/{gsd/get-shit-done → src/pilot}/workflows/remove-phase.md +14 -14
  247. package/{gsd/get-shit-done → src/pilot}/workflows/research-phase.md +18 -10
  248. package/{gsd/get-shit-done → src/pilot}/workflows/resume-project.md +37 -18
  249. package/src/pilot/workflows/session-report.md +146 -0
  250. package/{gsd/get-shit-done → src/pilot}/workflows/set-profile.md +7 -7
  251. package/{gsd/get-shit-done → src/pilot}/workflows/settings.md +75 -22
  252. package/src/pilot/workflows/ship.md +228 -0
  253. package/src/pilot/workflows/stats.md +60 -0
  254. package/{gsd/get-shit-done → src/pilot}/workflows/transition.md +57 -17
  255. package/src/pilot/workflows/ui-phase.md +302 -0
  256. package/src/pilot/workflows/ui-review.md +165 -0
  257. package/{gsd/get-shit-done → src/pilot}/workflows/update.md +88 -58
  258. package/{gsd/get-shit-done → src/pilot}/workflows/validate-phase.md +24 -17
  259. package/{gsd/get-shit-done → src/pilot}/workflows/verify-phase.md +26 -15
  260. package/{gsd/get-shit-done → src/pilot}/workflows/verify-work.md +89 -37
  261. package/{ecc → src}/rules/common/agents.md +1 -0
  262. package/{ecc → src}/rules/common/coding-style.md +21 -0
  263. package/src/skills/agentic-engineering/SKILL.md +63 -0
  264. package/src/skills/ai-first-engineering/SKILL.md +51 -0
  265. package/src/skills/ai-regression-testing/SKILL.md +385 -0
  266. package/src/skills/api-design/SKILL.md +523 -0
  267. package/src/skills/architecture-decision-records/SKILL.md +179 -0
  268. package/src/skills/backend-patterns/SKILL.md +598 -0
  269. package/src/skills/benchmark/SKILL.md +87 -0
  270. package/src/skills/blueprint/SKILL.md +90 -0
  271. package/src/skills/browser-qa/SKILL.md +81 -0
  272. package/src/skills/claude-api/SKILL.md +337 -0
  273. package/src/skills/codebase-onboarding/SKILL.md +233 -0
  274. package/src/skills/coding-standards/SKILL.md +530 -0
  275. package/src/skills/context-budget/SKILL.md +135 -0
  276. package/{ecc → src}/skills/continuous-learning-v2/SKILL.md +2 -2
  277. package/{ecc → src}/skills/continuous-learning-v2/agents/observer-loop.sh +1 -1
  278. package/src/skills/cpp-coding-standards/SKILL.md +723 -0
  279. package/src/skills/cpp-testing/SKILL.md +324 -0
  280. package/src/skills/database-migrations/SKILL.md +429 -0
  281. package/src/skills/deep-research/SKILL.md +155 -0
  282. package/src/skills/deployment-patterns/SKILL.md +427 -0
  283. package/src/skills/django-patterns/SKILL.md +734 -0
  284. package/src/skills/django-security/SKILL.md +593 -0
  285. package/src/skills/django-tdd/SKILL.md +729 -0
  286. package/src/skills/django-verification/SKILL.md +469 -0
  287. package/src/skills/docker-patterns/SKILL.md +364 -0
  288. package/src/skills/documentation-lookup/SKILL.md +90 -0
  289. package/src/skills/e2e-testing/SKILL.md +326 -0
  290. package/src/skills/exa-search/SKILL.md +103 -0
  291. package/src/skills/frontend-patterns/SKILL.md +642 -0
  292. package/src/skills/golang-patterns/SKILL.md +674 -0
  293. package/src/skills/golang-testing/SKILL.md +720 -0
  294. package/src/skills/java-coding-standards/SKILL.md +147 -0
  295. package/src/skills/jpa-patterns/SKILL.md +151 -0
  296. package/src/skills/kotlin-coroutines-flows/SKILL.md +284 -0
  297. package/src/skills/kotlin-exposed-patterns/SKILL.md +719 -0
  298. package/src/skills/kotlin-ktor-patterns/SKILL.md +689 -0
  299. package/src/skills/kotlin-patterns/SKILL.md +711 -0
  300. package/src/skills/kotlin-testing/SKILL.md +824 -0
  301. package/src/skills/laravel-patterns/SKILL.md +415 -0
  302. package/src/skills/laravel-security/SKILL.md +285 -0
  303. package/src/skills/laravel-tdd/SKILL.md +283 -0
  304. package/src/skills/laravel-verification/SKILL.md +179 -0
  305. package/src/skills/mcp-server-patterns/SKILL.md +67 -0
  306. package/src/skills/perl-patterns/SKILL.md +504 -0
  307. package/src/skills/perl-testing/SKILL.md +475 -0
  308. package/src/skills/postgres-patterns/SKILL.md +147 -0
  309. package/src/skills/prompt-optimizer/SKILL.md +397 -0
  310. package/src/skills/python-patterns/SKILL.md +750 -0
  311. package/src/skills/python-testing/SKILL.md +816 -0
  312. package/src/skills/rust-patterns/SKILL.md +499 -0
  313. package/src/skills/rust-testing/SKILL.md +500 -0
  314. package/src/skills/safety-guard/SKILL.md +69 -0
  315. package/src/skills/search-first/SKILL.md +161 -0
  316. package/src/skills/security-review/SKILL.md +495 -0
  317. package/src/skills/security-review/cloud-infrastructure-security.md +361 -0
  318. package/src/skills/security-scan/SKILL.md +165 -0
  319. package/src/skills/springboot-patterns/SKILL.md +314 -0
  320. package/src/skills/springboot-security/SKILL.md +272 -0
  321. package/src/skills/springboot-tdd/SKILL.md +158 -0
  322. package/src/skills/springboot-verification/SKILL.md +231 -0
  323. package/src/skills/tdd-workflow/SKILL.md +410 -0
  324. package/ecc/scripts/hooks/session-end-marker.js +0 -15
  325. package/gsd/LICENSE +0 -21
  326. package/gsd/commands-gsd/discuss-phase.md +0 -90
  327. package/gsd/commands-gsd/execute-phase.md +0 -41
  328. package/gsd/commands-gsd/join-discord.md +0 -18
  329. package/gsd/commands-gsd/reapply-patches.md +0 -123
  330. package/gsd/commands-gsd/set-profile.md +0 -34
  331. package/gsd/get-shit-done/bin/lib/config.cjs +0 -169
  332. package/gsd/get-shit-done/bin/lib/core.cjs +0 -492
  333. package/gsd/get-shit-done/bin/lib/init.cjs +0 -710
  334. package/gsd/get-shit-done/workflows/execute-phase.md +0 -459
  335. package/gsd/get-shit-done/workflows/help.md +0 -489
  336. package/gsd/get-shit-done/workflows/pause-work.md +0 -122
  337. package/gsd/get-shit-done/workflows/plan-phase.md +0 -560
  338. package/gsd/hooks/gsd-check-update.js +0 -81
  339. package/kit/CLAUDE.md +0 -43
  340. package/kit/commands/kit/update.md +0 -46
  341. package/kit/mcp.json +0 -10
  342. package/kit/rules/code-style.md +0 -24
  343. /package/{ecc → src}/agents/architect.md +0 -0
  344. /package/{ecc → src}/agents/code-reviewer.md +0 -0
  345. /package/{ecc → src}/agents/doc-updater.md +0 -0
  346. /package/{ecc → src}/agents/e2e-runner.md +0 -0
  347. /package/{ecc → src}/agents/security-reviewer.md +0 -0
  348. /package/{ecc → src}/agents/tdd-guide.md +0 -0
  349. /package/{ecc/rules → src/available-rules}/golang/coding-style.md +0 -0
  350. /package/{ecc/rules → src/available-rules}/golang/hooks.md +0 -0
  351. /package/{ecc/rules → src/available-rules}/golang/patterns.md +0 -0
  352. /package/{ecc/rules → src/available-rules}/golang/security.md +0 -0
  353. /package/{ecc/rules → src/available-rules}/golang/testing.md +0 -0
  354. /package/{ecc/rules → src/available-rules}/kotlin/coding-style.md +0 -0
  355. /package/{ecc/rules → src/available-rules}/kotlin/patterns.md +0 -0
  356. /package/{ecc/rules → src/available-rules}/kotlin/security.md +0 -0
  357. /package/{ecc/rules → src/available-rules}/kotlin/testing.md +0 -0
  358. /package/{ecc/rules → src/available-rules}/perl/coding-style.md +0 -0
  359. /package/{ecc/rules → src/available-rules}/perl/hooks.md +0 -0
  360. /package/{ecc/rules → src/available-rules}/perl/patterns.md +0 -0
  361. /package/{ecc/rules → src/available-rules}/perl/security.md +0 -0
  362. /package/{ecc/rules → src/available-rules}/perl/testing.md +0 -0
  363. /package/{ecc/rules → src/available-rules}/php/coding-style.md +0 -0
  364. /package/{ecc/rules → src/available-rules}/php/hooks.md +0 -0
  365. /package/{ecc/rules → src/available-rules}/php/patterns.md +0 -0
  366. /package/{ecc/rules → src/available-rules}/php/security.md +0 -0
  367. /package/{ecc/rules → src/available-rules}/php/testing.md +0 -0
  368. /package/{ecc/rules → src/available-rules}/python/coding-style.md +0 -0
  369. /package/{ecc/rules → src/available-rules}/python/hooks.md +0 -0
  370. /package/{ecc/rules → src/available-rules}/python/patterns.md +0 -0
  371. /package/{ecc/rules → src/available-rules}/python/security.md +0 -0
  372. /package/{ecc/rules → src/available-rules}/python/testing.md +0 -0
  373. /package/{ecc/rules → src/available-rules}/swift/coding-style.md +0 -0
  374. /package/{ecc/rules → src/available-rules}/swift/hooks.md +0 -0
  375. /package/{ecc/rules → src/available-rules}/swift/patterns.md +0 -0
  376. /package/{ecc/rules → src/available-rules}/swift/security.md +0 -0
  377. /package/{ecc/rules → src/available-rules}/swift/testing.md +0 -0
  378. /package/{ecc/rules → src/available-rules}/typescript/coding-style.md +0 -0
  379. /package/{ecc/rules → src/available-rules}/typescript/hooks.md +0 -0
  380. /package/{ecc/rules → src/available-rules}/typescript/patterns.md +0 -0
  381. /package/{ecc/rules → src/available-rules}/typescript/security.md +0 -0
  382. /package/{ecc/rules → src/available-rules}/typescript/testing.md +0 -0
  383. /package/{ecc → src}/commands/checkpoint.md +0 -0
  384. /package/{ecc → src}/commands/learn.md +0 -0
  385. /package/{ecc → src}/commands/model-route.md +0 -0
  386. /package/{ecc → src}/commands/resume-session.md +0 -0
  387. /package/{ecc → src}/commands/save-session.md +0 -0
  388. /package/{kit → src}/commands/setup-refresh.md +0 -0
  389. /package/{kit → src}/commands/tool-guide.md +0 -0
  390. /package/{ecc → src}/commands/verify.md +0 -0
  391. /package/{ecc → src}/contexts/dev.md +0 -0
  392. /package/{ecc → src}/contexts/research.md +0 -0
  393. /package/{ecc → src}/contexts/review.md +0 -0
  394. /package/{ecc → src}/examples/CLAUDE.md +0 -0
  395. /package/{ecc → src}/examples/django-api-CLAUDE.md +0 -0
  396. /package/{ecc → src}/examples/go-microservice-CLAUDE.md +0 -0
  397. /package/{ecc → src}/examples/rust-api-CLAUDE.md +0 -0
  398. /package/{ecc → src}/examples/saas-nextjs-CLAUDE.md +0 -0
  399. /package/{ecc → src}/examples/user-CLAUDE.md +0 -0
  400. /package/{ecc/scripts → src}/hooks/check-hook-enabled.js +0 -0
  401. /package/{ecc/scripts → src}/hooks/evaluate-session.js +0 -0
  402. /package/{ecc/scripts → src}/hooks/pre-compact.js +0 -0
  403. /package/{ecc/scripts → src}/hooks/suggest-compact.js +0 -0
  404. /package/{ecc/scripts → src}/lib/package-manager.d.ts +0 -0
  405. /package/{ecc/scripts → src}/lib/package-manager.js +0 -0
  406. /package/{ecc/scripts → src}/lib/resolve-formatter.js +0 -0
  407. /package/{ecc/scripts → src}/lib/session-aliases.d.ts +0 -0
  408. /package/{ecc/scripts → src}/lib/session-aliases.js +0 -0
  409. /package/{ecc/scripts → src}/lib/shell-split.js +0 -0
  410. /package/{gsd/get-shit-done → src/pilot}/bin/lib/frontmatter.cjs +0 -0
  411. /package/{gsd/get-shit-done → src/pilot}/bin/lib/milestone.cjs +0 -0
  412. /package/{gsd/get-shit-done → src/pilot}/bin/lib/roadmap.cjs +0 -0
  413. /package/{gsd/get-shit-done → src/pilot}/bin/lib/template.cjs +0 -0
  414. /package/{gsd/get-shit-done → src/pilot}/references/checkpoints.md +0 -0
  415. /package/{gsd/get-shit-done → src/pilot}/references/questioning.md +0 -0
  416. /package/{gsd/get-shit-done → src/pilot}/references/tdd.md +0 -0
  417. /package/{gsd/get-shit-done → src/pilot}/templates/codebase/concerns.md +0 -0
  418. /package/{gsd/get-shit-done → src/pilot}/templates/codebase/conventions.md +0 -0
  419. /package/{gsd/get-shit-done → src/pilot}/templates/codebase/integrations.md +0 -0
  420. /package/{gsd/get-shit-done → src/pilot}/templates/codebase/stack.md +0 -0
  421. /package/{gsd/get-shit-done → src/pilot}/templates/codebase/testing.md +0 -0
  422. /package/{gsd/get-shit-done → src/pilot}/templates/config.json +0 -0
  423. /package/{gsd/get-shit-done → src/pilot}/templates/continue-here.md +0 -0
  424. /package/{gsd/get-shit-done → src/pilot}/templates/milestone-archive.md +0 -0
  425. /package/{gsd/get-shit-done → src/pilot}/templates/milestone.md +0 -0
  426. /package/{gsd/get-shit-done → src/pilot}/templates/requirements.md +0 -0
  427. /package/{gsd/get-shit-done → src/pilot}/templates/research-project/ARCHITECTURE.md +0 -0
  428. /package/{gsd/get-shit-done → src/pilot}/templates/research-project/FEATURES.md +0 -0
  429. /package/{gsd/get-shit-done → src/pilot}/templates/research-project/PITFALLS.md +0 -0
  430. /package/{gsd/get-shit-done → src/pilot}/templates/research-project/STACK.md +0 -0
  431. /package/{gsd/get-shit-done → src/pilot}/templates/research-project/SUMMARY.md +0 -0
  432. /package/{gsd/get-shit-done → src/pilot}/templates/retrospective.md +0 -0
  433. /package/{gsd/get-shit-done → src/pilot}/templates/roadmap.md +0 -0
  434. /package/{gsd/get-shit-done → src/pilot}/templates/summary-minimal.md +0 -0
  435. /package/{gsd/get-shit-done → src/pilot}/templates/summary-standard.md +0 -0
  436. /package/{gsd/get-shit-done → src/pilot}/templates/summary.md +0 -0
  437. /package/{gsd/get-shit-done → src/pilot}/templates/user-setup.md +0 -0
  438. /package/{gsd/get-shit-done → src/pilot}/templates/verification-report.md +0 -0
  439. /package/{ecc → src}/rules/common/development-workflow.md +0 -0
  440. /package/{ecc → src}/rules/common/git-workflow.md +0 -0
  441. /package/{ecc → src}/rules/common/hooks.md +0 -0
  442. /package/{ecc → src}/rules/common/patterns.md +0 -0
  443. /package/{ecc → src}/rules/common/performance.md +0 -0
  444. /package/{ecc → src}/rules/common/security.md +0 -0
  445. /package/{ecc → src}/rules/common/testing.md +0 -0
  446. /package/{ecc → src}/skills/continuous-learning-v2/agents/observer.md +0 -0
  447. /package/{ecc → src}/skills/continuous-learning-v2/agents/start-observer.sh +0 -0
  448. /package/{ecc → src}/skills/continuous-learning-v2/config.json +0 -0
  449. /package/{ecc → src}/skills/continuous-learning-v2/hooks/observe.sh +0 -0
  450. /package/{ecc → src}/skills/continuous-learning-v2/scripts/detect-project.sh +0 -0
  451. /package/{ecc → src}/skills/continuous-learning-v2/scripts/instinct-cli.py +0 -0
  452. /package/{ecc → src}/skills/continuous-learning-v2/scripts/test_parse_instinct.py +0 -0
  453. /package/{ecc → src}/skills/strategic-compact/SKILL.md +0 -0
  454. /package/{ecc → src}/skills/strategic-compact/suggest-compact.sh +0 -0
  455. /package/{ecc/skills/verification-loop-SKILL.md → src/skills/verification-loop/SKILL.md} +0 -0
@@ -0,0 +1,173 @@
1
+ ---
2
+ description: Fix C++ build errors, CMake issues, and linker problems incrementally. Invokes the cpp-build-resolver agent for minimal, surgical fixes.
3
+ ---
4
+
5
+ # C++ Build and Fix
6
+
7
+ This command invokes the **cpp-build-resolver** agent to incrementally fix C++ build errors with minimal changes.
8
+
9
+ ## What This Command Does
10
+
11
+ 1. **Run Diagnostics**: Execute `cmake --build`, `clang-tidy`, `cppcheck`
12
+ 2. **Parse Errors**: Group by file and sort by severity
13
+ 3. **Fix Incrementally**: One error at a time
14
+ 4. **Verify Each Fix**: Re-run build after each change
15
+ 5. **Report Summary**: Show what was fixed and what remains
16
+
17
+ ## When to Use
18
+
19
+ Use `/cpp-build` when:
20
+ - `cmake --build build` fails with errors
21
+ - Linker errors (undefined references, multiple definitions)
22
+ - Template instantiation failures
23
+ - Include/dependency issues
24
+ - After pulling changes that break the build
25
+
26
+ ## Diagnostic Commands Run
27
+
28
+ ```bash
29
+ # CMake configure
30
+ cmake -B build -S .
31
+
32
+ # Build
33
+ cmake --build build 2>&1 | head -100
34
+
35
+ # Static analysis (if available)
36
+ clang-tidy src/*.cpp -- -std=c++17
37
+ cppcheck --enable=all src/
38
+ ```
39
+
40
+ ## Example Session
41
+
42
+ ```text
43
+ User: /cpp-build
44
+
45
+ Agent:
46
+ # C++ Build Resolution
47
+
48
+ ## Initial Diagnostics
49
+
50
+ ```bash
51
+ $ cmake --build build
52
+ src/service/user.cpp:25:15: error: use of undeclared identifier 'UserRepository'
53
+ src/handler/api.cpp:42:9: error: no matching function for call to 'process'
54
+ src/handler/api.cpp:58:1: error: non-void function does not return a value
55
+ ```
56
+
57
+ Errors found: 3
58
+
59
+ ## Fix 1: Undeclared Identifier
60
+
61
+ File: src/service/user.cpp:25
62
+ Error: use of undeclared identifier 'UserRepository'
63
+ Cause: Missing include
64
+
65
+ ```cpp
66
+ // Added include
67
+ #include "repository/user_repository.hpp"
68
+ ```
69
+
70
+ ```bash
71
+ $ cmake --build build
72
+ # 2 errors remaining
73
+ ```
74
+
75
+ ## Fix 2: No Matching Function
76
+
77
+ File: src/handler/api.cpp:42
78
+ Error: no matching function for call to 'process'
79
+
80
+ ```cpp
81
+ // Changed
82
+ process(params.get("count"));
83
+ // To
84
+ process(std::stoi(params.get("count")));
85
+ ```
86
+
87
+ ```bash
88
+ $ cmake --build build
89
+ # 1 error remaining
90
+ ```
91
+
92
+ ## Fix 3: Missing Return
93
+
94
+ File: src/handler/api.cpp:58
95
+ Error: non-void function does not return a value
96
+
97
+ ```cpp
98
+ std::optional<User> getUser(const std::string& id) {
99
+ if (id.empty()) {
100
+ return std::nullopt;
101
+ }
102
+ auto user = findUser(id);
103
+ // Added missing return
104
+ return user;
105
+ }
106
+ ```
107
+
108
+ ```bash
109
+ $ cmake --build build
110
+ # Build successful!
111
+ ```
112
+
113
+ ## Final Verification
114
+
115
+ ```bash
116
+ $ ctest --test-dir build --output-on-failure
117
+ Test project build
118
+ 1/5 Test #1: unit_tests ........ Passed 0.02 sec
119
+ 2/5 Test #2: integration_tests Passed 0.15 sec
120
+ All tests passed.
121
+ ```
122
+
123
+ ## Summary
124
+
125
+ | Metric | Count |
126
+ |--------|-------|
127
+ | Build errors fixed | 3 |
128
+ | Linker errors fixed | 0 |
129
+ | Files modified | 2 |
130
+ | Remaining issues | 0 |
131
+
132
+ Build Status: ✅ SUCCESS
133
+ ```
134
+
135
+ ## Common Errors Fixed
136
+
137
+ | Error | Typical Fix |
138
+ |-------|-------------|
139
+ | `undeclared identifier` | Add `#include` or fix typo |
140
+ | `no matching function` | Fix argument types or add overload |
141
+ | `undefined reference` | Link library or add implementation |
142
+ | `multiple definition` | Use `inline` or move to .cpp |
143
+ | `incomplete type` | Replace forward decl with `#include` |
144
+ | `no member named X` | Fix member name or include |
145
+ | `cannot convert X to Y` | Add appropriate cast |
146
+ | `CMake Error` | Fix CMakeLists.txt configuration |
147
+
148
+ ## Fix Strategy
149
+
150
+ 1. **Compilation errors first** - Code must compile
151
+ 2. **Linker errors second** - Resolve undefined references
152
+ 3. **Warnings third** - Fix with `-Wall -Wextra`
153
+ 4. **One fix at a time** - Verify each change
154
+ 5. **Minimal changes** - Don't refactor, just fix
155
+
156
+ ## Stop Conditions
157
+
158
+ The agent will stop and report if:
159
+ - Same error persists after 3 attempts
160
+ - Fix introduces more errors
161
+ - Requires architectural changes
162
+ - Missing external dependencies
163
+
164
+ ## Related Commands
165
+
166
+ - `/cpp-test` - Run tests after build succeeds
167
+ - `/cpp-review` - Review code quality
168
+ - `/verify` - Full verification loop
169
+
170
+ ## Related
171
+
172
+ - Agent: `agents/cpp-build-resolver.md`
173
+ - Skill: `skills/cpp-coding-standards/`
@@ -0,0 +1,132 @@
1
+ ---
2
+ description: Comprehensive C++ code review for memory safety, modern C++ idioms, concurrency, and security. Invokes the cpp-reviewer agent.
3
+ ---
4
+
5
+ # C++ Code Review
6
+
7
+ This command invokes the **cpp-reviewer** agent for comprehensive C++-specific code review.
8
+
9
+ ## What This Command Does
10
+
11
+ 1. **Identify C++ Changes**: Find modified `.cpp`, `.hpp`, `.cc`, `.h` files via `git diff`
12
+ 2. **Run Static Analysis**: Execute `clang-tidy` and `cppcheck`
13
+ 3. **Memory Safety Scan**: Check for raw new/delete, buffer overflows, use-after-free
14
+ 4. **Concurrency Review**: Analyze thread safety, mutex usage, data races
15
+ 5. **Modern C++ Check**: Verify code follows C++17/20 conventions and best practices
16
+ 6. **Generate Report**: Categorize issues by severity
17
+
18
+ ## When to Use
19
+
20
+ Use `/cpp-review` when:
21
+ - After writing or modifying C++ code
22
+ - Before committing C++ changes
23
+ - Reviewing pull requests with C++ code
24
+ - Onboarding to a new C++ codebase
25
+ - Checking for memory safety issues
26
+
27
+ ## Review Categories
28
+
29
+ ### CRITICAL (Must Fix)
30
+ - Raw `new`/`delete` without RAII
31
+ - Buffer overflows and use-after-free
32
+ - Data races without synchronization
33
+ - Command injection via `system()`
34
+ - Uninitialized variable reads
35
+ - Null pointer dereferences
36
+
37
+ ### HIGH (Should Fix)
38
+ - Rule of Five violations
39
+ - Missing `std::lock_guard` / `std::scoped_lock`
40
+ - Detached threads without proper lifetime management
41
+ - C-style casts instead of `static_cast`/`dynamic_cast`
42
+ - Missing `const` correctness
43
+
44
+ ### MEDIUM (Consider)
45
+ - Unnecessary copies (pass by value instead of `const&`)
46
+ - Missing `reserve()` on known-size containers
47
+ - `using namespace std;` in headers
48
+ - Missing `[[nodiscard]]` on important return values
49
+ - Overly complex template metaprogramming
50
+
51
+ ## Automated Checks Run
52
+
53
+ ```bash
54
+ # Static analysis
55
+ clang-tidy --checks='*,-llvmlibc-*' src/*.cpp -- -std=c++17
56
+
57
+ # Additional analysis
58
+ cppcheck --enable=all --suppress=missingIncludeSystem src/
59
+
60
+ # Build with warnings
61
+ cmake --build build -- -Wall -Wextra -Wpedantic
62
+ ```
63
+
64
+ ## Example Usage
65
+
66
+ ```text
67
+ User: /cpp-review
68
+
69
+ Agent:
70
+ # C++ Code Review Report
71
+
72
+ ## Files Reviewed
73
+ - src/handler/user.cpp (modified)
74
+ - src/service/auth.cpp (modified)
75
+
76
+ ## Static Analysis Results
77
+ ✓ clang-tidy: 2 warnings
78
+ ✓ cppcheck: No issues
79
+
80
+ ## Issues Found
81
+
82
+ [CRITICAL] Memory Leak
83
+ File: src/service/auth.cpp:45
84
+ Issue: Raw `new` without matching `delete`
85
+ ```cpp
86
+ auto* session = new Session(userId); // Memory leak!
87
+ cache[userId] = session;
88
+ ```
89
+ Fix: Use `std::unique_ptr`
90
+ ```cpp
91
+ auto session = std::make_unique<Session>(userId);
92
+ cache[userId] = std::move(session);
93
+ ```
94
+
95
+ [HIGH] Missing const Reference
96
+ File: src/handler/user.cpp:28
97
+ Issue: Large object passed by value
98
+ ```cpp
99
+ void processUser(User user) { // Unnecessary copy
100
+ ```
101
+ Fix: Pass by const reference
102
+ ```cpp
103
+ void processUser(const User& user) {
104
+ ```
105
+
106
+ ## Summary
107
+ - CRITICAL: 1
108
+ - HIGH: 1
109
+ - MEDIUM: 0
110
+
111
+ Recommendation: ❌ Block merge until CRITICAL issue is fixed
112
+ ```
113
+
114
+ ## Approval Criteria
115
+
116
+ | Status | Condition |
117
+ |--------|-----------|
118
+ | ✅ Approve | No CRITICAL or HIGH issues |
119
+ | ⚠️ Warning | Only MEDIUM issues (merge with caution) |
120
+ | ❌ Block | CRITICAL or HIGH issues found |
121
+
122
+ ## Integration with Other Commands
123
+
124
+ - Use `/cpp-test` first to ensure tests pass
125
+ - Use `/cpp-build` if build errors occur
126
+ - Use `/cpp-review` before committing
127
+ - Use `/code-review` for non-C++ specific concerns
128
+
129
+ ## Related
130
+
131
+ - Agent: `agents/cpp-reviewer.md`
132
+ - Skills: `skills/cpp-coding-standards/`, `skills/cpp-testing/`
@@ -0,0 +1,251 @@
1
+ ---
2
+ description: Enforce TDD workflow for C++. Write GoogleTest tests first, then implement. Verify coverage with gcov/lcov.
3
+ ---
4
+
5
+ # C++ TDD Command
6
+
7
+ This command enforces test-driven development methodology for C++ code using GoogleTest/GoogleMock with CMake/CTest.
8
+
9
+ ## What This Command Does
10
+
11
+ 1. **Define Interfaces**: Scaffold class/function signatures first
12
+ 2. **Write Tests**: Create comprehensive GoogleTest test cases (RED)
13
+ 3. **Run Tests**: Verify tests fail for the right reason
14
+ 4. **Implement Code**: Write minimal code to pass (GREEN)
15
+ 5. **Refactor**: Improve while keeping tests green
16
+ 6. **Check Coverage**: Ensure 80%+ coverage
17
+
18
+ ## When to Use
19
+
20
+ Use `/cpp-test` when:
21
+ - Implementing new C++ functions or classes
22
+ - Adding test coverage to existing code
23
+ - Fixing bugs (write failing test first)
24
+ - Building critical business logic
25
+ - Learning TDD workflow in C++
26
+
27
+ ## TDD Cycle
28
+
29
+ ```
30
+ RED → Write failing GoogleTest test
31
+ GREEN → Implement minimal code to pass
32
+ REFACTOR → Improve code, tests stay green
33
+ REPEAT → Next test case
34
+ ```
35
+
36
+ ## Example Session
37
+
38
+ ````
39
+ User: /cpp-test I need a function to validate email addresses
40
+
41
+ Agent:
42
+ # TDD Session: Email Validator
43
+
44
+ ## Step 1: Define Interface
45
+
46
+ ```cpp
47
+ // validator/email.hpp
48
+ #pragma once
49
+ #include <string>
50
+ #include <expected>
51
+
52
+ enum class EmailError {
53
+ Empty,
54
+ InvalidFormat
55
+ };
56
+
57
+ std::expected<void, EmailError> validate_email(const std::string& email);
58
+ ```
59
+
60
+ ## Step 2: Write Tests (RED)
61
+
62
+ ```cpp
63
+ // validator/email_test.cpp
64
+ #include <gtest/gtest.h>
65
+ #include "email.hpp"
66
+
67
+ TEST(ValidateEmail, AcceptsSimpleEmail) {
68
+ auto result = validate_email("user@example.com");
69
+ EXPECT_TRUE(result.has_value());
70
+ }
71
+
72
+ TEST(ValidateEmail, AcceptsSubdomain) {
73
+ EXPECT_TRUE(validate_email("user@mail.example.com").has_value());
74
+ }
75
+
76
+ TEST(ValidateEmail, AcceptsPlus) {
77
+ EXPECT_TRUE(validate_email("user+tag@example.com").has_value());
78
+ }
79
+
80
+ TEST(ValidateEmail, RejectsEmpty) {
81
+ auto result = validate_email("");
82
+ ASSERT_FALSE(result.has_value());
83
+ EXPECT_EQ(result.error(), EmailError::Empty);
84
+ }
85
+
86
+ TEST(ValidateEmail, RejectsNoAtSign) {
87
+ EXPECT_FALSE(validate_email("userexample.com").has_value());
88
+ }
89
+
90
+ TEST(ValidateEmail, RejectsNoDomain) {
91
+ EXPECT_FALSE(validate_email("user@").has_value());
92
+ }
93
+
94
+ TEST(ValidateEmail, RejectsNoLocalPart) {
95
+ EXPECT_FALSE(validate_email("@example.com").has_value());
96
+ }
97
+ ```
98
+
99
+ ## Step 3: Run Tests - Verify FAIL
100
+
101
+ ```bash
102
+ $ cmake --build build && ctest --test-dir build --output-on-failure
103
+
104
+ 1/1 Test #1: email_validator_test .....***Failed
105
+ --- undefined reference to `validate_email`
106
+
107
+ FAIL
108
+ ```
109
+
110
+ ✓ Tests fail as expected (unimplemented).
111
+
112
+ ## Step 4: Implement Minimal Code (GREEN)
113
+
114
+ ```cpp
115
+ // validator/email.cpp
116
+ #include "email.hpp"
117
+ #include <regex>
118
+
119
+ std::expected<void, EmailError> validate_email(const std::string& email) {
120
+ if (email.empty()) {
121
+ return std::unexpected(EmailError::Empty);
122
+ }
123
+ static const std::regex pattern(R"([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,})");
124
+ if (!std::regex_match(email, pattern)) {
125
+ return std::unexpected(EmailError::InvalidFormat);
126
+ }
127
+ return {};
128
+ }
129
+ ```
130
+
131
+ ## Step 5: Run Tests - Verify PASS
132
+
133
+ ```bash
134
+ $ cmake --build build && ctest --test-dir build --output-on-failure
135
+
136
+ 1/1 Test #1: email_validator_test ..... Passed 0.01 sec
137
+
138
+ 100% tests passed.
139
+ ```
140
+
141
+ ✓ All tests passing!
142
+
143
+ ## Step 6: Check Coverage
144
+
145
+ ```bash
146
+ $ cmake -DCMAKE_CXX_FLAGS="--coverage" -B build && cmake --build build
147
+ $ ctest --test-dir build
148
+ $ lcov --capture --directory build --output-file coverage.info
149
+ $ lcov --list coverage.info
150
+
151
+ validator/email.cpp | 100%
152
+ ```
153
+
154
+ ✓ Coverage: 100%
155
+
156
+ ## TDD Complete!
157
+ ````
158
+
159
+ ## Test Patterns
160
+
161
+ ### Basic Tests
162
+ ```cpp
163
+ TEST(SuiteName, TestName) {
164
+ EXPECT_EQ(add(2, 3), 5);
165
+ EXPECT_NE(result, nullptr);
166
+ EXPECT_TRUE(is_valid);
167
+ EXPECT_THROW(func(), std::invalid_argument);
168
+ }
169
+ ```
170
+
171
+ ### Fixtures
172
+ ```cpp
173
+ class DatabaseTest : public ::testing::Test {
174
+ protected:
175
+ void SetUp() override { db_ = create_test_db(); }
176
+ void TearDown() override { db_.reset(); }
177
+ std::unique_ptr<Database> db_;
178
+ };
179
+
180
+ TEST_F(DatabaseTest, InsertsRecord) {
181
+ db_->insert("key", "value");
182
+ EXPECT_EQ(db_->get("key"), "value");
183
+ }
184
+ ```
185
+
186
+ ### Parameterized Tests
187
+ ```cpp
188
+ class PrimeTest : public ::testing::TestWithParam<std::pair<int, bool>> {};
189
+
190
+ TEST_P(PrimeTest, ChecksPrimality) {
191
+ auto [input, expected] = GetParam();
192
+ EXPECT_EQ(is_prime(input), expected);
193
+ }
194
+
195
+ INSTANTIATE_TEST_SUITE_P(Primes, PrimeTest, ::testing::Values(
196
+ std::make_pair(2, true),
197
+ std::make_pair(4, false),
198
+ std::make_pair(7, true)
199
+ ));
200
+ ```
201
+
202
+ ## Coverage Commands
203
+
204
+ ```bash
205
+ # Build with coverage
206
+ cmake -DCMAKE_CXX_FLAGS="--coverage" -DCMAKE_EXE_LINKER_FLAGS="--coverage" -B build
207
+
208
+ # Run tests
209
+ cmake --build build && ctest --test-dir build
210
+
211
+ # Generate coverage report
212
+ lcov --capture --directory build --output-file coverage.info
213
+ lcov --remove coverage.info '/usr/*' --output-file coverage.info
214
+ genhtml coverage.info --output-directory coverage_html
215
+ ```
216
+
217
+ ## Coverage Targets
218
+
219
+ | Code Type | Target |
220
+ |-----------|--------|
221
+ | Critical business logic | 100% |
222
+ | Public APIs | 90%+ |
223
+ | General code | 80%+ |
224
+ | Generated code | Exclude |
225
+
226
+ ## TDD Best Practices
227
+
228
+ **DO:**
229
+ - Write test FIRST, before any implementation
230
+ - Run tests after each change
231
+ - Use `EXPECT_*` (continues) over `ASSERT_*` (stops) when appropriate
232
+ - Test behavior, not implementation details
233
+ - Include edge cases (empty, null, max values, boundary conditions)
234
+
235
+ **DON'T:**
236
+ - Write implementation before tests
237
+ - Skip the RED phase
238
+ - Test private methods directly (test through public API)
239
+ - Use `sleep` in tests
240
+ - Ignore flaky tests
241
+
242
+ ## Related Commands
243
+
244
+ - `/cpp-build` - Fix build errors
245
+ - `/cpp-review` - Review code after implementation
246
+ - `/verify` - Run full verification loop
247
+
248
+ ## Related
249
+
250
+ - Skill: `skills/cpp-testing/`
251
+ - Skill: `skills/tdd-workflow/`
@@ -0,0 +1,31 @@
1
+ ---
2
+ description: Look up current documentation for a library or topic via Context7.
3
+ ---
4
+
5
+ # /docs
6
+
7
+ ## Purpose
8
+
9
+ Look up up-to-date documentation for a library, framework, or API and return a summarized answer with relevant code snippets. Uses the Context7 MCP (resolve-library-id and query-docs) so answers reflect current docs, not training data.
10
+
11
+ ## Usage
12
+
13
+ ```
14
+ /docs [library name] [question]
15
+ ```
16
+
17
+ Use quotes for multi-word arguments so they are parsed as a single token. Example: `/docs "Next.js" "How do I configure middleware?"`
18
+
19
+ If library or question is omitted, prompt the user for:
20
+ 1. The library or product name (e.g. Next.js, Prisma, Supabase).
21
+ 2. The specific question or task (e.g. "How do I set up middleware?", "Auth methods").
22
+
23
+ ## Workflow
24
+
25
+ 1. **Resolve library ID** — Call the Context7 tool `resolve-library-id` with the library name and the user's question to get a Context7-compatible library ID (e.g. `/vercel/next.js`).
26
+ 2. **Query docs** — Call `query-docs` with that library ID and the user's question.
27
+ 3. **Summarize** — Return a concise answer and include relevant code examples from the fetched documentation. Mention the library (and version if relevant).
28
+
29
+ ## Output
30
+
31
+ The user receives a short, accurate answer backed by current docs, plus any code snippets that help. If Context7 is not available, say so and answer from training data with a note that docs may be outdated.