@hivehub/rulebook 5.4.0 → 5.4.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 (454) hide show
  1. package/.claude/commands/analysis.md +35 -35
  2. package/.claude/commands/continue.md +33 -33
  3. package/.claude/commands/ralph-config.md +112 -112
  4. package/.claude/commands/ralph-history.md +110 -110
  5. package/.claude/commands/ralph-init.md +72 -72
  6. package/.claude/commands/ralph-pause-resume.md +105 -105
  7. package/.claude/commands/ralph-run.md +101 -101
  8. package/.claude/commands/ralph-status.md +76 -76
  9. package/.claude/commands/rulebook-decision-create.md +55 -55
  10. package/.claude/commands/rulebook-decision-list.md +15 -15
  11. package/.claude/commands/rulebook-knowledge-add.md +41 -41
  12. package/.claude/commands/rulebook-knowledge-list.md +15 -15
  13. package/.claude/commands/rulebook-learn-capture.md +48 -48
  14. package/.claude/commands/rulebook-learn-list.md +13 -13
  15. package/.claude/commands/rulebook-memory-save.md +48 -48
  16. package/.claude/commands/rulebook-memory-search.md +47 -47
  17. package/.claude/commands/rulebook-task-apply.md +67 -67
  18. package/.claude/commands/rulebook-task-archive.md +94 -94
  19. package/.claude/commands/rulebook-task-create.md +93 -93
  20. package/.claude/commands/rulebook-task-list.md +42 -42
  21. package/.claude/commands/rulebook-task-show.md +52 -52
  22. package/.claude/commands/rulebook-task-validate.md +53 -53
  23. package/.claude-plugin/marketplace.json +28 -28
  24. package/.claude-plugin/plugin.json +8 -8
  25. package/LICENSE +191 -191
  26. package/README.md +393 -393
  27. package/dist/index.js +0 -0
  28. package/dist/mcp/rulebook-server.js +0 -0
  29. package/package.json +22 -21
  30. package/templates/agents/accessibility-reviewer.md +43 -43
  31. package/templates/agents/api-designer.md +42 -42
  32. package/templates/agents/architect.md +51 -51
  33. package/templates/agents/build-engineer.md +36 -36
  34. package/templates/agents/code-reviewer.md +47 -47
  35. package/templates/agents/compiler/codegen-debugger.md +34 -34
  36. package/templates/agents/compiler/stdlib-engineer.md +28 -28
  37. package/templates/agents/compiler/test-coverage-guardian.md +31 -31
  38. package/templates/agents/context-intelligence.md +52 -52
  39. package/templates/agents/database-architect.md +41 -41
  40. package/templates/agents/devops-engineer.md +42 -42
  41. package/templates/agents/docs-writer.md +38 -38
  42. package/templates/agents/game-engine/cpp-core-expert.md +35 -35
  43. package/templates/agents/game-engine/render-engineer.md +22 -22
  44. package/templates/agents/game-engine/shader-engineer.md +38 -38
  45. package/templates/agents/game-engine/systems-integration.md +43 -43
  46. package/templates/agents/generic/code-reviewer.md +41 -41
  47. package/templates/agents/generic/docs-writer.md +25 -25
  48. package/templates/agents/generic/project-manager.md +36 -36
  49. package/templates/agents/generic/researcher.md +34 -34
  50. package/templates/agents/generic/test-engineer.md +41 -41
  51. package/templates/agents/i18n-engineer.md +42 -42
  52. package/templates/agents/implementer.md +42 -42
  53. package/templates/agents/migration-engineer.md +42 -42
  54. package/templates/agents/mobile/platform-specialist.md +22 -22
  55. package/templates/agents/mobile/ui-engineer.md +22 -22
  56. package/templates/agents/performance-engineer.md +49 -49
  57. package/templates/agents/refactoring-agent.md +41 -41
  58. package/templates/agents/researcher.md +38 -38
  59. package/templates/agents/security-reviewer.md +40 -40
  60. package/templates/agents/team-lead.md +37 -37
  61. package/templates/agents/tester.md +48 -48
  62. package/templates/agents/ux-reviewer.md +43 -43
  63. package/templates/agents/web-app/api-designer.md +22 -22
  64. package/templates/agents/web-app/backend-engineer.md +30 -30
  65. package/templates/agents/web-app/database-engineer.md +22 -22
  66. package/templates/agents/web-app/frontend-engineer.md +29 -29
  67. package/templates/agents/web-app/security-reviewer.md +32 -32
  68. package/templates/ci/rulebook-review.yml +26 -26
  69. package/templates/cli/AIDER.md +49 -49
  70. package/templates/cli/AMAZON_Q.md +25 -25
  71. package/templates/cli/AUGGIE.md +32 -32
  72. package/templates/cli/CLAUDE.md +117 -117
  73. package/templates/cli/CLINE.md +99 -99
  74. package/templates/cli/CODEBUDDY.md +20 -20
  75. package/templates/cli/CODEIUM.md +20 -20
  76. package/templates/cli/CODEX.md +21 -21
  77. package/templates/cli/CONTINUE.md +34 -34
  78. package/templates/cli/CURSOR_CLI.md +62 -62
  79. package/templates/cli/FACTORY.md +18 -18
  80. package/templates/cli/GEMINI.md +35 -35
  81. package/templates/cli/KILOCODE.md +18 -18
  82. package/templates/cli/OPENCODE.md +18 -18
  83. package/templates/cli/_GENERIC_TEMPLATE.md +29 -29
  84. package/templates/cli/gemini-extension.json +77 -77
  85. package/templates/commands/rulebook-decision-create.md +55 -55
  86. package/templates/commands/rulebook-decision-list.md +15 -15
  87. package/templates/commands/rulebook-knowledge-add.md +41 -41
  88. package/templates/commands/rulebook-knowledge-list.md +15 -15
  89. package/templates/commands/rulebook-learn-capture.md +48 -48
  90. package/templates/commands/rulebook-learn-list.md +13 -13
  91. package/templates/commands/rulebook-memory-save.md +48 -48
  92. package/templates/commands/rulebook-memory-search.md +47 -47
  93. package/templates/commands/rulebook-task-apply.md +67 -67
  94. package/templates/commands/rulebook-task-archive.md +94 -94
  95. package/templates/commands/rulebook-task-create.md +93 -93
  96. package/templates/commands/rulebook-task-list.md +42 -42
  97. package/templates/commands/rulebook-task-show.md +52 -52
  98. package/templates/commands/rulebook-task-validate.md +53 -53
  99. package/templates/compact-context/_default.md +23 -23
  100. package/templates/compact-context/cpp.md +26 -26
  101. package/templates/compact-context/go.md +26 -26
  102. package/templates/compact-context/python.md +26 -26
  103. package/templates/compact-context/rust.md +28 -28
  104. package/templates/compact-context/typescript.md +29 -29
  105. package/templates/core/AGENTS_OVERRIDE.md +16 -16
  106. package/templates/core/AGENT_AUTOMATION.md +296 -296
  107. package/templates/core/CLAUDE_MD_v2.md +71 -71
  108. package/templates/core/DAG.md +304 -304
  109. package/templates/core/DECISIONS.md +38 -38
  110. package/templates/core/DOCUMENTATION_RULES.md +36 -36
  111. package/templates/core/KNOWLEDGE.md +49 -49
  112. package/templates/core/MULTI_AGENT.md +74 -74
  113. package/templates/core/PLANS.md +28 -28
  114. package/templates/core/QUALITY_ENFORCEMENT.md +68 -68
  115. package/templates/core/RALPH.md +471 -471
  116. package/templates/core/RULEBOOK.md +1947 -1947
  117. package/templates/core/TIER1_PROHIBITIONS.md +154 -154
  118. package/templates/core/TOKEN_OPTIMIZATION.md +49 -49
  119. package/templates/core/WORKSPACE.md +69 -69
  120. package/templates/frameworks/ANGULAR.md +36 -36
  121. package/templates/frameworks/DJANGO.md +83 -83
  122. package/templates/frameworks/ELECTRON.md +147 -147
  123. package/templates/frameworks/FLASK.md +38 -38
  124. package/templates/frameworks/FLUTTER.md +55 -55
  125. package/templates/frameworks/JQUERY.md +32 -32
  126. package/templates/frameworks/LARAVEL.md +38 -38
  127. package/templates/frameworks/NESTJS.md +43 -43
  128. package/templates/frameworks/NEXTJS.md +127 -127
  129. package/templates/frameworks/NUXT.md +40 -40
  130. package/templates/frameworks/RAILS.md +66 -66
  131. package/templates/frameworks/REACT.md +38 -38
  132. package/templates/frameworks/REACT_NATIVE.md +47 -47
  133. package/templates/frameworks/SPRING.md +39 -39
  134. package/templates/frameworks/SYMFONY.md +36 -36
  135. package/templates/frameworks/VUE.md +36 -36
  136. package/templates/frameworks/ZEND.md +35 -35
  137. package/templates/git/CI_CD_PATTERNS.md +661 -661
  138. package/templates/git/GITHUB_ACTIONS.md +728 -728
  139. package/templates/git/GITLAB_CI.md +730 -730
  140. package/templates/git/GIT_WORKFLOW.md +1192 -1192
  141. package/templates/git/SECRETS_MANAGEMENT.md +585 -585
  142. package/templates/hooks/COMMIT_MSG.md +530 -530
  143. package/templates/hooks/POST_CHECKOUT.md +546 -546
  144. package/templates/hooks/PREPARE_COMMIT_MSG.md +619 -619
  145. package/templates/hooks/PRE_COMMIT.md +414 -414
  146. package/templates/hooks/PRE_PUSH.md +601 -601
  147. package/templates/hooks/check-context-and-handoff.ps1 +58 -58
  148. package/templates/hooks/check-context-and-handoff.sh +76 -76
  149. package/templates/hooks/enforce-team-for-background-agents.ps1 +63 -63
  150. package/templates/hooks/enforce-team-for-background-agents.sh +55 -55
  151. package/templates/hooks/on-compact-reinject.sh +34 -34
  152. package/templates/hooks/resume-from-handoff.ps1 +40 -40
  153. package/templates/hooks/resume-from-handoff.sh +61 -61
  154. package/templates/hooks/terse-activate.ps1 +143 -143
  155. package/templates/hooks/terse-activate.sh +197 -197
  156. package/templates/hooks/terse-mode-tracker.ps1 +153 -153
  157. package/templates/hooks/terse-mode-tracker.sh +187 -187
  158. package/templates/ides/CONTINUE_RULES.md +16 -16
  159. package/templates/ides/COPILOT.md +37 -37
  160. package/templates/ides/COPILOT_INSTRUCTIONS.md +23 -23
  161. package/templates/ides/CURSOR.md +43 -43
  162. package/templates/ides/GEMINI_RULES.md +17 -17
  163. package/templates/ides/JETBRAINS_AI.md +35 -35
  164. package/templates/ides/REPLIT.md +36 -36
  165. package/templates/ides/TABNINE.md +29 -29
  166. package/templates/ides/VSCODE.md +40 -40
  167. package/templates/ides/WINDSURF.md +36 -36
  168. package/templates/ides/WINDSURF_RULES.md +14 -14
  169. package/templates/ides/ZED.md +32 -32
  170. package/templates/ides/cursor-mdc/go.mdc +24 -24
  171. package/templates/ides/cursor-mdc/python.mdc +24 -24
  172. package/templates/ides/cursor-mdc/quality.mdc +25 -25
  173. package/templates/ides/cursor-mdc/ralph.mdc +39 -39
  174. package/templates/ides/cursor-mdc/rulebook.mdc +38 -38
  175. package/templates/ides/cursor-mdc/rust.mdc +24 -24
  176. package/templates/ides/cursor-mdc/typescript.mdc +25 -25
  177. package/templates/languages/C.md +333 -333
  178. package/templates/languages/CPP.md +743 -743
  179. package/templates/languages/CSHARP.md +417 -417
  180. package/templates/languages/ELIXIR.md +454 -454
  181. package/templates/languages/ERLANG.md +361 -361
  182. package/templates/languages/GO.md +645 -645
  183. package/templates/languages/HASKELL.md +177 -177
  184. package/templates/languages/JAVA.md +607 -607
  185. package/templates/languages/JAVASCRIPT.md +631 -631
  186. package/templates/languages/JULIA.md +97 -97
  187. package/templates/languages/KOTLIN.md +511 -511
  188. package/templates/languages/LISP.md +100 -100
  189. package/templates/languages/LUA.md +74 -74
  190. package/templates/languages/OBJECTIVEC.md +90 -90
  191. package/templates/languages/PHP.md +416 -416
  192. package/templates/languages/PYTHON.md +682 -682
  193. package/templates/languages/RUBY.md +421 -421
  194. package/templates/languages/RUST.md +477 -477
  195. package/templates/languages/SAS.md +73 -73
  196. package/templates/languages/SCALA.md +348 -348
  197. package/templates/languages/SOLIDITY.md +580 -580
  198. package/templates/languages/SQL.md +137 -137
  199. package/templates/languages/SWIFT.md +466 -466
  200. package/templates/languages/TYPESCRIPT.md +591 -591
  201. package/templates/languages/ZIG.md +265 -265
  202. package/templates/modules/ATLASSIAN.md +255 -255
  203. package/templates/modules/CONTEXT7.md +54 -54
  204. package/templates/modules/FIGMA.md +267 -267
  205. package/templates/modules/GITHUB_MCP.md +64 -64
  206. package/templates/modules/GRAFANA.md +328 -328
  207. package/templates/modules/MEMORY.md +126 -126
  208. package/templates/modules/NOTION.md +247 -247
  209. package/templates/modules/PLAYWRIGHT.md +90 -90
  210. package/templates/modules/RULEBOOK_MCP.md +208 -208
  211. package/templates/modules/SERENA.md +337 -337
  212. package/templates/modules/SUPABASE.md +223 -223
  213. package/templates/modules/SYNAP.md +69 -69
  214. package/templates/modules/VECTORIZER.md +63 -63
  215. package/templates/modules/sequential-thinking.md +42 -42
  216. package/templates/ralph/ralph-history.bat +4 -4
  217. package/templates/ralph/ralph-history.sh +5 -5
  218. package/templates/ralph/ralph-init.bat +5 -5
  219. package/templates/ralph/ralph-init.sh +5 -5
  220. package/templates/ralph/ralph-pause.bat +5 -5
  221. package/templates/ralph/ralph-pause.sh +5 -5
  222. package/templates/ralph/ralph-run.bat +5 -5
  223. package/templates/ralph/ralph-run.sh +5 -5
  224. package/templates/ralph/ralph-status.bat +4 -4
  225. package/templates/ralph/ralph-status.sh +5 -5
  226. package/templates/rules/consult-analysis-before-implementing.md +23 -23
  227. package/templates/rules/cpp.md +46 -46
  228. package/templates/rules/csharp.md +44 -44
  229. package/templates/rules/diagnostic-first.md +39 -39
  230. package/templates/rules/fail-twice-escalate.md +46 -46
  231. package/templates/rules/follow-task-sequence.md +36 -36
  232. package/templates/rules/git-safety.md +29 -29
  233. package/templates/rules/go.md +40 -40
  234. package/templates/rules/incremental-implementation.md +56 -56
  235. package/templates/rules/incremental-tests.md +29 -29
  236. package/templates/rules/java.md +43 -43
  237. package/templates/rules/javascript.md +39 -39
  238. package/templates/rules/knowledge-base-usage.md +41 -41
  239. package/templates/rules/multi-agent-teams.md +75 -75
  240. package/templates/rules/no-deferred.md +31 -31
  241. package/templates/rules/no-shortcuts.md +30 -30
  242. package/templates/rules/python.md +43 -43
  243. package/templates/rules/research-first.md +30 -30
  244. package/templates/rules/respect-handoff-trigger.md +41 -41
  245. package/templates/rules/rust.md +40 -40
  246. package/templates/rules/sequential-editing.md +21 -21
  247. package/templates/rules/session-workflow.md +24 -24
  248. package/templates/rules/task-decomposition.md +32 -32
  249. package/templates/rules/typescript.md +40 -40
  250. package/templates/services/AZURE_BLOB.md +184 -184
  251. package/templates/services/CASSANDRA.md +239 -239
  252. package/templates/services/DATADOG.md +26 -26
  253. package/templates/services/DOCKER.md +124 -124
  254. package/templates/services/DOCKER_COMPOSE.md +168 -168
  255. package/templates/services/DYNAMODB.md +308 -308
  256. package/templates/services/ELASTICSEARCH.md +347 -347
  257. package/templates/services/GCS.md +178 -178
  258. package/templates/services/HELM.md +194 -194
  259. package/templates/services/INFLUXDB.md +265 -265
  260. package/templates/services/KAFKA.md +341 -341
  261. package/templates/services/KUBERNETES.md +208 -208
  262. package/templates/services/MARIADB.md +183 -183
  263. package/templates/services/MEMCACHED.md +242 -242
  264. package/templates/services/MINIO.md +201 -201
  265. package/templates/services/MONGODB.md +268 -268
  266. package/templates/services/MYSQL.md +358 -358
  267. package/templates/services/NEO4J.md +247 -247
  268. package/templates/services/OPENTELEMETRY.md +25 -25
  269. package/templates/services/ORACLE.md +290 -290
  270. package/templates/services/PINO.md +24 -24
  271. package/templates/services/POSTGRESQL.md +326 -326
  272. package/templates/services/PROMETHEUS.md +33 -33
  273. package/templates/services/RABBITMQ.md +286 -286
  274. package/templates/services/REDIS.md +292 -292
  275. package/templates/services/S3.md +298 -298
  276. package/templates/services/SENTRY.md +23 -23
  277. package/templates/services/SQLITE.md +294 -294
  278. package/templates/services/SQLSERVER.md +294 -294
  279. package/templates/services/WINSTON.md +30 -30
  280. package/templates/skills/cli/aider/SKILL.md +59 -59
  281. package/templates/skills/cli/amazon-q/SKILL.md +35 -35
  282. package/templates/skills/cli/auggie/SKILL.md +42 -42
  283. package/templates/skills/cli/claude/SKILL.md +42 -42
  284. package/templates/skills/cli/cline/SKILL.md +42 -42
  285. package/templates/skills/cli/codebuddy/SKILL.md +30 -30
  286. package/templates/skills/cli/codeium/SKILL.md +30 -30
  287. package/templates/skills/cli/codex/SKILL.md +31 -31
  288. package/templates/skills/cli/continue/SKILL.md +44 -44
  289. package/templates/skills/cli/cursor-cli/SKILL.md +38 -38
  290. package/templates/skills/cli/factory/SKILL.md +28 -28
  291. package/templates/skills/cli/gemini/SKILL.md +45 -45
  292. package/templates/skills/cli/kilocode/SKILL.md +28 -28
  293. package/templates/skills/cli/opencode/SKILL.md +28 -28
  294. package/templates/skills/core/agent-automation/SKILL.md +194 -194
  295. package/templates/skills/core/dag/SKILL.md +314 -314
  296. package/templates/skills/core/documentation-rules/SKILL.md +46 -46
  297. package/templates/skills/core/quality-enforcement/SKILL.md +78 -78
  298. package/templates/skills/core/rulebook/SKILL.md +176 -176
  299. package/templates/skills/core/rulebook-terse/SKILL.md +116 -116
  300. package/templates/skills/core/rulebook-terse-commit/SKILL.md +96 -96
  301. package/templates/skills/core/rulebook-terse-review/SKILL.md +112 -112
  302. package/templates/skills/dev/accessibility/SKILL.md +17 -17
  303. package/templates/skills/dev/analysis/SKILL.md +19 -19
  304. package/templates/skills/dev/api-design/SKILL.md +15 -15
  305. package/templates/skills/dev/architect/SKILL.md +17 -17
  306. package/templates/skills/dev/build-fix/SKILL.md +17 -17
  307. package/templates/skills/dev/db-design/SKILL.md +15 -15
  308. package/templates/skills/dev/debug/SKILL.md +16 -16
  309. package/templates/skills/dev/deploy/SKILL.md +17 -17
  310. package/templates/skills/dev/docs/SKILL.md +17 -17
  311. package/templates/skills/dev/handoff/SKILL.md +27 -27
  312. package/templates/skills/dev/migrate/SKILL.md +15 -15
  313. package/templates/skills/dev/perf/SKILL.md +17 -17
  314. package/templates/skills/dev/refactor/SKILL.md +17 -17
  315. package/templates/skills/dev/research/SKILL.md +14 -14
  316. package/templates/skills/dev/review/SKILL.md +18 -18
  317. package/templates/skills/dev/security-audit/SKILL.md +17 -17
  318. package/templates/skills/frameworks/angular/SKILL.md +46 -46
  319. package/templates/skills/frameworks/django/SKILL.md +93 -93
  320. package/templates/skills/frameworks/electron/SKILL.md +157 -157
  321. package/templates/skills/frameworks/flask/SKILL.md +48 -48
  322. package/templates/skills/frameworks/flutter/SKILL.md +65 -65
  323. package/templates/skills/frameworks/jquery/SKILL.md +42 -42
  324. package/templates/skills/frameworks/laravel/SKILL.md +48 -48
  325. package/templates/skills/frameworks/nestjs/SKILL.md +53 -53
  326. package/templates/skills/frameworks/nextjs/SKILL.md +137 -137
  327. package/templates/skills/frameworks/nuxt/SKILL.md +50 -50
  328. package/templates/skills/frameworks/rails/SKILL.md +76 -76
  329. package/templates/skills/frameworks/react/SKILL.md +48 -48
  330. package/templates/skills/frameworks/react-native/SKILL.md +57 -57
  331. package/templates/skills/frameworks/spring/SKILL.md +49 -49
  332. package/templates/skills/frameworks/symfony/SKILL.md +46 -46
  333. package/templates/skills/frameworks/vue/SKILL.md +46 -46
  334. package/templates/skills/frameworks/zend/SKILL.md +45 -45
  335. package/templates/skills/ides/copilot/SKILL.md +47 -47
  336. package/templates/skills/ides/cursor/SKILL.md +53 -53
  337. package/templates/skills/ides/jetbrains-ai/SKILL.md +45 -45
  338. package/templates/skills/ides/replit/SKILL.md +46 -46
  339. package/templates/skills/ides/tabnine/SKILL.md +39 -39
  340. package/templates/skills/ides/vscode/SKILL.md +50 -50
  341. package/templates/skills/ides/windsurf/SKILL.md +46 -46
  342. package/templates/skills/ides/zed/SKILL.md +42 -42
  343. package/templates/skills/languages/c/SKILL.md +343 -343
  344. package/templates/skills/languages/cpp/SKILL.md +753 -753
  345. package/templates/skills/languages/csharp/SKILL.md +427 -427
  346. package/templates/skills/languages/elixir/SKILL.md +464 -464
  347. package/templates/skills/languages/erlang/SKILL.md +371 -371
  348. package/templates/skills/languages/go/SKILL.md +655 -655
  349. package/templates/skills/languages/haskell/SKILL.md +187 -187
  350. package/templates/skills/languages/java/SKILL.md +617 -617
  351. package/templates/skills/languages/javascript/SKILL.md +641 -641
  352. package/templates/skills/languages/julia/SKILL.md +107 -107
  353. package/templates/skills/languages/kotlin/SKILL.md +521 -521
  354. package/templates/skills/languages/lisp/SKILL.md +110 -110
  355. package/templates/skills/languages/lua/SKILL.md +84 -84
  356. package/templates/skills/languages/objectivec/SKILL.md +100 -100
  357. package/templates/skills/languages/php/SKILL.md +426 -426
  358. package/templates/skills/languages/python/SKILL.md +692 -692
  359. package/templates/skills/languages/ruby/SKILL.md +431 -431
  360. package/templates/skills/languages/rust/SKILL.md +487 -487
  361. package/templates/skills/languages/sas/SKILL.md +83 -83
  362. package/templates/skills/languages/scala/SKILL.md +358 -358
  363. package/templates/skills/languages/solidity/SKILL.md +590 -590
  364. package/templates/skills/languages/sql/SKILL.md +147 -147
  365. package/templates/skills/languages/swift/SKILL.md +476 -476
  366. package/templates/skills/languages/typescript/SKILL.md +302 -302
  367. package/templates/skills/languages/zig/SKILL.md +275 -275
  368. package/templates/skills/modules/atlassian/SKILL.md +265 -265
  369. package/templates/skills/modules/context7/SKILL.md +64 -64
  370. package/templates/skills/modules/figma/SKILL.md +277 -277
  371. package/templates/skills/modules/github-mcp/SKILL.md +74 -74
  372. package/templates/skills/modules/grafana/SKILL.md +338 -338
  373. package/templates/skills/modules/memory/SKILL.md +73 -73
  374. package/templates/skills/modules/notion/SKILL.md +257 -257
  375. package/templates/skills/modules/playwright/SKILL.md +100 -100
  376. package/templates/skills/modules/rulebook-mcp/SKILL.md +166 -166
  377. package/templates/skills/modules/serena/SKILL.md +347 -347
  378. package/templates/skills/modules/supabase/SKILL.md +233 -233
  379. package/templates/skills/modules/synap/SKILL.md +79 -79
  380. package/templates/skills/modules/vectorizer/SKILL.md +73 -73
  381. package/templates/skills/services/azure-blob/SKILL.md +194 -194
  382. package/templates/skills/services/cassandra/SKILL.md +249 -249
  383. package/templates/skills/services/dynamodb/SKILL.md +318 -318
  384. package/templates/skills/services/elasticsearch/SKILL.md +357 -357
  385. package/templates/skills/services/gcs/SKILL.md +188 -188
  386. package/templates/skills/services/influxdb/SKILL.md +275 -275
  387. package/templates/skills/services/kafka/SKILL.md +351 -351
  388. package/templates/skills/services/mariadb/SKILL.md +193 -193
  389. package/templates/skills/services/memcached/SKILL.md +252 -252
  390. package/templates/skills/services/minio/SKILL.md +211 -211
  391. package/templates/skills/services/mongodb/SKILL.md +278 -278
  392. package/templates/skills/services/mysql/SKILL.md +368 -368
  393. package/templates/skills/services/neo4j/SKILL.md +257 -257
  394. package/templates/skills/services/oracle/SKILL.md +300 -300
  395. package/templates/skills/services/postgresql/SKILL.md +336 -336
  396. package/templates/skills/services/rabbitmq/SKILL.md +296 -296
  397. package/templates/skills/services/redis/SKILL.md +302 -302
  398. package/templates/skills/services/s3/SKILL.md +308 -308
  399. package/templates/skills/services/sqlite/SKILL.md +304 -304
  400. package/templates/skills/services/sqlserver/SKILL.md +304 -304
  401. package/templates/skills/workflows/ralph/SKILL.md +309 -309
  402. package/templates/skills/workflows/ralph/install.sh +87 -87
  403. package/templates/skills/workflows/ralph/manifest.json +158 -158
  404. package/templates/workflows/codespell.yml +31 -31
  405. package/templates/workflows/cpp-lint.yml +47 -47
  406. package/templates/workflows/cpp-publish.yml +119 -119
  407. package/templates/workflows/cpp-test.yml +77 -77
  408. package/templates/workflows/dotnet-lint.yml +29 -29
  409. package/templates/workflows/dotnet-publish.yml +40 -40
  410. package/templates/workflows/dotnet-test.yml +41 -41
  411. package/templates/workflows/elixir-lint.yml +45 -45
  412. package/templates/workflows/elixir-publish.yml +49 -49
  413. package/templates/workflows/elixir-test.yml +54 -54
  414. package/templates/workflows/erlang-lint.yml +47 -47
  415. package/templates/workflows/erlang-test.yml +62 -62
  416. package/templates/workflows/go-lint.yml +39 -39
  417. package/templates/workflows/go-publish.yml +95 -95
  418. package/templates/workflows/go-test.yml +59 -59
  419. package/templates/workflows/java-lint.yml +60 -60
  420. package/templates/workflows/java-publish.yml +120 -120
  421. package/templates/workflows/java-test.yml +85 -85
  422. package/templates/workflows/kotlin-lint.yml +34 -34
  423. package/templates/workflows/kotlin-publish.yml +56 -56
  424. package/templates/workflows/kotlin-test.yml +48 -48
  425. package/templates/workflows/php-lint.yml +39 -39
  426. package/templates/workflows/php-publish.yml +50 -50
  427. package/templates/workflows/php-test.yml +54 -54
  428. package/templates/workflows/python-lint.yml +47 -47
  429. package/templates/workflows/python-publish.yml +91 -91
  430. package/templates/workflows/python-test.yml +59 -59
  431. package/templates/workflows/rust-lint.yml +54 -54
  432. package/templates/workflows/rust-publish.yml +66 -66
  433. package/templates/workflows/rust-test.yml +75 -75
  434. package/templates/workflows/solidity-lint.yml +41 -41
  435. package/templates/workflows/solidity-test.yml +47 -47
  436. package/templates/workflows/swift-lint.yml +32 -32
  437. package/templates/workflows/swift-publish.yml +58 -58
  438. package/templates/workflows/swift-test.yml +44 -44
  439. package/templates/workflows/typescript-publish.yml +60 -60
  440. package/templates/workflows/typescript-test.yml +73 -73
  441. package/templates/workflows/zig-lint.yml +27 -27
  442. package/templates/workflows/zig-test.yml +40 -40
  443. package/dist/hooks/terse-activate.d.ts +0 -59
  444. package/dist/hooks/terse-activate.d.ts.map +0 -1
  445. package/dist/hooks/terse-activate.js +0 -149
  446. package/dist/hooks/terse-activate.js.map +0 -1
  447. package/dist/hooks/terse-config.d.ts +0 -51
  448. package/dist/hooks/terse-config.d.ts.map +0 -1
  449. package/dist/hooks/terse-config.js +0 -130
  450. package/dist/hooks/terse-config.js.map +0 -1
  451. package/dist/hooks/terse-mode-tracker.d.ts +0 -78
  452. package/dist/hooks/terse-mode-tracker.d.ts.map +0 -1
  453. package/dist/hooks/terse-mode-tracker.js +0 -213
  454. package/dist/hooks/terse-mode-tracker.js.map +0 -1
