@hivehub/rulebook 5.5.2 → 5.8.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 (834) hide show
  1. package/.claude/commands/analysis.md +35 -35
  2. package/.claude/commands/continue.md +33 -33
  3. package/.claude/commands/rulebook-decision-create.md +55 -55
  4. package/.claude/commands/rulebook-decision-list.md +15 -15
  5. package/.claude/commands/rulebook-knowledge-add.md +41 -41
  6. package/.claude/commands/rulebook-knowledge-list.md +15 -15
  7. package/.claude/commands/rulebook-learn-capture.md +41 -48
  8. package/.claude/commands/rulebook-learn-list.md +13 -13
  9. package/.claude/commands/rulebook-memory-save.md +48 -48
  10. package/.claude/commands/rulebook-memory-search.md +47 -47
  11. package/.claude/commands/rulebook-task-apply.md +67 -67
  12. package/.claude/commands/rulebook-task-archive.md +94 -94
  13. package/.claude/commands/rulebook-task-create.md +93 -93
  14. package/.claude/commands/rulebook-task-list.md +42 -42
  15. package/.claude/commands/rulebook-task-show.md +52 -52
  16. package/.claude/commands/rulebook-task-validate.md +53 -53
  17. package/.claude-plugin/marketplace.json +28 -28
  18. package/.claude-plugin/plugin.json +8 -8
  19. package/README.md +418 -394
  20. package/dist/cli/commands/claude.d.ts +17 -0
  21. package/dist/cli/commands/claude.d.ts.map +1 -0
  22. package/dist/cli/commands/claude.js +56 -0
  23. package/dist/cli/commands/claude.js.map +1 -0
  24. package/dist/cli/commands/context-intelligence.d.ts +0 -1
  25. package/dist/cli/commands/context-intelligence.d.ts.map +1 -1
  26. package/dist/cli/commands/context-intelligence.js +12 -33
  27. package/dist/cli/commands/context-intelligence.js.map +1 -1
  28. package/dist/cli/commands/index.d.ts +4 -7
  29. package/dist/cli/commands/index.d.ts.map +1 -1
  30. package/dist/cli/commands/index.js +4 -7
  31. package/dist/cli/commands/index.js.map +1 -1
  32. package/dist/cli/commands/init.d.ts.map +1 -1
  33. package/dist/cli/commands/init.js +58 -83
  34. package/dist/cli/commands/init.js.map +1 -1
  35. package/dist/cli/commands/mcp.d.ts +0 -1
  36. package/dist/cli/commands/mcp.d.ts.map +1 -1
  37. package/dist/cli/commands/mcp.js +1 -7
  38. package/dist/cli/commands/mcp.js.map +1 -1
  39. package/dist/cli/commands/memory.d.ts +7 -1
  40. package/dist/cli/commands/memory.d.ts.map +1 -1
  41. package/dist/cli/commands/memory.js +51 -57
  42. package/dist/cli/commands/memory.js.map +1 -1
  43. package/dist/cli/commands/misc.d.ts +1 -15
  44. package/dist/cli/commands/misc.d.ts.map +1 -1
  45. package/dist/cli/commands/misc.js +36 -215
  46. package/dist/cli/commands/misc.js.map +1 -1
  47. package/dist/cli/commands/plans.d.ts +0 -6
  48. package/dist/cli/commands/plans.d.ts.map +1 -1
  49. package/dist/cli/commands/plans.js +9 -77
  50. package/dist/cli/commands/plans.js.map +1 -1
  51. package/dist/cli/commands/skills.js +6 -6
  52. package/dist/cli/commands/skills.js.map +1 -1
  53. package/dist/cli/commands/task.js +4 -4
  54. package/dist/cli/commands/task.js.map +1 -1
  55. package/dist/cli/commands/update.d.ts.map +1 -1
  56. package/dist/cli/commands/update.js +128 -53
  57. package/dist/cli/commands/update.js.map +1 -1
  58. package/dist/cli/prompts.d.ts +13 -0
  59. package/dist/cli/prompts.d.ts.map +1 -1
  60. package/dist/cli/prompts.js +107 -78
  61. package/dist/cli/prompts.js.map +1 -1
  62. package/dist/core/{claude-mcp.d.ts → claude/claude-mcp.d.ts} +9 -0
  63. package/dist/core/claude/claude-mcp.d.ts.map +1 -0
  64. package/dist/core/{claude-mcp.js → claude/claude-mcp.js} +33 -3
  65. package/dist/core/claude/claude-mcp.js.map +1 -0
  66. package/dist/core/claude/claude-md-generator.d.ts.map +1 -0
  67. package/dist/core/{claude-md-generator.js → claude/claude-md-generator.js} +2 -2
  68. package/dist/core/claude/claude-md-generator.js.map +1 -0
  69. package/dist/core/{claude-settings-manager.d.ts → claude/claude-settings-manager.d.ts} +12 -0
  70. package/dist/core/claude/claude-settings-manager.d.ts.map +1 -0
  71. package/dist/core/{claude-settings-manager.js → claude/claude-settings-manager.js} +81 -22
  72. package/dist/core/claude/claude-settings-manager.js.map +1 -0
  73. package/dist/core/{cli-bridge.d.ts → console/cli-bridge.d.ts} +2 -2
  74. package/dist/core/console/cli-bridge.d.ts.map +1 -0
  75. package/dist/core/{cli-bridge.js → console/cli-bridge.js} +3 -3
  76. package/dist/core/console/cli-bridge.js.map +1 -0
  77. package/dist/core/{detector.d.ts → detect/detector.d.ts} +16 -1
  78. package/dist/core/detect/detector.d.ts.map +1 -0
  79. package/dist/core/detect/detector.js +766 -0
  80. package/dist/core/detect/detector.js.map +1 -0
  81. package/dist/core/detect/library-registry.d.ts +40 -0
  82. package/dist/core/detect/library-registry.d.ts.map +1 -0
  83. package/dist/core/detect/library-registry.js +239 -0
  84. package/dist/core/detect/library-registry.js.map +1 -0
  85. package/dist/core/docs/docs-generator.d.ts.map +1 -0
  86. package/dist/core/{docs-generator.js → docs/docs-generator.js} +1 -1
  87. package/dist/core/docs/docs-generator.js.map +1 -0
  88. package/dist/core/docs/mcp-reference-generator.d.ts.map +1 -0
  89. package/dist/core/{mcp-reference-generator.js → docs/mcp-reference-generator.js} +2 -2
  90. package/dist/core/docs/mcp-reference-generator.js.map +1 -0
  91. package/dist/core/{generator.d.ts → generators/generator.d.ts} +3 -4
  92. package/dist/core/generators/generator.d.ts.map +1 -0
  93. package/dist/core/{generator.js → generators/generator.js} +42 -157
  94. package/dist/core/generators/generator.js.map +1 -0
  95. package/dist/core/{gitignore-generator.d.ts → generators/gitignore-generator.d.ts} +1 -1
  96. package/dist/core/generators/gitignore-generator.d.ts.map +1 -0
  97. package/dist/core/{gitignore-generator.js → generators/gitignore-generator.js} +1 -1
  98. package/dist/core/generators/gitignore-generator.js.map +1 -0
  99. package/dist/core/generators/minimal-scaffolder.d.ts.map +1 -0
  100. package/dist/core/{minimal-scaffolder.js → generators/minimal-scaffolder.js} +2 -2
  101. package/dist/core/generators/minimal-scaffolder.js.map +1 -0
  102. package/dist/core/{rules-generator.d.ts → generators/rules-generator.d.ts} +2 -6
  103. package/dist/core/generators/rules-generator.d.ts.map +1 -0
  104. package/dist/core/{rules-generator.js → generators/rules-generator.js} +41 -2
  105. package/dist/core/generators/rules-generator.js.map +1 -0
  106. package/dist/core/{workflow-generator.d.ts → generators/workflow-generator.d.ts} +1 -1
  107. package/dist/core/generators/workflow-generator.d.ts.map +1 -0
  108. package/dist/core/{workflow-generator.js → generators/workflow-generator.js} +2 -3
  109. package/dist/core/generators/workflow-generator.js.map +1 -0
  110. package/dist/core/{multi-tool-generator.d.ts → ide/multi-tool-generator.d.ts} +1 -1
  111. package/dist/core/ide/multi-tool-generator.d.ts.map +1 -0
  112. package/dist/core/{multi-tool-generator.js → ide/multi-tool-generator.js} +1 -1
  113. package/dist/core/ide/multi-tool-generator.js.map +1 -0
  114. package/dist/core/ide/opencode-generator.d.ts +72 -0
  115. package/dist/core/ide/opencode-generator.d.ts.map +1 -0
  116. package/dist/core/ide/opencode-generator.js +450 -0
  117. package/dist/core/ide/opencode-generator.js.map +1 -0
  118. package/dist/core/merger.d.ts +1 -1
  119. package/dist/core/merger.d.ts.map +1 -1
  120. package/dist/core/merger.js +5 -5
  121. package/dist/core/merger.js.map +1 -1
  122. package/dist/core/migrator.d.ts +0 -1
  123. package/dist/core/migrator.d.ts.map +1 -1
  124. package/dist/core/migrator.js +4 -29
  125. package/dist/core/migrator.js.map +1 -1
  126. package/dist/core/quality/coverage-checker.d.ts.map +1 -0
  127. package/dist/core/{coverage-checker.js → quality/coverage-checker.js} +2 -2
  128. package/dist/core/quality/coverage-checker.js.map +1 -0
  129. package/dist/core/quality/dependency-checker.d.ts.map +1 -0
  130. package/dist/core/{dependency-checker.js → quality/dependency-checker.js} +1 -1
  131. package/dist/core/quality/dependency-checker.js.map +1 -0
  132. package/dist/core/quality/doctor.d.ts.map +1 -0
  133. package/dist/core/{doctor.js → quality/doctor.js} +1 -67
  134. package/dist/core/quality/doctor.js.map +1 -0
  135. package/dist/core/quality/validator.d.ts.map +1 -0
  136. package/dist/core/{validator.js → quality/validator.js} +1 -1
  137. package/dist/core/quality/validator.js.map +1 -0
  138. package/dist/core/{skills-manager.d.ts → skills/skills-manager.d.ts} +1 -1
  139. package/dist/core/skills/skills-manager.d.ts.map +1 -0
  140. package/dist/core/{skills-manager.js → skills/skills-manager.js} +1 -25
  141. package/dist/core/skills/skills-manager.js.map +1 -0
  142. package/dist/core/{config-manager.d.ts → state/config-manager.d.ts} +1 -1
  143. package/dist/core/state/config-manager.d.ts.map +1 -0
  144. package/dist/core/{config-manager.js → state/config-manager.js} +2 -61
  145. package/dist/core/state/config-manager.js.map +1 -0
  146. package/dist/core/state/override-manager.d.ts.map +1 -0
  147. package/dist/core/{override-manager.js → state/override-manager.js} +1 -1
  148. package/dist/core/state/override-manager.js.map +1 -0
  149. package/dist/core/{state-writer.d.ts → state/state-writer.d.ts} +2 -3
  150. package/dist/core/state/state-writer.d.ts.map +1 -0
  151. package/dist/core/{state-writer.js → state/state-writer.js} +6 -9
  152. package/dist/core/state/state-writer.js.map +1 -0
  153. package/dist/core/state/version-bumper.d.ts.map +1 -0
  154. package/dist/core/{version-bumper.js → state/version-bumper.js} +1 -1
  155. package/dist/core/state/version-bumper.js.map +1 -0
  156. package/dist/core/{decision-manager.d.ts → tasks/decision-manager.d.ts} +1 -1
  157. package/dist/core/tasks/decision-manager.d.ts.map +1 -0
  158. package/dist/core/{decision-manager.js → tasks/decision-manager.js} +1 -1
  159. package/dist/core/tasks/decision-manager.js.map +1 -0
  160. package/dist/core/{knowledge-manager.d.ts → tasks/knowledge-manager.d.ts} +1 -1
  161. package/dist/core/tasks/knowledge-manager.d.ts.map +1 -0
  162. package/dist/core/{knowledge-manager.js → tasks/knowledge-manager.js} +1 -1
  163. package/dist/core/tasks/knowledge-manager.js.map +1 -0
  164. package/dist/core/{learn-manager.d.ts → tasks/learn-manager.d.ts} +1 -3
  165. package/dist/core/tasks/learn-manager.d.ts.map +1 -0
  166. package/dist/core/{learn-manager.js → tasks/learn-manager.js} +1 -39
  167. package/dist/core/tasks/learn-manager.js.map +1 -0
  168. package/dist/core/tasks/plans-manager.d.ts.map +1 -0
  169. package/dist/core/{plans-manager.js → tasks/plans-manager.js} +1 -1
  170. package/dist/core/tasks/plans-manager.js.map +1 -0
  171. package/dist/core/tasks/task-manager.d.ts.map +1 -0
  172. package/dist/core/{task-manager.js → tasks/task-manager.js} +2 -2
  173. package/dist/core/tasks/task-manager.js.map +1 -0
  174. package/dist/core/workspace/project-worker.d.ts +6 -6
  175. package/dist/core/workspace/project-worker.d.ts.map +1 -1
  176. package/dist/core/workspace/project-worker.js +6 -6
  177. package/dist/core/workspace/project-worker.js.map +1 -1
  178. package/dist/index.d.ts +1 -1
  179. package/dist/index.d.ts.map +1 -1
  180. package/dist/index.js +31 -176
  181. package/dist/index.js.map +1 -1
  182. package/dist/mcp/rulebook-server.d.ts.map +1 -1
  183. package/dist/mcp/rulebook-server.js +16 -960
  184. package/dist/mcp/rulebook-server.js.map +1 -1
  185. package/dist/memory/file-search.d.ts +43 -0
  186. package/dist/memory/file-search.d.ts.map +1 -0
  187. package/dist/memory/file-search.js +228 -0
  188. package/dist/memory/file-search.js.map +1 -0
  189. package/dist/memory/file-store.d.ts +99 -0
  190. package/dist/memory/file-store.d.ts.map +1 -0
  191. package/dist/memory/file-store.js +615 -0
  192. package/dist/memory/file-store.js.map +1 -0
  193. package/dist/memory/legacy-migrator.d.ts +27 -0
  194. package/dist/memory/legacy-migrator.d.ts.map +1 -0
  195. package/dist/memory/legacy-migrator.js +185 -0
  196. package/dist/memory/legacy-migrator.js.map +1 -0
  197. package/dist/memory/memory-manager.d.ts +25 -24
  198. package/dist/memory/memory-manager.d.ts.map +1 -1
  199. package/dist/memory/memory-manager.js +97 -140
  200. package/dist/memory/memory-manager.js.map +1 -1
  201. package/dist/memory/memory-types.d.ts +1 -1
  202. package/dist/memory/memory-types.d.ts.map +1 -1
  203. package/dist/types.d.ts +20 -118
  204. package/dist/types.d.ts.map +1 -1
  205. package/package.json +23 -27
  206. package/templates/agents/accessibility-reviewer.md +43 -43
  207. package/templates/agents/api-designer.md +42 -42
  208. package/templates/agents/architect.md +51 -51
  209. package/templates/agents/build-engineer.md +36 -36
  210. package/templates/agents/code-reviewer.md +47 -47
  211. package/templates/agents/compiler/codegen-debugger.md +34 -34
  212. package/templates/agents/compiler/stdlib-engineer.md +28 -28
  213. package/templates/agents/compiler/test-coverage-guardian.md +31 -31
  214. package/templates/agents/context-intelligence.md +50 -52
  215. package/templates/agents/database-architect.md +41 -41
  216. package/templates/agents/devops-engineer.md +42 -42
  217. package/templates/agents/docs-writer.md +38 -38
  218. package/templates/agents/game-engine/cpp-core-expert.md +35 -35
  219. package/templates/agents/game-engine/render-engineer.md +22 -22
  220. package/templates/agents/game-engine/shader-engineer.md +38 -38
  221. package/templates/agents/game-engine/systems-integration.md +43 -43
  222. package/templates/agents/generic/code-reviewer.md +41 -41
  223. package/templates/agents/generic/docs-writer.md +25 -25
  224. package/templates/agents/generic/project-manager.md +36 -36
  225. package/templates/agents/generic/researcher.md +34 -34
  226. package/templates/agents/generic/test-engineer.md +41 -41
  227. package/templates/agents/i18n-engineer.md +42 -42
  228. package/templates/agents/implementer.md +42 -42
  229. package/templates/agents/migration-engineer.md +42 -42
  230. package/templates/agents/mobile/platform-specialist.md +22 -22
  231. package/templates/agents/mobile/ui-engineer.md +22 -22
  232. package/templates/agents/performance-engineer.md +49 -49
  233. package/templates/agents/project-manager.md +215 -0
  234. package/templates/agents/quality-gatekeeper.md +205 -0
  235. package/templates/agents/refactoring-agent.md +41 -41
  236. package/templates/agents/researcher.md +38 -38
  237. package/templates/agents/security-reviewer.md +40 -40
  238. package/templates/agents/team-lead.md +37 -37
  239. package/templates/agents/tester.md +48 -48
  240. package/templates/agents/ux-reviewer.md +43 -43
  241. package/templates/agents/web-app/api-designer.md +22 -22
  242. package/templates/agents/web-app/backend-engineer.md +30 -30
  243. package/templates/agents/web-app/database-engineer.md +22 -22
  244. package/templates/agents/web-app/frontend-engineer.md +29 -29
  245. package/templates/agents/web-app/security-reviewer.md +32 -32
  246. package/templates/ci/rulebook-review.yml +26 -26
  247. package/templates/claude-workflows/bugfix.js +94 -0
  248. package/templates/claude-workflows/feature-pipeline.js +88 -0
  249. package/templates/claude-workflows/release-gate.js +64 -0
  250. package/templates/claude-workflows/review-fanout.js +118 -0
  251. package/templates/claude-workflows/rulebook-driver.js +343 -0
  252. package/templates/claude-workflows/spec-author.js +133 -0
  253. package/templates/cli/AIDER.md +49 -49
  254. package/templates/cli/AMAZON_Q.md +25 -25
  255. package/templates/cli/AUGGIE.md +32 -32
  256. package/templates/cli/CLAUDE.md +117 -117
  257. package/templates/cli/CLINE.md +99 -99
  258. package/templates/cli/CODEBUDDY.md +20 -20
  259. package/templates/cli/CODEIUM.md +20 -20
  260. package/templates/cli/CODEX.md +21 -21
  261. package/templates/cli/CONTINUE.md +34 -34
  262. package/templates/cli/CURSOR_CLI.md +62 -62
  263. package/templates/cli/FACTORY.md +18 -18
  264. package/templates/cli/GEMINI.md +35 -35
  265. package/templates/cli/KILOCODE.md +18 -18
  266. package/templates/cli/OPENCODE.md +85 -18
  267. package/templates/cli/_GENERIC_TEMPLATE.md +29 -29
  268. package/templates/commands/rulebook-decision-create.md +55 -55
  269. package/templates/commands/rulebook-decision-list.md +15 -15
  270. package/templates/commands/rulebook-knowledge-add.md +41 -41
  271. package/templates/commands/rulebook-knowledge-list.md +15 -15
  272. package/templates/commands/rulebook-learn-capture.md +41 -48
  273. package/templates/commands/rulebook-learn-list.md +13 -13
  274. package/templates/commands/rulebook-memory-save.md +48 -48
  275. package/templates/commands/rulebook-memory-search.md +47 -47
  276. package/templates/commands/rulebook-task-apply.md +67 -67
  277. package/templates/commands/rulebook-task-archive.md +94 -94
  278. package/templates/commands/rulebook-task-create.md +93 -93
  279. package/templates/commands/rulebook-task-list.md +42 -42
  280. package/templates/commands/rulebook-task-show.md +52 -52
  281. package/templates/commands/rulebook-task-validate.md +53 -53
  282. package/templates/compact-context/_default.md +23 -23
  283. package/templates/compact-context/cpp.md +26 -26
  284. package/templates/compact-context/go.md +26 -26
  285. package/templates/compact-context/python.md +26 -26
  286. package/templates/compact-context/rust.md +28 -28
  287. package/templates/compact-context/typescript.md +29 -29
  288. package/templates/core/AGENTS_LEAN.md +0 -14
  289. package/templates/core/AGENTS_OVERRIDE.md +16 -16
  290. package/templates/core/AGENT_AUTOMATION.md +296 -296
  291. package/templates/core/CLAUDE_MD_v2.md +90 -90
  292. package/templates/core/DAG.md +304 -304
  293. package/templates/core/DECISIONS.md +38 -38
  294. package/templates/core/DOCUMENTATION_RULES.md +36 -36
  295. package/templates/core/KNOWLEDGE.md +49 -49
  296. package/templates/core/MULTI_AGENT.md +74 -74
  297. package/templates/core/PLANS.md +28 -28
  298. package/templates/core/QUALITY_ENFORCEMENT.md +68 -68
  299. package/templates/core/RULEBOOK.md +1947 -1947
  300. package/templates/core/TIER1_PROHIBITIONS.md +154 -154
  301. package/templates/core/TOKEN_OPTIMIZATION.md +49 -49
  302. package/templates/git/CI_CD_PATTERNS.md +661 -661
  303. package/templates/git/GITHUB_ACTIONS.md +728 -728
  304. package/templates/git/GITLAB_CI.md +730 -730
  305. package/templates/git/GIT_WORKFLOW.md +1192 -1192
  306. package/templates/git/SECRETS_MANAGEMENT.md +585 -585
  307. package/templates/hooks/COMMIT_MSG.md +530 -530
  308. package/templates/hooks/POST_CHECKOUT.md +546 -546
  309. package/templates/hooks/PREPARE_COMMIT_MSG.md +619 -619
  310. package/templates/hooks/PRE_COMMIT.md +414 -414
  311. package/templates/hooks/PRE_PUSH.md +601 -601
  312. package/templates/hooks/check-context-and-handoff.sh +24 -16
  313. package/templates/hooks/enforce-pre-tool.sh +70 -0
  314. package/templates/hooks/terse-mode-tracker.sh +146 -143
  315. package/templates/hooks/update-check.ps1 +84 -0
  316. package/templates/hooks/update-check.sh +103 -0
  317. package/templates/ides/CONTINUE_RULES.md +16 -16
  318. package/templates/ides/COPILOT_INSTRUCTIONS.md +23 -23
  319. package/templates/ides/GEMINI_RULES.md +17 -17
  320. package/templates/ides/OPENCODE.md +63 -0
  321. package/templates/ides/WINDSURF_RULES.md +14 -14
  322. package/templates/languages/C.md +333 -333
  323. package/templates/languages/CPP.md +743 -743
  324. package/templates/languages/CSHARP.md +417 -417
  325. package/templates/languages/ELIXIR.md +454 -454
  326. package/templates/languages/ERLANG.md +361 -361
  327. package/templates/languages/GO.md +645 -645
  328. package/templates/languages/HASKELL.md +177 -177
  329. package/templates/languages/JAVA.md +607 -607
  330. package/templates/languages/JAVASCRIPT.md +631 -631
  331. package/templates/languages/JULIA.md +97 -97
  332. package/templates/languages/KOTLIN.md +511 -511
  333. package/templates/languages/LISP.md +100 -100
  334. package/templates/languages/LUA.md +74 -74
  335. package/templates/languages/OBJECTIVEC.md +90 -90
  336. package/templates/languages/PHP.md +416 -416
  337. package/templates/languages/PYTHON.md +682 -682
  338. package/templates/languages/RUBY.md +421 -421
  339. package/templates/languages/RUST.md +477 -477
  340. package/templates/languages/SAS.md +73 -73
  341. package/templates/languages/SCALA.md +348 -348
  342. package/templates/languages/SOLIDITY.md +580 -580
  343. package/templates/languages/SQL.md +137 -137
  344. package/templates/languages/SWIFT.md +466 -466
  345. package/templates/languages/TYPESCRIPT.md +591 -591
  346. package/templates/languages/ZIG.md +265 -265
  347. package/templates/libraries/go/ECHO.md +18 -0
  348. package/templates/libraries/go/GIN.md +18 -0
  349. package/templates/libraries/go/GORM.md +18 -0
  350. package/templates/libraries/python/DJANGO.md +18 -0
  351. package/templates/libraries/python/FASTAPI.md +18 -0
  352. package/templates/libraries/python/FLASK.md +17 -0
  353. package/templates/libraries/python/PYDANTIC.md +17 -0
  354. package/templates/libraries/python/PYTEST.md +17 -0
  355. package/templates/libraries/python/SQLALCHEMY.md +17 -0
  356. package/templates/libraries/rust/ACTIX.md +17 -0
  357. package/templates/libraries/rust/AXUM.md +18 -0
  358. package/templates/libraries/rust/SERDE.md +16 -0
  359. package/templates/libraries/rust/SQLX.md +17 -0
  360. package/templates/libraries/rust/TOKIO.md +16 -0
  361. package/templates/libraries/typescript/ANGULAR.md +17 -0
  362. package/templates/libraries/typescript/DRIZZLE.md +16 -0
  363. package/templates/libraries/typescript/EXPRESS.md +17 -0
  364. package/templates/libraries/typescript/HEROUI.md +16 -0
  365. package/templates/libraries/typescript/JEST.md +17 -0
  366. package/templates/libraries/typescript/NESTJS.md +17 -0
  367. package/templates/libraries/typescript/NEXT.md +18 -0
  368. package/templates/libraries/typescript/PRISMA.md +16 -0
  369. package/templates/libraries/typescript/RADIX.md +16 -0
  370. package/templates/libraries/typescript/REACT.md +18 -0
  371. package/templates/libraries/typescript/SHADCN.md +16 -0
  372. package/templates/libraries/typescript/SVELTE.md +16 -0
  373. package/templates/libraries/typescript/TAILWIND.md +16 -0
  374. package/templates/libraries/typescript/TRPC.md +16 -0
  375. package/templates/libraries/typescript/VITEST.md +17 -0
  376. package/templates/libraries/typescript/VUE.md +17 -0
  377. package/templates/libraries/typescript/ZOD.md +17 -0
  378. package/templates/modules/ATLASSIAN.md +255 -255
  379. package/templates/modules/CONTEXT7.md +54 -54
  380. package/templates/modules/FIGMA.md +267 -267
  381. package/templates/modules/GITHUB_MCP.md +64 -64
  382. package/templates/modules/GRAFANA.md +328 -328
  383. package/templates/modules/MEMORY.md +126 -126
  384. package/templates/modules/NOTION.md +247 -247
  385. package/templates/modules/PLAYWRIGHT.md +90 -90
  386. package/templates/modules/RULEBOOK_MCP.md +208 -208
  387. package/templates/modules/SERENA.md +337 -337
  388. package/templates/modules/SUPABASE.md +223 -223
  389. package/templates/modules/SYNAP.md +69 -69
  390. package/templates/modules/VECTORIZER.md +63 -63
  391. package/templates/modules/sequential-thinking.md +42 -42
  392. package/templates/rules/consult-analysis-before-implementing.md +23 -23
  393. package/templates/rules/cpp.md +46 -46
  394. package/templates/rules/csharp.md +44 -44
  395. package/templates/rules/diagnostic-first.md +39 -39
  396. package/templates/rules/fail-twice-escalate.md +46 -46
  397. package/templates/rules/follow-task-sequence.md +36 -36
  398. package/templates/rules/git-safety.md +29 -29
  399. package/templates/rules/go.md +40 -40
  400. package/templates/rules/incremental-implementation.md +56 -56
  401. package/templates/rules/incremental-tests.md +29 -29
  402. package/templates/rules/java.md +43 -43
  403. package/templates/rules/javascript.md +39 -39
  404. package/templates/rules/knowledge-base-usage.md +41 -41
  405. package/templates/rules/multi-agent-teams.md +75 -75
  406. package/templates/rules/no-deferred.md +31 -31
  407. package/templates/rules/no-shortcuts.md +30 -30
  408. package/templates/rules/python.md +43 -43
  409. package/templates/rules/research-first.md +30 -30
  410. package/templates/rules/respect-handoff-trigger.md +41 -41
  411. package/templates/rules/rust.md +40 -40
  412. package/templates/rules/sequential-editing.md +21 -21
  413. package/templates/rules/session-workflow.md +24 -24
  414. package/templates/rules/task-decomposition.md +32 -32
  415. package/templates/rules/typescript.md +40 -40
  416. package/templates/skills/cli/aider/SKILL.md +59 -59
  417. package/templates/skills/cli/amazon-q/SKILL.md +35 -35
  418. package/templates/skills/cli/auggie/SKILL.md +42 -42
  419. package/templates/skills/cli/claude/SKILL.md +42 -42
  420. package/templates/skills/cli/cline/SKILL.md +42 -42
  421. package/templates/skills/cli/codebuddy/SKILL.md +30 -30
  422. package/templates/skills/cli/codeium/SKILL.md +30 -30
  423. package/templates/skills/cli/codex/SKILL.md +31 -31
  424. package/templates/skills/cli/continue/SKILL.md +44 -44
  425. package/templates/skills/cli/cursor-cli/SKILL.md +38 -38
  426. package/templates/skills/cli/factory/SKILL.md +28 -28
  427. package/templates/skills/cli/gemini/SKILL.md +45 -45
  428. package/templates/skills/cli/kilocode/SKILL.md +28 -28
  429. package/templates/skills/cli/opencode/SKILL.md +82 -28
  430. package/templates/skills/core/agent-automation/SKILL.md +194 -194
  431. package/templates/skills/core/dag/SKILL.md +314 -314
  432. package/templates/skills/core/documentation-rules/SKILL.md +46 -46
  433. package/templates/skills/core/quality-enforcement/SKILL.md +78 -78
  434. package/templates/skills/core/rulebook/SKILL.md +176 -176
  435. package/templates/skills/core/rulebook-terse/SKILL.md +116 -116
  436. package/templates/skills/core/rulebook-terse-commit/SKILL.md +96 -96
  437. package/templates/skills/core/rulebook-terse-review/SKILL.md +112 -112
  438. package/templates/skills/dev/accessibility/SKILL.md +17 -17
  439. package/templates/skills/dev/analysis/SKILL.md +19 -19
  440. package/templates/skills/dev/api-design/SKILL.md +15 -15
  441. package/templates/skills/dev/architect/SKILL.md +17 -17
  442. package/templates/skills/dev/build-fix/SKILL.md +17 -17
  443. package/templates/skills/dev/db-design/SKILL.md +15 -15
  444. package/templates/skills/dev/debug/SKILL.md +16 -16
  445. package/templates/skills/dev/deploy/SKILL.md +17 -17
  446. package/templates/skills/dev/docs/SKILL.md +17 -17
  447. package/templates/skills/dev/handoff/SKILL.md +27 -27
  448. package/templates/skills/dev/migrate/SKILL.md +15 -15
  449. package/templates/skills/dev/perf/SKILL.md +17 -17
  450. package/templates/skills/dev/refactor/SKILL.md +17 -17
  451. package/templates/skills/dev/research/SKILL.md +14 -14
  452. package/templates/skills/dev/review/SKILL.md +18 -18
  453. package/templates/skills/dev/security-audit/SKILL.md +17 -17
  454. package/templates/skills/dev/spec/SKILL.md +65 -0
  455. package/templates/skills/ides/copilot/SKILL.md +47 -47
  456. package/templates/skills/ides/cursor/SKILL.md +53 -53
  457. package/templates/skills/ides/jetbrains-ai/SKILL.md +45 -45
  458. package/templates/skills/ides/replit/SKILL.md +46 -46
  459. package/templates/skills/ides/tabnine/SKILL.md +39 -39
  460. package/templates/skills/ides/vscode/SKILL.md +50 -50
  461. package/templates/skills/ides/windsurf/SKILL.md +46 -46
  462. package/templates/skills/ides/zed/SKILL.md +42 -42
  463. package/templates/skills/languages/c/SKILL.md +343 -343
  464. package/templates/skills/languages/cpp/SKILL.md +753 -753
  465. package/templates/skills/languages/csharp/SKILL.md +427 -427
  466. package/templates/skills/languages/elixir/SKILL.md +464 -464
  467. package/templates/skills/languages/erlang/SKILL.md +371 -371
  468. package/templates/skills/languages/go/SKILL.md +655 -655
  469. package/templates/skills/languages/haskell/SKILL.md +187 -187
  470. package/templates/skills/languages/java/SKILL.md +617 -617
  471. package/templates/skills/languages/javascript/SKILL.md +641 -641
  472. package/templates/skills/languages/julia/SKILL.md +107 -107
  473. package/templates/skills/languages/kotlin/SKILL.md +521 -521
  474. package/templates/skills/languages/lisp/SKILL.md +110 -110
  475. package/templates/skills/languages/lua/SKILL.md +84 -84
  476. package/templates/skills/languages/objectivec/SKILL.md +100 -100
  477. package/templates/skills/languages/php/SKILL.md +426 -426
  478. package/templates/skills/languages/python/SKILL.md +692 -692
  479. package/templates/skills/languages/ruby/SKILL.md +431 -431
  480. package/templates/skills/languages/rust/SKILL.md +487 -487
  481. package/templates/skills/languages/sas/SKILL.md +83 -83
  482. package/templates/skills/languages/scala/SKILL.md +358 -358
  483. package/templates/skills/languages/solidity/SKILL.md +590 -590
  484. package/templates/skills/languages/sql/SKILL.md +147 -147
  485. package/templates/skills/languages/swift/SKILL.md +476 -476
  486. package/templates/skills/languages/typescript/SKILL.md +302 -302
  487. package/templates/skills/languages/zig/SKILL.md +275 -275
  488. package/templates/skills/modules/atlassian/SKILL.md +265 -265
  489. package/templates/skills/modules/context7/SKILL.md +64 -64
  490. package/templates/skills/modules/figma/SKILL.md +277 -277
  491. package/templates/skills/modules/github-mcp/SKILL.md +74 -74
  492. package/templates/skills/modules/grafana/SKILL.md +338 -338
  493. package/templates/skills/modules/memory/SKILL.md +73 -73
  494. package/templates/skills/modules/notion/SKILL.md +257 -257
  495. package/templates/skills/modules/playwright/SKILL.md +100 -100
  496. package/templates/skills/modules/rulebook-mcp/SKILL.md +166 -166
  497. package/templates/skills/modules/serena/SKILL.md +347 -347
  498. package/templates/skills/modules/supabase/SKILL.md +233 -233
  499. package/templates/skills/modules/synap/SKILL.md +79 -79
  500. package/templates/skills/modules/vectorizer/SKILL.md +73 -73
  501. package/.claude/commands/ralph-config.md +0 -112
  502. package/.claude/commands/ralph-history.md +0 -110
  503. package/.claude/commands/ralph-init.md +0 -72
  504. package/.claude/commands/ralph-pause-resume.md +0 -105
  505. package/.claude/commands/ralph-run.md +0 -101
  506. package/.claude/commands/ralph-status.md +0 -76
  507. package/dist/agents/ralph-parser.d.ts +0 -91
  508. package/dist/agents/ralph-parser.d.ts.map +0 -1
  509. package/dist/agents/ralph-parser.js +0 -415
  510. package/dist/agents/ralph-parser.js.map +0 -1
  511. package/dist/cli/commands/analysis.d.ts +0 -8
  512. package/dist/cli/commands/analysis.d.ts.map +0 -1
  513. package/dist/cli/commands/analysis.js +0 -78
  514. package/dist/cli/commands/analysis.js.map +0 -1
  515. package/dist/cli/commands/compress.d.ts +0 -18
  516. package/dist/cli/commands/compress.d.ts.map +0 -1
  517. package/dist/cli/commands/compress.js +0 -100
  518. package/dist/cli/commands/compress.js.map +0 -1
  519. package/dist/cli/commands/ralph.d.ts +0 -45
  520. package/dist/cli/commands/ralph.d.ts.map +0 -1
  521. package/dist/cli/commands/ralph.js +0 -694
  522. package/dist/cli/commands/ralph.js.map +0 -1
  523. package/dist/cli/docs-prompts.d.ts +0 -3
  524. package/dist/cli/docs-prompts.d.ts.map +0 -1
  525. package/dist/cli/docs-prompts.js +0 -45
  526. package/dist/cli/docs-prompts.js.map +0 -1
  527. package/dist/core/agent-manager.d.ts +0 -69
  528. package/dist/core/agent-manager.d.ts.map +0 -1
  529. package/dist/core/agent-manager.js +0 -476
  530. package/dist/core/agent-manager.js.map +0 -1
  531. package/dist/core/agent-template-engine.d.ts +0 -51
  532. package/dist/core/agent-template-engine.d.ts.map +0 -1
  533. package/dist/core/agent-template-engine.js +0 -291
  534. package/dist/core/agent-template-engine.js.map +0 -1
  535. package/dist/core/analysis-manager.d.ts +0 -56
  536. package/dist/core/analysis-manager.d.ts.map +0 -1
  537. package/dist/core/analysis-manager.js +0 -218
  538. package/dist/core/analysis-manager.js.map +0 -1
  539. package/dist/core/auto-fixer.d.ts +0 -14
  540. package/dist/core/auto-fixer.d.ts.map +0 -1
  541. package/dist/core/auto-fixer.js +0 -207
  542. package/dist/core/auto-fixer.js.map +0 -1
  543. package/dist/core/changelog-generator.d.ts +0 -44
  544. package/dist/core/changelog-generator.d.ts.map +0 -1
  545. package/dist/core/changelog-generator.js +0 -222
  546. package/dist/core/changelog-generator.js.map +0 -1
  547. package/dist/core/claude-mcp.d.ts.map +0 -1
  548. package/dist/core/claude-mcp.js.map +0 -1
  549. package/dist/core/claude-md-generator.d.ts.map +0 -1
  550. package/dist/core/claude-md-generator.js.map +0 -1
  551. package/dist/core/claude-settings-manager.d.ts.map +0 -1
  552. package/dist/core/claude-settings-manager.js.map +0 -1
  553. package/dist/core/cli-bridge.d.ts.map +0 -1
  554. package/dist/core/cli-bridge.js.map +0 -1
  555. package/dist/core/compact-context-manager.d.ts +0 -34
  556. package/dist/core/compact-context-manager.d.ts.map +0 -1
  557. package/dist/core/compact-context-manager.js +0 -60
  558. package/dist/core/compact-context-manager.js.map +0 -1
  559. package/dist/core/complexity-detector.d.ts +0 -36
  560. package/dist/core/complexity-detector.d.ts.map +0 -1
  561. package/dist/core/complexity-detector.js +0 -334
  562. package/dist/core/complexity-detector.js.map +0 -1
  563. package/dist/core/compress/compressor.d.ts +0 -60
  564. package/dist/core/compress/compressor.d.ts.map +0 -1
  565. package/dist/core/compress/compressor.js +0 -232
  566. package/dist/core/compress/compressor.js.map +0 -1
  567. package/dist/core/compress/discover.d.ts +0 -19
  568. package/dist/core/compress/discover.d.ts.map +0 -1
  569. package/dist/core/compress/discover.js +0 -100
  570. package/dist/core/compress/discover.js.map +0 -1
  571. package/dist/core/compress/validator.d.ts +0 -47
  572. package/dist/core/compress/validator.d.ts.map +0 -1
  573. package/dist/core/compress/validator.js +0 -131
  574. package/dist/core/compress/validator.js.map +0 -1
  575. package/dist/core/config-manager.d.ts.map +0 -1
  576. package/dist/core/config-manager.js.map +0 -1
  577. package/dist/core/coverage-checker.d.ts.map +0 -1
  578. package/dist/core/coverage-checker.js.map +0 -1
  579. package/dist/core/cursor-mdc-generator.d.ts +0 -30
  580. package/dist/core/cursor-mdc-generator.d.ts.map +0 -1
  581. package/dist/core/cursor-mdc-generator.js +0 -98
  582. package/dist/core/cursor-mdc-generator.js.map +0 -1
  583. package/dist/core/decision-manager.d.ts.map +0 -1
  584. package/dist/core/decision-manager.js.map +0 -1
  585. package/dist/core/dependency-checker.d.ts.map +0 -1
  586. package/dist/core/dependency-checker.js.map +0 -1
  587. package/dist/core/detector.d.ts.map +0 -1
  588. package/dist/core/detector.js +0 -1763
  589. package/dist/core/detector.js.map +0 -1
  590. package/dist/core/docs-generator.d.ts.map +0 -1
  591. package/dist/core/docs-generator.js.map +0 -1
  592. package/dist/core/doctor.d.ts.map +0 -1
  593. package/dist/core/doctor.js.map +0 -1
  594. package/dist/core/generator.d.ts.map +0 -1
  595. package/dist/core/generator.js.map +0 -1
  596. package/dist/core/github-issues-importer.d.ts +0 -82
  597. package/dist/core/github-issues-importer.d.ts.map +0 -1
  598. package/dist/core/github-issues-importer.js +0 -161
  599. package/dist/core/github-issues-importer.js.map +0 -1
  600. package/dist/core/gitignore-generator.d.ts.map +0 -1
  601. package/dist/core/gitignore-generator.js.map +0 -1
  602. package/dist/core/health-scorer.d.ts +0 -61
  603. package/dist/core/health-scorer.d.ts.map +0 -1
  604. package/dist/core/health-scorer.js +0 -638
  605. package/dist/core/health-scorer.js.map +0 -1
  606. package/dist/core/iteration-tracker.d.ts +0 -85
  607. package/dist/core/iteration-tracker.d.ts.map +0 -1
  608. package/dist/core/iteration-tracker.js +0 -295
  609. package/dist/core/iteration-tracker.js.map +0 -1
  610. package/dist/core/knowledge-manager.d.ts.map +0 -1
  611. package/dist/core/knowledge-manager.js.map +0 -1
  612. package/dist/core/learn-manager.d.ts.map +0 -1
  613. package/dist/core/learn-manager.js.map +0 -1
  614. package/dist/core/mcp-reference-generator.d.ts.map +0 -1
  615. package/dist/core/mcp-reference-generator.js.map +0 -1
  616. package/dist/core/minimal-scaffolder.d.ts.map +0 -1
  617. package/dist/core/minimal-scaffolder.js.map +0 -1
  618. package/dist/core/modern-console.d.ts +0 -98
  619. package/dist/core/modern-console.d.ts.map +0 -1
  620. package/dist/core/modern-console.js +0 -556
  621. package/dist/core/modern-console.js.map +0 -1
  622. package/dist/core/multi-tool-generator.d.ts.map +0 -1
  623. package/dist/core/multi-tool-generator.js.map +0 -1
  624. package/dist/core/override-manager.d.ts.map +0 -1
  625. package/dist/core/override-manager.js.map +0 -1
  626. package/dist/core/plans-manager.d.ts.map +0 -1
  627. package/dist/core/plans-manager.js.map +0 -1
  628. package/dist/core/prd-generator.d.ts +0 -48
  629. package/dist/core/prd-generator.d.ts.map +0 -1
  630. package/dist/core/prd-generator.js +0 -233
  631. package/dist/core/prd-generator.js.map +0 -1
  632. package/dist/core/ralph-manager.d.ts +0 -163
  633. package/dist/core/ralph-manager.d.ts.map +0 -1
  634. package/dist/core/ralph-manager.js +0 -555
  635. package/dist/core/ralph-manager.js.map +0 -1
  636. package/dist/core/ralph-parallel.d.ts +0 -55
  637. package/dist/core/ralph-parallel.d.ts.map +0 -1
  638. package/dist/core/ralph-parallel.js +0 -201
  639. package/dist/core/ralph-parallel.js.map +0 -1
  640. package/dist/core/ralph-plan-checkpoint.d.ts +0 -58
  641. package/dist/core/ralph-plan-checkpoint.d.ts.map +0 -1
  642. package/dist/core/ralph-plan-checkpoint.js +0 -154
  643. package/dist/core/ralph-plan-checkpoint.js.map +0 -1
  644. package/dist/core/ralph-scripts.d.ts +0 -12
  645. package/dist/core/ralph-scripts.d.ts.map +0 -1
  646. package/dist/core/ralph-scripts.js +0 -50
  647. package/dist/core/ralph-scripts.js.map +0 -1
  648. package/dist/core/review-manager.d.ts +0 -74
  649. package/dist/core/review-manager.d.ts.map +0 -1
  650. package/dist/core/review-manager.js +0 -371
  651. package/dist/core/review-manager.js.map +0 -1
  652. package/dist/core/rules-generator.d.ts.map +0 -1
  653. package/dist/core/rules-generator.js.map +0 -1
  654. package/dist/core/skills-manager.d.ts.map +0 -1
  655. package/dist/core/skills-manager.js.map +0 -1
  656. package/dist/core/state-writer.d.ts.map +0 -1
  657. package/dist/core/state-writer.js.map +0 -1
  658. package/dist/core/task-manager.d.ts.map +0 -1
  659. package/dist/core/task-manager.js.map +0 -1
  660. package/dist/core/telemetry.d.ts +0 -29
  661. package/dist/core/telemetry.d.ts.map +0 -1
  662. package/dist/core/telemetry.js +0 -57
  663. package/dist/core/telemetry.js.map +0 -1
  664. package/dist/core/validator.d.ts.map +0 -1
  665. package/dist/core/validator.js.map +0 -1
  666. package/dist/core/version-bumper.d.ts.map +0 -1
  667. package/dist/core/version-bumper.js.map +0 -1
  668. package/dist/core/watcher.d.ts +0 -9
  669. package/dist/core/watcher.d.ts.map +0 -1
  670. package/dist/core/watcher.js +0 -22
  671. package/dist/core/watcher.js.map +0 -1
  672. package/dist/core/workflow-generator.d.ts.map +0 -1
  673. package/dist/core/workflow-generator.js.map +0 -1
  674. package/dist/hooks/terse-activate.d.ts +0 -59
  675. package/dist/hooks/terse-activate.d.ts.map +0 -1
  676. package/dist/hooks/terse-activate.js +0 -149
  677. package/dist/hooks/terse-activate.js.map +0 -1
  678. package/dist/hooks/terse-config.d.ts +0 -51
  679. package/dist/hooks/terse-config.d.ts.map +0 -1
  680. package/dist/hooks/terse-config.js +0 -130
  681. package/dist/hooks/terse-config.js.map +0 -1
  682. package/dist/hooks/terse-mode-tracker.d.ts +0 -78
  683. package/dist/hooks/terse-mode-tracker.d.ts.map +0 -1
  684. package/dist/hooks/terse-mode-tracker.js +0 -213
  685. package/dist/hooks/terse-mode-tracker.js.map +0 -1
  686. package/dist/memory/hnsw-index.d.ts +0 -68
  687. package/dist/memory/hnsw-index.d.ts.map +0 -1
  688. package/dist/memory/hnsw-index.js +0 -544
  689. package/dist/memory/hnsw-index.js.map +0 -1
  690. package/dist/memory/memory-cache.d.ts +0 -33
  691. package/dist/memory/memory-cache.d.ts.map +0 -1
  692. package/dist/memory/memory-cache.js +0 -85
  693. package/dist/memory/memory-cache.js.map +0 -1
  694. package/dist/memory/memory-search.d.ts +0 -42
  695. package/dist/memory/memory-search.d.ts.map +0 -1
  696. package/dist/memory/memory-search.js +0 -180
  697. package/dist/memory/memory-search.js.map +0 -1
  698. package/dist/memory/memory-store.d.ts +0 -84
  699. package/dist/memory/memory-store.d.ts.map +0 -1
  700. package/dist/memory/memory-store.js +0 -566
  701. package/dist/memory/memory-store.js.map +0 -1
  702. package/dist/memory/memory-vectorizer.d.ts +0 -29
  703. package/dist/memory/memory-vectorizer.d.ts.map +0 -1
  704. package/dist/memory/memory-vectorizer.js +0 -199
  705. package/dist/memory/memory-vectorizer.js.map +0 -1
  706. package/templates/core/RALPH.md +0 -471
  707. package/templates/frameworks/ANGULAR.md +0 -36
  708. package/templates/frameworks/DJANGO.md +0 -83
  709. package/templates/frameworks/ELECTRON.md +0 -147
  710. package/templates/frameworks/FLASK.md +0 -38
  711. package/templates/frameworks/FLUTTER.md +0 -55
  712. package/templates/frameworks/JQUERY.md +0 -32
  713. package/templates/frameworks/LARAVEL.md +0 -38
  714. package/templates/frameworks/NESTJS.md +0 -43
  715. package/templates/frameworks/NEXTJS.md +0 -127
  716. package/templates/frameworks/NUXT.md +0 -40
  717. package/templates/frameworks/RAILS.md +0 -66
  718. package/templates/frameworks/REACT.md +0 -38
  719. package/templates/frameworks/REACT_NATIVE.md +0 -47
  720. package/templates/frameworks/SPRING.md +0 -39
  721. package/templates/frameworks/SYMFONY.md +0 -36
  722. package/templates/frameworks/VUE.md +0 -36
  723. package/templates/frameworks/ZEND.md +0 -35
  724. package/templates/hooks/enforce-mcp-for-tasks.sh +0 -31
  725. package/templates/hooks/enforce-no-deferred.sh +0 -21
  726. package/templates/hooks/enforce-no-shortcuts.sh +0 -31
  727. package/templates/ides/COPILOT.md +0 -37
  728. package/templates/ides/CURSOR.md +0 -43
  729. package/templates/ides/JETBRAINS_AI.md +0 -35
  730. package/templates/ides/REPLIT.md +0 -36
  731. package/templates/ides/TABNINE.md +0 -29
  732. package/templates/ides/VSCODE.md +0 -40
  733. package/templates/ides/WINDSURF.md +0 -36
  734. package/templates/ides/ZED.md +0 -32
  735. package/templates/ides/cursor-mdc/go.mdc +0 -24
  736. package/templates/ides/cursor-mdc/python.mdc +0 -24
  737. package/templates/ides/cursor-mdc/quality.mdc +0 -25
  738. package/templates/ides/cursor-mdc/ralph.mdc +0 -39
  739. package/templates/ides/cursor-mdc/rulebook.mdc +0 -38
  740. package/templates/ides/cursor-mdc/rust.mdc +0 -24
  741. package/templates/ides/cursor-mdc/typescript.mdc +0 -25
  742. package/templates/ralph/ralph-history.bat +0 -4
  743. package/templates/ralph/ralph-history.sh +0 -5
  744. package/templates/ralph/ralph-init.bat +0 -5
  745. package/templates/ralph/ralph-init.sh +0 -5
  746. package/templates/ralph/ralph-pause.bat +0 -5
  747. package/templates/ralph/ralph-pause.sh +0 -5
  748. package/templates/ralph/ralph-run.bat +0 -5
  749. package/templates/ralph/ralph-run.sh +0 -5
  750. package/templates/ralph/ralph-status.bat +0 -4
  751. package/templates/ralph/ralph-status.sh +0 -5
  752. package/templates/services/AZURE_BLOB.md +0 -184
  753. package/templates/services/CASSANDRA.md +0 -239
  754. package/templates/services/DATADOG.md +0 -26
  755. package/templates/services/DOCKER.md +0 -124
  756. package/templates/services/DOCKER_COMPOSE.md +0 -168
  757. package/templates/services/DYNAMODB.md +0 -308
  758. package/templates/services/ELASTICSEARCH.md +0 -347
  759. package/templates/services/GCS.md +0 -178
  760. package/templates/services/HELM.md +0 -194
  761. package/templates/services/INFLUXDB.md +0 -265
  762. package/templates/services/KAFKA.md +0 -341
  763. package/templates/services/KUBERNETES.md +0 -208
  764. package/templates/services/MARIADB.md +0 -183
  765. package/templates/services/MEMCACHED.md +0 -242
  766. package/templates/services/MINIO.md +0 -201
  767. package/templates/services/MONGODB.md +0 -268
  768. package/templates/services/MYSQL.md +0 -358
  769. package/templates/services/NEO4J.md +0 -247
  770. package/templates/services/OPENTELEMETRY.md +0 -25
  771. package/templates/services/ORACLE.md +0 -290
  772. package/templates/services/PINO.md +0 -24
  773. package/templates/services/POSTGRESQL.md +0 -326
  774. package/templates/services/PROMETHEUS.md +0 -33
  775. package/templates/services/RABBITMQ.md +0 -286
  776. package/templates/services/REDIS.md +0 -292
  777. package/templates/services/S3.md +0 -298
  778. package/templates/services/SENTRY.md +0 -23
  779. package/templates/services/SQLITE.md +0 -294
  780. package/templates/services/SQLSERVER.md +0 -294
  781. package/templates/services/WINSTON.md +0 -30
  782. package/templates/skills/frameworks/angular/SKILL.md +0 -46
  783. package/templates/skills/frameworks/django/SKILL.md +0 -93
  784. package/templates/skills/frameworks/electron/SKILL.md +0 -157
  785. package/templates/skills/frameworks/flask/SKILL.md +0 -48
  786. package/templates/skills/frameworks/flutter/SKILL.md +0 -65
  787. package/templates/skills/frameworks/jquery/SKILL.md +0 -42
  788. package/templates/skills/frameworks/laravel/SKILL.md +0 -48
  789. package/templates/skills/frameworks/nestjs/SKILL.md +0 -53
  790. package/templates/skills/frameworks/nextjs/SKILL.md +0 -137
  791. package/templates/skills/frameworks/nuxt/SKILL.md +0 -50
  792. package/templates/skills/frameworks/rails/SKILL.md +0 -76
  793. package/templates/skills/frameworks/react/SKILL.md +0 -48
  794. package/templates/skills/frameworks/react-native/SKILL.md +0 -57
  795. package/templates/skills/frameworks/spring/SKILL.md +0 -49
  796. package/templates/skills/frameworks/symfony/SKILL.md +0 -46
  797. package/templates/skills/frameworks/vue/SKILL.md +0 -46
  798. package/templates/skills/frameworks/zend/SKILL.md +0 -45
  799. package/templates/skills/services/azure-blob/SKILL.md +0 -194
  800. package/templates/skills/services/cassandra/SKILL.md +0 -249
  801. package/templates/skills/services/dynamodb/SKILL.md +0 -318
  802. package/templates/skills/services/elasticsearch/SKILL.md +0 -357
  803. package/templates/skills/services/gcs/SKILL.md +0 -188
  804. package/templates/skills/services/influxdb/SKILL.md +0 -275
  805. package/templates/skills/services/kafka/SKILL.md +0 -351
  806. package/templates/skills/services/mariadb/SKILL.md +0 -193
  807. package/templates/skills/services/memcached/SKILL.md +0 -252
  808. package/templates/skills/services/minio/SKILL.md +0 -211
  809. package/templates/skills/services/mongodb/SKILL.md +0 -278
  810. package/templates/skills/services/mysql/SKILL.md +0 -368
  811. package/templates/skills/services/neo4j/SKILL.md +0 -257
  812. package/templates/skills/services/oracle/SKILL.md +0 -300
  813. package/templates/skills/services/postgresql/SKILL.md +0 -336
  814. package/templates/skills/services/rabbitmq/SKILL.md +0 -296
  815. package/templates/skills/services/redis/SKILL.md +0 -302
  816. package/templates/skills/services/s3/SKILL.md +0 -308
  817. package/templates/skills/services/sqlite/SKILL.md +0 -304
  818. package/templates/skills/services/sqlserver/SKILL.md +0 -304
  819. package/templates/skills/workflows/ralph/SETUP.md +0 -228
  820. package/templates/skills/workflows/ralph/SKILL.md +0 -309
  821. package/templates/skills/workflows/ralph/install.sh +0 -87
  822. package/templates/skills/workflows/ralph/manifest.json +0 -158
  823. /package/dist/core/{claude-md-generator.d.ts → claude/claude-md-generator.d.ts} +0 -0
  824. /package/dist/core/{docs-generator.d.ts → docs/docs-generator.d.ts} +0 -0
  825. /package/dist/core/{mcp-reference-generator.d.ts → docs/mcp-reference-generator.d.ts} +0 -0
  826. /package/dist/core/{minimal-scaffolder.d.ts → generators/minimal-scaffolder.d.ts} +0 -0
  827. /package/dist/core/{coverage-checker.d.ts → quality/coverage-checker.d.ts} +0 -0
  828. /package/dist/core/{dependency-checker.d.ts → quality/dependency-checker.d.ts} +0 -0
  829. /package/dist/core/{doctor.d.ts → quality/doctor.d.ts} +0 -0
  830. /package/dist/core/{validator.d.ts → quality/validator.d.ts} +0 -0
  831. /package/dist/core/{override-manager.d.ts → state/override-manager.d.ts} +0 -0
  832. /package/dist/core/{version-bumper.d.ts → state/version-bumper.d.ts} +0 -0
  833. /package/dist/core/{plans-manager.d.ts → tasks/plans-manager.d.ts} +0 -0
  834. /package/dist/core/{task-manager.d.ts → tasks/task-manager.d.ts} +0 -0
