@hivehub/rulebook 5.1.3 → 5.2.1

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 (374) hide show
  1. package/.claude/commands/continue.md +33 -33
  2. package/.claude/commands/ralph-config.md +112 -112
  3. package/.claude/commands/ralph-history.md +110 -110
  4. package/.claude/commands/ralph-init.md +72 -72
  5. package/.claude/commands/ralph-pause-resume.md +105 -105
  6. package/.claude/commands/ralph-run.md +101 -101
  7. package/.claude/commands/ralph-status.md +76 -76
  8. package/.claude/commands/rulebook-decision-create.md +55 -55
  9. package/.claude/commands/rulebook-decision-list.md +15 -15
  10. package/.claude/commands/rulebook-knowledge-add.md +41 -41
  11. package/.claude/commands/rulebook-knowledge-list.md +15 -15
  12. package/.claude/commands/rulebook-learn-capture.md +48 -48
  13. package/.claude/commands/rulebook-learn-list.md +13 -13
  14. package/.claude/commands/rulebook-memory-save.md +48 -48
  15. package/.claude/commands/rulebook-memory-search.md +47 -47
  16. package/.claude/commands/rulebook-task-apply.md +85 -67
  17. package/.claude/commands/rulebook-task-archive.md +103 -94
  18. package/.claude/commands/rulebook-task-create.md +93 -93
  19. package/.claude/commands/rulebook-task-list.md +42 -42
  20. package/.claude/commands/rulebook-task-show.md +52 -52
  21. package/.claude/commands/rulebook-task-validate.md +53 -53
  22. package/.claude-plugin/marketplace.json +28 -28
  23. package/.claude-plugin/plugin.json +8 -8
  24. package/README.md +25 -43
  25. package/dist/cli/commands.d.ts.map +1 -1
  26. package/dist/cli/commands.js +11 -0
  27. package/dist/cli/commands.js.map +1 -1
  28. package/dist/core/agent-template-engine.js +28 -28
  29. package/dist/core/generator.js +28 -28
  30. package/dist/core/task-manager.d.ts +23 -0
  31. package/dist/core/task-manager.d.ts.map +1 -1
  32. package/dist/core/task-manager.js +163 -27
  33. package/dist/core/task-manager.js.map +1 -1
  34. package/dist/index.js +0 -0
  35. package/dist/mcp/rulebook-server.js +3 -3
  36. package/dist/mcp/rulebook-server.js.map +1 -1
  37. package/dist/memory/memory-store.js +91 -91
  38. package/package.json +21 -22
  39. package/templates/agents/accessibility-reviewer.md +43 -43
  40. package/templates/agents/api-designer.md +42 -42
  41. package/templates/agents/architect.md +51 -51
  42. package/templates/agents/build-engineer.md +36 -36
  43. package/templates/agents/code-reviewer.md +47 -47
  44. package/templates/agents/compiler/codegen-debugger.md +34 -34
  45. package/templates/agents/compiler/stdlib-engineer.md +28 -28
  46. package/templates/agents/compiler/test-coverage-guardian.md +31 -31
  47. package/templates/agents/context-intelligence.md +52 -52
  48. package/templates/agents/database-architect.md +41 -41
  49. package/templates/agents/devops-engineer.md +42 -42
  50. package/templates/agents/docs-writer.md +38 -38
  51. package/templates/agents/game-engine/cpp-core-expert.md +35 -35
  52. package/templates/agents/game-engine/render-engineer.md +22 -22
  53. package/templates/agents/game-engine/shader-engineer.md +38 -38
  54. package/templates/agents/game-engine/systems-integration.md +43 -43
  55. package/templates/agents/generic/code-reviewer.md +41 -41
  56. package/templates/agents/generic/docs-writer.md +25 -25
  57. package/templates/agents/generic/project-manager.md +36 -36
  58. package/templates/agents/generic/researcher.md +34 -34
  59. package/templates/agents/generic/test-engineer.md +41 -41
  60. package/templates/agents/i18n-engineer.md +42 -42
  61. package/templates/agents/implementer.md +42 -42
  62. package/templates/agents/migration-engineer.md +42 -42
  63. package/templates/agents/mobile/platform-specialist.md +22 -22
  64. package/templates/agents/mobile/ui-engineer.md +22 -22
  65. package/templates/agents/performance-engineer.md +49 -49
  66. package/templates/agents/refactoring-agent.md +41 -41
  67. package/templates/agents/researcher.md +38 -38
  68. package/templates/agents/security-reviewer.md +40 -40
  69. package/templates/agents/team-lead.md +37 -37
  70. package/templates/agents/tester.md +48 -48
  71. package/templates/agents/ux-reviewer.md +43 -43
  72. package/templates/agents/web-app/api-designer.md +22 -22
  73. package/templates/agents/web-app/backend-engineer.md +30 -30
  74. package/templates/agents/web-app/database-engineer.md +22 -22
  75. package/templates/agents/web-app/frontend-engineer.md +29 -29
  76. package/templates/agents/web-app/security-reviewer.md +32 -32
  77. package/templates/ci/rulebook-review.yml +26 -26
  78. package/templates/cli/AIDER.md +49 -49
  79. package/templates/cli/AMAZON_Q.md +25 -25
  80. package/templates/cli/AUGGIE.md +32 -32
  81. package/templates/cli/CLAUDE.md +117 -117
  82. package/templates/cli/CLINE.md +99 -99
  83. package/templates/cli/CODEBUDDY.md +20 -20
  84. package/templates/cli/CODEIUM.md +20 -20
  85. package/templates/cli/CODEX.md +21 -21
  86. package/templates/cli/CONTINUE.md +34 -34
  87. package/templates/cli/CURSOR_CLI.md +62 -62
  88. package/templates/cli/FACTORY.md +18 -18
  89. package/templates/cli/GEMINI.md +35 -35
  90. package/templates/cli/KILOCODE.md +18 -18
  91. package/templates/cli/OPENCODE.md +18 -18
  92. package/templates/cli/_GENERIC_TEMPLATE.md +29 -29
  93. package/templates/commands/rulebook-decision-create.md +55 -55
  94. package/templates/commands/rulebook-decision-list.md +15 -15
  95. package/templates/commands/rulebook-knowledge-add.md +41 -41
  96. package/templates/commands/rulebook-knowledge-list.md +15 -15
  97. package/templates/commands/rulebook-learn-capture.md +48 -48
  98. package/templates/commands/rulebook-learn-list.md +13 -13
  99. package/templates/commands/rulebook-memory-save.md +48 -48
  100. package/templates/commands/rulebook-memory-search.md +47 -47
  101. package/templates/commands/rulebook-task-apply.md +67 -67
  102. package/templates/commands/rulebook-task-archive.md +94 -94
  103. package/templates/commands/rulebook-task-create.md +93 -93
  104. package/templates/commands/rulebook-task-list.md +42 -42
  105. package/templates/commands/rulebook-task-show.md +52 -52
  106. package/templates/commands/rulebook-task-validate.md +53 -53
  107. package/templates/core/AGENTS_LEAN.md +25 -25
  108. package/templates/core/AGENTS_OVERRIDE.md +16 -16
  109. package/templates/core/AGENT_AUTOMATION.md +296 -296
  110. package/templates/core/DAG.md +304 -304
  111. package/templates/core/DECISIONS.md +38 -38
  112. package/templates/core/DOCUMENTATION_RULES.md +36 -36
  113. package/templates/core/KNOWLEDGE.md +49 -49
  114. package/templates/core/MULTI_AGENT.md +74 -74
  115. package/templates/core/PLANS.md +28 -28
  116. package/templates/core/QUALITY_ENFORCEMENT.md +68 -68
  117. package/templates/core/RALPH.md +471 -471
  118. package/templates/core/RULEBOOK.md +1947 -1947
  119. package/templates/core/TIER1_PROHIBITIONS.md +154 -154
  120. package/templates/core/TOKEN_OPTIMIZATION.md +49 -49
  121. package/templates/frameworks/ANGULAR.md +36 -36
  122. package/templates/frameworks/DJANGO.md +83 -83
  123. package/templates/frameworks/ELECTRON.md +147 -147
  124. package/templates/frameworks/FLASK.md +38 -38
  125. package/templates/frameworks/FLUTTER.md +55 -55
  126. package/templates/frameworks/JQUERY.md +32 -32
  127. package/templates/frameworks/LARAVEL.md +38 -38
  128. package/templates/frameworks/NESTJS.md +43 -43
  129. package/templates/frameworks/NEXTJS.md +127 -127
  130. package/templates/frameworks/NUXT.md +40 -40
  131. package/templates/frameworks/RAILS.md +66 -66
  132. package/templates/frameworks/REACT.md +38 -38
  133. package/templates/frameworks/REACT_NATIVE.md +47 -47
  134. package/templates/frameworks/SPRING.md +39 -39
  135. package/templates/frameworks/SYMFONY.md +36 -36
  136. package/templates/frameworks/VUE.md +36 -36
  137. package/templates/frameworks/ZEND.md +35 -35
  138. package/templates/git/CI_CD_PATTERNS.md +661 -661
  139. package/templates/git/GITHUB_ACTIONS.md +728 -728
  140. package/templates/git/GITLAB_CI.md +730 -730
  141. package/templates/git/GIT_WORKFLOW.md +1192 -1192
  142. package/templates/git/SECRETS_MANAGEMENT.md +585 -585
  143. package/templates/hooks/COMMIT_MSG.md +530 -530
  144. package/templates/hooks/POST_CHECKOUT.md +546 -546
  145. package/templates/hooks/PREPARE_COMMIT_MSG.md +619 -619
  146. package/templates/hooks/PRE_COMMIT.md +414 -414
  147. package/templates/hooks/PRE_PUSH.md +601 -601
  148. package/templates/ides/CONTINUE_RULES.md +16 -16
  149. package/templates/ides/COPILOT.md +37 -37
  150. package/templates/ides/COPILOT_INSTRUCTIONS.md +23 -23
  151. package/templates/ides/CURSOR.md +43 -43
  152. package/templates/ides/GEMINI_RULES.md +17 -17
  153. package/templates/ides/JETBRAINS_AI.md +35 -35
  154. package/templates/ides/REPLIT.md +36 -36
  155. package/templates/ides/TABNINE.md +29 -29
  156. package/templates/ides/VSCODE.md +40 -40
  157. package/templates/ides/WINDSURF.md +36 -36
  158. package/templates/ides/WINDSURF_RULES.md +14 -14
  159. package/templates/ides/ZED.md +32 -32
  160. package/templates/ides/cursor-mdc/go.mdc +24 -24
  161. package/templates/ides/cursor-mdc/python.mdc +24 -24
  162. package/templates/ides/cursor-mdc/quality.mdc +25 -25
  163. package/templates/ides/cursor-mdc/ralph.mdc +39 -39
  164. package/templates/ides/cursor-mdc/rulebook.mdc +38 -38
  165. package/templates/ides/cursor-mdc/rust.mdc +24 -24
  166. package/templates/ides/cursor-mdc/typescript.mdc +25 -25
  167. package/templates/languages/C.md +333 -333
  168. package/templates/languages/CPP.md +743 -743
  169. package/templates/languages/CSHARP.md +417 -417
  170. package/templates/languages/ELIXIR.md +454 -454
  171. package/templates/languages/ERLANG.md +361 -361
  172. package/templates/languages/GO.md +645 -645
  173. package/templates/languages/HASKELL.md +177 -177
  174. package/templates/languages/JAVA.md +607 -607
  175. package/templates/languages/JAVASCRIPT.md +631 -631
  176. package/templates/languages/JULIA.md +97 -97
  177. package/templates/languages/KOTLIN.md +511 -511
  178. package/templates/languages/LISP.md +100 -100
  179. package/templates/languages/LUA.md +74 -74
  180. package/templates/languages/OBJECTIVEC.md +90 -90
  181. package/templates/languages/PHP.md +416 -416
  182. package/templates/languages/PYTHON.md +682 -682
  183. package/templates/languages/RUBY.md +421 -421
  184. package/templates/languages/RUST.md +477 -477
  185. package/templates/languages/SAS.md +73 -73
  186. package/templates/languages/SCALA.md +348 -348
  187. package/templates/languages/SOLIDITY.md +580 -580
  188. package/templates/languages/SQL.md +137 -137
  189. package/templates/languages/SWIFT.md +466 -466
  190. package/templates/languages/TYPESCRIPT.md +591 -591
  191. package/templates/languages/ZIG.md +265 -265
  192. package/templates/modules/ATLASSIAN.md +255 -255
  193. package/templates/modules/CONTEXT7.md +54 -54
  194. package/templates/modules/FIGMA.md +267 -267
  195. package/templates/modules/GITHUB_MCP.md +64 -64
  196. package/templates/modules/GRAFANA.md +328 -328
  197. package/templates/modules/MEMORY.md +126 -126
  198. package/templates/modules/NOTION.md +247 -247
  199. package/templates/modules/PLAYWRIGHT.md +90 -90
  200. package/templates/modules/RULEBOOK_MCP.md +156 -156
  201. package/templates/modules/SERENA.md +337 -337
  202. package/templates/modules/SUPABASE.md +223 -223
  203. package/templates/modules/SYNAP.md +69 -69
  204. package/templates/modules/VECTORIZER.md +63 -63
  205. package/templates/modules/sequential-thinking.md +42 -42
  206. package/templates/ralph/ralph-history.bat +4 -4
  207. package/templates/ralph/ralph-history.sh +5 -5
  208. package/templates/ralph/ralph-init.bat +5 -5
  209. package/templates/ralph/ralph-init.sh +5 -5
  210. package/templates/ralph/ralph-pause.bat +5 -5
  211. package/templates/ralph/ralph-pause.sh +5 -5
  212. package/templates/ralph/ralph-run.bat +5 -5
  213. package/templates/ralph/ralph-run.sh +5 -5
  214. package/templates/ralph/ralph-status.bat +4 -4
  215. package/templates/ralph/ralph-status.sh +5 -5
  216. package/templates/rules/follow-task-sequence.md +36 -36
  217. package/templates/rules/git-safety.md +29 -29
  218. package/templates/rules/incremental-tests.md +29 -29
  219. package/templates/rules/knowledge-base-usage.md +41 -0
  220. package/templates/rules/no-deferred.md +31 -31
  221. package/templates/rules/no-shortcuts.md +30 -30
  222. package/templates/rules/research-first.md +30 -30
  223. package/templates/rules/sequential-editing.md +21 -21
  224. package/templates/rules/session-workflow.md +24 -24
  225. package/templates/rules/task-decomposition.md +32 -32
  226. package/templates/services/AZURE_BLOB.md +184 -184
  227. package/templates/services/CASSANDRA.md +239 -239
  228. package/templates/services/DATADOG.md +26 -26
  229. package/templates/services/DOCKER.md +124 -124
  230. package/templates/services/DOCKER_COMPOSE.md +168 -168
  231. package/templates/services/DYNAMODB.md +308 -308
  232. package/templates/services/ELASTICSEARCH.md +347 -347
  233. package/templates/services/GCS.md +178 -178
  234. package/templates/services/HELM.md +194 -194
  235. package/templates/services/INFLUXDB.md +265 -265
  236. package/templates/services/KAFKA.md +341 -341
  237. package/templates/services/KUBERNETES.md +208 -208
  238. package/templates/services/MARIADB.md +183 -183
  239. package/templates/services/MEMCACHED.md +242 -242
  240. package/templates/services/MINIO.md +201 -201
  241. package/templates/services/MONGODB.md +268 -268
  242. package/templates/services/MYSQL.md +358 -358
  243. package/templates/services/NEO4J.md +247 -247
  244. package/templates/services/OPENTELEMETRY.md +25 -25
  245. package/templates/services/ORACLE.md +290 -290
  246. package/templates/services/PINO.md +24 -24
  247. package/templates/services/POSTGRESQL.md +326 -326
  248. package/templates/services/PROMETHEUS.md +33 -33
  249. package/templates/services/RABBITMQ.md +286 -286
  250. package/templates/services/REDIS.md +292 -292
  251. package/templates/services/S3.md +298 -298
  252. package/templates/services/SENTRY.md +23 -23
  253. package/templates/services/SQLITE.md +294 -294
  254. package/templates/services/SQLSERVER.md +294 -294
  255. package/templates/services/WINSTON.md +30 -30
  256. package/templates/skills/cli/aider/SKILL.md +59 -59
  257. package/templates/skills/cli/amazon-q/SKILL.md +35 -35
  258. package/templates/skills/cli/auggie/SKILL.md +42 -42
  259. package/templates/skills/cli/claude/SKILL.md +42 -42
  260. package/templates/skills/cli/cline/SKILL.md +42 -42
  261. package/templates/skills/cli/codebuddy/SKILL.md +30 -30
  262. package/templates/skills/cli/codeium/SKILL.md +30 -30
  263. package/templates/skills/cli/codex/SKILL.md +31 -31
  264. package/templates/skills/cli/continue/SKILL.md +44 -44
  265. package/templates/skills/cli/cursor-cli/SKILL.md +38 -38
  266. package/templates/skills/cli/factory/SKILL.md +28 -28
  267. package/templates/skills/cli/gemini/SKILL.md +45 -45
  268. package/templates/skills/cli/kilocode/SKILL.md +28 -28
  269. package/templates/skills/cli/opencode/SKILL.md +28 -28
  270. package/templates/skills/core/agent-automation/SKILL.md +194 -194
  271. package/templates/skills/core/dag/SKILL.md +314 -314
  272. package/templates/skills/core/documentation-rules/SKILL.md +46 -46
  273. package/templates/skills/core/quality-enforcement/SKILL.md +78 -78
  274. package/templates/skills/core/rulebook/SKILL.md +176 -176
  275. package/templates/skills/dev/accessibility/SKILL.md +17 -17
  276. package/templates/skills/dev/api-design/SKILL.md +15 -15
  277. package/templates/skills/dev/architect/SKILL.md +17 -17
  278. package/templates/skills/dev/build-fix/SKILL.md +17 -17
  279. package/templates/skills/dev/db-design/SKILL.md +15 -15
  280. package/templates/skills/dev/debug/SKILL.md +16 -16
  281. package/templates/skills/dev/deploy/SKILL.md +17 -17
  282. package/templates/skills/dev/docs/SKILL.md +17 -17
  283. package/templates/skills/dev/migrate/SKILL.md +15 -15
  284. package/templates/skills/dev/perf/SKILL.md +17 -17
  285. package/templates/skills/dev/refactor/SKILL.md +17 -17
  286. package/templates/skills/dev/research/SKILL.md +14 -14
  287. package/templates/skills/dev/review/SKILL.md +18 -18
  288. package/templates/skills/dev/security-audit/SKILL.md +17 -17
  289. package/templates/skills/frameworks/angular/SKILL.md +46 -46
  290. package/templates/skills/frameworks/django/SKILL.md +93 -93
  291. package/templates/skills/frameworks/electron/SKILL.md +157 -157
  292. package/templates/skills/frameworks/flask/SKILL.md +48 -48
  293. package/templates/skills/frameworks/flutter/SKILL.md +65 -65
  294. package/templates/skills/frameworks/jquery/SKILL.md +42 -42
  295. package/templates/skills/frameworks/laravel/SKILL.md +48 -48
  296. package/templates/skills/frameworks/nestjs/SKILL.md +53 -53
  297. package/templates/skills/frameworks/nextjs/SKILL.md +137 -137
  298. package/templates/skills/frameworks/nuxt/SKILL.md +50 -50
  299. package/templates/skills/frameworks/rails/SKILL.md +76 -76
  300. package/templates/skills/frameworks/react/SKILL.md +48 -48
  301. package/templates/skills/frameworks/react-native/SKILL.md +57 -57
  302. package/templates/skills/frameworks/spring/SKILL.md +49 -49
  303. package/templates/skills/frameworks/symfony/SKILL.md +46 -46
  304. package/templates/skills/frameworks/vue/SKILL.md +46 -46
  305. package/templates/skills/frameworks/zend/SKILL.md +45 -45
  306. package/templates/skills/ides/copilot/SKILL.md +47 -47
  307. package/templates/skills/ides/cursor/SKILL.md +53 -53
  308. package/templates/skills/ides/jetbrains-ai/SKILL.md +45 -45
  309. package/templates/skills/ides/replit/SKILL.md +46 -46
  310. package/templates/skills/ides/tabnine/SKILL.md +39 -39
  311. package/templates/skills/ides/vscode/SKILL.md +50 -50
  312. package/templates/skills/ides/windsurf/SKILL.md +46 -46
  313. package/templates/skills/ides/zed/SKILL.md +42 -42
  314. package/templates/skills/languages/c/SKILL.md +343 -343
  315. package/templates/skills/languages/cpp/SKILL.md +753 -753
  316. package/templates/skills/languages/csharp/SKILL.md +427 -427
  317. package/templates/skills/languages/elixir/SKILL.md +464 -464
  318. package/templates/skills/languages/erlang/SKILL.md +371 -371
  319. package/templates/skills/languages/go/SKILL.md +655 -655
  320. package/templates/skills/languages/haskell/SKILL.md +187 -187
  321. package/templates/skills/languages/java/SKILL.md +617 -617
  322. package/templates/skills/languages/javascript/SKILL.md +641 -641
  323. package/templates/skills/languages/julia/SKILL.md +107 -107
  324. package/templates/skills/languages/kotlin/SKILL.md +521 -521
  325. package/templates/skills/languages/lisp/SKILL.md +110 -110
  326. package/templates/skills/languages/lua/SKILL.md +84 -84
  327. package/templates/skills/languages/objectivec/SKILL.md +100 -100
  328. package/templates/skills/languages/php/SKILL.md +426 -426
  329. package/templates/skills/languages/python/SKILL.md +692 -692
  330. package/templates/skills/languages/ruby/SKILL.md +431 -431
  331. package/templates/skills/languages/rust/SKILL.md +487 -487
  332. package/templates/skills/languages/sas/SKILL.md +83 -83
  333. package/templates/skills/languages/scala/SKILL.md +358 -358
  334. package/templates/skills/languages/solidity/SKILL.md +590 -590
  335. package/templates/skills/languages/sql/SKILL.md +147 -147
  336. package/templates/skills/languages/swift/SKILL.md +476 -476
  337. package/templates/skills/languages/typescript/SKILL.md +302 -302
  338. package/templates/skills/languages/zig/SKILL.md +275 -275
  339. package/templates/skills/modules/atlassian/SKILL.md +265 -265
  340. package/templates/skills/modules/context7/SKILL.md +64 -64
  341. package/templates/skills/modules/figma/SKILL.md +277 -277
  342. package/templates/skills/modules/github-mcp/SKILL.md +74 -74
  343. package/templates/skills/modules/grafana/SKILL.md +338 -338
  344. package/templates/skills/modules/memory/SKILL.md +73 -73
  345. package/templates/skills/modules/notion/SKILL.md +257 -257
  346. package/templates/skills/modules/playwright/SKILL.md +100 -100
  347. package/templates/skills/modules/rulebook-mcp/SKILL.md +166 -166
  348. package/templates/skills/modules/serena/SKILL.md +347 -347
  349. package/templates/skills/modules/supabase/SKILL.md +233 -233
  350. package/templates/skills/modules/synap/SKILL.md +79 -79
  351. package/templates/skills/modules/vectorizer/SKILL.md +73 -73
  352. package/templates/skills/services/azure-blob/SKILL.md +194 -194
  353. package/templates/skills/services/cassandra/SKILL.md +249 -249
  354. package/templates/skills/services/dynamodb/SKILL.md +318 -318
  355. package/templates/skills/services/elasticsearch/SKILL.md +357 -357
  356. package/templates/skills/services/gcs/SKILL.md +188 -188
  357. package/templates/skills/services/influxdb/SKILL.md +275 -275
  358. package/templates/skills/services/kafka/SKILL.md +351 -351
  359. package/templates/skills/services/mariadb/SKILL.md +193 -193
  360. package/templates/skills/services/memcached/SKILL.md +252 -252
  361. package/templates/skills/services/minio/SKILL.md +211 -211
  362. package/templates/skills/services/mongodb/SKILL.md +278 -278
  363. package/templates/skills/services/mysql/SKILL.md +368 -368
  364. package/templates/skills/services/neo4j/SKILL.md +257 -257
  365. package/templates/skills/services/oracle/SKILL.md +300 -300
  366. package/templates/skills/services/postgresql/SKILL.md +336 -336
  367. package/templates/skills/services/rabbitmq/SKILL.md +296 -296
  368. package/templates/skills/services/redis/SKILL.md +302 -302
  369. package/templates/skills/services/s3/SKILL.md +308 -308
  370. package/templates/skills/services/sqlite/SKILL.md +304 -304
  371. package/templates/skills/services/sqlserver/SKILL.md +304 -304
  372. package/templates/skills/workflows/ralph/SKILL.md +309 -309
  373. package/templates/skills/workflows/ralph/install.sh +87 -87
  374. package/templates/skills/workflows/ralph/manifest.json +158 -158