@@ -1,292 +1,292 @@
1
- <!-- REDIS:START -->
2
- # Redis Cache Instructions
3
-
4
- **CRITICAL**: Use Redis for high-performance caching, session storage, pub/sub messaging, and real-time features.
5
-
6
- ## Core Features
7
-
8
- ### Connection
9
- ```typescript
10
- // Using redis (Node.js)
11
- import { createClient } from 'redis'
12
-
13
- const client = createClient({
14
- url: process.env.REDIS_URL || 'redis://localhost:6379',
15
- socket: {
16
- reconnectStrategy: (retries) => {
17
- if (retries > 10) {
18
- return new Error('Too many reconnection attempts')
19
- }
20
- return Math.min(retries * 100, 3000)
21
- },
22
- },
23
- })
24
-
25
- await client.connect()
26
-
27
- // Using ioredis
28
- import Redis from 'ioredis'
29
-
30
- const redis = new Redis({
31
- host: process.env.REDIS_HOST || 'localhost',
32
- port: parseInt(process.env.REDIS_PORT || '6379'),
33
- password: process.env.REDIS_PASSWORD,
34
- retryStrategy: (times) => Math.min(times * 50, 2000),
35
- maxRetriesPerRequest: 3,
36
- })
37
- ```
38
-
39
- ### Basic Operations
40
- ```typescript
41
- // String operations
42
- await client.set('user:1', JSON.stringify({ name: 'John', email: 'john@example.com' }))
43
- await client.set('user:1', 'value', { EX: 3600 }) // Expire in 1 hour
44
- const user = await client.get('user:1')
45
- await client.del('user:1')
46
-
47
- // Multiple operations
48
- await client.mSet({
49
- 'key1': 'value1',
50
- 'key2': 'value2',
51
- })
52
- const values = await client.mGet(['key1', 'key2'])
53
-
54
- // Increment/Decrement
55
- await client.incr('counter')
56
- await client.incrBy('counter', 5)
57
- await client.decr('counter')
58
- ```
59
-
60
- ### Data Structures
61
- ```typescript
62
- // Lists
63
- await client.lPush('tasks', 'task1', 'task2')
64
- await client.rPush('tasks', 'task3')
65
- const task = await client.lPop('tasks')
66
- const tasks = await client.lRange('tasks', 0, -1)
67
-
68
- // Sets
69
- await client.sAdd('tags', 'javascript', 'typescript', 'nodejs')
70
- const tags = await client.sMembers('tags')
71
- const exists = await client.sIsMember('tags', 'javascript')
72
- await client.sRem('tags', 'javascript')
73
-
74
- // Sorted Sets
75
- await client.zAdd('leaderboard', {
76
- score: 100,
77
- value: 'player1',
78
- })
79
- const topPlayers = await client.zRange('leaderboard', 0, 9, { REV: true })
80
-
81
- // Hashes
82
- await client.hSet('user:1', {
83
- name: 'John',
84
- email: 'john@example.com',
85
- age: '30',
86
- })
87
- const user = await client.hGetAll('user:1')
88
- await client.hIncrBy('user:1', 'age', 1)
89
- ```
90
-
91
- ### Advanced Features
92
- ```typescript
93
- // Pub/Sub
94
- const publisher = client.duplicate()
95
- await publisher.connect()
96
-
97
- const subscriber = client.duplicate()
98
- await subscriber.connect()
99
-
100
- await subscriber.subscribe('notifications', (message) => {
101
- console.log('Received:', message)
102
- })
103
-
104
- await publisher.publish('notifications', JSON.stringify({ type: 'alert', message: 'Hello' }))
105
-
106
- // Streams
107
- await client.xAdd('events', '*', {
108
- type: 'user_login',
109
- userId: '123',
110
- timestamp: Date.now().toString(),
111
- })
112
-
113
- const events = await client.xRead({
114
- key: 'events',
115
- id: '0',
116
- }, {
117
- COUNT: 10,
118
- BLOCK: 1000,
119
- })
120
-
121
- // Transactions
122
- const multi = client.multi()
123
- multi.set('key1', 'value1')
124
- multi.set('key2', 'value2')
125
- multi.incr('counter')
126
- await multi.exec()
127
- ```
128
-
129
- ## Common Patterns
130
-
131
- ### Caching
132
- ```typescript
133
- async function getCachedUser(userId: string) {
134
- const cached = await client.get(`user:${userId}`)
135
- if (cached) {
136
- return JSON.parse(cached)
137
- }
138
-
139
- const user = await fetchUserFromDatabase(userId)
140
- await client.set(`user:${userId}`, JSON.stringify(user), { EX: 3600 })
141
- return user
142
- }
143
-
144
- // Cache with tags (for invalidation)
145
- async function cacheWithTags(key: string, value: any, tags: string[], ttl: number) {
146
- await client.set(key, JSON.stringify(value), { EX: ttl })
147
- for (const tag of tags) {
148
- await client.sAdd(`tag:${tag}`, key)
149
- }
150
- }
151
-
152
- async function invalidateByTag(tag: string) {
153
- const keys = await client.sMembers(`tag:${tag}`)
154
- if (keys.length > 0) {
155
- await client.del(...keys)
156
- }
157
- await client.del(`tag:${tag}`)
158
- }
159
- ```
160
-
161
- ### Rate Limiting
162
- ```typescript
163
- async function checkRateLimit(userId: string, limit: number, window: number): Promise<boolean> {
164
- const key = `ratelimit:${userId}`
165
- const current = await client.incr(key)
166
-
167
- if (current === 1) {
168
- await client.expire(key, window)
169
- }
170
-
171
- return current <= limit
172
- }
173
- ```
174
-
175
- ### Session Storage
176
- ```typescript
177
- async function setSession(sessionId: string, data: any, ttl: number) {
178
- await client.set(`session:${sessionId}`, JSON.stringify(data), { EX: ttl })
179
- }
180
-
181
- async function getSession(sessionId: string) {
182
- const data = await client.get(`session:${sessionId}`)
183
- return data ? JSON.parse(data) : null
184
- }
185
-
186
- async function deleteSession(sessionId: string) {
187
- await client.del(`session:${sessionId}`)
188
- }
189
- ```
190
-
191
- ### Distributed Locks
192
- ```typescript
193
- async function acquireLock(key: string, ttl: number): Promise<boolean> {
194
- const result = await client.set(key, 'locked', {
195
- EX: ttl,
196
- NX: true, // Only set if not exists
197
- })
198
- return result === 'OK'
199
- }
200
-
201
- async function releaseLock(key: string) {
202
- await client.del(key)
203
- }
204
- ```
205
-
206
- ## Best Practices
207
-
208
- ✅ **DO:**
209
- - Use connection pooling
210
- - Set appropriate TTL for cached data
211
- - Use pipelining for multiple operations
212
- - Use transactions (MULTI/EXEC) for atomic operations
213
- - Monitor memory usage
214
- - Use appropriate data structures (hash for objects, set for unique values)
215
- - Implement cache invalidation strategies
216
- - Use Redis Cluster for high availability
217
- - Enable persistence (RDB or AOF) for production
218
- - Use Redis Sentinel for failover
219
-
220
- ❌ **DON'T:**
221
- - Store large values (> 100KB, use compression or external storage)
222
- - Use Redis as primary database (it's a cache)
223
- - Skip error handling
224
- - Ignore memory limits
225
- - Hardcode connection strings
226
- - Use KEYS command in production (use SCAN instead)
227
- - Store sensitive data without encryption
228
- - Skip connection retry logic
229
- - Ignore eviction policies
230
- - Use blocking operations without timeouts
231
-
232
- ## Configuration
233
-
234
- ### Environment Variables
235
- ```bash
236
- REDIS_URL=redis://localhost:6379
237
- REDIS_URL=redis://:password@host:6379
238
- REDIS_URL=rediss://host:6380 # SSL
239
- REDIS_HOST=localhost
240
- REDIS_PORT=6379
241
- REDIS_PASSWORD=securepassword
242
- ```
243
-
244
- ### Docker Compose
245
- ```yaml
246
- services:
247
- redis:
248
- image: redis:7-alpine
249
- ports:
250
- - "6379:6379"
251
- command: redis-server --requirepass securepassword --appendonly yes
252
- volumes:
253
- - redis_data:/data
254
- healthcheck:
255
- test: ["CMD", "redis-cli", "ping"]
256
- interval: 10s
257
- timeout: 5s
258
- retries: 5
259
-
260
- volumes:
261
- redis_data:
262
- ```
263
-
264
- ## Integration with Development
265
-
266
- ### Testing
267
- ```typescript
268
- // Use test Redis instance
269
- const testClient = createClient({
270
- url: 'redis://localhost:6380', // Different port for tests
271
- })
272
-
273
- // Clean up after tests
274
- afterEach(async () => {
275
- await testClient.flushDb()
276
- })
277
- ```
278
-
279
- ### Health Checks
280
- ```typescript
281
- async function checkRedisHealth(): Promise<boolean> {
282
- try {
283
- await client.ping()
284
- return true
285
- } catch {
286
- return false
287
- }
288
- }
289
- ```
290
-
291
- <!-- REDIS:END -->
292
-
1
+ <!-- REDIS:START -->
2
+ # Redis Cache Instructions
3
+
4
+ **CRITICAL**: Use Redis for high-performance caching, session storage, pub/sub messaging, and real-time features.
5
+
6
+ ## Core Features
7
+
8
+ ### Connection
9
+ ```typescript
10
+ // Using redis (Node.js)
11
+ import { createClient } from 'redis'
12
+
13
+ const client = createClient({
14
+ url: process.env.REDIS_URL || 'redis://localhost:6379',
15
+ socket: {
16
+ reconnectStrategy: (retries) => {
17
+ if (retries > 10) {
18
+ return new Error('Too many reconnection attempts')
19
+ }
20
+ return Math.min(retries * 100, 3000)
21
+ },
22
+ },
23
+ })
24
+
25
+ await client.connect()
26
+
27
+ // Using ioredis
28
+ import Redis from 'ioredis'
29
+
30
+ const redis = new Redis({
31
+ host: process.env.REDIS_HOST || 'localhost',
32
+ port: parseInt(process.env.REDIS_PORT || '6379'),
33
+ password: process.env.REDIS_PASSWORD,
34
+ retryStrategy: (times) => Math.min(times * 50, 2000),
35
+ maxRetriesPerRequest: 3,
36
+ })
37
+ ```
38
+
39
+ ### Basic Operations
40
+ ```typescript
41
+ // String operations
42
+ await client.set('user:1', JSON.stringify({ name: 'John', email: 'john@example.com' }))
43
+ await client.set('user:1', 'value', { EX: 3600 }) // Expire in 1 hour
44
+ const user = await client.get('user:1')
45
+ await client.del('user:1')
46
+
47
+ // Multiple operations
48
+ await client.mSet({
49
+ 'key1': 'value1',
50
+ 'key2': 'value2',
51
+ })
52
+ const values = await client.mGet(['key1', 'key2'])
53
+
54
+ // Increment/Decrement
55
+ await client.incr('counter')
56
+ await client.incrBy('counter', 5)
57
+ await client.decr('counter')
58
+ ```
59
+
60
+ ### Data Structures
61
+ ```typescript
62
+ // Lists
63
+ await client.lPush('tasks', 'task1', 'task2')
64
+ await client.rPush('tasks', 'task3')
65
+ const task = await client.lPop('tasks')
66
+ const tasks = await client.lRange('tasks', 0, -1)
67
+
68
+ // Sets
69
+ await client.sAdd('tags', 'javascript', 'typescript', 'nodejs')
70
+ const tags = await client.sMembers('tags')
71
+ const exists = await client.sIsMember('tags', 'javascript')
72
+ await client.sRem('tags', 'javascript')
73
+
74
+ // Sorted Sets
75
+ await client.zAdd('leaderboard', {
76
+ score: 100,
77
+ value: 'player1',
78
+ })
79
+ const topPlayers = await client.zRange('leaderboard', 0, 9, { REV: true })
80
+
81
+ // Hashes
82
+ await client.hSet('user:1', {
83
+ name: 'John',
84
+ email: 'john@example.com',
85
+ age: '30',
86
+ })
87
+ const user = await client.hGetAll('user:1')
88
+ await client.hIncrBy('user:1', 'age', 1)
89
+ ```
90
+
91
+ ### Advanced Features
92
+ ```typescript
93
+ // Pub/Sub
94
+ const publisher = client.duplicate()
95
+ await publisher.connect()
96
+
97
+ const subscriber = client.duplicate()
98
+ await subscriber.connect()
99
+
100
+ await subscriber.subscribe('notifications', (message) => {
101
+ console.log('Received:', message)
102
+ })
103
+
104
+ await publisher.publish('notifications', JSON.stringify({ type: 'alert', message: 'Hello' }))
105
+
106
+ // Streams
107
+ await client.xAdd('events', '*', {
108
+ type: 'user_login',
109
+ userId: '123',
110
+ timestamp: Date.now().toString(),
111
+ })
112
+
113
+ const events = await client.xRead({
114
+ key: 'events',
115
+ id: '0',
116
+ }, {
117
+ COUNT: 10,
118
+ BLOCK: 1000,
119
+ })
120
+
121
+ // Transactions
122
+ const multi = client.multi()
123
+ multi.set('key1', 'value1')
124
+ multi.set('key2', 'value2')
125
+ multi.incr('counter')
126
+ await multi.exec()
127
+ ```
128
+
129
+ ## Common Patterns
130
+
131
+ ### Caching
132
+ ```typescript
133
+ async function getCachedUser(userId: string) {
134
+ const cached = await client.get(`user:${userId}`)
135
+ if (cached) {
136
+ return JSON.parse(cached)
137
+ }
138
+
139
+ const user = await fetchUserFromDatabase(userId)
140
+ await client.set(`user:${userId}`, JSON.stringify(user), { EX: 3600 })
141
+ return user
142
+ }
143
+
144
+ // Cache with tags (for invalidation)
145
+ async function cacheWithTags(key: string, value: any, tags: string[], ttl: number) {
146
+ await client.set(key, JSON.stringify(value), { EX: ttl })
147
+ for (const tag of tags) {
148
+ await client.sAdd(`tag:${tag}`, key)
149
+ }
150
+ }
151
+
152
+ async function invalidateByTag(tag: string) {
153
+ const keys = await client.sMembers(`tag:${tag}`)
154
+ if (keys.length > 0) {
155
+ await client.del(...keys)
156
+ }
157
+ await client.del(`tag:${tag}`)
158
+ }
159
+ ```
160
+
161
+ ### Rate Limiting
162
+ ```typescript
163
+ async function checkRateLimit(userId: string, limit: number, window: number): Promise<boolean> {
164
+ const key = `ratelimit:${userId}`
165
+ const current = await client.incr(key)
166
+
167
+ if (current === 1) {
168
+ await client.expire(key, window)
169
+ }
170
+
171
+ return current <= limit
172
+ }
173
+ ```
174
+
175
+ ### Session Storage
176
+ ```typescript
177
+ async function setSession(sessionId: string, data: any, ttl: number) {
178
+ await client.set(`session:${sessionId}`, JSON.stringify(data), { EX: ttl })
179
+ }
180
+
181
+ async function getSession(sessionId: string) {
182
+ const data = await client.get(`session:${sessionId}`)
183
+ return data ? JSON.parse(data) : null
184
+ }
185
+
186
+ async function deleteSession(sessionId: string) {
187
+ await client.del(`session:${sessionId}`)
188
+ }
189
+ ```
190
+
191
+ ### Distributed Locks
192
+ ```typescript
193
+ async function acquireLock(key: string, ttl: number): Promise<boolean> {
194
+ const result = await client.set(key, 'locked', {
195
+ EX: ttl,
196
+ NX: true, // Only set if not exists
197
+ })
198
+ return result === 'OK'
199
+ }
200
+
201
+ async function releaseLock(key: string) {
202
+ await client.del(key)
203
+ }
204
+ ```
205
+
206
+ ## Best Practices
207
+
208
+ ✅ **DO:**
209
+ - Use connection pooling
210
+ - Set appropriate TTL for cached data
211
+ - Use pipelining for multiple operations
212
+ - Use transactions (MULTI/EXEC) for atomic operations
213
+ - Monitor memory usage
214
+ - Use appropriate data structures (hash for objects, set for unique values)
215
+ - Implement cache invalidation strategies
216
+ - Use Redis Cluster for high availability
217
+ - Enable persistence (RDB or AOF) for production
218
+ - Use Redis Sentinel for failover
219
+
220
+ ❌ **DON'T:**
221
+ - Store large values (> 100KB, use compression or external storage)
222
+ - Use Redis as primary database (it's a cache)
223
+ - Skip error handling
224
+ - Ignore memory limits
225
+ - Hardcode connection strings
226
+ - Use KEYS command in production (use SCAN instead)
227
+ - Store sensitive data without encryption
228
+ - Skip connection retry logic
229
+ - Ignore eviction policies
230
+ - Use blocking operations without timeouts
231
+
232
+ ## Configuration
233
+
234
+ ### Environment Variables
235
+ ```bash
236
+ REDIS_URL=redis://localhost:6379
237
+ REDIS_URL=redis://:password@host:6379
238
+ REDIS_URL=rediss://host:6380 # SSL
239
+ REDIS_HOST=localhost
240
+ REDIS_PORT=6379
241
+ REDIS_PASSWORD=securepassword
242
+ ```
243
+
244
+ ### Docker Compose
245
+ ```yaml
246
+ services:
247
+ redis:
248
+ image: redis:7-alpine
249
+ ports:
250
+ - "6379:6379"
251
+ command: redis-server --requirepass securepassword --appendonly yes
252
+ volumes:
253
+ - redis_data:/data
254
+ healthcheck:
255
+ test: ["CMD", "redis-cli", "ping"]
256
+ interval: 10s
257
+ timeout: 5s
258
+ retries: 5
259
+
260
+ volumes:
261
+ redis_data:
262
+ ```
263
+
264
+ ## Integration with Development
265
+
266
+ ### Testing
267
+ ```typescript
268
+ // Use test Redis instance
269
+ const testClient = createClient({
270
+ url: 'redis://localhost:6380', // Different port for tests
271
+ })
272
+
273
+ // Clean up after tests
274
+ afterEach(async () => {
275
+ await testClient.flushDb()
276
+ })
277
+ ```
278
+
279
+ ### Health Checks
280
+ ```typescript
281
+ async function checkRedisHealth(): Promise<boolean> {
282
+ try {
283
+ await client.ping()
284
+ return true
285
+ } catch {
286
+ return false
287
+ }
288
+ }
289
+ ```
290
+
291
+ <!-- REDIS:END -->
292
+