@@ -1,302 +0,0 @@
1
- ---
2
- name: "Redis"
3
- description: "Use Redis for high-performance caching, session storage, pub/sub messaging, and real-time features."
4
- version: "1.0.0"
5
- category: "services"
6
- author: "Rulebook"
7
- tags: ["services", "caching"]
8
- dependencies: []
9
- conflicts: []
10
- ---
11
- <!-- REDIS:START -->
12
- # Redis Cache Instructions
13
-
14
- **CRITICAL**: Use Redis for high-performance caching, session storage, pub/sub messaging, and real-time features.
15
-
16
- ## Core Features
17
-
18
- ### Connection
19
- ```typescript
20
- // Using redis (Node.js)
21
- import { createClient } from 'redis'
22
-
23
- const client = createClient({
24
- url: process.env.REDIS_URL || 'redis://localhost:6379',
25
- socket: {
26
- reconnectStrategy: (retries) => {
27
- if (retries > 10) {
28
- return new Error('Too many reconnection attempts')
29
- }
30
- return Math.min(retries * 100, 3000)
31
- },
32
- },
33
- })
34
-
35
- await client.connect()
36
-
37
- // Using ioredis
38
- import Redis from 'ioredis'
39
-
40
- const redis = new Redis({
41
- host: process.env.REDIS_HOST || 'localhost',
42
- port: parseInt(process.env.REDIS_PORT || '6379'),
43
- password: process.env.REDIS_PASSWORD,
44
- retryStrategy: (times) => Math.min(times * 50, 2000),
45
- maxRetriesPerRequest: 3,
46
- })
47
- ```
48
-
49
- ### Basic Operations
50
- ```typescript
51
- // String operations
52
- await client.set('user:1', JSON.stringify({ name: 'John', email: 'john@example.com' }))
53
- await client.set('user:1', 'value', { EX: 3600 }) // Expire in 1 hour
54
- const user = await client.get('user:1')
55
- await client.del('user:1')
56
-
57
- // Multiple operations
58
- await client.mSet({
59
- 'key1': 'value1',
60
- 'key2': 'value2',
61
- })
62
- const values = await client.mGet(['key1', 'key2'])
63
-
64
- // Increment/Decrement
65
- await client.incr('counter')
66
- await client.incrBy('counter', 5)
67
- await client.decr('counter')
68
- ```
69
-
70
- ### Data Structures
71
- ```typescript
72
- // Lists
73
- await client.lPush('tasks', 'task1', 'task2')
74
- await client.rPush('tasks', 'task3')
75
- const task = await client.lPop('tasks')
76
- const tasks = await client.lRange('tasks', 0, -1)
77
-
78
- // Sets
79
- await client.sAdd('tags', 'javascript', 'typescript', 'nodejs')
80
- const tags = await client.sMembers('tags')
81
- const exists = await client.sIsMember('tags', 'javascript')
82
- await client.sRem('tags', 'javascript')
83
-
84
- // Sorted Sets
85
- await client.zAdd('leaderboard', {
86
- score: 100,
87
- value: 'player1',
88
- })
89
- const topPlayers = await client.zRange('leaderboard', 0, 9, { REV: true })
90
-
91
- // Hashes
92
- await client.hSet('user:1', {
93
- name: 'John',
94
- email: 'john@example.com',
95
- age: '30',
96
- })
97
- const user = await client.hGetAll('user:1')
98
- await client.hIncrBy('user:1', 'age', 1)
99
- ```
100
-
101
- ### Advanced Features
102
- ```typescript
103
- // Pub/Sub
104
- const publisher = client.duplicate()
105
- await publisher.connect()
106
-
107
- const subscriber = client.duplicate()
108
- await subscriber.connect()
109
-
110
- await subscriber.subscribe('notifications', (message) => {
111
- console.log('Received:', message)
112
- })
113
-
114
- await publisher.publish('notifications', JSON.stringify({ type: 'alert', message: 'Hello' }))
115
-
116
- // Streams
117
- await client.xAdd('events', '*', {
118
- type: 'user_login',
119
- userId: '123',
120
- timestamp: Date.now().toString(),
121
- })
122
-
123
- const events = await client.xRead({
124
- key: 'events',
125
- id: '0',
126
- }, {
127
- COUNT: 10,
128
- BLOCK: 1000,
129
- })
130
-
131
- // Transactions
132
- const multi = client.multi()
133
- multi.set('key1', 'value1')
134
- multi.set('key2', 'value2')
135
- multi.incr('counter')
136
- await multi.exec()
137
- ```
138
-
139
- ## Common Patterns
140
-
141
- ### Caching
142
- ```typescript
143
- async function getCachedUser(userId: string) {
144
- const cached = await client.get(`user:${userId}`)
145
- if (cached) {
146
- return JSON.parse(cached)
147
- }
148
-
149
- const user = await fetchUserFromDatabase(userId)
150
- await client.set(`user:${userId}`, JSON.stringify(user), { EX: 3600 })
151
- return user
152
- }
153
-
154
- // Cache with tags (for invalidation)
155
- async function cacheWithTags(key: string, value: any, tags: string[], ttl: number) {
156
- await client.set(key, JSON.stringify(value), { EX: ttl })
157
- for (const tag of tags) {
158
- await client.sAdd(`tag:${tag}`, key)
159
- }
160
- }
161
-
162
- async function invalidateByTag(tag: string) {
163
- const keys = await client.sMembers(`tag:${tag}`)
164
- if (keys.length > 0) {
165
- await client.del(...keys)
166
- }
167
- await client.del(`tag:${tag}`)
168
- }
169
- ```
170
-
171
- ### Rate Limiting
172
- ```typescript
173
- async function checkRateLimit(userId: string, limit: number, window: number): Promise<boolean> {
174
- const key = `ratelimit:${userId}`
175
- const current = await client.incr(key)
176
-
177
- if (current === 1) {
178
- await client.expire(key, window)
179
- }
180
-
181
- return current <= limit
182
- }
183
- ```
184
-
185
- ### Session Storage
186
- ```typescript
187
- async function setSession(sessionId: string, data: any, ttl: number) {
188
- await client.set(`session:${sessionId}`, JSON.stringify(data), { EX: ttl })
189
- }
190
-
191
- async function getSession(sessionId: string) {
192
- const data = await client.get(`session:${sessionId}`)
193
- return data ? JSON.parse(data) : null
194
- }
195
-
196
- async function deleteSession(sessionId: string) {
197
- await client.del(`session:${sessionId}`)
198
- }
199
- ```
200
-
201
- ### Distributed Locks
202
- ```typescript
203
- async function acquireLock(key: string, ttl: number): Promise<boolean> {
204
- const result = await client.set(key, 'locked', {
205
- EX: ttl,
206
- NX: true, // Only set if not exists
207
- })
208
- return result === 'OK'
209
- }
210
-
211
- async function releaseLock(key: string) {
212
- await client.del(key)
213
- }
214
- ```
215
-
216
- ## Best Practices
217
-
218
- ✅ **DO:**
219
- - Use connection pooling
220
- - Set appropriate TTL for cached data
221
- - Use pipelining for multiple operations
222
- - Use transactions (MULTI/EXEC) for atomic operations
223
- - Monitor memory usage
224
- - Use appropriate data structures (hash for objects, set for unique values)
225
- - Implement cache invalidation strategies
226
- - Use Redis Cluster for high availability
227
- - Enable persistence (RDB or AOF) for production
228
- - Use Redis Sentinel for failover
229
-
230
- ❌ **DON'T:**
231
- - Store large values (> 100KB, use compression or external storage)
232
- - Use Redis as primary database (it's a cache)
233
- - Skip error handling
234
- - Ignore memory limits
235
- - Hardcode connection strings
236
- - Use KEYS command in production (use SCAN instead)
237
- - Store sensitive data without encryption
238
- - Skip connection retry logic
239
- - Ignore eviction policies
240
- - Use blocking operations without timeouts
241
-
242
- ## Configuration
243
-
244
- ### Environment Variables
245
- ```bash
246
- REDIS_URL=redis://localhost:6379
247
- REDIS_URL=redis://:password@host:6379
248
- REDIS_URL=rediss://host:6380 # SSL
249
- REDIS_HOST=localhost
250
- REDIS_PORT=6379
251
- REDIS_PASSWORD=securepassword
252
- ```
253
-
254
- ### Docker Compose
255
- ```yaml
256
- services:
257
- redis:
258
- image: redis:7-alpine
259
- ports:
260
- - "6379:6379"
261
- command: redis-server --requirepass securepassword --appendonly yes
262
- volumes:
263
- - redis_data:/data
264
- healthcheck:
265
- test: ["CMD", "redis-cli", "ping"]
266
- interval: 10s
267
- timeout: 5s
268
- retries: 5
269
-
270
- volumes:
271
- redis_data:
272
- ```
273
-
274
- ## Integration with Development
275
-
276
- ### Testing
277
- ```typescript
278
- // Use test Redis instance
279
- const testClient = createClient({
280
- url: 'redis://localhost:6380', // Different port for tests
281
- })
282
-
283
- // Clean up after tests
284
- afterEach(async () => {
285
- await testClient.flushDb()
286
- })
287
- ```
288
-
289
- ### Health Checks
290
- ```typescript
291
- async function checkRedisHealth(): Promise<boolean> {
292
- try {
293
- await client.ping()
294
- return true
295
- } catch {
296
- return false
297
- }
298
- }
299
- ```
300
-
301
- <!-- REDIS:END -->
302
-
@@ -1,308 +0,0 @@
1
- ---
2
- name: "S3"
3
- description: "Use AWS S3 for object storage, file uploads, static assets, and backup storage with high availability."
4
- version: "1.0.0"
5
- category: "services"
6
- author: "Rulebook"
7
- tags: ["services", "storage"]
8
- dependencies: []
9
- conflicts: []
10
- ---
11
- <!-- S3:START -->
12
- # AWS S3 Storage Instructions
13
-
14
- **CRITICAL**: Use AWS S3 for object storage, file uploads, static assets, and backup storage with high availability.
15
-
16
- ## Core Features
17
-
18
- ### Connection
19
- ```typescript
20
- // Using @aws-sdk/client-s3
21
- import { S3Client, PutObjectCommand, GetObjectCommand, DeleteObjectCommand } from '@aws-sdk/client-s3'
22
-
23
- const s3Client = new S3Client({
24
- region: process.env.AWS_REGION || 'us-east-1',
25
- credentials: {
26
- accessKeyId: process.env.AWS_ACCESS_KEY_ID || '',
27
- secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY || '',
28
- },
29
- })
30
-
31
- // Using AWS SDK v2
32
- import AWS from 'aws-sdk'
33
-
34
- const s3 = new AWS.S3({
35
- accessKeyId: process.env.AWS_ACCESS_KEY_ID,
36
- secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,
37
- region: process.env.AWS_REGION || 'us-east-1',
38
- })
39
- ```
40
-
41
- ### Basic Operations
42
- ```typescript
43
- // Upload file
44
- const uploadParams = {
45
- Bucket: process.env.S3_BUCKET || 'my-bucket',
46
- Key: 'path/to/file.jpg',
47
- Body: fileBuffer,
48
- ContentType: 'image/jpeg',
49
- ACL: 'private', // or 'public-read'
50
- }
51
-
52
- await s3Client.send(new PutObjectCommand(uploadParams))
53
-
54
- // Upload with metadata
55
- await s3Client.send(new PutObjectCommand({
56
- ...uploadParams,
57
- Metadata: {
58
- userId: '123',
59
- originalName: 'photo.jpg',
60
- },
61
- TagSet: [
62
- { Key: 'category', Value: 'profile' },
63
- ],
64
- }))
65
-
66
- // Get file
67
- const getParams = {
68
- Bucket: process.env.S3_BUCKET,
69
- Key: 'path/to/file.jpg',
70
- }
71
-
72
- const response = await s3Client.send(new GetObjectCommand(getParams))
73
- const fileContent = await response.Body?.transformToByteArray()
74
-
75
- // Delete file
76
- await s3Client.send(new DeleteObjectCommand({
77
- Bucket: process.env.S3_BUCKET,
78
- Key: 'path/to/file.jpg',
79
- }))
80
- ```
81
-
82
- ### Advanced Features
83
- ```typescript
84
- // Presigned URL for upload
85
- import { getSignedUrl } from '@aws-sdk/s3-request-presigner'
86
-
87
- const command = new PutObjectCommand({
88
- Bucket: process.env.S3_BUCKET,
89
- Key: 'uploads/file.jpg',
90
- ContentType: 'image/jpeg',
91
- })
92
-
93
- const presignedUrl = await getSignedUrl(s3Client, command, { expiresIn: 3600 })
94
-
95
- // Presigned URL for download
96
- const getCommand = new GetObjectCommand({
97
- Bucket: process.env.S3_BUCKET,
98
- Key: 'path/to/file.jpg',
99
- })
100
-
101
- const downloadUrl = await getSignedUrl(s3Client, getCommand, { expiresIn: 3600 })
102
-
103
- // Multipart upload (for large files)
104
- import { CreateMultipartUploadCommand, UploadPartCommand, CompleteMultipartUploadCommand } from '@aws-sdk/client-s3'
105
-
106
- const createCommand = new CreateMultipartUploadCommand({
107
- Bucket: process.env.S3_BUCKET,
108
- Key: 'large-file.zip',
109
- ContentType: 'application/zip',
110
- })
111
-
112
- const { UploadId } = await s3Client.send(createCommand)
113
-
114
- // Upload parts
115
- const part1 = await s3Client.send(new UploadPartCommand({
116
- Bucket: process.env.S3_BUCKET,
117
- Key: 'large-file.zip',
118
- PartNumber: 1,
119
- UploadId,
120
- Body: part1Buffer,
121
- }))
122
-
123
- // Complete upload
124
- await s3Client.send(new CompleteMultipartUploadCommand({
125
- Bucket: process.env.S3_BUCKET,
126
- Key: 'large-file.zip',
127
- UploadId,
128
- MultipartUpload: {
129
- Parts: [
130
- { PartNumber: 1, ETag: part1.ETag },
131
- ],
132
- },
133
- }))
134
-
135
- // List objects
136
- import { ListObjectsV2Command } from '@aws-sdk/client-s3'
137
-
138
- const listCommand = new ListObjectsV2Command({
139
- Bucket: process.env.S3_BUCKET,
140
- Prefix: 'uploads/',
141
- MaxKeys: 100,
142
- })
143
-
144
- const { Contents } = await s3Client.send(listCommand)
145
- ```
146
-
147
- ## Common Patterns
148
-
149
- ### File Upload Handler
150
- ```typescript
151
- async function uploadFile(file: Buffer, filename: string, userId: string) {
152
- const key = `users/${userId}/${Date.now()}-${filename}`
153
-
154
- await s3Client.send(new PutObjectCommand({
155
- Bucket: process.env.S3_BUCKET,
156
- Key: key,
157
- Body: file,
158
- ContentType: getContentType(filename),
159
- Metadata: {
160
- userId,
161
- originalName: filename,
162
- uploadedAt: new Date().toISOString(),
163
- },
164
- }))
165
-
166
- return {
167
- key,
168
- url: `https://${process.env.S3_BUCKET}.s3.${process.env.AWS_REGION}.amazonaws.com/${key}`,
169
- }
170
- }
171
- ```
172
-
173
- ### Temporary File Access
174
- ```typescript
175
- async function generateTemporaryDownloadUrl(key: string, expiresIn: number = 3600) {
176
- const command = new GetObjectCommand({
177
- Bucket: process.env.S3_BUCKET,
178
- Key: key,
179
- })
180
-
181
- return await getSignedUrl(s3Client, command, { expiresIn })
182
- }
183
- ```
184
-
185
- ### File Cleanup
186
- ```typescript
187
- async function deleteFilesByPrefix(prefix: string) {
188
- const listCommand = new ListObjectsV2Command({
189
- Bucket: process.env.S3_BUCKET,
190
- Prefix: prefix,
191
- })
192
-
193
- let continuationToken: string | undefined
194
-
195
- do {
196
- const response = await s3Client.send({
197
- ...listCommand,
198
- ContinuationToken: continuationToken,
199
- })
200
-
201
- if (response.Contents) {
202
- for (const object of response.Contents) {
203
- if (object.Key) {
204
- await s3Client.send(new DeleteObjectCommand({
205
- Bucket: process.env.S3_BUCKET,
206
- Key: object.Key,
207
- }))
208
- }
209
- }
210
- }
211
-
212
- continuationToken = response.NextContinuationToken
213
- } while (continuationToken)
214
- }
215
- ```
216
-
217
- ## Best Practices
218
-
219
- ✅ **DO:**
220
- - Use presigned URLs for client uploads
221
- - Set appropriate Content-Type headers
222
- - Use versioning for important files
223
- - Implement lifecycle policies for cleanup
224
- - Use multipart upload for files > 5MB
225
- - Enable encryption (SSE-S3 or SSE-KMS)
226
- - Use appropriate storage classes (Standard, IA, Glacier)
227
- - Implement proper error handling
228
- - Use bucket policies for access control
229
- - Monitor bucket usage and costs
230
-
231
- ❌ **DON'T:**
232
- - Store sensitive data without encryption
233
- - Use public-read ACL unnecessarily
234
- - Hardcode credentials
235
- - Ignore error handling
236
- - Skip content-type validation
237
- - Store large files without multipart upload
238
- - Ignore lifecycle policies
239
- - Skip access logging
240
- - Use default bucket policies
241
- - Ignore cost optimization
242
-
243
- ## Configuration
244
-
245
- ### Environment Variables
246
- ```bash
247
- AWS_REGION=us-east-1
248
- AWS_ACCESS_KEY_ID=your-access-key
249
- AWS_SECRET_ACCESS_KEY=your-secret-key
250
- S3_BUCKET=my-bucket
251
- ```
252
-
253
- ### IAM Policy
254
- ```json
255
- {
256
- "Version": "2012-10-17",
257
- "Statement": [
258
- {
259
- "Effect": "Allow",
260
- "Action": [
261
- "s3:PutObject",
262
- "s3:GetObject",
263
- "s3:DeleteObject"
264
- ],
265
- "Resource": "arn:aws:s3:::my-bucket/*"
266
- }
267
- ]
268
- }
269
- ```
270
-
271
- ## Integration with Development
272
-
273
- ### Testing
274
- ```typescript
275
- // Use test bucket or LocalStack
276
- const testS3Client = new S3Client({
277
- endpoint: 'http://localhost:4566', // LocalStack
278
- region: 'us-east-1',
279
- credentials: {
280
- accessKeyId: 'test',
281
- secretAccessKey: 'test',
282
- },
283
- forcePathStyle: true,
284
- })
285
-
286
- // Clean up after tests
287
- afterEach(async () => {
288
- // Delete test files
289
- })
290
- ```
291
-
292
- ### Health Checks
293
- ```typescript
294
- async function checkS3Health(): Promise<boolean> {
295
- try {
296
- await s3Client.send(new ListObjectsV2Command({
297
- Bucket: process.env.S3_BUCKET,
298
- MaxKeys: 1,
299
- }))
300
- return true
301
- } catch {
302
- return false
303
- }
304
- }
305
- ```
306
-
307
- <!-- S3:END -->
308
-