@@ -1,124 +1,124 @@
1
- <!-- DOCKER:START -->
2
- # Docker Instructions
3
-
4
- **CRITICAL**: Follow these Docker best practices for all container builds.
5
-
6
- ## Build Patterns
7
-
8
- ### Multi-Stage Builds
9
- Use multi-stage builds to minimize final image size and separate build-time dependencies from runtime:
10
-
11
- ```dockerfile
12
- FROM node:20-alpine AS builder
13
- WORKDIR /app
14
- COPY package*.json ./
15
- RUN npm ci
16
- COPY . .
17
- RUN npm run build
18
-
19
- FROM node:20-alpine AS runtime
20
- RUN adduser -D appuser
21
- USER appuser
22
- WORKDIR /app
23
- COPY --from=builder /app/dist ./dist
24
- COPY --from=builder /app/node_modules ./node_modules
25
- COPY --from=builder /app/package.json ./
26
- HEALTHCHECK --interval=30s --timeout=3s CMD node -e "require('http').get('http://localhost:3000/health', (r) => { process.exit(r.statusCode === 200 ? 0 : 1) })"
27
- CMD ["node", "dist/index.js"]
28
- ```
29
-
30
- ### Base Image Selection
31
- - Pin base image versions: `node:20-alpine` not `node:latest`
32
- - Prefer `-alpine` or `-slim` variants for smaller images
33
- - Use official images from Docker Hub verified publishers
34
-
35
- ## Security Requirements
36
-
37
- ### Non-Root User
38
- ALL containers MUST run as a non-root user:
39
- ```dockerfile
40
- RUN adduser -D appuser
41
- USER appuser
42
- ```
43
-
44
- ### Secrets
45
- - NEVER copy secrets (`.env`, credentials, keys) into image layers
46
- - Use Docker secrets or runtime environment variables instead
47
- - Scan images with `docker scout cves` or `trivy image` before pushing
48
- - Add `--no-cache` to package install commands to reduce attack surface
49
-
50
- ### Image Scanning
51
- ```bash
52
- # Docker Scout (built-in)
53
- docker scout cves <image>
54
-
55
- # Trivy
56
- trivy image <image>
57
- ```
58
-
59
- ## Required Instructions
60
-
61
- ### HEALTHCHECK
62
- ALL production images MUST include a HEALTHCHECK:
63
- ```dockerfile
64
- HEALTHCHECK --interval=30s --timeout=3s --start-period=10s --retries=3 \
65
- CMD curl -f http://localhost:3000/health || exit 1
66
- ```
67
-
68
- ### .dockerignore Requirements
69
- Every Docker project MUST have a `.dockerignore` file containing at minimum:
70
- ```
71
- .git
72
- node_modules
73
- dist
74
- coverage
75
- *.log
76
- .env*
77
- .DS_Store
78
- *.md
79
- .vscode
80
- .idea
81
- ```
82
-
83
- ## Common Patterns
84
-
85
- ### Layer Caching
86
- Order Dockerfile instructions from least-changing to most-changing:
87
- ```dockerfile
88
- # 1. Base image (rarely changes)
89
- FROM node:20-alpine
90
-
91
- # 2. System dependencies (changes rarely)
92
- RUN apk add --no-cache curl
93
-
94
- # 3. Package files (changes when deps change)
95
- COPY package*.json ./
96
- RUN npm ci --only=production
97
-
98
- # 4. Application code (changes frequently)
99
- COPY . .
100
- ```
101
-
102
- ### Production Optimization
103
- ```dockerfile
104
- # Use npm ci for deterministic installs
105
- RUN npm ci --only=production
106
-
107
- # Remove unnecessary files
108
- RUN rm -rf /tmp/* /var/cache/apk/*
109
-
110
- # Set NODE_ENV
111
- ENV NODE_ENV=production
112
- ```
113
-
114
- ## Best Practices
115
-
116
- - Use `.dockerignore` to exclude unnecessary files from build context
117
- - One process per container (do not run multiple services in one container)
118
- - Use `COPY` over `ADD` unless extracting archives
119
- - Combine RUN commands to reduce layers: `RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/*`
120
- - Set explicit `WORKDIR` instead of `RUN cd`
121
- - Use `EXPOSE` to document listening ports
122
- - Tag images with semantic versions, not just `latest`
123
-
124
- <!-- DOCKER:END -->
1
+ <!-- DOCKER:START -->
2
+ # Docker Instructions
3
+
4
+ **CRITICAL**: Follow these Docker best practices for all container builds.
5
+
6
+ ## Build Patterns
7
+
8
+ ### Multi-Stage Builds
9
+ Use multi-stage builds to minimize final image size and separate build-time dependencies from runtime:
10
+
11
+ ```dockerfile
12
+ FROM node:20-alpine AS builder
13
+ WORKDIR /app
14
+ COPY package*.json ./
15
+ RUN npm ci
16
+ COPY . .
17
+ RUN npm run build
18
+
19
+ FROM node:20-alpine AS runtime
20
+ RUN adduser -D appuser
21
+ USER appuser
22
+ WORKDIR /app
23
+ COPY --from=builder /app/dist ./dist
24
+ COPY --from=builder /app/node_modules ./node_modules
25
+ COPY --from=builder /app/package.json ./
26
+ HEALTHCHECK --interval=30s --timeout=3s CMD node -e "require('http').get('http://localhost:3000/health', (r) => { process.exit(r.statusCode === 200 ? 0 : 1) })"
27
+ CMD ["node", "dist/index.js"]
28
+ ```
29
+
30
+ ### Base Image Selection
31
+ - Pin base image versions: `node:20-alpine` not `node:latest`
32
+ - Prefer `-alpine` or `-slim` variants for smaller images
33
+ - Use official images from Docker Hub verified publishers
34
+
35
+ ## Security Requirements
36
+
37
+ ### Non-Root User
38
+ ALL containers MUST run as a non-root user:
39
+ ```dockerfile
40
+ RUN adduser -D appuser
41
+ USER appuser
42
+ ```
43
+
44
+ ### Secrets
45
+ - NEVER copy secrets (`.env`, credentials, keys) into image layers
46
+ - Use Docker secrets or runtime environment variables instead
47
+ - Scan images with `docker scout cves` or `trivy image` before pushing
48
+ - Add `--no-cache` to package install commands to reduce attack surface
49
+
50
+ ### Image Scanning
51
+ ```bash
52
+ # Docker Scout (built-in)
53
+ docker scout cves <image>
54
+
55
+ # Trivy
56
+ trivy image <image>
57
+ ```
58
+
59
+ ## Required Instructions
60
+
61
+ ### HEALTHCHECK
62
+ ALL production images MUST include a HEALTHCHECK:
63
+ ```dockerfile
64
+ HEALTHCHECK --interval=30s --timeout=3s --start-period=10s --retries=3 \
65
+ CMD curl -f http://localhost:3000/health || exit 1
66
+ ```
67
+
68
+ ### .dockerignore Requirements
69
+ Every Docker project MUST have a `.dockerignore` file containing at minimum:
70
+ ```
71
+ .git
72
+ node_modules
73
+ dist
74
+ coverage
75
+ *.log
76
+ .env*
77
+ .DS_Store
78
+ *.md
79
+ .vscode
80
+ .idea
81
+ ```
82
+
83
+ ## Common Patterns
84
+
85
+ ### Layer Caching
86
+ Order Dockerfile instructions from least-changing to most-changing:
87
+ ```dockerfile
88
+ # 1. Base image (rarely changes)
89
+ FROM node:20-alpine
90
+
91
+ # 2. System dependencies (changes rarely)
92
+ RUN apk add --no-cache curl
93
+
94
+ # 3. Package files (changes when deps change)
95
+ COPY package*.json ./
96
+ RUN npm ci --only=production
97
+
98
+ # 4. Application code (changes frequently)
99
+ COPY . .
100
+ ```
101
+
102
+ ### Production Optimization
103
+ ```dockerfile
104
+ # Use npm ci for deterministic installs
105
+ RUN npm ci --only=production
106
+
107
+ # Remove unnecessary files
108
+ RUN rm -rf /tmp/* /var/cache/apk/*
109
+
110
+ # Set NODE_ENV
111
+ ENV NODE_ENV=production
112
+ ```
113
+
114
+ ## Best Practices
115
+
116
+ - Use `.dockerignore` to exclude unnecessary files from build context
117
+ - One process per container (do not run multiple services in one container)
118
+ - Use `COPY` over `ADD` unless extracting archives
119
+ - Combine RUN commands to reduce layers: `RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/*`
120
+ - Set explicit `WORKDIR` instead of `RUN cd`
121
+ - Use `EXPOSE` to document listening ports
122
+ - Tag images with semantic versions, not just `latest`
123
+
124
+ <!-- DOCKER:END -->
@@ -1,168 +1,168 @@
1
- <!-- DOCKER_COMPOSE:START -->
2
- # Docker Compose Instructions
3
-
4
- **CRITICAL**: Follow these Docker Compose best practices for local development and multi-container orchestration.
5
-
6
- ## Version and Structure
7
-
8
- ### File Organization
9
- - Use `docker-compose.yml` for base configuration
10
- - Use `docker-compose.override.yml` for local development overrides
11
- - Use `docker-compose.prod.yml` for production-specific settings
12
- - Do NOT commit secrets in `docker-compose.yml` — use `.env` files
13
-
14
- ### Compose File
15
- ```yaml
16
- services:
17
- app:
18
- build:
19
- context: .
20
- dockerfile: Dockerfile
21
- target: runtime
22
- env_file: [.env]
23
- ports:
24
- - "3000:3000"
25
- depends_on:
26
- db:
27
- condition: service_healthy
28
- healthcheck:
29
- test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
30
- interval: 30s
31
- timeout: 3s
32
- retries: 3
33
- start_period: 10s
34
- deploy:
35
- resources:
36
- limits:
37
- memory: 512M
38
- cpus: "0.5"
39
- restart: unless-stopped
40
- ```
41
-
42
- ## Required Fields Per Service
43
-
44
- ### Health Checks
45
- ALL services MUST define a healthcheck:
46
- ```yaml
47
- healthcheck:
48
- test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
49
- interval: 30s
50
- timeout: 3s
51
- retries: 3
52
- ```
53
-
54
- ### Resource Limits
55
- ALL services SHOULD define resource limits for production-like environments:
56
- ```yaml
57
- deploy:
58
- resources:
59
- limits:
60
- memory: 512M
61
- cpus: "0.5"
62
- reservations:
63
- memory: 128M
64
- cpus: "0.25"
65
- ```
66
-
67
- ### Restart Policy
68
- ```yaml
69
- restart: unless-stopped
70
- ```
71
-
72
- ### Named Volumes
73
- Use named volumes (not bind mounts) for persistent data:
74
- ```yaml
75
- volumes:
76
- postgres_data:
77
- redis_data:
78
-
79
- services:
80
- db:
81
- volumes:
82
- - postgres_data:/var/lib/postgresql/data
83
- ```
84
-
85
- ## Environment Variables
86
-
87
- ### Configuration
88
- - Use `.env` file: `env_file: [.env]`
89
- - Never hardcode credentials in docker-compose.yml
90
- - Document all required environment variables in README or `.env.example`
91
-
92
- ### .env.example Pattern
93
- ```bash
94
- # Database
95
- DB_HOST=localhost
96
- DB_PORT=5432
97
- DB_NAME=myapp
98
- DB_USER=myuser
99
- DB_PASSWORD=changeme
100
-
101
- # Redis
102
- REDIS_URL=redis://localhost:6379
103
-
104
- # Application
105
- NODE_ENV=development
106
- PORT=3000
107
- ```
108
-
109
- ## Networking
110
-
111
- ### Service Communication
112
- - Services on the same network communicate by service name
113
- - Use explicit networks for isolation:
114
- ```yaml
115
- networks:
116
- frontend:
117
- backend:
118
-
119
- services:
120
- app:
121
- networks: [frontend, backend]
122
- db:
123
- networks: [backend]
124
- ```
125
-
126
- ## Common Patterns
127
-
128
- ### Development Setup
129
- ```yaml
130
- services:
131
- app:
132
- build: .
133
- volumes:
134
- - .:/app
135
- - /app/node_modules
136
- environment:
137
- - NODE_ENV=development
138
- command: npm run dev
139
- ```
140
-
141
- ### Database with Init Scripts
142
- ```yaml
143
- services:
144
- db:
145
- image: postgres:16-alpine
146
- environment:
147
- POSTGRES_DB: myapp
148
- POSTGRES_USER: myuser
149
- POSTGRES_PASSWORD: ${DB_PASSWORD}
150
- volumes:
151
- - postgres_data:/var/lib/postgresql/data
152
- - ./init.sql:/docker-entrypoint-initdb.d/init.sql
153
- healthcheck:
154
- test: ["CMD-SHELL", "pg_isready -U myuser"]
155
- interval: 10s
156
- retries: 5
157
- ```
158
-
159
- ## Best Practices
160
-
161
- - Use `depends_on` with `condition: service_healthy` for startup ordering
162
- - Pin image versions (e.g., `postgres:16-alpine`, not `postgres:latest`)
163
- - Keep compose files DRY with YAML anchors or extension fields (`x-common`)
164
- - Use `docker compose up --build` to rebuild images after code changes
165
- - Run `docker compose down -v` to clean up volumes during development
166
- - Separate concerns: one service per container
167
-
168
- <!-- DOCKER_COMPOSE:END -->
1
+ <!-- DOCKER_COMPOSE:START -->
2
+ # Docker Compose Instructions
3
+
4
+ **CRITICAL**: Follow these Docker Compose best practices for local development and multi-container orchestration.
5
+
6
+ ## Version and Structure
7
+
8
+ ### File Organization
9
+ - Use `docker-compose.yml` for base configuration
10
+ - Use `docker-compose.override.yml` for local development overrides
11
+ - Use `docker-compose.prod.yml` for production-specific settings
12
+ - Do NOT commit secrets in `docker-compose.yml` — use `.env` files
13
+
14
+ ### Compose File
15
+ ```yaml
16
+ services:
17
+ app:
18
+ build:
19
+ context: .
20
+ dockerfile: Dockerfile
21
+ target: runtime
22
+ env_file: [.env]
23
+ ports:
24
+ - "3000:3000"
25
+ depends_on:
26
+ db:
27
+ condition: service_healthy
28
+ healthcheck:
29
+ test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
30
+ interval: 30s
31
+ timeout: 3s
32
+ retries: 3
33
+ start_period: 10s
34
+ deploy:
35
+ resources:
36
+ limits:
37
+ memory: 512M
38
+ cpus: "0.5"
39
+ restart: unless-stopped
40
+ ```
41
+
42
+ ## Required Fields Per Service
43
+
44
+ ### Health Checks
45
+ ALL services MUST define a healthcheck:
46
+ ```yaml
47
+ healthcheck:
48
+ test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
49
+ interval: 30s
50
+ timeout: 3s
51
+ retries: 3
52
+ ```
53
+
54
+ ### Resource Limits
55
+ ALL services SHOULD define resource limits for production-like environments:
56
+ ```yaml
57
+ deploy:
58
+ resources:
59
+ limits:
60
+ memory: 512M
61
+ cpus: "0.5"
62
+ reservations:
63
+ memory: 128M
64
+ cpus: "0.25"
65
+ ```
66
+
67
+ ### Restart Policy
68
+ ```yaml
69
+ restart: unless-stopped
70
+ ```
71
+
72
+ ### Named Volumes
73
+ Use named volumes (not bind mounts) for persistent data:
74
+ ```yaml
75
+ volumes:
76
+ postgres_data:
77
+ redis_data:
78
+
79
+ services:
80
+ db:
81
+ volumes:
82
+ - postgres_data:/var/lib/postgresql/data
83
+ ```
84
+
85
+ ## Environment Variables
86
+
87
+ ### Configuration
88
+ - Use `.env` file: `env_file: [.env]`
89
+ - Never hardcode credentials in docker-compose.yml
90
+ - Document all required environment variables in README or `.env.example`
91
+
92
+ ### .env.example Pattern
93
+ ```bash
94
+ # Database
95
+ DB_HOST=localhost
96
+ DB_PORT=5432
97
+ DB_NAME=myapp
98
+ DB_USER=myuser
99
+ DB_PASSWORD=changeme
100
+
101
+ # Redis
102
+ REDIS_URL=redis://localhost:6379
103
+
104
+ # Application
105
+ NODE_ENV=development
106
+ PORT=3000
107
+ ```
108
+
109
+ ## Networking
110
+
111
+ ### Service Communication
112
+ - Services on the same network communicate by service name
113
+ - Use explicit networks for isolation:
114
+ ```yaml
115
+ networks:
116
+ frontend:
117
+ backend:
118
+
119
+ services:
120
+ app:
121
+ networks: [frontend, backend]
122
+ db:
123
+ networks: [backend]
124
+ ```
125
+
126
+ ## Common Patterns
127
+
128
+ ### Development Setup
129
+ ```yaml
130
+ services:
131
+ app:
132
+ build: .
133
+ volumes:
134
+ - .:/app
135
+ - /app/node_modules
136
+ environment:
137
+ - NODE_ENV=development
138
+ command: npm run dev
139
+ ```
140
+
141
+ ### Database with Init Scripts
142
+ ```yaml
143
+ services:
144
+ db:
145
+ image: postgres:16-alpine
146
+ environment:
147
+ POSTGRES_DB: myapp
148
+ POSTGRES_USER: myuser
149
+ POSTGRES_PASSWORD: ${DB_PASSWORD}
150
+ volumes:
151
+ - postgres_data:/var/lib/postgresql/data
152
+ - ./init.sql:/docker-entrypoint-initdb.d/init.sql
153
+ healthcheck:
154
+ test: ["CMD-SHELL", "pg_isready -U myuser"]
155
+ interval: 10s
156
+ retries: 5
157
+ ```
158
+
159
+ ## Best Practices
160
+
161
+ - Use `depends_on` with `condition: service_healthy` for startup ordering
162
+ - Pin image versions (e.g., `postgres:16-alpine`, not `postgres:latest`)
163
+ - Keep compose files DRY with YAML anchors or extension fields (`x-common`)
164
+ - Use `docker compose up --build` to rebuild images after code changes
165
+ - Run `docker compose down -v` to clean up volumes during development
166
+ - Separate concerns: one service per container
167
+
168
+ <!-- DOCKER_COMPOSE:END -->