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,90 @@
1
+ ---
2
+ name: blueprint
3
+ description: >-
4
+ Turn a one-line objective into a step-by-step construction plan for
5
+ multi-session, multi-agent engineering projects. Each step has a
6
+ self-contained context brief so a fresh agent can execute it cold.
7
+ Includes adversarial review gate, dependency graph, parallel step
8
+ detection, anti-pattern catalog, and plan mutation protocol.
9
+ TRIGGER when: user requests a plan, blueprint, or roadmap for a
10
+ complex multi-PR task, or describes work that needs multiple sessions.
11
+ DO NOT TRIGGER when: task is completable in a single PR or fewer
12
+ than 3 tool calls, or user says "just do it".
13
+ origin: community
14
+ ---
15
+
16
+ # Blueprint — Construction Plan Generator
17
+
18
+ Turn a one-line objective into a step-by-step construction plan that any coding agent can execute cold.
19
+
20
+ ## When to Use
21
+
22
+ - Breaking a large feature into multiple PRs with clear dependency order
23
+ - Planning a refactor or migration that spans multiple sessions
24
+ - Coordinating parallel workstreams across sub-agents
25
+ - Any task where context loss between sessions would cause rework
26
+
27
+ **Do not use** for tasks completable in a single PR, fewer than 3 tool calls, or when the user says "just do it."
28
+
29
+ ## How It Works
30
+
31
+ Blueprint runs a 5-phase pipeline:
32
+
33
+ 1. **Research** — Pre-flight checks (git, gh auth, remote, default branch), then reads project structure, existing plans, and memory files to gather context.
34
+ 2. **Design** — Breaks the objective into one-PR-sized steps (3–12 typical). Assigns dependency edges, parallel/serial ordering, model tier (strongest vs default), and rollback strategy per step.
35
+ 3. **Draft** — Writes a self-contained Markdown plan file to `plans/`. Every step includes a context brief, task list, verification commands, and exit criteria — so a fresh agent can execute any step without reading prior steps.
36
+ 4. **Review** — Delegates adversarial review to a strongest-model sub-agent (e.g., Opus) against a checklist and anti-pattern catalog. Fixes all critical findings before finalizing.
37
+ 5. **Register** — Saves the plan, updates memory index, and presents the step count and parallelism summary to the user.
38
+
39
+ Blueprint detects git/gh availability automatically. With git + GitHub CLI, it generates full branch/PR/CI workflow plans. Without them, it switches to direct mode (edit-in-place, no branches).
40
+
41
+ ## Examples
42
+
43
+ ### Basic usage
44
+
45
+ ```
46
+ /blueprint myapp "migrate database to PostgreSQL"
47
+ ```
48
+
49
+ Produces `plans/myapp-migrate-database-to-postgresql.md` with steps like:
50
+ - Step 1: Add PostgreSQL driver and connection config
51
+ - Step 2: Create migration scripts for each table
52
+ - Step 3: Update repository layer to use new driver
53
+ - Step 4: Add integration tests against PostgreSQL
54
+ - Step 5: Remove old database code and config
55
+
56
+ ### Multi-agent project
57
+
58
+ ```
59
+ /blueprint chatbot "extract LLM providers into a plugin system"
60
+ ```
61
+
62
+ Produces a plan with parallel steps where possible (e.g., "implement Anthropic plugin" and "implement OpenAI plugin" run in parallel after the plugin interface step is done), model tier assignments (strongest for the interface design step, default for implementation), and invariants verified after every step (e.g., "all existing tests pass", "no provider imports in core").
63
+
64
+ ## Key Features
65
+
66
+ - **Cold-start execution** — Every step includes a self-contained context brief. No prior context needed.
67
+ - **Adversarial review gate** — Every plan is reviewed by a strongest-model sub-agent against a checklist covering completeness, dependency correctness, and anti-pattern detection.
68
+ - **Branch/PR/CI workflow** — Built into every step. Degrades gracefully to direct mode when git/gh is absent.
69
+ - **Parallel step detection** — Dependency graph identifies steps with no shared files or output dependencies.
70
+ - **Plan mutation protocol** — Steps can be split, inserted, skipped, reordered, or abandoned with formal protocols and audit trail.
71
+ - **Zero runtime risk** — Pure Markdown skill. The entire repository contains only `.md` files — no hooks, no shell scripts, no executable code, no `package.json`, no build step. Nothing runs on install or invocation beyond Claude Code's native Markdown skill loader.
72
+
73
+ ## Installation
74
+
75
+ This skill ships with Claude Code Pilot. No separate installation is needed.
76
+
77
+ Verify the skill is present with:
78
+
79
+ ```bash
80
+ test -f .claude/skills/blueprint/SKILL.md
81
+ ```
82
+
83
+ ## Requirements
84
+
85
+ - Claude Code (for `/blueprint` slash command)
86
+ - Git + GitHub CLI (optional — enables full branch/PR/CI workflow; Blueprint detects absence and auto-switches to direct mode)
87
+
88
+ ## Source
89
+
90
+ Inspired by antbotlab/blueprint — upstream project and reference design.
@@ -0,0 +1,81 @@
1
+ # Browser QA — Automated Visual Testing & Interaction
2
+
3
+ ## When to Use
4
+
5
+ - After deploying a feature to staging/preview
6
+ - When you need to verify UI behavior across pages
7
+ - Before shipping — confirm layouts, forms, interactions actually work
8
+ - When reviewing PRs that touch frontend code
9
+ - Accessibility audits and responsive testing
10
+
11
+ ## How It Works
12
+
13
+ Uses the browser automation MCP (claude-in-chrome, Playwright, or Puppeteer) to interact with live pages like a real user.
14
+
15
+ ### Phase 1: Smoke Test
16
+ ```
17
+ 1. Navigate to target URL
18
+ 2. Check for console errors (filter noise: analytics, third-party)
19
+ 3. Verify no 4xx/5xx in network requests
20
+ 4. Screenshot above-the-fold on desktop + mobile viewport
21
+ 5. Check Core Web Vitals: LCP < 2.5s, CLS < 0.1, INP < 200ms
22
+ ```
23
+
24
+ ### Phase 2: Interaction Test
25
+ ```
26
+ 1. Click every nav link — verify no dead links
27
+ 2. Submit forms with valid data — verify success state
28
+ 3. Submit forms with invalid data — verify error state
29
+ 4. Test auth flow: login → protected page → logout
30
+ 5. Test critical user journeys (checkout, onboarding, search)
31
+ ```
32
+
33
+ ### Phase 3: Visual Regression
34
+ ```
35
+ 1. Screenshot key pages at 3 breakpoints (375px, 768px, 1440px)
36
+ 2. Compare against baseline screenshots (if stored)
37
+ 3. Flag layout shifts > 5px, missing elements, overflow
38
+ 4. Check dark mode if applicable
39
+ ```
40
+
41
+ ### Phase 4: Accessibility
42
+ ```
43
+ 1. Run axe-core or equivalent on each page
44
+ 2. Flag WCAG AA violations (contrast, labels, focus order)
45
+ 3. Verify keyboard navigation works end-to-end
46
+ 4. Check screen reader landmarks
47
+ ```
48
+
49
+ ## Output Format
50
+
51
+ ```markdown
52
+ ## QA Report — [URL] — [timestamp]
53
+
54
+ ### Smoke Test
55
+ - Console errors: 0 critical, 2 warnings (analytics noise)
56
+ - Network: all 200/304, no failures
57
+ - Core Web Vitals: LCP 1.2s ✓, CLS 0.02 ✓, INP 89ms ✓
58
+
59
+ ### Interactions
60
+ - [✓] Nav links: 12/12 working
61
+ - [✗] Contact form: missing error state for invalid email
62
+ - [✓] Auth flow: login/logout working
63
+
64
+ ### Visual
65
+ - [✗] Hero section overflows on 375px viewport
66
+ - [✓] Dark mode: all pages consistent
67
+
68
+ ### Accessibility
69
+ - 2 AA violations: missing alt text on hero image, low contrast on footer links
70
+
71
+ ### Verdict: SHIP WITH FIXES (2 issues, 0 blockers)
72
+ ```
73
+
74
+ ## Integration
75
+
76
+ Works with any browser MCP:
77
+ - `mChild__claude-in-chrome__*` tools (preferred — uses your actual Chrome)
78
+ - Playwright via `mcp__browserbase__*`
79
+ - Direct Puppeteer scripts
80
+
81
+ Pair with `/canary-watch` for post-deploy monitoring.
@@ -0,0 +1,84 @@
1
+ ---
2
+ name: bun-runtime
3
+ description: Bun as runtime, package manager, bundler, and test runner. When to choose Bun vs Node, migration notes, and Vercel support.
4
+ origin: ECC
5
+ ---
6
+
7
+ # Bun Runtime
8
+
9
+ Bun is a fast all-in-one JavaScript runtime and toolkit: runtime, package manager, bundler, and test runner.
10
+
11
+ ## When to Use
12
+
13
+ - **Prefer Bun** for: new JS/TS projects, scripts where install/run speed matters, Vercel deployments with Bun runtime, and when you want a single toolchain (run + install + test + build).
14
+ - **Prefer Node** for: maximum ecosystem compatibility, legacy tooling that assumes Node, or when a dependency has known Bun issues.
15
+
16
+ Use when: adopting Bun, migrating from Node, writing or debugging Bun scripts/tests, or configuring Bun on Vercel or other platforms.
17
+
18
+ ## How It Works
19
+
20
+ - **Runtime**: Drop-in Node-compatible runtime (built on JavaScriptCore, implemented in Zig).
21
+ - **Package manager**: `bun install` is significantly faster than npm/yarn. Lockfile is `bun.lock` (text) by default in current Bun; older versions used `bun.lockb` (binary).
22
+ - **Bundler**: Built-in bundler and transpiler for apps and libraries.
23
+ - **Test runner**: Built-in `bun test` with Jest-like API.
24
+
25
+ **Migration from Node**: Replace `node script.js` with `bun run script.js` or `bun script.js`. Run `bun install` in place of `npm install`; most packages work. Use `bun run` for npm scripts; `bun x` for npx-style one-off runs. Node built-ins are supported; prefer Bun APIs where they exist for better performance.
26
+
27
+ **Vercel**: Set runtime to Bun in project settings. Build: `bun run build` or `bun build ./src/index.ts --outdir=dist`. Install: `bun install --frozen-lockfile` for reproducible deploys.
28
+
29
+ ## Examples
30
+
31
+ ### Run and install
32
+
33
+ ```bash
34
+ # Install dependencies (creates/updates bun.lock or bun.lockb)
35
+ bun install
36
+
37
+ # Run a script or file
38
+ bun run dev
39
+ bun run src/index.ts
40
+ bun src/index.ts
41
+ ```
42
+
43
+ ### Scripts and env
44
+
45
+ ```bash
46
+ bun run --env-file=.env dev
47
+ FOO=bar bun run script.ts
48
+ ```
49
+
50
+ ### Testing
51
+
52
+ ```bash
53
+ bun test
54
+ bun test --watch
55
+ ```
56
+
57
+ ```typescript
58
+ // test/example.test.ts
59
+ import { expect, test } from "bun:test";
60
+
61
+ test("add", () => {
62
+ expect(1 + 2).toBe(3);
63
+ });
64
+ ```
65
+
66
+ ### Runtime API
67
+
68
+ ```typescript
69
+ const file = Bun.file("package.json");
70
+ const json = await file.json();
71
+
72
+ Bun.serve({
73
+ port: 3000,
74
+ fetch(req) {
75
+ return new Response("Hello");
76
+ },
77
+ });
78
+ ```
79
+
80
+ ## Best Practices
81
+
82
+ - Commit the lockfile (`bun.lock` or `bun.lockb`) for reproducible installs.
83
+ - Prefer `bun run` for scripts. For TypeScript, Bun runs `.ts` natively.
84
+ - Keep dependencies up to date; Bun and the ecosystem evolve quickly.
@@ -0,0 +1,337 @@
1
+ ---
2
+ name: claude-api
3
+ description: Anthropic Claude API patterns for Python and TypeScript. Covers Messages API, streaming, tool use, vision, extended thinking, batches, prompt caching, and Claude Agent SDK. Use when building applications with the Claude API or Anthropic SDKs.
4
+ origin: ECC
5
+ ---
6
+
7
+ # Claude API
8
+
9
+ Build applications with the Anthropic Claude API and SDKs.
10
+
11
+ ## When to Activate
12
+
13
+ - Building applications that call the Claude API
14
+ - Code imports `anthropic` (Python) or `@anthropic-ai/sdk` (TypeScript)
15
+ - User asks about Claude API patterns, tool use, streaming, or vision
16
+ - Implementing agent workflows with Claude Agent SDK
17
+ - Optimizing API costs, token usage, or latency
18
+
19
+ ## Model Selection
20
+
21
+ | Model | ID | Best For |
22
+ |-------|-----|----------|
23
+ | Opus 4.1 | `claude-opus-4-1` | Complex reasoning, architecture, research |
24
+ | Sonnet 4 | `claude-sonnet-4-0` | Balanced coding, most development tasks |
25
+ | Haiku 3.5 | `claude-3-5-haiku-latest` | Fast responses, high-volume, cost-sensitive |
26
+
27
+ Default to Sonnet 4 unless the task requires deep reasoning (Opus) or speed/cost optimization (Haiku). For production, prefer pinned snapshot IDs over aliases.
28
+
29
+ ## Python SDK
30
+
31
+ ### Installation
32
+
33
+ ```bash
34
+ pip install anthropic
35
+ ```
36
+
37
+ ### Basic Message
38
+
39
+ ```python
40
+ import anthropic
41
+
42
+ client = anthropic.Anthropic() # reads ANTHROPIC_API_KEY from env
43
+
44
+ message = client.messages.create(
45
+ model="claude-sonnet-4-0",
46
+ max_tokens=1024,
47
+ messages=[
48
+ {"role": "user", "content": "Explain async/await in Python"}
49
+ ]
50
+ )
51
+ print(message.content[0].text)
52
+ ```
53
+
54
+ ### Streaming
55
+
56
+ ```python
57
+ with client.messages.stream(
58
+ model="claude-sonnet-4-0",
59
+ max_tokens=1024,
60
+ messages=[{"role": "user", "content": "Write a haiku about coding"}]
61
+ ) as stream:
62
+ for text in stream.text_stream:
63
+ print(text, end="", flush=True)
64
+ ```
65
+
66
+ ### System Prompt
67
+
68
+ ```python
69
+ message = client.messages.create(
70
+ model="claude-sonnet-4-0",
71
+ max_tokens=1024,
72
+ system="You are a senior Python developer. Be concise.",
73
+ messages=[{"role": "user", "content": "Review this function"}]
74
+ )
75
+ ```
76
+
77
+ ## TypeScript SDK
78
+
79
+ ### Installation
80
+
81
+ ```bash
82
+ npm install @anthropic-ai/sdk
83
+ ```
84
+
85
+ ### Basic Message
86
+
87
+ ```typescript
88
+ import Anthropic from "@anthropic-ai/sdk";
89
+
90
+ const client = new Anthropic(); // reads ANTHROPIC_API_KEY from env
91
+
92
+ const message = await client.messages.create({
93
+ model: "claude-sonnet-4-0",
94
+ max_tokens: 1024,
95
+ messages: [
96
+ { role: "user", content: "Explain async/await in TypeScript" }
97
+ ],
98
+ });
99
+ console.log(message.content[0].text);
100
+ ```
101
+
102
+ ### Streaming
103
+
104
+ ```typescript
105
+ const stream = client.messages.stream({
106
+ model: "claude-sonnet-4-0",
107
+ max_tokens: 1024,
108
+ messages: [{ role: "user", content: "Write a haiku" }],
109
+ });
110
+
111
+ for await (const event of stream) {
112
+ if (event.type === "content_block_delta" && event.delta.type === "text_delta") {
113
+ process.stdout.write(event.delta.text);
114
+ }
115
+ }
116
+ ```
117
+
118
+ ## Tool Use
119
+
120
+ Define tools and let Claude call them:
121
+
122
+ ```python
123
+ tools = [
124
+ {
125
+ "name": "get_weather",
126
+ "description": "Get current weather for a location",
127
+ "input_schema": {
128
+ "type": "object",
129
+ "properties": {
130
+ "location": {"type": "string", "description": "City name"},
131
+ "unit": {"type": "string", "enum": ["celsius", "fahrenheit"]}
132
+ },
133
+ "required": ["location"]
134
+ }
135
+ }
136
+ ]
137
+
138
+ message = client.messages.create(
139
+ model="claude-sonnet-4-0",
140
+ max_tokens=1024,
141
+ tools=tools,
142
+ messages=[{"role": "user", "content": "What's the weather in SF?"}]
143
+ )
144
+
145
+ # Handle tool use response
146
+ for block in message.content:
147
+ if block.type == "tool_use":
148
+ # Execute the tool with block.input
149
+ result = get_weather(**block.input)
150
+ # Send result back
151
+ follow_up = client.messages.create(
152
+ model="claude-sonnet-4-0",
153
+ max_tokens=1024,
154
+ tools=tools,
155
+ messages=[
156
+ {"role": "user", "content": "What's the weather in SF?"},
157
+ {"role": "assistant", "content": message.content},
158
+ {"role": "user", "content": [
159
+ {"type": "tool_result", "tool_use_id": block.id, "content": str(result)}
160
+ ]}
161
+ ]
162
+ )
163
+ ```
164
+
165
+ ## Vision
166
+
167
+ Send images for analysis:
168
+
169
+ ```python
170
+ import base64
171
+
172
+ with open("diagram.png", "rb") as f:
173
+ image_data = base64.standard_b64encode(f.read()).decode("utf-8")
174
+
175
+ message = client.messages.create(
176
+ model="claude-sonnet-4-0",
177
+ max_tokens=1024,
178
+ messages=[{
179
+ "role": "user",
180
+ "content": [
181
+ {"type": "image", "source": {"type": "base64", "media_type": "image/png", "data": image_data}},
182
+ {"type": "text", "text": "Describe this diagram"}
183
+ ]
184
+ }]
185
+ )
186
+ ```
187
+
188
+ ## Extended Thinking
189
+
190
+ For complex reasoning tasks:
191
+
192
+ ```python
193
+ message = client.messages.create(
194
+ model="claude-sonnet-4-0",
195
+ max_tokens=16000,
196
+ thinking={
197
+ "type": "enabled",
198
+ "budget_tokens": 10000
199
+ },
200
+ messages=[{"role": "user", "content": "Solve this math problem step by step..."}]
201
+ )
202
+
203
+ for block in message.content:
204
+ if block.type == "thinking":
205
+ print(f"Thinking: {block.thinking}")
206
+ elif block.type == "text":
207
+ print(f"Answer: {block.text}")
208
+ ```
209
+
210
+ ## Prompt Caching
211
+
212
+ Cache large system prompts or context to reduce costs:
213
+
214
+ ```python
215
+ message = client.messages.create(
216
+ model="claude-sonnet-4-0",
217
+ max_tokens=1024,
218
+ system=[
219
+ {"type": "text", "text": large_system_prompt, "cache_control": {"type": "ephemeral"}}
220
+ ],
221
+ messages=[{"role": "user", "content": "Question about the cached context"}]
222
+ )
223
+ # Check cache usage
224
+ print(f"Cache read: {message.usage.cache_read_input_tokens}")
225
+ print(f"Cache creation: {message.usage.cache_creation_input_tokens}")
226
+ ```
227
+
228
+ ## Batches API
229
+
230
+ Process large volumes asynchronously at 50% cost reduction:
231
+
232
+ ```python
233
+ import time
234
+
235
+ batch = client.messages.batches.create(
236
+ requests=[
237
+ {
238
+ "custom_id": f"request-{i}",
239
+ "params": {
240
+ "model": "claude-sonnet-4-0",
241
+ "max_tokens": 1024,
242
+ "messages": [{"role": "user", "content": prompt}]
243
+ }
244
+ }
245
+ for i, prompt in enumerate(prompts)
246
+ ]
247
+ )
248
+
249
+ # Poll for completion
250
+ while True:
251
+ status = client.messages.batches.retrieve(batch.id)
252
+ if status.processing_status == "ended":
253
+ break
254
+ time.sleep(30)
255
+
256
+ # Get results
257
+ for result in client.messages.batches.results(batch.id):
258
+ print(result.result.message.content[0].text)
259
+ ```
260
+
261
+ ## Claude Agent SDK
262
+
263
+ Build multi-step agents:
264
+
265
+ ```python
266
+ # Note: Agent SDK API surface may change — check official docs
267
+ import anthropic
268
+
269
+ # Define tools as functions
270
+ tools = [{
271
+ "name": "search_codebase",
272
+ "description": "Search the codebase for relevant code",
273
+ "input_schema": {
274
+ "type": "object",
275
+ "properties": {"query": {"type": "string"}},
276
+ "required": ["query"]
277
+ }
278
+ }]
279
+
280
+ # Run an agentic loop with tool use
281
+ client = anthropic.Anthropic()
282
+ messages = [{"role": "user", "content": "Review the auth module for security issues"}]
283
+
284
+ while True:
285
+ response = client.messages.create(
286
+ model="claude-sonnet-4-0",
287
+ max_tokens=4096,
288
+ tools=tools,
289
+ messages=messages,
290
+ )
291
+ if response.stop_reason == "end_turn":
292
+ break
293
+ # Handle tool calls and continue the loop
294
+ messages.append({"role": "assistant", "content": response.content})
295
+ # ... execute tools and append tool_result messages
296
+ ```
297
+
298
+ ## Cost Optimization
299
+
300
+ | Strategy | Savings | When to Use |
301
+ |----------|---------|-------------|
302
+ | Prompt caching | Up to 90% on cached tokens | Repeated system prompts or context |
303
+ | Batches API | 50% | Non-time-sensitive bulk processing |
304
+ | Haiku instead of Sonnet | ~75% | Simple tasks, classification, extraction |
305
+ | Shorter max_tokens | Variable | When you know output will be short |
306
+ | Streaming | None (same cost) | Better UX, same price |
307
+
308
+ ## Error Handling
309
+
310
+ ```python
311
+ import time
312
+
313
+ from anthropic import APIError, RateLimitError, APIConnectionError
314
+
315
+ try:
316
+ message = client.messages.create(...)
317
+ except RateLimitError:
318
+ # Back off and retry
319
+ time.sleep(60)
320
+ except APIConnectionError:
321
+ # Network issue, retry with backoff
322
+ pass
323
+ except APIError as e:
324
+ print(f"API error {e.status_code}: {e.message}")
325
+ ```
326
+
327
+ ## Environment Setup
328
+
329
+ ```bash
330
+ # Required
331
+ export ANTHROPIC_API_KEY="your-api-key-here"
332
+
333
+ # Optional: set default model
334
+ export ANTHROPIC_MODEL="claude-sonnet-4-0"
335
+ ```
336
+
337
+ Never hardcode API keys. Always use environment variables.