@hivehub/rulebook 5.8.1 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (514) hide show
  1. package/README.md +86 -216
  2. package/dist/cli/commands/claude.d.ts.map +1 -1
  3. package/dist/cli/commands/claude.js +10 -4
  4. package/dist/cli/commands/claude.js.map +1 -1
  5. package/dist/cli/commands/context-intelligence.d.ts.map +1 -1
  6. package/dist/cli/commands/context-intelligence.js.map +1 -1
  7. package/dist/cli/commands/index.d.ts +1 -2
  8. package/dist/cli/commands/index.d.ts.map +1 -1
  9. package/dist/cli/commands/index.js +1 -2
  10. package/dist/cli/commands/index.js.map +1 -1
  11. package/dist/cli/commands/init.d.ts.map +1 -1
  12. package/dist/cli/commands/init.js +16 -91
  13. package/dist/cli/commands/init.js.map +1 -1
  14. package/dist/cli/commands/mcp.d.ts.map +1 -1
  15. package/dist/cli/commands/mcp.js.map +1 -1
  16. package/dist/cli/commands/misc.d.ts +0 -1
  17. package/dist/cli/commands/misc.d.ts.map +1 -1
  18. package/dist/cli/commands/misc.js +0 -76
  19. package/dist/cli/commands/misc.js.map +1 -1
  20. package/dist/cli/commands/plans.d.ts.map +1 -1
  21. package/dist/cli/commands/plans.js.map +1 -1
  22. package/dist/cli/commands/skills.d.ts.map +1 -1
  23. package/dist/cli/commands/skills.js +6 -2
  24. package/dist/cli/commands/skills.js.map +1 -1
  25. package/dist/cli/commands/task.d.ts.map +1 -1
  26. package/dist/cli/commands/task.js +3 -1
  27. package/dist/cli/commands/task.js.map +1 -1
  28. package/dist/cli/commands/update.d.ts +7 -0
  29. package/dist/cli/commands/update.d.ts.map +1 -1
  30. package/dist/cli/commands/update.js +61 -165
  31. package/dist/cli/commands/update.js.map +1 -1
  32. package/dist/cli/commands/workspace.d.ts.map +1 -1
  33. package/dist/cli/commands/workspace.js +4 -3
  34. package/dist/cli/commands/workspace.js.map +1 -1
  35. package/dist/cli/prompts.d.ts.map +1 -1
  36. package/dist/cli/prompts.js +0 -40
  37. package/dist/cli/prompts.js.map +1 -1
  38. package/dist/core/claude/claude-mcp.d.ts.map +1 -1
  39. package/dist/core/claude/claude-mcp.js +1 -1
  40. package/dist/core/claude/claude-mcp.js.map +1 -1
  41. package/dist/core/claude/claude-md-generator.d.ts.map +1 -1
  42. package/dist/core/claude/claude-md-generator.js.map +1 -1
  43. package/dist/core/claude/claude-settings-manager.d.ts.map +1 -1
  44. package/dist/core/claude/claude-settings-manager.js +9 -6
  45. package/dist/core/claude/claude-settings-manager.js.map +1 -1
  46. package/dist/core/custom-templates.d.ts.map +1 -1
  47. package/dist/core/custom-templates.js.map +1 -1
  48. package/dist/core/detect/detector.d.ts +0 -28
  49. package/dist/core/detect/detector.d.ts.map +1 -1
  50. package/dist/core/detect/detector.js +5 -84
  51. package/dist/core/detect/detector.js.map +1 -1
  52. package/dist/core/detect/library-registry.d.ts.map +1 -1
  53. package/dist/core/detect/library-registry.js.map +1 -1
  54. package/dist/core/docs/docs-generator.d.ts.map +1 -1
  55. package/dist/core/docs/docs-generator.js.map +1 -1
  56. package/dist/core/docs/mcp-reference-generator.d.ts.map +1 -1
  57. package/dist/core/docs/mcp-reference-generator.js.map +1 -1
  58. package/dist/core/generators/generator.d.ts.map +1 -1
  59. package/dist/core/generators/generator.js +0 -72
  60. package/dist/core/generators/generator.js.map +1 -1
  61. package/dist/core/generators/gitignore-generator.d.ts.map +1 -1
  62. package/dist/core/generators/gitignore-generator.js +12 -1
  63. package/dist/core/generators/gitignore-generator.js.map +1 -1
  64. package/dist/core/generators/minimal-scaffolder.d.ts.map +1 -1
  65. package/dist/core/generators/minimal-scaffolder.js.map +1 -1
  66. package/dist/core/generators/rules-generator.d.ts.map +1 -1
  67. package/dist/core/generators/rules-generator.js.map +1 -1
  68. package/dist/core/generators/workflow-generator.d.ts +0 -10
  69. package/dist/core/generators/workflow-generator.d.ts.map +1 -1
  70. package/dist/core/generators/workflow-generator.js +0 -307
  71. package/dist/core/generators/workflow-generator.js.map +1 -1
  72. package/dist/core/logger.d.ts.map +1 -1
  73. package/dist/core/logger.js.map +1 -1
  74. package/dist/core/merger.d.ts.map +1 -1
  75. package/dist/core/merger.js.map +1 -1
  76. package/dist/core/migrator.d.ts.map +1 -1
  77. package/dist/core/migrator.js +2 -1
  78. package/dist/core/migrator.js.map +1 -1
  79. package/dist/core/quality/coverage-checker.d.ts.map +1 -1
  80. package/dist/core/quality/coverage-checker.js.map +1 -1
  81. package/dist/core/quality/dependency-checker.d.ts.map +1 -1
  82. package/dist/core/quality/dependency-checker.js +3 -1
  83. package/dist/core/quality/dependency-checker.js.map +1 -1
  84. package/dist/core/quality/doctor.d.ts.map +1 -1
  85. package/dist/core/quality/doctor.js.map +1 -1
  86. package/dist/core/quality/validator.d.ts.map +1 -1
  87. package/dist/core/quality/validator.js.map +1 -1
  88. package/dist/core/rule-engine.d.ts +5 -21
  89. package/dist/core/rule-engine.d.ts.map +1 -1
  90. package/dist/core/rule-engine.js +9 -191
  91. package/dist/core/rule-engine.js.map +1 -1
  92. package/dist/core/skills/skills-manager.d.ts.map +1 -1
  93. package/dist/core/skills/skills-manager.js.map +1 -1
  94. package/dist/core/state/config-manager.d.ts.map +1 -1
  95. package/dist/core/state/config-manager.js +6 -50
  96. package/dist/core/state/config-manager.js.map +1 -1
  97. package/dist/core/state/override-manager.js.map +1 -1
  98. package/dist/core/state/state-writer.d.ts.map +1 -1
  99. package/dist/core/state/state-writer.js.map +1 -1
  100. package/dist/core/state/version-bumper.d.ts.map +1 -1
  101. package/dist/core/state/version-bumper.js.map +1 -1
  102. package/dist/core/tasks/decision-manager.d.ts.map +1 -1
  103. package/dist/core/tasks/decision-manager.js +6 -1
  104. package/dist/core/tasks/decision-manager.js.map +1 -1
  105. package/dist/core/tasks/knowledge-manager.d.ts.map +1 -1
  106. package/dist/core/tasks/knowledge-manager.js.map +1 -1
  107. package/dist/core/tasks/learn-manager.d.ts.map +1 -1
  108. package/dist/core/tasks/learn-manager.js.map +1 -1
  109. package/dist/core/tasks/plans-manager.d.ts.map +1 -1
  110. package/dist/core/tasks/plans-manager.js.map +1 -1
  111. package/dist/core/tasks/task-manager.d.ts.map +1 -1
  112. package/dist/core/tasks/task-manager.js.map +1 -1
  113. package/dist/core/workspace/legacy-migrator.d.ts.map +1 -1
  114. package/dist/core/workspace/legacy-migrator.js.map +1 -1
  115. package/dist/core/workspace/project-worker.d.ts +0 -4
  116. package/dist/core/workspace/project-worker.d.ts.map +1 -1
  117. package/dist/core/workspace/project-worker.js +0 -28
  118. package/dist/core/workspace/project-worker.js.map +1 -1
  119. package/dist/core/workspace/workspace-manager.d.ts +0 -11
  120. package/dist/core/workspace/workspace-manager.d.ts.map +1 -1
  121. package/dist/core/workspace/workspace-manager.js +6 -30
  122. package/dist/core/workspace/workspace-manager.js.map +1 -1
  123. package/dist/core/workspace/workspace-types.d.ts +0 -1
  124. package/dist/core/workspace/workspace-types.d.ts.map +1 -1
  125. package/dist/hooks/safe-flag-io.js.map +1 -1
  126. package/dist/index.d.ts +1 -1
  127. package/dist/index.d.ts.map +1 -1
  128. package/dist/index.js +3 -82
  129. package/dist/index.js.map +1 -1
  130. package/dist/mcp/rulebook-server.d.ts.map +1 -1
  131. package/dist/mcp/rulebook-server.js +55 -1634
  132. package/dist/mcp/rulebook-server.js.map +1 -1
  133. package/dist/mcp/tools/context.d.ts +23 -0
  134. package/dist/mcp/tools/context.d.ts.map +1 -0
  135. package/dist/mcp/tools/context.js +2 -0
  136. package/dist/mcp/tools/context.js.map +1 -0
  137. package/dist/mcp/tools/decision-tools.d.ts +5 -0
  138. package/dist/mcp/tools/decision-tools.d.ts.map +1 -0
  139. package/dist/mcp/tools/decision-tools.js +220 -0
  140. package/dist/mcp/tools/decision-tools.js.map +1 -0
  141. package/dist/mcp/tools/knowledge-tools.d.ts +5 -0
  142. package/dist/mcp/tools/knowledge-tools.d.ts.map +1 -0
  143. package/dist/mcp/tools/knowledge-tools.js +157 -0
  144. package/dist/mcp/tools/knowledge-tools.js.map +1 -0
  145. package/dist/mcp/tools/learn-tools.d.ts +5 -0
  146. package/dist/mcp/tools/learn-tools.d.ts.map +1 -0
  147. package/dist/mcp/tools/learn-tools.js +150 -0
  148. package/dist/mcp/tools/learn-tools.js.map +1 -0
  149. package/dist/mcp/tools/rules-tools.d.ts +4 -0
  150. package/dist/mcp/tools/rules-tools.d.ts.map +1 -0
  151. package/dist/mcp/tools/rules-tools.js +47 -0
  152. package/dist/mcp/tools/rules-tools.js.map +1 -0
  153. package/dist/mcp/tools/skill-tools.d.ts +5 -0
  154. package/dist/mcp/tools/skill-tools.d.ts.map +1 -0
  155. package/dist/mcp/tools/skill-tools.js +330 -0
  156. package/dist/mcp/tools/skill-tools.js.map +1 -0
  157. package/dist/mcp/tools/task-tools.d.ts +5 -0
  158. package/dist/mcp/tools/task-tools.d.ts.map +1 -0
  159. package/dist/mcp/tools/task-tools.js +185 -0
  160. package/dist/mcp/tools/task-tools.js.map +1 -0
  161. package/dist/mcp/tools/workspace-tools.d.ts +6 -0
  162. package/dist/mcp/tools/workspace-tools.d.ts.map +1 -0
  163. package/dist/mcp/tools/workspace-tools.js +118 -0
  164. package/dist/mcp/tools/workspace-tools.js.map +1 -0
  165. package/dist/types.d.ts +1 -46
  166. package/dist/types.d.ts.map +1 -1
  167. package/dist/utils/file-system.d.ts.map +1 -1
  168. package/dist/utils/file-system.js.map +1 -1
  169. package/dist/utils/git-hooks.d.ts.map +1 -1
  170. package/dist/utils/git-hooks.js.map +1 -1
  171. package/dist/utils/gitignore.d.ts.map +1 -1
  172. package/dist/utils/gitignore.js.map +1 -1
  173. package/dist/utils/rulesignore.d.ts.map +1 -1
  174. package/dist/utils/rulesignore.js.map +1 -1
  175. package/package.json +25 -27
  176. package/templates/agents/architect.md +51 -51
  177. package/templates/agents/build-engineer.md +36 -36
  178. package/templates/agents/code-reviewer.md +47 -47
  179. package/templates/agents/docs-writer.md +38 -38
  180. package/templates/agents/implementer.md +42 -42
  181. package/templates/agents/performance-engineer.md +49 -49
  182. package/templates/agents/researcher.md +38 -38
  183. package/templates/agents/security-reviewer.md +40 -40
  184. package/templates/agents/team-lead.md +37 -37
  185. package/templates/agents/tester.md +48 -48
  186. package/templates/ci/rulebook-review.yml +26 -26
  187. package/templates/claude-workflows/review-fanout.js +2 -2
  188. package/templates/claude-workflows/rulebook-driver.js +16 -4
  189. package/templates/cli/CLAUDE.md +102 -117
  190. package/templates/cli/_GENERIC_TEMPLATE.md +29 -29
  191. package/templates/commands/rulebook-decision-create.md +55 -55
  192. package/templates/commands/rulebook-decision-list.md +15 -15
  193. package/templates/commands/rulebook-knowledge-add.md +41 -41
  194. package/templates/commands/rulebook-knowledge-list.md +15 -15
  195. package/templates/commands/rulebook-learn-capture.md +1 -2
  196. package/templates/commands/rulebook-task-apply.md +67 -67
  197. package/templates/commands/rulebook-task-archive.md +94 -94
  198. package/templates/commands/rulebook-task-create.md +93 -93
  199. package/templates/commands/rulebook-task-list.md +42 -42
  200. package/templates/commands/rulebook-task-show.md +52 -52
  201. package/templates/commands/rulebook-task-validate.md +53 -53
  202. package/templates/compact-context/_default.md +23 -23
  203. package/templates/compact-context/cpp.md +26 -26
  204. package/templates/compact-context/go.md +26 -26
  205. package/templates/compact-context/python.md +26 -26
  206. package/templates/compact-context/rust.md +28 -28
  207. package/templates/compact-context/typescript.md +29 -29
  208. package/templates/core/AGENTS_LEAN.md +4 -9
  209. package/templates/core/AGENTS_OVERRIDE.md +16 -16
  210. package/templates/core/AGENT_AUTOMATION.md +273 -296
  211. package/templates/core/CLAUDE_MD_v2.md +85 -90
  212. package/templates/core/DAG.md +304 -304
  213. package/templates/core/DECISIONS.md +38 -38
  214. package/templates/core/DOCUMENTATION_RULES.md +36 -36
  215. package/templates/core/KNOWLEDGE.md +49 -49
  216. package/templates/core/MULTI_AGENT.md +74 -74
  217. package/templates/core/PLANS.md +28 -28
  218. package/templates/core/QUALITY_ENFORCEMENT.md +68 -68
  219. package/templates/core/RULEBOOK.md +1936 -1947
  220. package/templates/core/TIER1_PROHIBITIONS.md +154 -154
  221. package/templates/core/TOKEN_OPTIMIZATION.md +49 -49
  222. package/templates/core/WORKSPACE.md +4 -8
  223. package/templates/git/CI_CD_PATTERNS.md +661 -661
  224. package/templates/git/GITHUB_ACTIONS.md +728 -728
  225. package/templates/git/GITLAB_CI.md +730 -730
  226. package/templates/git/GIT_WORKFLOW.md +1192 -1192
  227. package/templates/git/SECRETS_MANAGEMENT.md +585 -585
  228. package/templates/hooks/COMMIT_MSG.md +530 -530
  229. package/templates/hooks/POST_CHECKOUT.md +546 -546
  230. package/templates/hooks/PREPARE_COMMIT_MSG.md +619 -619
  231. package/templates/hooks/PRE_COMMIT.md +414 -414
  232. package/templates/hooks/PRE_PUSH.md +601 -601
  233. package/templates/hooks/enforce-pre-tool.sh +26 -9
  234. package/templates/hooks/update-check.ps1 +84 -84
  235. package/templates/hooks/update-check.sh +45 -21
  236. package/templates/languages/C.md +333 -333
  237. package/templates/languages/CPP.md +743 -743
  238. package/templates/languages/CSHARP.md +417 -417
  239. package/templates/languages/ELIXIR.md +454 -454
  240. package/templates/languages/ERLANG.md +361 -361
  241. package/templates/languages/GO.md +645 -645
  242. package/templates/languages/HASKELL.md +177 -177
  243. package/templates/languages/JAVA.md +607 -607
  244. package/templates/languages/JAVASCRIPT.md +631 -631
  245. package/templates/languages/JULIA.md +97 -97
  246. package/templates/languages/KOTLIN.md +511 -511
  247. package/templates/languages/LISP.md +100 -100
  248. package/templates/languages/LUA.md +74 -74
  249. package/templates/languages/OBJECTIVEC.md +90 -90
  250. package/templates/languages/PHP.md +416 -416
  251. package/templates/languages/PYTHON.md +682 -682
  252. package/templates/languages/RUBY.md +421 -421
  253. package/templates/languages/RUST.md +477 -477
  254. package/templates/languages/SAS.md +73 -73
  255. package/templates/languages/SCALA.md +348 -348
  256. package/templates/languages/SOLIDITY.md +580 -580
  257. package/templates/languages/SQL.md +137 -137
  258. package/templates/languages/SWIFT.md +466 -466
  259. package/templates/languages/TYPESCRIPT.md +591 -591
  260. package/templates/languages/ZIG.md +265 -265
  261. package/templates/modules/CONTEXT7.md +54 -54
  262. package/templates/modules/GITHUB_MCP.md +64 -64
  263. package/templates/modules/PLAYWRIGHT.md +90 -90
  264. package/templates/modules/RULEBOOK_MCP.md +208 -208
  265. package/templates/modules/SERENA.md +337 -337
  266. package/templates/modules/SUPABASE.md +223 -223
  267. package/templates/modules/SYNAP.md +69 -69
  268. package/templates/modules/VECTORIZER.md +63 -63
  269. package/templates/modules/sequential-thinking.md +42 -42
  270. package/templates/rules/consult-analysis-before-implementing.md +21 -23
  271. package/templates/rules/cpp.md +46 -46
  272. package/templates/rules/csharp.md +44 -44
  273. package/templates/rules/diagnostic-first.md +39 -39
  274. package/templates/rules/fail-twice-escalate.md +46 -46
  275. package/templates/rules/follow-task-sequence.md +36 -36
  276. package/templates/rules/git-safety.md +29 -29
  277. package/templates/rules/go.md +40 -40
  278. package/templates/rules/incremental-implementation.md +56 -56
  279. package/templates/rules/incremental-tests.md +29 -29
  280. package/templates/rules/java.md +43 -43
  281. package/templates/rules/javascript.md +39 -39
  282. package/templates/rules/knowledge-base-usage.md +41 -41
  283. package/templates/rules/multi-agent-teams.md +75 -75
  284. package/templates/rules/no-deferred.md +31 -31
  285. package/templates/rules/no-shortcuts.md +30 -30
  286. package/templates/rules/python.md +43 -43
  287. package/templates/rules/research-first.md +30 -30
  288. package/templates/rules/respect-handoff-trigger.md +41 -41
  289. package/templates/rules/rust.md +40 -40
  290. package/templates/rules/sequential-editing.md +21 -21
  291. package/templates/rules/session-workflow.md +24 -24
  292. package/templates/rules/task-decomposition.md +32 -32
  293. package/templates/rules/typescript.md +40 -40
  294. package/templates/skills/cli/claude/SKILL.md +42 -42
  295. package/templates/skills/core/agent-automation/SKILL.md +194 -194
  296. package/templates/skills/core/dag/SKILL.md +314 -314
  297. package/templates/skills/core/documentation-rules/SKILL.md +46 -46
  298. package/templates/skills/core/quality-enforcement/SKILL.md +78 -78
  299. package/templates/skills/core/rulebook/SKILL.md +176 -176
  300. package/templates/skills/core/rulebook-terse/SKILL.md +116 -116
  301. package/templates/skills/core/rulebook-terse-commit/SKILL.md +96 -96
  302. package/templates/skills/core/rulebook-terse-review/SKILL.md +112 -112
  303. package/templates/skills/dev/accessibility/SKILL.md +17 -17
  304. package/templates/skills/dev/analysis/SKILL.md +19 -19
  305. package/templates/skills/dev/api-design/SKILL.md +15 -15
  306. package/templates/skills/dev/architect/SKILL.md +17 -17
  307. package/templates/skills/dev/build-fix/SKILL.md +17 -17
  308. package/templates/skills/dev/db-design/SKILL.md +15 -15
  309. package/templates/skills/dev/debug/SKILL.md +16 -16
  310. package/templates/skills/dev/deploy/SKILL.md +17 -17
  311. package/templates/skills/dev/docs/SKILL.md +17 -17
  312. package/templates/skills/dev/handoff/SKILL.md +27 -27
  313. package/templates/skills/dev/migrate/SKILL.md +15 -15
  314. package/templates/skills/dev/perf/SKILL.md +17 -17
  315. package/templates/skills/dev/refactor/SKILL.md +17 -17
  316. package/templates/skills/dev/research/SKILL.md +14 -14
  317. package/templates/skills/dev/review/SKILL.md +18 -18
  318. package/templates/skills/dev/security-audit/SKILL.md +17 -17
  319. package/templates/skills/languages/c/SKILL.md +343 -343
  320. package/templates/skills/languages/cpp/SKILL.md +753 -753
  321. package/templates/skills/languages/csharp/SKILL.md +427 -427
  322. package/templates/skills/languages/elixir/SKILL.md +464 -464
  323. package/templates/skills/languages/erlang/SKILL.md +371 -371
  324. package/templates/skills/languages/go/SKILL.md +655 -655
  325. package/templates/skills/languages/haskell/SKILL.md +187 -187
  326. package/templates/skills/languages/java/SKILL.md +617 -617
  327. package/templates/skills/languages/javascript/SKILL.md +641 -641
  328. package/templates/skills/languages/julia/SKILL.md +107 -107
  329. package/templates/skills/languages/kotlin/SKILL.md +521 -521
  330. package/templates/skills/languages/lisp/SKILL.md +110 -110
  331. package/templates/skills/languages/lua/SKILL.md +84 -84
  332. package/templates/skills/languages/objectivec/SKILL.md +100 -100
  333. package/templates/skills/languages/php/SKILL.md +426 -426
  334. package/templates/skills/languages/python/SKILL.md +692 -692
  335. package/templates/skills/languages/ruby/SKILL.md +431 -431
  336. package/templates/skills/languages/rust/SKILL.md +487 -487
  337. package/templates/skills/languages/sas/SKILL.md +83 -83
  338. package/templates/skills/languages/scala/SKILL.md +358 -358
  339. package/templates/skills/languages/solidity/SKILL.md +590 -590
  340. package/templates/skills/languages/sql/SKILL.md +147 -147
  341. package/templates/skills/languages/swift/SKILL.md +476 -476
  342. package/templates/skills/languages/typescript/SKILL.md +302 -302
  343. package/templates/skills/languages/zig/SKILL.md +275 -275
  344. package/templates/skills/modules/context7/SKILL.md +64 -64
  345. package/templates/skills/modules/github-mcp/SKILL.md +74 -74
  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/.claude/commands/analysis.md +0 -35
  353. package/.claude/commands/continue.md +0 -33
  354. package/.claude/commands/rulebook-decision-create.md +0 -55
  355. package/.claude/commands/rulebook-decision-list.md +0 -15
  356. package/.claude/commands/rulebook-knowledge-add.md +0 -41
  357. package/.claude/commands/rulebook-knowledge-list.md +0 -15
  358. package/.claude/commands/rulebook-learn-capture.md +0 -41
  359. package/.claude/commands/rulebook-learn-list.md +0 -13
  360. package/.claude/commands/rulebook-memory-save.md +0 -48
  361. package/.claude/commands/rulebook-memory-search.md +0 -47
  362. package/.claude/commands/rulebook-task-apply.md +0 -67
  363. package/.claude/commands/rulebook-task-archive.md +0 -94
  364. package/.claude/commands/rulebook-task-create.md +0 -93
  365. package/.claude/commands/rulebook-task-list.md +0 -42
  366. package/.claude/commands/rulebook-task-show.md +0 -52
  367. package/.claude/commands/rulebook-task-validate.md +0 -53
  368. package/.claude-plugin/marketplace.json +0 -28
  369. package/.claude-plugin/plugin.json +0 -8
  370. package/dist/agents/claude-code.d.ts +0 -69
  371. package/dist/agents/claude-code.d.ts.map +0 -1
  372. package/dist/agents/claude-code.js +0 -180
  373. package/dist/agents/claude-code.js.map +0 -1
  374. package/dist/agents/cursor-agent.d.ts +0 -184
  375. package/dist/agents/cursor-agent.d.ts.map +0 -1
  376. package/dist/agents/cursor-agent.js +0 -299
  377. package/dist/agents/cursor-agent.js.map +0 -1
  378. package/dist/agents/gemini-cli.d.ts +0 -69
  379. package/dist/agents/gemini-cli.d.ts.map +0 -1
  380. package/dist/agents/gemini-cli.js +0 -180
  381. package/dist/agents/gemini-cli.js.map +0 -1
  382. package/dist/cli/commands/memory.d.ts +0 -30
  383. package/dist/cli/commands/memory.d.ts.map +0 -1
  384. package/dist/cli/commands/memory.js +0 -259
  385. package/dist/cli/commands/memory.js.map +0 -1
  386. package/dist/core/console/cli-bridge.d.ts +0 -113
  387. package/dist/core/console/cli-bridge.d.ts.map +0 -1
  388. package/dist/core/console/cli-bridge.js +0 -1094
  389. package/dist/core/console/cli-bridge.js.map +0 -1
  390. package/dist/core/ide/multi-tool-generator.d.ts +0 -59
  391. package/dist/core/ide/multi-tool-generator.d.ts.map +0 -1
  392. package/dist/core/ide/multi-tool-generator.js +0 -157
  393. package/dist/core/ide/multi-tool-generator.js.map +0 -1
  394. package/dist/core/ide/opencode-generator.d.ts +0 -72
  395. package/dist/core/ide/opencode-generator.d.ts.map +0 -1
  396. package/dist/core/ide/opencode-generator.js +0 -450
  397. package/dist/core/ide/opencode-generator.js.map +0 -1
  398. package/dist/core/indexer/background-indexer.d.ts +0 -35
  399. package/dist/core/indexer/background-indexer.d.ts.map +0 -1
  400. package/dist/core/indexer/background-indexer.js +0 -267
  401. package/dist/core/indexer/background-indexer.js.map +0 -1
  402. package/dist/core/indexer/file-parser.d.ts +0 -28
  403. package/dist/core/indexer/file-parser.d.ts.map +0 -1
  404. package/dist/core/indexer/file-parser.js +0 -171
  405. package/dist/core/indexer/file-parser.js.map +0 -1
  406. package/dist/core/indexer/indexer-types.d.ts +0 -37
  407. package/dist/core/indexer/indexer-types.d.ts.map +0 -1
  408. package/dist/core/indexer/indexer-types.js +0 -8
  409. package/dist/core/indexer/indexer-types.js.map +0 -1
  410. package/dist/memory/file-search.d.ts +0 -43
  411. package/dist/memory/file-search.d.ts.map +0 -1
  412. package/dist/memory/file-search.js +0 -228
  413. package/dist/memory/file-search.js.map +0 -1
  414. package/dist/memory/file-store.d.ts +0 -99
  415. package/dist/memory/file-store.d.ts.map +0 -1
  416. package/dist/memory/file-store.js +0 -615
  417. package/dist/memory/file-store.js.map +0 -1
  418. package/dist/memory/legacy-migrator.d.ts +0 -27
  419. package/dist/memory/legacy-migrator.d.ts.map +0 -1
  420. package/dist/memory/legacy-migrator.js +0 -185
  421. package/dist/memory/legacy-migrator.js.map +0 -1
  422. package/dist/memory/memory-hooks.d.ts +0 -48
  423. package/dist/memory/memory-hooks.d.ts.map +0 -1
  424. package/dist/memory/memory-hooks.js +0 -248
  425. package/dist/memory/memory-hooks.js.map +0 -1
  426. package/dist/memory/memory-manager.d.ts +0 -65
  427. package/dist/memory/memory-manager.d.ts.map +0 -1
  428. package/dist/memory/memory-manager.js +0 -223
  429. package/dist/memory/memory-manager.js.map +0 -1
  430. package/dist/memory/memory-types.d.ts +0 -85
  431. package/dist/memory/memory-types.d.ts.map +0 -1
  432. package/dist/memory/memory-types.js +0 -7
  433. package/dist/memory/memory-types.js.map +0 -1
  434. package/templates/agents/accessibility-reviewer.md +0 -43
  435. package/templates/agents/api-designer.md +0 -42
  436. package/templates/agents/compiler/codegen-debugger.md +0 -34
  437. package/templates/agents/compiler/stdlib-engineer.md +0 -28
  438. package/templates/agents/compiler/test-coverage-guardian.md +0 -31
  439. package/templates/agents/context-intelligence.md +0 -50
  440. package/templates/agents/database-architect.md +0 -41
  441. package/templates/agents/devops-engineer.md +0 -42
  442. package/templates/agents/game-engine/cpp-core-expert.md +0 -35
  443. package/templates/agents/game-engine/render-engineer.md +0 -22
  444. package/templates/agents/game-engine/shader-engineer.md +0 -38
  445. package/templates/agents/game-engine/systems-integration.md +0 -43
  446. package/templates/agents/generic/code-reviewer.md +0 -41
  447. package/templates/agents/generic/docs-writer.md +0 -25
  448. package/templates/agents/generic/project-manager.md +0 -36
  449. package/templates/agents/generic/researcher.md +0 -34
  450. package/templates/agents/generic/test-engineer.md +0 -41
  451. package/templates/agents/i18n-engineer.md +0 -42
  452. package/templates/agents/migration-engineer.md +0 -42
  453. package/templates/agents/mobile/platform-specialist.md +0 -22
  454. package/templates/agents/mobile/ui-engineer.md +0 -22
  455. package/templates/agents/project-manager.md +0 -217
  456. package/templates/agents/refactoring-agent.md +0 -41
  457. package/templates/agents/ux-reviewer.md +0 -43
  458. package/templates/agents/web-app/api-designer.md +0 -22
  459. package/templates/agents/web-app/backend-engineer.md +0 -30
  460. package/templates/agents/web-app/database-engineer.md +0 -22
  461. package/templates/agents/web-app/frontend-engineer.md +0 -29
  462. package/templates/agents/web-app/security-reviewer.md +0 -32
  463. package/templates/cli/AIDER.md +0 -49
  464. package/templates/cli/AMAZON_Q.md +0 -25
  465. package/templates/cli/AUGGIE.md +0 -32
  466. package/templates/cli/CLINE.md +0 -99
  467. package/templates/cli/CODEBUDDY.md +0 -20
  468. package/templates/cli/CODEIUM.md +0 -20
  469. package/templates/cli/CODEX.md +0 -21
  470. package/templates/cli/CONTINUE.md +0 -34
  471. package/templates/cli/CURSOR_CLI.md +0 -62
  472. package/templates/cli/FACTORY.md +0 -18
  473. package/templates/cli/GEMINI.md +0 -35
  474. package/templates/cli/KILOCODE.md +0 -18
  475. package/templates/cli/OPENCODE.md +0 -85
  476. package/templates/cli/gemini-extension.json +0 -77
  477. package/templates/commands/rulebook-memory-save.md +0 -48
  478. package/templates/commands/rulebook-memory-search.md +0 -47
  479. package/templates/ides/CONTINUE_RULES.md +0 -16
  480. package/templates/ides/COPILOT_INSTRUCTIONS.md +0 -23
  481. package/templates/ides/GEMINI_RULES.md +0 -17
  482. package/templates/ides/OPENCODE.md +0 -63
  483. package/templates/ides/WINDSURF_RULES.md +0 -14
  484. package/templates/modules/ATLASSIAN.md +0 -255
  485. package/templates/modules/FIGMA.md +0 -267
  486. package/templates/modules/GRAFANA.md +0 -328
  487. package/templates/modules/MEMORY.md +0 -126
  488. package/templates/modules/NOTION.md +0 -247
  489. package/templates/skills/cli/aider/SKILL.md +0 -59
  490. package/templates/skills/cli/amazon-q/SKILL.md +0 -35
  491. package/templates/skills/cli/auggie/SKILL.md +0 -42
  492. package/templates/skills/cli/cline/SKILL.md +0 -42
  493. package/templates/skills/cli/codebuddy/SKILL.md +0 -30
  494. package/templates/skills/cli/codeium/SKILL.md +0 -30
  495. package/templates/skills/cli/codex/SKILL.md +0 -31
  496. package/templates/skills/cli/continue/SKILL.md +0 -44
  497. package/templates/skills/cli/cursor-cli/SKILL.md +0 -38
  498. package/templates/skills/cli/factory/SKILL.md +0 -28
  499. package/templates/skills/cli/gemini/SKILL.md +0 -45
  500. package/templates/skills/cli/kilocode/SKILL.md +0 -28
  501. package/templates/skills/cli/opencode/SKILL.md +0 -82
  502. package/templates/skills/ides/copilot/SKILL.md +0 -47
  503. package/templates/skills/ides/cursor/SKILL.md +0 -53
  504. package/templates/skills/ides/jetbrains-ai/SKILL.md +0 -45
  505. package/templates/skills/ides/replit/SKILL.md +0 -46
  506. package/templates/skills/ides/tabnine/SKILL.md +0 -39
  507. package/templates/skills/ides/vscode/SKILL.md +0 -50
  508. package/templates/skills/ides/windsurf/SKILL.md +0 -46
  509. package/templates/skills/ides/zed/SKILL.md +0 -42
  510. package/templates/skills/modules/atlassian/SKILL.md +0 -265
  511. package/templates/skills/modules/figma/SKILL.md +0 -277
  512. package/templates/skills/modules/grafana/SKILL.md +0 -338
  513. package/templates/skills/modules/memory/SKILL.md +0 -73
  514. package/templates/skills/modules/notion/SKILL.md +0 -257
@@ -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