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,179 @@
1
+ ---
2
+ name: laravel-verification
3
+ description: Verification loop for Laravel projects: env checks, linting, static analysis, tests with coverage, security scans, and deployment readiness.
4
+ origin: ECC
5
+ ---
6
+
7
+ # Laravel Verification Loop
8
+
9
+ Run before PRs, after major changes, and pre-deploy.
10
+
11
+ ## When to Use
12
+
13
+ - Before opening a pull request for a Laravel project
14
+ - After major refactors or dependency upgrades
15
+ - Pre-deployment verification for staging or production
16
+ - Running full lint -> test -> security -> deploy readiness pipeline
17
+
18
+ ## How It Works
19
+
20
+ - Run phases sequentially from environment checks through deployment readiness so each layer builds on the last.
21
+ - Environment and Composer checks gate everything else; stop immediately if they fail.
22
+ - Linting/static analysis should be clean before running full tests and coverage.
23
+ - Security and migration reviews happen after tests so you verify behavior before data or release steps.
24
+ - Build/deploy readiness and queue/scheduler checks are final gates; any failure blocks release.
25
+
26
+ ## Phase 1: Environment Checks
27
+
28
+ ```bash
29
+ php -v
30
+ composer --version
31
+ php artisan --version
32
+ ```
33
+
34
+ - Verify `.env` is present and required keys exist
35
+ - Confirm `APP_DEBUG=false` for production environments
36
+ - Confirm `APP_ENV` matches the target deployment (`production`, `staging`)
37
+
38
+ If using Laravel Sail locally:
39
+
40
+ ```bash
41
+ ./vendor/bin/sail php -v
42
+ ./vendor/bin/sail artisan --version
43
+ ```
44
+
45
+ ## Phase 1.5: Composer and Autoload
46
+
47
+ ```bash
48
+ composer validate
49
+ composer dump-autoload -o
50
+ ```
51
+
52
+ ## Phase 2: Linting and Static Analysis
53
+
54
+ ```bash
55
+ vendor/bin/pint --test
56
+ vendor/bin/phpstan analyse
57
+ ```
58
+
59
+ If your project uses Psalm instead of PHPStan:
60
+
61
+ ```bash
62
+ vendor/bin/psalm
63
+ ```
64
+
65
+ ## Phase 3: Tests and Coverage
66
+
67
+ ```bash
68
+ php artisan test
69
+ ```
70
+
71
+ Coverage (CI):
72
+
73
+ ```bash
74
+ XDEBUG_MODE=coverage php artisan test --coverage
75
+ ```
76
+
77
+ CI example (format -> static analysis -> tests):
78
+
79
+ ```bash
80
+ vendor/bin/pint --test
81
+ vendor/bin/phpstan analyse
82
+ XDEBUG_MODE=coverage php artisan test --coverage
83
+ ```
84
+
85
+ ## Phase 4: Security and Dependency Checks
86
+
87
+ ```bash
88
+ composer audit
89
+ ```
90
+
91
+ ## Phase 5: Database and Migrations
92
+
93
+ ```bash
94
+ php artisan migrate --pretend
95
+ php artisan migrate:status
96
+ ```
97
+
98
+ - Review destructive migrations carefully
99
+ - Ensure migration filenames follow `Y_m_d_His_*` (e.g., `2025_03_14_154210_create_orders_table.php`) and describe the change clearly
100
+ - Ensure rollbacks are possible
101
+ - Verify `down()` methods and avoid irreversible data loss without explicit backups
102
+
103
+ ## Phase 6: Build and Deployment Readiness
104
+
105
+ ```bash
106
+ php artisan optimize:clear
107
+ php artisan config:cache
108
+ php artisan route:cache
109
+ php artisan view:cache
110
+ ```
111
+
112
+ - Ensure cache warmups succeed in production configuration
113
+ - Verify queue workers and scheduler are configured
114
+ - Confirm `storage/` and `bootstrap/cache/` are writable in the target environment
115
+
116
+ ## Phase 7: Queue and Scheduler Checks
117
+
118
+ ```bash
119
+ php artisan schedule:list
120
+ php artisan queue:failed
121
+ ```
122
+
123
+ If Horizon is used:
124
+
125
+ ```bash
126
+ php artisan horizon:status
127
+ ```
128
+
129
+ If `queue:monitor` is available, use it to check backlog without processing jobs:
130
+
131
+ ```bash
132
+ php artisan queue:monitor default --max=100
133
+ ```
134
+
135
+ Active verification (staging only): dispatch a no-op job to a dedicated queue and run a single worker to process it (ensure a non-`sync` queue connection is configured).
136
+
137
+ ```bash
138
+ php artisan tinker --execute="dispatch((new App\\Jobs\\QueueHealthcheck())->onQueue('healthcheck'))"
139
+ php artisan queue:work --once --queue=healthcheck
140
+ ```
141
+
142
+ Verify the job produced the expected side effect (log entry, healthcheck table row, or metric).
143
+
144
+ Only run this on non-production environments where processing a test job is safe.
145
+
146
+ ## Examples
147
+
148
+ Minimal flow:
149
+
150
+ ```bash
151
+ php -v
152
+ composer --version
153
+ php artisan --version
154
+ composer validate
155
+ vendor/bin/pint --test
156
+ vendor/bin/phpstan analyse
157
+ php artisan test
158
+ composer audit
159
+ php artisan migrate --pretend
160
+ php artisan config:cache
161
+ php artisan queue:failed
162
+ ```
163
+
164
+ CI-style pipeline:
165
+
166
+ ```bash
167
+ composer validate
168
+ composer dump-autoload -o
169
+ vendor/bin/pint --test
170
+ vendor/bin/phpstan analyse
171
+ XDEBUG_MODE=coverage php artisan test --coverage
172
+ composer audit
173
+ php artisan migrate --pretend
174
+ php artisan optimize:clear
175
+ php artisan config:cache
176
+ php artisan route:cache
177
+ php artisan view:cache
178
+ php artisan schedule:list
179
+ ```
@@ -0,0 +1,67 @@
1
+ ---
2
+ name: mcp-server-patterns
3
+ description: Build MCP servers with Node/TypeScript SDK — tools, resources, prompts, Zod validation, stdio vs Streamable HTTP. Use Context7 or official MCP docs for latest API.
4
+ origin: ECC
5
+ ---
6
+
7
+ # MCP Server Patterns
8
+
9
+ The Model Context Protocol (MCP) lets AI assistants call tools, read resources, and use prompts from your server. Use this skill when building or maintaining MCP servers. The SDK API evolves; check Context7 (query-docs for "MCP") or the official MCP documentation for current method names and signatures.
10
+
11
+ ## When to Use
12
+
13
+ Use when: implementing a new MCP server, adding tools or resources, choosing stdio vs HTTP, upgrading the SDK, or debugging MCP registration and transport issues.
14
+
15
+ ## How It Works
16
+
17
+ ### Core concepts
18
+
19
+ - **Tools**: Actions the model can invoke (e.g. search, run a command). Register with `registerTool()` or `tool()` depending on SDK version.
20
+ - **Resources**: Read-only data the model can fetch (e.g. file contents, API responses). Register with `registerResource()` or `resource()`. Handlers typically receive a `uri` argument.
21
+ - **Prompts**: Reusable, parameterised prompt templates the client can surface (e.g. in Claude Desktop). Register with `registerPrompt()` or equivalent.
22
+ - **Transport**: stdio for local clients (e.g. Claude Desktop); Streamable HTTP is preferred for remote (Cursor, cloud). Legacy HTTP/SSE is for backward compatibility.
23
+
24
+ The Node/TypeScript SDK may expose `tool()` / `resource()` or `registerTool()` / `registerResource()`; the official SDK has changed over time. Always verify against the current [MCP docs](https://modelcontextprotocol.io) or Context7.
25
+
26
+ ### Connecting with stdio
27
+
28
+ For local clients, create a stdio transport and pass it to your server’s connect method. The exact API varies by SDK version (e.g. constructor vs factory). See the official MCP documentation or query Context7 for "MCP stdio server" for the current pattern.
29
+
30
+ Keep server logic (tools + resources) independent of transport so you can plug in stdio or HTTP in the entrypoint.
31
+
32
+ ### Remote (Streamable HTTP)
33
+
34
+ For Cursor, cloud, or other remote clients, use **Streamable HTTP** (single MCP HTTP endpoint per current spec). Support legacy HTTP/SSE only when backward compatibility is required.
35
+
36
+ ## Examples
37
+
38
+ ### Install and server setup
39
+
40
+ ```bash
41
+ npm install @modelcontextprotocol/sdk zod
42
+ ```
43
+
44
+ ```typescript
45
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
46
+ import { z } from "zod";
47
+
48
+ const server = new McpServer({ name: "my-server", version: "1.0.0" });
49
+ ```
50
+
51
+ Register tools and resources using the API your SDK version provides: some versions use `server.tool(name, description, schema, handler)` (positional args), others use `server.tool({ name, description, inputSchema }, handler)` or `registerTool()`. Same for resources — include a `uri` in the handler when the API provides it. Check the official MCP docs or Context7 for the current `@modelcontextprotocol/sdk` signatures to avoid copy-paste errors.
52
+
53
+ Use **Zod** (or the SDK’s preferred schema format) for input validation.
54
+
55
+ ## Best Practices
56
+
57
+ - **Schema first**: Define input schemas for every tool; document parameters and return shape.
58
+ - **Errors**: Return structured errors or messages the model can interpret; avoid raw stack traces.
59
+ - **Idempotency**: Prefer idempotent tools where possible so retries are safe.
60
+ - **Rate and cost**: For tools that call external APIs, consider rate limits and cost; document in the tool description.
61
+ - **Versioning**: Pin SDK version in package.json; check release notes when upgrading.
62
+
63
+ ## Official SDKs and Docs
64
+
65
+ - **JavaScript/TypeScript**: `@modelcontextprotocol/sdk` (npm). Use Context7 with library name "MCP" for current registration and transport patterns.
66
+ - **Go**: Official Go SDK on GitHub (`modelcontextprotocol/go-sdk`).
67
+ - **C#**: Official C# SDK for .NET.
@@ -0,0 +1,44 @@
1
+ ---
2
+ name: nextjs-turbopack
3
+ description: Next.js 16+ and Turbopack — incremental bundling, FS caching, dev speed, and when to use Turbopack vs webpack.
4
+ origin: ECC
5
+ ---
6
+
7
+ # Next.js and Turbopack
8
+
9
+ Next.js 16+ uses Turbopack by default for local development: an incremental bundler written in Rust that significantly speeds up dev startup and hot updates.
10
+
11
+ ## When to Use
12
+
13
+ - **Turbopack (default dev)**: Use for day-to-day development. Faster cold start and HMR, especially in large apps.
14
+ - **Webpack (legacy dev)**: Use only if you hit a Turbopack bug or rely on a webpack-only plugin in dev. Disable with `--webpack` (or `--no-turbopack` depending on your Next.js version; check the docs for your release).
15
+ - **Production**: Production build behavior (`next build`) may use Turbopack or webpack depending on Next.js version; check the official Next.js docs for your version.
16
+
17
+ Use when: developing or debugging Next.js 16+ apps, diagnosing slow dev startup or HMR, or optimizing production bundles.
18
+
19
+ ## How It Works
20
+
21
+ - **Turbopack**: Incremental bundler for Next.js dev. Uses file-system caching so restarts are much faster (e.g. 5–14x on large projects).
22
+ - **Default in dev**: From Next.js 16, `next dev` runs with Turbopack unless disabled.
23
+ - **File-system caching**: Restarts reuse previous work; cache is typically under `.next`; no extra config needed for basic use.
24
+ - **Bundle Analyzer (Next.js 16.1+)**: Experimental Bundle Analyzer to inspect output and find heavy dependencies; enable via config or experimental flag (see Next.js docs for your version).
25
+
26
+ ## Examples
27
+
28
+ ### Commands
29
+
30
+ ```bash
31
+ next dev
32
+ next build
33
+ next start
34
+ ```
35
+
36
+ ### Usage
37
+
38
+ Run `next dev` for local development with Turbopack. Use the Bundle Analyzer (see Next.js docs) to optimize code-splitting and trim large dependencies. Prefer App Router and server components where possible.
39
+
40
+ ## Best Practices
41
+
42
+ - Stay on a recent Next.js 16.x for stable Turbopack and caching behavior.
43
+ - If dev is slow, ensure you're on Turbopack (default) and that the cache isn't being cleared unnecessarily.
44
+ - For production bundle size issues, use the official Next.js bundle analysis tooling for your version.
@@ -0,0 +1,100 @@
1
+ ---
2
+ name: nuxt4-patterns
3
+ description: Nuxt 4 app patterns for hydration safety, performance, route rules, lazy loading, and SSR-safe data fetching with useFetch and useAsyncData.
4
+ origin: ECC
5
+ ---
6
+
7
+ # Nuxt 4 Patterns
8
+
9
+ Use when building or debugging Nuxt 4 apps with SSR, hybrid rendering, route rules, or page-level data fetching.
10
+
11
+ ## When to Activate
12
+
13
+ - Hydration mismatches between server HTML and client state
14
+ - Route-level rendering decisions such as prerender, SWR, ISR, or client-only sections
15
+ - Performance work around lazy loading, lazy hydration, or payload size
16
+ - Page or component data fetching with `useFetch`, `useAsyncData`, or `$fetch`
17
+ - Nuxt routing issues tied to route params, middleware, or SSR/client differences
18
+
19
+ ## Hydration Safety
20
+
21
+ - Keep the first render deterministic. Do not put `Date.now()`, `Math.random()`, browser-only APIs, or storage reads directly into SSR-rendered template state.
22
+ - Move browser-only logic behind `onMounted()`, `import.meta.client`, `ClientOnly`, or a `.client.vue` component when the server cannot produce the same markup.
23
+ - Use Nuxt's `useRoute()` composable, not the one from `vue-router`.
24
+ - Do not use `route.fullPath` to drive SSR-rendered markup. URL fragments are client-only, which can create hydration mismatches.
25
+ - Treat `ssr: false` as an escape hatch for truly browser-only areas, not a default fix for mismatches.
26
+
27
+ ## Data Fetching
28
+
29
+ - Prefer `await useFetch()` for SSR-safe API reads in pages and components. It forwards server-fetched data into the Nuxt payload and avoids a second fetch on hydration.
30
+ - Use `useAsyncData()` when the fetcher is not a simple `$fetch()` call, when you need a custom key, or when you are composing multiple async sources.
31
+ - Give `useAsyncData()` a stable key for cache reuse and predictable refresh behavior.
32
+ - Keep `useAsyncData()` handlers side-effect free. They can run during SSR and hydration.
33
+ - Use `$fetch()` for user-triggered writes or client-only actions, not top-level page data that should be hydrated from SSR.
34
+ - Use `lazy: true`, `useLazyFetch()`, or `useLazyAsyncData()` for non-critical data that should not block navigation. Handle `status === 'pending'` in the UI.
35
+ - Use `server: false` only for data that is not needed for SEO or the first paint.
36
+ - Trim payload size with `pick` and prefer shallower payloads when deep reactivity is unnecessary.
37
+
38
+ ```ts
39
+ const route = useRoute()
40
+
41
+ const { data: article, status, error, refresh } = await useAsyncData(
42
+ () => `article:${route.params.slug}`,
43
+ () => $fetch(`/api/articles/${route.params.slug}`),
44
+ )
45
+
46
+ const { data: comments } = await useFetch(`/api/articles/${route.params.slug}/comments`, {
47
+ lazy: true,
48
+ server: false,
49
+ })
50
+ ```
51
+
52
+ ## Route Rules
53
+
54
+ Prefer `routeRules` in `nuxt.config.ts` for rendering and caching strategy:
55
+
56
+ ```ts
57
+ export default defineNuxtConfig({
58
+ routeRules: {
59
+ '/': { prerender: true },
60
+ '/products/**': { swr: 3600 },
61
+ '/blog/**': { isr: true },
62
+ '/admin/**': { ssr: false },
63
+ '/api/**': { cache: { maxAge: 60 * 60 } },
64
+ },
65
+ })
66
+ ```
67
+
68
+ - `prerender`: static HTML at build time
69
+ - `swr`: serve cached content and revalidate in the background
70
+ - `isr`: incremental static regeneration on supported platforms
71
+ - `ssr: false`: client-rendered route
72
+ - `cache` or `redirect`: Nitro-level response behavior
73
+
74
+ Pick route rules per route group, not globally. Marketing pages, catalogs, dashboards, and APIs usually need different strategies.
75
+
76
+ ## Lazy Loading and Performance
77
+
78
+ - Nuxt already code-splits pages by route. Keep route boundaries meaningful before micro-optimizing component splits.
79
+ - Use the `Lazy` prefix to dynamically import non-critical components.
80
+ - Conditionally render lazy components with `v-if` so the chunk is not loaded until the UI actually needs it.
81
+ - Use lazy hydration for below-the-fold or non-critical interactive UI.
82
+
83
+ ```vue
84
+ <template>
85
+ <LazyRecommendations v-if="showRecommendations" />
86
+ <LazyProductGallery hydrate-on-visible />
87
+ </template>
88
+ ```
89
+
90
+ - For custom strategies, use `defineLazyHydrationComponent()` with a visibility or idle strategy.
91
+ - Nuxt lazy hydration works on single-file components. Passing new props to a lazily hydrated component will trigger hydration immediately.
92
+ - Use `NuxtLink` for internal navigation so Nuxt can prefetch route components and generated payloads.
93
+
94
+ ## Review Checklist
95
+
96
+ - First SSR render and hydrated client render produce the same markup
97
+ - Page data uses `useFetch` or `useAsyncData`, not top-level `$fetch`
98
+ - Non-critical data is lazy and has explicit loading UI
99
+ - Route rules match the page's SEO and freshness requirements
100
+ - Heavy interactive islands are lazy-loaded or lazily hydrated
@@ -0,0 +1,255 @@
1
+ ---
2
+ name: opensource-pipeline
3
+ description: "Open-source pipeline: fork, sanitize, and package private projects for safe public release. Chains 3 agents (forker, sanitizer, packager). Triggers: '/opensource', 'open source this', 'make this public', 'prepare for open source'."
4
+ origin: ECC
5
+ ---
6
+
7
+ # Open-Source Pipeline Skill
8
+
9
+ Safely open-source any project through a 3-stage pipeline: **Fork** (strip secrets) → **Sanitize** (verify clean) → **Package** (CLAUDE.md + setup.sh + README).
10
+
11
+ ## When to Activate
12
+
13
+ - User says "open source this project" or "make this public"
14
+ - User wants to prepare a private repo for public release
15
+ - User needs to strip secrets before pushing to GitHub
16
+ - User invokes `/opensource fork`, `/opensource verify`, or `/opensource package`
17
+
18
+ ## Commands
19
+
20
+ | Command | Action |
21
+ |---------|--------|
22
+ | `/opensource fork PROJECT` | Full pipeline: fork + sanitize + package |
23
+ | `/opensource verify PROJECT` | Run sanitizer on existing repo |
24
+ | `/opensource package PROJECT` | Generate CLAUDE.md + setup.sh + README |
25
+ | `/opensource list` | Show all staged projects |
26
+ | `/opensource status PROJECT` | Show reports for a staged project |
27
+
28
+ ## Protocol
29
+
30
+ ### /opensource fork PROJECT
31
+
32
+ **Full pipeline — the main workflow.**
33
+
34
+ #### Step 1: Gather Parameters
35
+
36
+ Resolve the project path. If PROJECT contains `/`, treat as a path (absolute or relative). Otherwise check: current working directory, `$HOME/PROJECT`, then ask the user.
37
+
38
+ ```
39
+ SOURCE_PATH="<resolved absolute path>"
40
+ STAGING_PATH="$HOME/opensource-staging/${PROJECT_NAME}"
41
+ ```
42
+
43
+ Ask the user:
44
+ 1. "Which project?" (if not found)
45
+ 2. "License? (MIT / Apache-2.0 / GPL-3.0 / BSD-3-Clause)"
46
+ 3. "GitHub org or username?" (default: detect via `gh api user -q .login`)
47
+ 4. "GitHub repo name?" (default: project name)
48
+ 5. "Description for README?" (analyze project for suggestion)
49
+
50
+ #### Step 2: Create Staging Directory
51
+
52
+ ```bash
53
+ mkdir -p $HOME/opensource-staging/
54
+ ```
55
+
56
+ #### Step 3: Run Forker Agent
57
+
58
+ Spawn the `opensource-forker` agent:
59
+
60
+ ```
61
+ Agent(
62
+ description="Fork {PROJECT} for open-source",
63
+ subagent_type="opensource-forker",
64
+ prompt="""
65
+ Fork project for open-source release.
66
+
67
+ Source: {SOURCE_PATH}
68
+ Target: {STAGING_PATH}
69
+ License: {chosen_license}
70
+
71
+ Follow the full forking protocol:
72
+ 1. Copy files (exclude .git, node_modules, __pycache__, .venv)
73
+ 2. Strip all secrets and credentials
74
+ 3. Replace internal references with placeholders
75
+ 4. Generate .env.example
76
+ 5. Clean git history
77
+ 6. Generate FORK_REPORT.md in {STAGING_PATH}/FORK_REPORT.md
78
+ """
79
+ )
80
+ ```
81
+
82
+ Wait for completion. Read `{STAGING_PATH}/FORK_REPORT.md`.
83
+
84
+ #### Step 4: Run Sanitizer Agent
85
+
86
+ Spawn the `opensource-sanitizer` agent:
87
+
88
+ ```
89
+ Agent(
90
+ description="Verify {PROJECT} sanitization",
91
+ subagent_type="opensource-sanitizer",
92
+ prompt="""
93
+ Verify sanitization of open-source fork.
94
+
95
+ Project: {STAGING_PATH}
96
+ Source (for reference): {SOURCE_PATH}
97
+
98
+ Run ALL scan categories:
99
+ 1. Secrets scan (CRITICAL)
100
+ 2. PII scan (CRITICAL)
101
+ 3. Internal references scan (CRITICAL)
102
+ 4. Dangerous files check (CRITICAL)
103
+ 5. Configuration completeness (WARNING)
104
+ 6. Git history audit
105
+
106
+ Generate SANITIZATION_REPORT.md inside {STAGING_PATH}/ with PASS/FAIL verdict.
107
+ """
108
+ )
109
+ ```
110
+
111
+ Wait for completion. Read `{STAGING_PATH}/SANITIZATION_REPORT.md`.
112
+
113
+ **If FAIL:** Show findings to user. Ask: "Fix these and re-scan, or abort?"
114
+ - If fix: Apply fixes, re-run sanitizer (maximum 3 retry attempts — after 3 FAILs, present all findings and ask user to fix manually)
115
+ - If abort: Clean up staging directory
116
+
117
+ **If PASS or PASS WITH WARNINGS:** Continue to Step 5.
118
+
119
+ #### Step 5: Run Packager Agent
120
+
121
+ Spawn the `opensource-packager` agent:
122
+
123
+ ```
124
+ Agent(
125
+ description="Package {PROJECT} for open-source",
126
+ subagent_type="opensource-packager",
127
+ prompt="""
128
+ Generate open-source packaging for project.
129
+
130
+ Project: {STAGING_PATH}
131
+ License: {chosen_license}
132
+ Project name: {PROJECT_NAME}
133
+ Description: {description}
134
+ GitHub repo: {github_repo}
135
+
136
+ Generate:
137
+ 1. CLAUDE.md (commands, architecture, key files)
138
+ 2. setup.sh (one-command bootstrap, make executable)
139
+ 3. README.md (or enhance existing)
140
+ 4. LICENSE
141
+ 5. CONTRIBUTING.md
142
+ 6. .github/ISSUE_TEMPLATE/ (bug_report.md, feature_request.md)
143
+ """
144
+ )
145
+ ```
146
+
147
+ #### Step 6: Final Review
148
+
149
+ Present to user:
150
+ ```
151
+ Open-Source Fork Ready: {PROJECT_NAME}
152
+
153
+ Location: {STAGING_PATH}
154
+ License: {license}
155
+ Files generated:
156
+ - CLAUDE.md
157
+ - setup.sh (executable)
158
+ - README.md
159
+ - LICENSE
160
+ - CONTRIBUTING.md
161
+ - .env.example ({N} variables)
162
+
163
+ Sanitization: {sanitization_verdict}
164
+
165
+ Next steps:
166
+ 1. Review: cd {STAGING_PATH}
167
+ 2. Create repo: gh repo create {github_org}/{github_repo} --public
168
+ 3. Push: git remote add origin ... && git push -u origin main
169
+
170
+ Proceed with GitHub creation? (yes/no/review first)
171
+ ```
172
+
173
+ #### Step 7: GitHub Publish (on user approval)
174
+
175
+ ```bash
176
+ cd "{STAGING_PATH}"
177
+ gh repo create "{github_org}/{github_repo}" --public --source=. --push --description "{description}"
178
+ ```
179
+
180
+ ---
181
+
182
+ ### /opensource verify PROJECT
183
+
184
+ Run sanitizer independently. Resolve path: if PROJECT contains `/`, treat as a path. Otherwise check `$HOME/opensource-staging/PROJECT`, then `$HOME/PROJECT`, then current directory.
185
+
186
+ ```
187
+ Agent(
188
+ subagent_type="opensource-sanitizer",
189
+ prompt="Verify sanitization of: {resolved_path}. Run all 6 scan categories and generate SANITIZATION_REPORT.md."
190
+ )
191
+ ```
192
+
193
+ ---
194
+
195
+ ### /opensource package PROJECT
196
+
197
+ Run packager independently. Ask for "License?" and "Description?", then:
198
+
199
+ ```
200
+ Agent(
201
+ subagent_type="opensource-packager",
202
+ prompt="Package: {resolved_path} ..."
203
+ )
204
+ ```
205
+
206
+ ---
207
+
208
+ ### /opensource list
209
+
210
+ ```bash
211
+ ls -d $HOME/opensource-staging/*/
212
+ ```
213
+
214
+ Show each project with pipeline progress (FORK_REPORT.md, SANITIZATION_REPORT.md, CLAUDE.md presence).
215
+
216
+ ---
217
+
218
+ ### /opensource status PROJECT
219
+
220
+ ```bash
221
+ cat $HOME/opensource-staging/${PROJECT}/SANITIZATION_REPORT.md
222
+ cat $HOME/opensource-staging/${PROJECT}/FORK_REPORT.md
223
+ ```
224
+
225
+ ## Staging Layout
226
+
227
+ ```
228
+ $HOME/opensource-staging/
229
+ my-project/
230
+ FORK_REPORT.md # From forker agent
231
+ SANITIZATION_REPORT.md # From sanitizer agent
232
+ CLAUDE.md # From packager agent
233
+ setup.sh # From packager agent
234
+ README.md # From packager agent
235
+ .env.example # From forker agent
236
+ ... # Sanitized project files
237
+ ```
238
+
239
+ ## Anti-Patterns
240
+
241
+ - **Never** push to GitHub without user approval
242
+ - **Never** skip the sanitizer — it is the safety gate
243
+ - **Never** proceed after a sanitizer FAIL without fixing all critical findings
244
+ - **Never** leave `.env`, `*.pem`, or `credentials.json` in the staging directory
245
+
246
+ ## Best Practices
247
+
248
+ - Always run the full pipeline (fork → sanitize → package) for new releases
249
+ - The staging directory persists until explicitly cleaned up — use it for review
250
+ - Re-run the sanitizer after any manual fixes before publishing
251
+ - Parameterize secrets rather than deleting them — preserve project functionality
252
+
253
+ ## Related Skills
254
+
255
+ See `security-review` for secret detection patterns used by the sanitizer.