@hivehub/rulebook 5.1.2 → 5.1.3

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 (406) 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 +67 -67
  17. package/.claude/commands/rulebook-task-archive.md +94 -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 +4 -0
  25. package/dist/cli/commands.d.ts.map +1 -1
  26. package/dist/cli/commands.js +39 -8
  27. package/dist/cli/commands.js.map +1 -1
  28. package/dist/core/agent-template-engine.d.ts.map +1 -1
  29. package/dist/core/agent-template-engine.js +36 -30
  30. package/dist/core/agent-template-engine.js.map +1 -1
  31. package/dist/core/complexity-detector.d.ts.map +1 -1
  32. package/dist/core/complexity-detector.js +109 -29
  33. package/dist/core/complexity-detector.js.map +1 -1
  34. package/dist/core/decision-manager.d.ts.map +1 -1
  35. package/dist/core/decision-manager.js +2 -7
  36. package/dist/core/decision-manager.js.map +1 -1
  37. package/dist/core/generator.d.ts.map +1 -1
  38. package/dist/core/generator.js +28 -28
  39. package/dist/core/generator.js.map +1 -1
  40. package/dist/core/indexer/background-indexer.d.ts +1 -0
  41. package/dist/core/indexer/background-indexer.d.ts.map +1 -1
  42. package/dist/core/indexer/background-indexer.js +107 -19
  43. package/dist/core/indexer/background-indexer.js.map +1 -1
  44. package/dist/core/indexer/indexer-types.d.ts +2 -0
  45. package/dist/core/indexer/indexer-types.d.ts.map +1 -1
  46. package/dist/core/knowledge-manager.d.ts.map +1 -1
  47. package/dist/core/knowledge-manager.js +1 -1
  48. package/dist/core/knowledge-manager.js.map +1 -1
  49. package/dist/core/learn-manager.d.ts.map +1 -1
  50. package/dist/core/learn-manager.js +1 -1
  51. package/dist/core/learn-manager.js.map +1 -1
  52. package/dist/core/rule-engine.d.ts.map +1 -1
  53. package/dist/core/rule-engine.js +1 -3
  54. package/dist/core/rule-engine.js.map +1 -1
  55. package/dist/core/task-manager.d.ts.map +1 -1
  56. package/dist/core/task-manager.js +24 -24
  57. package/dist/core/task-manager.js.map +1 -1
  58. package/dist/index.js +23 -7
  59. package/dist/index.js.map +1 -1
  60. package/dist/mcp/rulebook-server.d.ts.map +1 -1
  61. package/dist/mcp/rulebook-server.js +18 -6
  62. package/dist/mcp/rulebook-server.js.map +1 -1
  63. package/dist/memory/hnsw-index.d.ts.map +1 -1
  64. package/dist/memory/hnsw-index.js +12 -4
  65. package/dist/memory/hnsw-index.js.map +1 -1
  66. package/dist/memory/memory-store.d.ts.map +1 -1
  67. package/dist/memory/memory-store.js +136 -107
  68. package/dist/memory/memory-store.js.map +1 -1
  69. package/dist/types.d.ts +7 -0
  70. package/dist/types.d.ts.map +1 -1
  71. package/package.json +22 -21
  72. package/templates/agents/accessibility-reviewer.md +43 -43
  73. package/templates/agents/api-designer.md +42 -42
  74. package/templates/agents/architect.md +51 -51
  75. package/templates/agents/build-engineer.md +36 -36
  76. package/templates/agents/code-reviewer.md +47 -47
  77. package/templates/agents/compiler/codegen-debugger.md +34 -34
  78. package/templates/agents/compiler/stdlib-engineer.md +28 -28
  79. package/templates/agents/compiler/test-coverage-guardian.md +31 -31
  80. package/templates/agents/context-intelligence.md +52 -52
  81. package/templates/agents/database-architect.md +41 -41
  82. package/templates/agents/devops-engineer.md +42 -42
  83. package/templates/agents/docs-writer.md +38 -38
  84. package/templates/agents/game-engine/cpp-core-expert.md +35 -35
  85. package/templates/agents/game-engine/render-engineer.md +22 -22
  86. package/templates/agents/game-engine/shader-engineer.md +38 -38
  87. package/templates/agents/game-engine/systems-integration.md +43 -43
  88. package/templates/agents/generic/code-reviewer.md +41 -41
  89. package/templates/agents/generic/docs-writer.md +25 -25
  90. package/templates/agents/generic/project-manager.md +36 -36
  91. package/templates/agents/generic/researcher.md +34 -34
  92. package/templates/agents/generic/test-engineer.md +41 -41
  93. package/templates/agents/i18n-engineer.md +42 -42
  94. package/templates/agents/implementer.md +42 -42
  95. package/templates/agents/migration-engineer.md +42 -42
  96. package/templates/agents/mobile/platform-specialist.md +22 -22
  97. package/templates/agents/mobile/ui-engineer.md +22 -22
  98. package/templates/agents/performance-engineer.md +49 -49
  99. package/templates/agents/refactoring-agent.md +41 -41
  100. package/templates/agents/researcher.md +38 -38
  101. package/templates/agents/security-reviewer.md +40 -40
  102. package/templates/agents/team-lead.md +37 -37
  103. package/templates/agents/tester.md +48 -48
  104. package/templates/agents/ux-reviewer.md +43 -43
  105. package/templates/agents/web-app/api-designer.md +22 -22
  106. package/templates/agents/web-app/backend-engineer.md +30 -30
  107. package/templates/agents/web-app/database-engineer.md +22 -22
  108. package/templates/agents/web-app/frontend-engineer.md +29 -29
  109. package/templates/agents/web-app/security-reviewer.md +32 -32
  110. package/templates/ci/rulebook-review.yml +26 -26
  111. package/templates/cli/AIDER.md +49 -49
  112. package/templates/cli/AMAZON_Q.md +25 -25
  113. package/templates/cli/AUGGIE.md +32 -32
  114. package/templates/cli/CLAUDE.md +117 -117
  115. package/templates/cli/CLINE.md +99 -99
  116. package/templates/cli/CODEBUDDY.md +20 -20
  117. package/templates/cli/CODEIUM.md +20 -20
  118. package/templates/cli/CODEX.md +21 -21
  119. package/templates/cli/CONTINUE.md +34 -34
  120. package/templates/cli/CURSOR_CLI.md +62 -62
  121. package/templates/cli/FACTORY.md +18 -18
  122. package/templates/cli/GEMINI.md +35 -35
  123. package/templates/cli/KILOCODE.md +18 -18
  124. package/templates/cli/OPENCODE.md +18 -18
  125. package/templates/cli/_GENERIC_TEMPLATE.md +29 -29
  126. package/templates/commands/rulebook-decision-create.md +55 -55
  127. package/templates/commands/rulebook-decision-list.md +15 -15
  128. package/templates/commands/rulebook-knowledge-add.md +41 -41
  129. package/templates/commands/rulebook-knowledge-list.md +15 -15
  130. package/templates/commands/rulebook-learn-capture.md +48 -48
  131. package/templates/commands/rulebook-learn-list.md +13 -13
  132. package/templates/commands/rulebook-memory-save.md +48 -48
  133. package/templates/commands/rulebook-memory-search.md +47 -47
  134. package/templates/commands/rulebook-task-apply.md +67 -67
  135. package/templates/commands/rulebook-task-archive.md +94 -94
  136. package/templates/commands/rulebook-task-create.md +93 -93
  137. package/templates/commands/rulebook-task-list.md +42 -42
  138. package/templates/commands/rulebook-task-show.md +52 -52
  139. package/templates/commands/rulebook-task-validate.md +53 -53
  140. package/templates/core/AGENTS_LEAN.md +25 -25
  141. package/templates/core/AGENTS_OVERRIDE.md +16 -16
  142. package/templates/core/AGENT_AUTOMATION.md +296 -296
  143. package/templates/core/DAG.md +304 -304
  144. package/templates/core/DECISIONS.md +38 -38
  145. package/templates/core/DOCUMENTATION_RULES.md +36 -36
  146. package/templates/core/KNOWLEDGE.md +49 -49
  147. package/templates/core/MULTI_AGENT.md +74 -74
  148. package/templates/core/PLANS.md +28 -28
  149. package/templates/core/QUALITY_ENFORCEMENT.md +68 -68
  150. package/templates/core/RALPH.md +471 -471
  151. package/templates/core/RULEBOOK.md +1947 -1947
  152. package/templates/core/TIER1_PROHIBITIONS.md +154 -154
  153. package/templates/core/TOKEN_OPTIMIZATION.md +49 -49
  154. package/templates/frameworks/ANGULAR.md +36 -36
  155. package/templates/frameworks/DJANGO.md +83 -83
  156. package/templates/frameworks/ELECTRON.md +147 -147
  157. package/templates/frameworks/FLASK.md +38 -38
  158. package/templates/frameworks/FLUTTER.md +55 -55
  159. package/templates/frameworks/JQUERY.md +32 -32
  160. package/templates/frameworks/LARAVEL.md +38 -38
  161. package/templates/frameworks/NESTJS.md +43 -43
  162. package/templates/frameworks/NEXTJS.md +127 -127
  163. package/templates/frameworks/NUXT.md +40 -40
  164. package/templates/frameworks/RAILS.md +66 -66
  165. package/templates/frameworks/REACT.md +38 -38
  166. package/templates/frameworks/REACT_NATIVE.md +47 -47
  167. package/templates/frameworks/SPRING.md +39 -39
  168. package/templates/frameworks/SYMFONY.md +36 -36
  169. package/templates/frameworks/VUE.md +36 -36
  170. package/templates/frameworks/ZEND.md +35 -35
  171. package/templates/git/CI_CD_PATTERNS.md +661 -661
  172. package/templates/git/GITHUB_ACTIONS.md +728 -728
  173. package/templates/git/GITLAB_CI.md +730 -730
  174. package/templates/git/GIT_WORKFLOW.md +1192 -1192
  175. package/templates/git/SECRETS_MANAGEMENT.md +585 -585
  176. package/templates/hooks/COMMIT_MSG.md +530 -530
  177. package/templates/hooks/POST_CHECKOUT.md +546 -546
  178. package/templates/hooks/PREPARE_COMMIT_MSG.md +619 -619
  179. package/templates/hooks/PRE_COMMIT.md +414 -414
  180. package/templates/hooks/PRE_PUSH.md +601 -601
  181. package/templates/ides/CONTINUE_RULES.md +16 -16
  182. package/templates/ides/COPILOT.md +37 -37
  183. package/templates/ides/COPILOT_INSTRUCTIONS.md +23 -23
  184. package/templates/ides/CURSOR.md +43 -43
  185. package/templates/ides/GEMINI_RULES.md +17 -17
  186. package/templates/ides/JETBRAINS_AI.md +35 -35
  187. package/templates/ides/REPLIT.md +36 -36
  188. package/templates/ides/TABNINE.md +29 -29
  189. package/templates/ides/VSCODE.md +40 -40
  190. package/templates/ides/WINDSURF.md +36 -36
  191. package/templates/ides/WINDSURF_RULES.md +14 -14
  192. package/templates/ides/ZED.md +32 -32
  193. package/templates/ides/cursor-mdc/go.mdc +24 -24
  194. package/templates/ides/cursor-mdc/python.mdc +24 -24
  195. package/templates/ides/cursor-mdc/quality.mdc +25 -25
  196. package/templates/ides/cursor-mdc/ralph.mdc +39 -39
  197. package/templates/ides/cursor-mdc/rulebook.mdc +38 -38
  198. package/templates/ides/cursor-mdc/rust.mdc +24 -24
  199. package/templates/ides/cursor-mdc/typescript.mdc +25 -25
  200. package/templates/languages/C.md +333 -333
  201. package/templates/languages/CPP.md +743 -743
  202. package/templates/languages/CSHARP.md +417 -417
  203. package/templates/languages/ELIXIR.md +454 -454
  204. package/templates/languages/ERLANG.md +361 -361
  205. package/templates/languages/GO.md +645 -645
  206. package/templates/languages/HASKELL.md +177 -177
  207. package/templates/languages/JAVA.md +607 -607
  208. package/templates/languages/JAVASCRIPT.md +631 -631
  209. package/templates/languages/JULIA.md +97 -97
  210. package/templates/languages/KOTLIN.md +511 -511
  211. package/templates/languages/LISP.md +100 -100
  212. package/templates/languages/LUA.md +74 -74
  213. package/templates/languages/OBJECTIVEC.md +90 -90
  214. package/templates/languages/PHP.md +416 -416
  215. package/templates/languages/PYTHON.md +682 -682
  216. package/templates/languages/RUBY.md +421 -421
  217. package/templates/languages/RUST.md +477 -477
  218. package/templates/languages/SAS.md +73 -73
  219. package/templates/languages/SCALA.md +348 -348
  220. package/templates/languages/SOLIDITY.md +580 -580
  221. package/templates/languages/SQL.md +137 -137
  222. package/templates/languages/SWIFT.md +466 -466
  223. package/templates/languages/TYPESCRIPT.md +591 -591
  224. package/templates/languages/ZIG.md +265 -265
  225. package/templates/modules/ATLASSIAN.md +255 -255
  226. package/templates/modules/CONTEXT7.md +54 -54
  227. package/templates/modules/FIGMA.md +267 -267
  228. package/templates/modules/GITHUB_MCP.md +64 -64
  229. package/templates/modules/GRAFANA.md +328 -328
  230. package/templates/modules/MEMORY.md +126 -126
  231. package/templates/modules/NOTION.md +247 -247
  232. package/templates/modules/PLAYWRIGHT.md +90 -90
  233. package/templates/modules/RULEBOOK_MCP.md +156 -156
  234. package/templates/modules/SERENA.md +337 -337
  235. package/templates/modules/SUPABASE.md +223 -223
  236. package/templates/modules/SYNAP.md +69 -69
  237. package/templates/modules/VECTORIZER.md +63 -63
  238. package/templates/modules/sequential-thinking.md +42 -42
  239. package/templates/ralph/ralph-history.bat +4 -4
  240. package/templates/ralph/ralph-history.sh +5 -5
  241. package/templates/ralph/ralph-init.bat +5 -5
  242. package/templates/ralph/ralph-init.sh +5 -5
  243. package/templates/ralph/ralph-pause.bat +5 -5
  244. package/templates/ralph/ralph-pause.sh +5 -5
  245. package/templates/ralph/ralph-run.bat +5 -5
  246. package/templates/ralph/ralph-run.sh +5 -5
  247. package/templates/ralph/ralph-status.bat +4 -4
  248. package/templates/ralph/ralph-status.sh +5 -5
  249. package/templates/rules/follow-task-sequence.md +36 -36
  250. package/templates/rules/git-safety.md +29 -29
  251. package/templates/rules/incremental-tests.md +29 -29
  252. package/templates/rules/no-deferred.md +31 -31
  253. package/templates/rules/no-shortcuts.md +30 -30
  254. package/templates/rules/research-first.md +30 -30
  255. package/templates/rules/sequential-editing.md +21 -21
  256. package/templates/rules/session-workflow.md +24 -24
  257. package/templates/rules/task-decomposition.md +32 -32
  258. package/templates/services/AZURE_BLOB.md +184 -184
  259. package/templates/services/CASSANDRA.md +239 -239
  260. package/templates/services/DATADOG.md +26 -26
  261. package/templates/services/DOCKER.md +124 -124
  262. package/templates/services/DOCKER_COMPOSE.md +168 -168
  263. package/templates/services/DYNAMODB.md +308 -308
  264. package/templates/services/ELASTICSEARCH.md +347 -347
  265. package/templates/services/GCS.md +178 -178
  266. package/templates/services/HELM.md +194 -194
  267. package/templates/services/INFLUXDB.md +265 -265
  268. package/templates/services/KAFKA.md +341 -341
  269. package/templates/services/KUBERNETES.md +208 -208
  270. package/templates/services/MARIADB.md +183 -183
  271. package/templates/services/MEMCACHED.md +242 -242
  272. package/templates/services/MINIO.md +201 -201
  273. package/templates/services/MONGODB.md +268 -268
  274. package/templates/services/MYSQL.md +358 -358
  275. package/templates/services/NEO4J.md +247 -247
  276. package/templates/services/OPENTELEMETRY.md +25 -25
  277. package/templates/services/ORACLE.md +290 -290
  278. package/templates/services/PINO.md +24 -24
  279. package/templates/services/POSTGRESQL.md +326 -326
  280. package/templates/services/PROMETHEUS.md +33 -33
  281. package/templates/services/RABBITMQ.md +286 -286
  282. package/templates/services/REDIS.md +292 -292
  283. package/templates/services/S3.md +298 -298
  284. package/templates/services/SENTRY.md +23 -23
  285. package/templates/services/SQLITE.md +294 -294
  286. package/templates/services/SQLSERVER.md +294 -294
  287. package/templates/services/WINSTON.md +30 -30
  288. package/templates/skills/cli/aider/SKILL.md +59 -59
  289. package/templates/skills/cli/amazon-q/SKILL.md +35 -35
  290. package/templates/skills/cli/auggie/SKILL.md +42 -42
  291. package/templates/skills/cli/claude/SKILL.md +42 -42
  292. package/templates/skills/cli/cline/SKILL.md +42 -42
  293. package/templates/skills/cli/codebuddy/SKILL.md +30 -30
  294. package/templates/skills/cli/codeium/SKILL.md +30 -30
  295. package/templates/skills/cli/codex/SKILL.md +31 -31
  296. package/templates/skills/cli/continue/SKILL.md +44 -44
  297. package/templates/skills/cli/cursor-cli/SKILL.md +38 -38
  298. package/templates/skills/cli/factory/SKILL.md +28 -28
  299. package/templates/skills/cli/gemini/SKILL.md +45 -45
  300. package/templates/skills/cli/kilocode/SKILL.md +28 -28
  301. package/templates/skills/cli/opencode/SKILL.md +28 -28
  302. package/templates/skills/core/agent-automation/SKILL.md +194 -194
  303. package/templates/skills/core/dag/SKILL.md +314 -314
  304. package/templates/skills/core/documentation-rules/SKILL.md +46 -46
  305. package/templates/skills/core/quality-enforcement/SKILL.md +78 -78
  306. package/templates/skills/core/rulebook/SKILL.md +176 -176
  307. package/templates/skills/dev/accessibility/SKILL.md +17 -17
  308. package/templates/skills/dev/api-design/SKILL.md +15 -15
  309. package/templates/skills/dev/architect/SKILL.md +17 -17
  310. package/templates/skills/dev/build-fix/SKILL.md +17 -17
  311. package/templates/skills/dev/db-design/SKILL.md +15 -15
  312. package/templates/skills/dev/debug/SKILL.md +16 -16
  313. package/templates/skills/dev/deploy/SKILL.md +17 -17
  314. package/templates/skills/dev/docs/SKILL.md +17 -17
  315. package/templates/skills/dev/migrate/SKILL.md +15 -15
  316. package/templates/skills/dev/perf/SKILL.md +17 -17
  317. package/templates/skills/dev/refactor/SKILL.md +17 -17
  318. package/templates/skills/dev/research/SKILL.md +14 -14
  319. package/templates/skills/dev/review/SKILL.md +18 -18
  320. package/templates/skills/dev/security-audit/SKILL.md +17 -17
  321. package/templates/skills/frameworks/angular/SKILL.md +46 -46
  322. package/templates/skills/frameworks/django/SKILL.md +93 -93
  323. package/templates/skills/frameworks/electron/SKILL.md +157 -157
  324. package/templates/skills/frameworks/flask/SKILL.md +48 -48
  325. package/templates/skills/frameworks/flutter/SKILL.md +65 -65
  326. package/templates/skills/frameworks/jquery/SKILL.md +42 -42
  327. package/templates/skills/frameworks/laravel/SKILL.md +48 -48
  328. package/templates/skills/frameworks/nestjs/SKILL.md +53 -53
  329. package/templates/skills/frameworks/nextjs/SKILL.md +137 -137
  330. package/templates/skills/frameworks/nuxt/SKILL.md +50 -50
  331. package/templates/skills/frameworks/rails/SKILL.md +76 -76
  332. package/templates/skills/frameworks/react/SKILL.md +48 -48
  333. package/templates/skills/frameworks/react-native/SKILL.md +57 -57
  334. package/templates/skills/frameworks/spring/SKILL.md +49 -49
  335. package/templates/skills/frameworks/symfony/SKILL.md +46 -46
  336. package/templates/skills/frameworks/vue/SKILL.md +46 -46
  337. package/templates/skills/frameworks/zend/SKILL.md +45 -45
  338. package/templates/skills/ides/copilot/SKILL.md +47 -47
  339. package/templates/skills/ides/cursor/SKILL.md +53 -53
  340. package/templates/skills/ides/jetbrains-ai/SKILL.md +45 -45
  341. package/templates/skills/ides/replit/SKILL.md +46 -46
  342. package/templates/skills/ides/tabnine/SKILL.md +39 -39
  343. package/templates/skills/ides/vscode/SKILL.md +50 -50
  344. package/templates/skills/ides/windsurf/SKILL.md +46 -46
  345. package/templates/skills/ides/zed/SKILL.md +42 -42
  346. package/templates/skills/languages/c/SKILL.md +343 -343
  347. package/templates/skills/languages/cpp/SKILL.md +753 -753
  348. package/templates/skills/languages/csharp/SKILL.md +427 -427
  349. package/templates/skills/languages/elixir/SKILL.md +464 -464
  350. package/templates/skills/languages/erlang/SKILL.md +371 -371
  351. package/templates/skills/languages/go/SKILL.md +655 -655
  352. package/templates/skills/languages/haskell/SKILL.md +187 -187
  353. package/templates/skills/languages/java/SKILL.md +617 -617
  354. package/templates/skills/languages/javascript/SKILL.md +641 -641
  355. package/templates/skills/languages/julia/SKILL.md +107 -107
  356. package/templates/skills/languages/kotlin/SKILL.md +521 -521
  357. package/templates/skills/languages/lisp/SKILL.md +110 -110
  358. package/templates/skills/languages/lua/SKILL.md +84 -84
  359. package/templates/skills/languages/objectivec/SKILL.md +100 -100
  360. package/templates/skills/languages/php/SKILL.md +426 -426
  361. package/templates/skills/languages/python/SKILL.md +692 -692
  362. package/templates/skills/languages/ruby/SKILL.md +431 -431
  363. package/templates/skills/languages/rust/SKILL.md +487 -487
  364. package/templates/skills/languages/sas/SKILL.md +83 -83
  365. package/templates/skills/languages/scala/SKILL.md +358 -358
  366. package/templates/skills/languages/solidity/SKILL.md +590 -590
  367. package/templates/skills/languages/sql/SKILL.md +147 -147
  368. package/templates/skills/languages/swift/SKILL.md +476 -476
  369. package/templates/skills/languages/typescript/SKILL.md +302 -302
  370. package/templates/skills/languages/zig/SKILL.md +275 -275
  371. package/templates/skills/modules/atlassian/SKILL.md +265 -265
  372. package/templates/skills/modules/context7/SKILL.md +64 -64
  373. package/templates/skills/modules/figma/SKILL.md +277 -277
  374. package/templates/skills/modules/github-mcp/SKILL.md +74 -74
  375. package/templates/skills/modules/grafana/SKILL.md +338 -338
  376. package/templates/skills/modules/memory/SKILL.md +73 -73
  377. package/templates/skills/modules/notion/SKILL.md +257 -257
  378. package/templates/skills/modules/playwright/SKILL.md +100 -100
  379. package/templates/skills/modules/rulebook-mcp/SKILL.md +166 -166
  380. package/templates/skills/modules/serena/SKILL.md +347 -347
  381. package/templates/skills/modules/supabase/SKILL.md +233 -233
  382. package/templates/skills/modules/synap/SKILL.md +79 -79
  383. package/templates/skills/modules/vectorizer/SKILL.md +73 -73
  384. package/templates/skills/services/azure-blob/SKILL.md +194 -194
  385. package/templates/skills/services/cassandra/SKILL.md +249 -249
  386. package/templates/skills/services/dynamodb/SKILL.md +318 -318
  387. package/templates/skills/services/elasticsearch/SKILL.md +357 -357
  388. package/templates/skills/services/gcs/SKILL.md +188 -188
  389. package/templates/skills/services/influxdb/SKILL.md +275 -275
  390. package/templates/skills/services/kafka/SKILL.md +351 -351
  391. package/templates/skills/services/mariadb/SKILL.md +193 -193
  392. package/templates/skills/services/memcached/SKILL.md +252 -252
  393. package/templates/skills/services/minio/SKILL.md +211 -211
  394. package/templates/skills/services/mongodb/SKILL.md +278 -278
  395. package/templates/skills/services/mysql/SKILL.md +368 -368
  396. package/templates/skills/services/neo4j/SKILL.md +257 -257
  397. package/templates/skills/services/oracle/SKILL.md +300 -300
  398. package/templates/skills/services/postgresql/SKILL.md +336 -336
  399. package/templates/skills/services/rabbitmq/SKILL.md +296 -296
  400. package/templates/skills/services/redis/SKILL.md +302 -302
  401. package/templates/skills/services/s3/SKILL.md +308 -308
  402. package/templates/skills/services/sqlite/SKILL.md +304 -304
  403. package/templates/skills/services/sqlserver/SKILL.md +304 -304
  404. package/templates/skills/workflows/ralph/SKILL.md +309 -309
  405. package/templates/skills/workflows/ralph/install.sh +87 -87
  406. package/templates/skills/workflows/ralph/manifest.json +158 -158
@@ -1,414 +1,414 @@
1
- # Pre-Commit Hook
2
-
3
- This template provides guidance for implementing pre-commit git hooks that enforce code quality standards before commits are created.
4
-
5
- ## Purpose
6
-
7
- Pre-commit hooks run automatically before each commit to:
8
- - Catch syntax errors and linting issues early
9
- - Ensure code formatting standards
10
- - Prevent broken code from entering version control
11
- - Enforce type checking before commit
12
- - Keep commits fast (avoid slow tests here)
13
-
14
- ## Agent Automation Commands
15
-
16
- When implementing or modifying pre-commit hooks, use these patterns:
17
-
18
- ### TypeScript/JavaScript Projects
19
- ```bash
20
- # Install hook
21
- npm run format && npm run lint && npm run type-check
22
-
23
- # Skip hook (emergency only)
24
- git commit --no-verify -m "message"
25
- ```
26
-
27
- ### Python Projects
28
- ```bash
29
- # Install hook
30
- black . && ruff check . && mypy .
31
-
32
- # Skip hook (emergency only)
33
- git commit --no-verify -m "message"
34
- ```
35
-
36
- ### Rust Projects
37
- ```bash
38
- # Install hook
39
- cargo fmt --check && cargo clippy -- -D warnings
40
-
41
- # Skip hook (emergency only)
42
- git commit --no-verify -m "message"
43
- ```
44
-
45
- ### Go Projects
46
- ```bash
47
- # Install hook
48
- gofmt -s -w . && golangci-lint run
49
-
50
- # Skip hook (emergency only)
51
- git commit --no-verify -m "message"
52
- ```
53
-
54
- ## Hook Implementation Patterns
55
-
56
- ### Cross-Platform Node.js Hook (Recommended)
57
-
58
- **Shell Wrapper** (`.git/hooks/pre-commit`):
59
- ```bash
60
- #!/bin/sh
61
-
62
- # Find Node.js executable (cross-platform)
63
- NODE_PATH=""
64
- if command -v node >/dev/null 2>&1; then
65
- NODE_PATH="node"
66
- elif [ -f "/c/Program Files/nodejs/node.exe" ]; then
67
- NODE_PATH="/c/Program Files/nodejs/node.exe"
68
- elif [ -f "/usr/bin/node" ]; then
69
- NODE_PATH="/usr/bin/node"
70
- else
71
- echo "Error: Node.js not found"
72
- exit 1
73
- fi
74
-
75
- # Execute Node.js script
76
- "$NODE_PATH" "$(dirname "$0")/pre-commit.js"
77
- exit $?
78
- ```
79
-
80
- **Node.js Script** (`.git/hooks/pre-commit.js`):
81
- ```javascript
82
- #!/usr/bin/env node
83
-
84
- const { spawn } = require('child_process');
85
-
86
- function runCommand(command, args) {
87
- return new Promise((resolve, reject) => {
88
- const proc = spawn(command, args, {
89
- stdio: 'inherit',
90
- shell: true,
91
- });
92
-
93
- proc.on('close', (code) => {
94
- if (code !== 0) reject(new Error(`Command failed: ${command} ${args.join(' ')}`));
95
- else resolve();
96
- });
97
- });
98
- }
99
-
100
- async function main() {
101
- console.log('🔍 Running pre-commit checks...\n');
102
-
103
- try {
104
- // Format check
105
- console.log('📝 Checking formatting...');
106
- await runCommand('npm', ['run', 'format']);
107
-
108
- // Lint
109
- console.log('\n🔧 Running linter...');
110
- await runCommand('npm', ['run', 'lint']);
111
-
112
- // Type check
113
- console.log('\n🔒 Type checking...');
114
- await runCommand('npm', ['run', 'type-check']);
115
-
116
- console.log('\n✅ Pre-commit checks passed!\n');
117
- process.exit(0);
118
- } catch (error) {
119
- console.error('\n❌ Pre-commit checks failed!');
120
- console.error('💡 Fix the issues or use --no-verify to skip (not recommended)\n');
121
- process.exit(1);
122
- }
123
- }
124
-
125
- main();
126
- ```
127
-
128
- ### Shell-Only Hook (Simple)
129
-
130
- **`.git/hooks/pre-commit`**:
131
- ```bash
132
- #!/bin/sh
133
-
134
- echo "🔍 Running pre-commit checks..."
135
-
136
- # Format check
137
- echo "📝 Checking formatting..."
138
- npm run format || exit 1
139
-
140
- # Lint
141
- echo "🔧 Running linter..."
142
- npm run lint || exit 1
143
-
144
- # Type check
145
- echo "🔒 Type checking..."
146
- npm run type-check || exit 1
147
-
148
- echo "✅ Pre-commit checks passed!"
149
- exit 0
150
- ```
151
-
152
- ## Best Practices
153
-
154
- ### ✅ DO Include in Pre-Commit
155
-
156
- 1. **Fast Checks Only** (< 30 seconds total)
157
- - Code formatting validation
158
- - Linting (syntax, style)
159
- - Type checking
160
- - Basic syntax validation
161
-
162
- 2. **Automatic Fixes When Possible**
163
- ```javascript
164
- // Auto-format before committing
165
- await runCommand('npm', ['run', 'format:fix']);
166
- ```
167
-
168
- 3. **Clear Error Messages**
169
- ```javascript
170
- console.error('❌ Linting failed!');
171
- console.error('💡 Run: npm run lint:fix');
172
- console.error('📖 Or skip with: git commit --no-verify');
173
- ```
174
-
175
- 4. **Staged Files Only** (Advanced)
176
- ```bash
177
- # Only check staged files
178
- git diff --cached --name-only --diff-filter=ACM | \
179
- grep '\.ts$' | \
180
- xargs eslint
181
- ```
182
-
183
- ### ❌ DON'T Include in Pre-Commit
184
-
185
- 1. **Slow Operations** (move to pre-push)
186
- - Full test suite
187
- - Integration tests
188
- - E2E tests
189
- - Build verification
190
- - Coverage reports
191
-
192
- 2. **External API Calls**
193
- - Deployment checks
194
- - Remote validation
195
- - Database migrations
196
-
197
- 3. **Heavy Operations**
198
- - Large file processing
199
- - Compilation of entire codebase
200
- - Documentation generation
201
-
202
- ## Language-Specific Patterns
203
-
204
- ### TypeScript/JavaScript (npm/pnpm/yarn)
205
-
206
- ```json
207
- {
208
- "scripts": {
209
- "format": "prettier --check \"src/**/*.ts\"",
210
- "format:fix": "prettier --write \"src/**/*.ts\"",
211
- "lint": "eslint src/**/*.ts --quiet",
212
- "lint:fix": "eslint src/**/*.ts --fix --quiet",
213
- "type-check": "tsc --noEmit"
214
- }
215
- }
216
- ```
217
-
218
- ### Python (poetry/pip)
219
-
220
- ```bash
221
- #!/bin/sh
222
- echo "🔍 Running pre-commit checks..."
223
-
224
- # Format check
225
- black --check . || exit 1
226
-
227
- # Lint
228
- ruff check . || exit 1
229
-
230
- # Type check
231
- mypy . || exit 1
232
-
233
- echo "✅ Pre-commit checks passed!"
234
- ```
235
-
236
- ### Rust (cargo)
237
-
238
- ```bash
239
- #!/bin/sh
240
- echo "🔍 Running pre-commit checks..."
241
-
242
- # Format check
243
- cargo fmt -- --check || exit 1
244
-
245
- # Lint
246
- cargo clippy -- -D warnings || exit 1
247
-
248
- echo "✅ Pre-commit checks passed!"
249
- ```
250
-
251
- ### Go
252
-
253
- ```bash
254
- #!/bin/sh
255
- echo "🔍 Running pre-commit checks..."
256
-
257
- # Format
258
- gofmt -s -w . || exit 1
259
-
260
- # Lint
261
- golangci-lint run || exit 1
262
-
263
- # Vet
264
- go vet ./... || exit 1
265
-
266
- echo "✅ Pre-commit checks passed!"
267
- ```
268
-
269
- ## Installation Methods
270
-
271
- ### Manual Installation
272
-
273
- ```bash
274
- # Copy hook to .git/hooks/
275
- cp scripts/pre-commit.sh .git/hooks/pre-commit
276
- chmod +x .git/hooks/pre-commit
277
- ```
278
-
279
- ### Automated Installation (Recommended)
280
-
281
- **`package.json`**:
282
- ```json
283
- {
284
- "scripts": {
285
- "prepare": "node scripts/install-hooks.js"
286
- }
287
- }
288
- ```
289
-
290
- **`scripts/install-hooks.js`**:
291
- ```javascript
292
- const fs = require('fs');
293
- const path = require('path');
294
-
295
- const hookSource = path.join(__dirname, 'pre-commit.sh');
296
- const hookDest = path.join(__dirname, '..', '.git', 'hooks', 'pre-commit');
297
-
298
- if (!fs.existsSync('.git/hooks')) {
299
- fs.mkdirSync('.git/hooks', { recursive: true });
300
- }
301
-
302
- fs.copyFileSync(hookSource, hookDest);
303
- fs.chmodSync(hookDest, 0o755);
304
-
305
- console.log('✅ Pre-commit hook installed!');
306
- ```
307
-
308
- ### Using Husky (npm)
309
-
310
- ```bash
311
- # Install husky
312
- npm install --save-dev husky
313
-
314
- # Initialize husky
315
- npx husky init
316
-
317
- # Create pre-commit hook
318
- npx husky set .husky/pre-commit "npm run format && npm run lint && npm run type-check"
319
- ```
320
-
321
- ## Troubleshooting
322
-
323
- ### Hook Not Running
324
-
325
- **Issue**: Git doesn't execute the hook
326
-
327
- **Solutions**:
328
- 1. Check file permissions: `chmod +x .git/hooks/pre-commit`
329
- 2. Verify shebang: `#!/bin/sh` or `#!/usr/bin/env node`
330
- 3. Check file location: Must be `.git/hooks/pre-commit` (no extension)
331
-
332
- ### Hook Too Slow
333
-
334
- **Issue**: Pre-commit takes > 1 minute
335
-
336
- **Solutions**:
337
- 1. Move slow checks to pre-push hook
338
- 2. Only check staged files (not entire codebase)
339
- 3. Use parallel execution for independent checks
340
- 4. Cache results between runs
341
-
342
- ### Windows Compatibility Issues
343
-
344
- **Issue**: Hook fails on Windows/Git Bash
345
-
346
- **Solutions**:
347
- 1. Use Node.js-based hooks (cross-platform)
348
- 2. Use forward slashes in paths (`/c/Program Files/nodejs/node.exe`)
349
- 3. Use `spawn` instead of `exec` in Node.js scripts
350
- 4. Avoid bash-specific syntax (use POSIX-compliant shell)
351
-
352
- ### False Positives
353
-
354
- **Issue**: Hook fails on valid code
355
-
356
- **Solutions**:
357
- 1. Review linting rules for strictness
358
- 2. Add `.eslintignore` / `.prettierignore` for generated files
359
- 3. Update type definitions for external libraries
360
- 4. Adjust formatter config to match team standards
361
-
362
- ## Emergency Bypass
363
-
364
- When you MUST commit despite failing checks:
365
-
366
- ```bash
367
- # Skip pre-commit hook (use sparingly!)
368
- git commit --no-verify -m "Emergency fix: production down"
369
-
370
- # Or set environment variable
371
- HUSKY_SKIP_HOOKS=1 git commit -m "message"
372
- ```
373
-
374
- **⚠️ WARNING**: Only bypass hooks for genuine emergencies. Fix the underlying issues immediately after.
375
-
376
- ## Common Pitfalls
377
-
378
- 1. **❌ Running full test suite**: Too slow, move to pre-push
379
- 2. **❌ Not handling staged files**: Checks all files instead of just staged changes
380
- 3. **❌ Unclear error messages**: Developers don't know how to fix issues
381
- 4. **❌ No escape hatch**: Always allow `--no-verify` for emergencies
382
- 5. **❌ Platform-specific commands**: Use cross-platform tools or Node.js scripts
383
-
384
- ## Integration with Rulebook
385
-
386
- If using `@hivehub/rulebook`, hooks are automatically generated:
387
-
388
- ```bash
389
- # Initialize project with hooks
390
- npx @hivehub/rulebook init
391
-
392
- # Hooks are created in .git/hooks/ with cross-platform support
393
- # Configuration stored in .rulebook file
394
- ```
395
-
396
- Hook configuration in `.rulebook`:
397
- ```json
398
- {
399
- "hooks": {
400
- "preCommit": {
401
- "enabled": true,
402
- "checks": ["format", "lint", "type-check"]
403
- }
404
- }
405
- }
406
- ```
407
-
408
- ## Related Templates
409
-
410
- - See `/.rulebook/specs/PRE_PUSH.md` for build and test checks before push
411
- - See `/.rulebook/specs/COMMIT_MSG.md` for commit message validation
412
- - See `/.rulebook/specs/QUALITY_ENFORCEMENT.md` for quality standards
413
- - See `/.rulebook/specs/GIT.md` for git workflow and commit conventions
414
- - See language-specific templates for language-specific quality commands
1
+ # Pre-Commit Hook
2
+
3
+ This template provides guidance for implementing pre-commit git hooks that enforce code quality standards before commits are created.
4
+
5
+ ## Purpose
6
+
7
+ Pre-commit hooks run automatically before each commit to:
8
+ - Catch syntax errors and linting issues early
9
+ - Ensure code formatting standards
10
+ - Prevent broken code from entering version control
11
+ - Enforce type checking before commit
12
+ - Keep commits fast (avoid slow tests here)
13
+
14
+ ## Agent Automation Commands
15
+
16
+ When implementing or modifying pre-commit hooks, use these patterns:
17
+
18
+ ### TypeScript/JavaScript Projects
19
+ ```bash
20
+ # Install hook
21
+ npm run format && npm run lint && npm run type-check
22
+
23
+ # Skip hook (emergency only)
24
+ git commit --no-verify -m "message"
25
+ ```
26
+
27
+ ### Python Projects
28
+ ```bash
29
+ # Install hook
30
+ black . && ruff check . && mypy .
31
+
32
+ # Skip hook (emergency only)
33
+ git commit --no-verify -m "message"
34
+ ```
35
+
36
+ ### Rust Projects
37
+ ```bash
38
+ # Install hook
39
+ cargo fmt --check && cargo clippy -- -D warnings
40
+
41
+ # Skip hook (emergency only)
42
+ git commit --no-verify -m "message"
43
+ ```
44
+
45
+ ### Go Projects
46
+ ```bash
47
+ # Install hook
48
+ gofmt -s -w . && golangci-lint run
49
+
50
+ # Skip hook (emergency only)
51
+ git commit --no-verify -m "message"
52
+ ```
53
+
54
+ ## Hook Implementation Patterns
55
+
56
+ ### Cross-Platform Node.js Hook (Recommended)
57
+
58
+ **Shell Wrapper** (`.git/hooks/pre-commit`):
59
+ ```bash
60
+ #!/bin/sh
61
+
62
+ # Find Node.js executable (cross-platform)
63
+ NODE_PATH=""
64
+ if command -v node >/dev/null 2>&1; then
65
+ NODE_PATH="node"
66
+ elif [ -f "/c/Program Files/nodejs/node.exe" ]; then
67
+ NODE_PATH="/c/Program Files/nodejs/node.exe"
68
+ elif [ -f "/usr/bin/node" ]; then
69
+ NODE_PATH="/usr/bin/node"
70
+ else
71
+ echo "Error: Node.js not found"
72
+ exit 1
73
+ fi
74
+
75
+ # Execute Node.js script
76
+ "$NODE_PATH" "$(dirname "$0")/pre-commit.js"
77
+ exit $?
78
+ ```
79
+
80
+ **Node.js Script** (`.git/hooks/pre-commit.js`):
81
+ ```javascript
82
+ #!/usr/bin/env node
83
+
84
+ const { spawn } = require('child_process');
85
+
86
+ function runCommand(command, args) {
87
+ return new Promise((resolve, reject) => {
88
+ const proc = spawn(command, args, {
89
+ stdio: 'inherit',
90
+ shell: true,
91
+ });
92
+
93
+ proc.on('close', (code) => {
94
+ if (code !== 0) reject(new Error(`Command failed: ${command} ${args.join(' ')}`));
95
+ else resolve();
96
+ });
97
+ });
98
+ }
99
+
100
+ async function main() {
101
+ console.log('🔍 Running pre-commit checks...\n');
102
+
103
+ try {
104
+ // Format check
105
+ console.log('📝 Checking formatting...');
106
+ await runCommand('npm', ['run', 'format']);
107
+
108
+ // Lint
109
+ console.log('\n🔧 Running linter...');
110
+ await runCommand('npm', ['run', 'lint']);
111
+
112
+ // Type check
113
+ console.log('\n🔒 Type checking...');
114
+ await runCommand('npm', ['run', 'type-check']);
115
+
116
+ console.log('\n✅ Pre-commit checks passed!\n');
117
+ process.exit(0);
118
+ } catch (error) {
119
+ console.error('\n❌ Pre-commit checks failed!');
120
+ console.error('💡 Fix the issues or use --no-verify to skip (not recommended)\n');
121
+ process.exit(1);
122
+ }
123
+ }
124
+
125
+ main();
126
+ ```
127
+
128
+ ### Shell-Only Hook (Simple)
129
+
130
+ **`.git/hooks/pre-commit`**:
131
+ ```bash
132
+ #!/bin/sh
133
+
134
+ echo "🔍 Running pre-commit checks..."
135
+
136
+ # Format check
137
+ echo "📝 Checking formatting..."
138
+ npm run format || exit 1
139
+
140
+ # Lint
141
+ echo "🔧 Running linter..."
142
+ npm run lint || exit 1
143
+
144
+ # Type check
145
+ echo "🔒 Type checking..."
146
+ npm run type-check || exit 1
147
+
148
+ echo "✅ Pre-commit checks passed!"
149
+ exit 0
150
+ ```
151
+
152
+ ## Best Practices
153
+
154
+ ### ✅ DO Include in Pre-Commit
155
+
156
+ 1. **Fast Checks Only** (< 30 seconds total)
157
+ - Code formatting validation
158
+ - Linting (syntax, style)
159
+ - Type checking
160
+ - Basic syntax validation
161
+
162
+ 2. **Automatic Fixes When Possible**
163
+ ```javascript
164
+ // Auto-format before committing
165
+ await runCommand('npm', ['run', 'format:fix']);
166
+ ```
167
+
168
+ 3. **Clear Error Messages**
169
+ ```javascript
170
+ console.error('❌ Linting failed!');
171
+ console.error('💡 Run: npm run lint:fix');
172
+ console.error('📖 Or skip with: git commit --no-verify');
173
+ ```
174
+
175
+ 4. **Staged Files Only** (Advanced)
176
+ ```bash
177
+ # Only check staged files
178
+ git diff --cached --name-only --diff-filter=ACM | \
179
+ grep '\.ts$' | \
180
+ xargs eslint
181
+ ```
182
+
183
+ ### ❌ DON'T Include in Pre-Commit
184
+
185
+ 1. **Slow Operations** (move to pre-push)
186
+ - Full test suite
187
+ - Integration tests
188
+ - E2E tests
189
+ - Build verification
190
+ - Coverage reports
191
+
192
+ 2. **External API Calls**
193
+ - Deployment checks
194
+ - Remote validation
195
+ - Database migrations
196
+
197
+ 3. **Heavy Operations**
198
+ - Large file processing
199
+ - Compilation of entire codebase
200
+ - Documentation generation
201
+
202
+ ## Language-Specific Patterns
203
+
204
+ ### TypeScript/JavaScript (npm/pnpm/yarn)
205
+
206
+ ```json
207
+ {
208
+ "scripts": {
209
+ "format": "prettier --check \"src/**/*.ts\"",
210
+ "format:fix": "prettier --write \"src/**/*.ts\"",
211
+ "lint": "eslint src/**/*.ts --quiet",
212
+ "lint:fix": "eslint src/**/*.ts --fix --quiet",
213
+ "type-check": "tsc --noEmit"
214
+ }
215
+ }
216
+ ```
217
+
218
+ ### Python (poetry/pip)
219
+
220
+ ```bash
221
+ #!/bin/sh
222
+ echo "🔍 Running pre-commit checks..."
223
+
224
+ # Format check
225
+ black --check . || exit 1
226
+
227
+ # Lint
228
+ ruff check . || exit 1
229
+
230
+ # Type check
231
+ mypy . || exit 1
232
+
233
+ echo "✅ Pre-commit checks passed!"
234
+ ```
235
+
236
+ ### Rust (cargo)
237
+
238
+ ```bash
239
+ #!/bin/sh
240
+ echo "🔍 Running pre-commit checks..."
241
+
242
+ # Format check
243
+ cargo fmt -- --check || exit 1
244
+
245
+ # Lint
246
+ cargo clippy -- -D warnings || exit 1
247
+
248
+ echo "✅ Pre-commit checks passed!"
249
+ ```
250
+
251
+ ### Go
252
+
253
+ ```bash
254
+ #!/bin/sh
255
+ echo "🔍 Running pre-commit checks..."
256
+
257
+ # Format
258
+ gofmt -s -w . || exit 1
259
+
260
+ # Lint
261
+ golangci-lint run || exit 1
262
+
263
+ # Vet
264
+ go vet ./... || exit 1
265
+
266
+ echo "✅ Pre-commit checks passed!"
267
+ ```
268
+
269
+ ## Installation Methods
270
+
271
+ ### Manual Installation
272
+
273
+ ```bash
274
+ # Copy hook to .git/hooks/
275
+ cp scripts/pre-commit.sh .git/hooks/pre-commit
276
+ chmod +x .git/hooks/pre-commit
277
+ ```
278
+
279
+ ### Automated Installation (Recommended)
280
+
281
+ **`package.json`**:
282
+ ```json
283
+ {
284
+ "scripts": {
285
+ "prepare": "node scripts/install-hooks.js"
286
+ }
287
+ }
288
+ ```
289
+
290
+ **`scripts/install-hooks.js`**:
291
+ ```javascript
292
+ const fs = require('fs');
293
+ const path = require('path');
294
+
295
+ const hookSource = path.join(__dirname, 'pre-commit.sh');
296
+ const hookDest = path.join(__dirname, '..', '.git', 'hooks', 'pre-commit');
297
+
298
+ if (!fs.existsSync('.git/hooks')) {
299
+ fs.mkdirSync('.git/hooks', { recursive: true });
300
+ }
301
+
302
+ fs.copyFileSync(hookSource, hookDest);
303
+ fs.chmodSync(hookDest, 0o755);
304
+
305
+ console.log('✅ Pre-commit hook installed!');
306
+ ```
307
+
308
+ ### Using Husky (npm)
309
+
310
+ ```bash
311
+ # Install husky
312
+ npm install --save-dev husky
313
+
314
+ # Initialize husky
315
+ npx husky init
316
+
317
+ # Create pre-commit hook
318
+ npx husky set .husky/pre-commit "npm run format && npm run lint && npm run type-check"
319
+ ```
320
+
321
+ ## Troubleshooting
322
+
323
+ ### Hook Not Running
324
+
325
+ **Issue**: Git doesn't execute the hook
326
+
327
+ **Solutions**:
328
+ 1. Check file permissions: `chmod +x .git/hooks/pre-commit`
329
+ 2. Verify shebang: `#!/bin/sh` or `#!/usr/bin/env node`
330
+ 3. Check file location: Must be `.git/hooks/pre-commit` (no extension)
331
+
332
+ ### Hook Too Slow
333
+
334
+ **Issue**: Pre-commit takes > 1 minute
335
+
336
+ **Solutions**:
337
+ 1. Move slow checks to pre-push hook
338
+ 2. Only check staged files (not entire codebase)
339
+ 3. Use parallel execution for independent checks
340
+ 4. Cache results between runs
341
+
342
+ ### Windows Compatibility Issues
343
+
344
+ **Issue**: Hook fails on Windows/Git Bash
345
+
346
+ **Solutions**:
347
+ 1. Use Node.js-based hooks (cross-platform)
348
+ 2. Use forward slashes in paths (`/c/Program Files/nodejs/node.exe`)
349
+ 3. Use `spawn` instead of `exec` in Node.js scripts
350
+ 4. Avoid bash-specific syntax (use POSIX-compliant shell)
351
+
352
+ ### False Positives
353
+
354
+ **Issue**: Hook fails on valid code
355
+
356
+ **Solutions**:
357
+ 1. Review linting rules for strictness
358
+ 2. Add `.eslintignore` / `.prettierignore` for generated files
359
+ 3. Update type definitions for external libraries
360
+ 4. Adjust formatter config to match team standards
361
+
362
+ ## Emergency Bypass
363
+
364
+ When you MUST commit despite failing checks:
365
+
366
+ ```bash
367
+ # Skip pre-commit hook (use sparingly!)
368
+ git commit --no-verify -m "Emergency fix: production down"
369
+
370
+ # Or set environment variable
371
+ HUSKY_SKIP_HOOKS=1 git commit -m "message"
372
+ ```
373
+
374
+ **⚠️ WARNING**: Only bypass hooks for genuine emergencies. Fix the underlying issues immediately after.
375
+
376
+ ## Common Pitfalls
377
+
378
+ 1. **❌ Running full test suite**: Too slow, move to pre-push
379
+ 2. **❌ Not handling staged files**: Checks all files instead of just staged changes
380
+ 3. **❌ Unclear error messages**: Developers don't know how to fix issues
381
+ 4. **❌ No escape hatch**: Always allow `--no-verify` for emergencies
382
+ 5. **❌ Platform-specific commands**: Use cross-platform tools or Node.js scripts
383
+
384
+ ## Integration with Rulebook
385
+
386
+ If using `@hivehub/rulebook`, hooks are automatically generated:
387
+
388
+ ```bash
389
+ # Initialize project with hooks
390
+ npx @hivehub/rulebook init
391
+
392
+ # Hooks are created in .git/hooks/ with cross-platform support
393
+ # Configuration stored in .rulebook file
394
+ ```
395
+
396
+ Hook configuration in `.rulebook`:
397
+ ```json
398
+ {
399
+ "hooks": {
400
+ "preCommit": {
401
+ "enabled": true,
402
+ "checks": ["format", "lint", "type-check"]
403
+ }
404
+ }
405
+ }
406
+ ```
407
+
408
+ ## Related Templates
409
+
410
+ - See `/.rulebook/specs/PRE_PUSH.md` for build and test checks before push
411
+ - See `/.rulebook/specs/COMMIT_MSG.md` for commit message validation
412
+ - See `/.rulebook/specs/QUALITY_ENFORCEMENT.md` for quality standards
413
+ - See `/.rulebook/specs/GIT.md` for git workflow and commit conventions
414
+ - See language-specific templates for language-specific quality commands