@hivehub/rulebook 5.7.0 → 5.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (600) hide show
  1. package/.claude/commands/analysis.md +35 -35
  2. package/.claude/commands/continue.md +33 -33
  3. package/.claude/commands/rulebook-decision-create.md +55 -55
  4. package/.claude/commands/rulebook-decision-list.md +15 -15
  5. package/.claude/commands/rulebook-knowledge-add.md +41 -41
  6. package/.claude/commands/rulebook-knowledge-list.md +15 -15
  7. package/.claude/commands/rulebook-memory-save.md +48 -48
  8. package/.claude/commands/rulebook-memory-search.md +47 -47
  9. package/.claude/commands/rulebook-task-apply.md +67 -67
  10. package/.claude/commands/rulebook-task-archive.md +94 -94
  11. package/.claude/commands/rulebook-task-create.md +93 -93
  12. package/.claude/commands/rulebook-task-list.md +42 -42
  13. package/.claude/commands/rulebook-task-show.md +52 -52
  14. package/.claude/commands/rulebook-task-validate.md +53 -53
  15. package/.claude-plugin/marketplace.json +28 -28
  16. package/.claude-plugin/plugin.json +8 -8
  17. package/README.md +86 -0
  18. package/dist/cli/commands/claude.d.ts +17 -0
  19. package/dist/cli/commands/claude.d.ts.map +1 -0
  20. package/dist/cli/commands/claude.js +56 -0
  21. package/dist/cli/commands/claude.js.map +1 -0
  22. package/dist/cli/commands/init.d.ts.map +1 -1
  23. package/dist/cli/commands/init.js +18 -2
  24. package/dist/cli/commands/init.js.map +1 -1
  25. package/dist/cli/commands/update.d.ts.map +1 -1
  26. package/dist/cli/commands/update.js +6 -1
  27. package/dist/cli/commands/update.js.map +1 -1
  28. package/dist/cli/prompts.d.ts +13 -0
  29. package/dist/cli/prompts.d.ts.map +1 -1
  30. package/dist/cli/prompts.js +106 -0
  31. package/dist/cli/prompts.js.map +1 -1
  32. package/dist/core/claude/claude-mcp.d.ts +10 -1
  33. package/dist/core/claude/claude-mcp.d.ts.map +1 -1
  34. package/dist/core/claude/claude-mcp.js +48 -2
  35. package/dist/core/claude/claude-mcp.js.map +1 -1
  36. package/dist/core/claude/claude-settings-manager.d.ts +12 -0
  37. package/dist/core/claude/claude-settings-manager.d.ts.map +1 -1
  38. package/dist/core/claude/claude-settings-manager.js +59 -3
  39. package/dist/core/claude/claude-settings-manager.js.map +1 -1
  40. package/dist/core/detect/detector.d.ts +8 -1
  41. package/dist/core/detect/detector.d.ts.map +1 -1
  42. package/dist/core/detect/detector.js +225 -0
  43. package/dist/core/detect/detector.js.map +1 -1
  44. package/dist/core/detect/library-registry.d.ts +40 -0
  45. package/dist/core/detect/library-registry.d.ts.map +1 -0
  46. package/dist/core/detect/library-registry.js +239 -0
  47. package/dist/core/detect/library-registry.js.map +1 -0
  48. package/dist/core/generators/generator.d.ts +2 -1
  49. package/dist/core/generators/generator.d.ts.map +1 -1
  50. package/dist/core/generators/generator.js +38 -1
  51. package/dist/core/generators/generator.js.map +1 -1
  52. package/dist/core/generators/rules-generator.d.ts +1 -5
  53. package/dist/core/generators/rules-generator.d.ts.map +1 -1
  54. package/dist/core/generators/rules-generator.js +40 -1
  55. package/dist/core/generators/rules-generator.js.map +1 -1
  56. package/dist/index.js +12 -0
  57. package/dist/index.js.map +1 -1
  58. package/dist/mcp/rulebook-server.js +0 -0
  59. package/dist/types.d.ts +13 -0
  60. package/dist/types.d.ts.map +1 -1
  61. package/package.json +23 -22
  62. package/templates/agents/accessibility-reviewer.md +43 -43
  63. package/templates/agents/api-designer.md +42 -42
  64. package/templates/agents/architect.md +51 -51
  65. package/templates/agents/build-engineer.md +36 -36
  66. package/templates/agents/code-reviewer.md +47 -47
  67. package/templates/agents/compiler/codegen-debugger.md +34 -34
  68. package/templates/agents/compiler/stdlib-engineer.md +28 -28
  69. package/templates/agents/compiler/test-coverage-guardian.md +31 -31
  70. package/templates/agents/database-architect.md +41 -41
  71. package/templates/agents/devops-engineer.md +42 -42
  72. package/templates/agents/docs-writer.md +38 -38
  73. package/templates/agents/game-engine/cpp-core-expert.md +35 -35
  74. package/templates/agents/game-engine/render-engineer.md +22 -22
  75. package/templates/agents/game-engine/shader-engineer.md +38 -38
  76. package/templates/agents/game-engine/systems-integration.md +43 -43
  77. package/templates/agents/generic/code-reviewer.md +41 -41
  78. package/templates/agents/generic/docs-writer.md +25 -25
  79. package/templates/agents/generic/project-manager.md +36 -36
  80. package/templates/agents/generic/researcher.md +34 -34
  81. package/templates/agents/generic/test-engineer.md +41 -41
  82. package/templates/agents/i18n-engineer.md +42 -42
  83. package/templates/agents/implementer.md +42 -42
  84. package/templates/agents/migration-engineer.md +42 -42
  85. package/templates/agents/mobile/platform-specialist.md +22 -22
  86. package/templates/agents/mobile/ui-engineer.md +22 -22
  87. package/templates/agents/performance-engineer.md +49 -49
  88. package/templates/agents/project-manager.md +217 -0
  89. package/templates/agents/quality-gatekeeper.md +208 -0
  90. package/templates/agents/refactoring-agent.md +41 -41
  91. package/templates/agents/researcher.md +38 -38
  92. package/templates/agents/security-reviewer.md +40 -40
  93. package/templates/agents/team-lead.md +37 -37
  94. package/templates/agents/tester.md +48 -48
  95. package/templates/agents/ux-reviewer.md +43 -43
  96. package/templates/agents/web-app/api-designer.md +22 -22
  97. package/templates/agents/web-app/backend-engineer.md +30 -30
  98. package/templates/agents/web-app/database-engineer.md +22 -22
  99. package/templates/agents/web-app/frontend-engineer.md +29 -29
  100. package/templates/agents/web-app/security-reviewer.md +32 -32
  101. package/templates/ci/rulebook-review.yml +26 -26
  102. package/templates/claude-workflows/bugfix.js +94 -0
  103. package/templates/claude-workflows/feature-pipeline.js +88 -0
  104. package/templates/claude-workflows/release-gate.js +64 -0
  105. package/templates/claude-workflows/review-fanout.js +125 -0
  106. package/templates/claude-workflows/rulebook-driver.js +382 -0
  107. package/templates/claude-workflows/spec-author.js +133 -0
  108. package/templates/cli/AIDER.md +49 -49
  109. package/templates/cli/AMAZON_Q.md +25 -25
  110. package/templates/cli/AUGGIE.md +32 -32
  111. package/templates/cli/CLAUDE.md +117 -117
  112. package/templates/cli/CLINE.md +99 -99
  113. package/templates/cli/CODEBUDDY.md +20 -20
  114. package/templates/cli/CODEIUM.md +20 -20
  115. package/templates/cli/CODEX.md +21 -21
  116. package/templates/cli/CONTINUE.md +34 -34
  117. package/templates/cli/CURSOR_CLI.md +62 -62
  118. package/templates/cli/FACTORY.md +18 -18
  119. package/templates/cli/GEMINI.md +35 -35
  120. package/templates/cli/KILOCODE.md +18 -18
  121. package/templates/cli/_GENERIC_TEMPLATE.md +29 -29
  122. package/templates/commands/rulebook-decision-create.md +55 -55
  123. package/templates/commands/rulebook-decision-list.md +15 -15
  124. package/templates/commands/rulebook-knowledge-add.md +41 -41
  125. package/templates/commands/rulebook-knowledge-list.md +15 -15
  126. package/templates/commands/rulebook-memory-save.md +48 -48
  127. package/templates/commands/rulebook-memory-search.md +47 -47
  128. package/templates/commands/rulebook-task-apply.md +67 -67
  129. package/templates/commands/rulebook-task-archive.md +94 -94
  130. package/templates/commands/rulebook-task-create.md +93 -93
  131. package/templates/commands/rulebook-task-list.md +42 -42
  132. package/templates/commands/rulebook-task-show.md +52 -52
  133. package/templates/commands/rulebook-task-validate.md +53 -53
  134. package/templates/compact-context/_default.md +23 -23
  135. package/templates/compact-context/cpp.md +26 -26
  136. package/templates/compact-context/go.md +26 -26
  137. package/templates/compact-context/python.md +26 -26
  138. package/templates/compact-context/rust.md +28 -28
  139. package/templates/compact-context/typescript.md +29 -29
  140. package/templates/core/AGENTS_OVERRIDE.md +16 -16
  141. package/templates/core/AGENT_AUTOMATION.md +296 -296
  142. package/templates/core/CLAUDE_MD_v2.md +90 -90
  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/RULEBOOK.md +1947 -1947
  151. package/templates/core/TIER1_PROHIBITIONS.md +154 -154
  152. package/templates/core/TOKEN_OPTIMIZATION.md +49 -49
  153. package/templates/git/CI_CD_PATTERNS.md +661 -661
  154. package/templates/git/GITHUB_ACTIONS.md +728 -728
  155. package/templates/git/GITLAB_CI.md +730 -730
  156. package/templates/git/GIT_WORKFLOW.md +1192 -1192
  157. package/templates/git/SECRETS_MANAGEMENT.md +585 -585
  158. package/templates/hooks/COMMIT_MSG.md +530 -530
  159. package/templates/hooks/POST_CHECKOUT.md +546 -546
  160. package/templates/hooks/PREPARE_COMMIT_MSG.md +619 -619
  161. package/templates/hooks/PRE_COMMIT.md +414 -414
  162. package/templates/hooks/PRE_PUSH.md +601 -601
  163. package/templates/hooks/check-context-and-handoff.sh +16 -6
  164. package/templates/hooks/update-check.ps1 +84 -0
  165. package/templates/hooks/update-check.sh +103 -0
  166. package/templates/ides/CONTINUE_RULES.md +16 -16
  167. package/templates/ides/COPILOT_INSTRUCTIONS.md +23 -23
  168. package/templates/ides/GEMINI_RULES.md +17 -17
  169. package/templates/ides/WINDSURF_RULES.md +14 -14
  170. package/templates/languages/C.md +333 -333
  171. package/templates/languages/CPP.md +743 -743
  172. package/templates/languages/CSHARP.md +417 -417
  173. package/templates/languages/ELIXIR.md +454 -454
  174. package/templates/languages/ERLANG.md +361 -361
  175. package/templates/languages/GO.md +645 -645
  176. package/templates/languages/HASKELL.md +177 -177
  177. package/templates/languages/JAVA.md +607 -607
  178. package/templates/languages/JAVASCRIPT.md +631 -631
  179. package/templates/languages/JULIA.md +97 -97
  180. package/templates/languages/KOTLIN.md +511 -511
  181. package/templates/languages/LISP.md +100 -100
  182. package/templates/languages/LUA.md +74 -74
  183. package/templates/languages/OBJECTIVEC.md +90 -90
  184. package/templates/languages/PHP.md +416 -416
  185. package/templates/languages/PYTHON.md +682 -682
  186. package/templates/languages/RUBY.md +421 -421
  187. package/templates/languages/RUST.md +477 -477
  188. package/templates/languages/SAS.md +73 -73
  189. package/templates/languages/SCALA.md +348 -348
  190. package/templates/languages/SOLIDITY.md +580 -580
  191. package/templates/languages/SQL.md +137 -137
  192. package/templates/languages/SWIFT.md +466 -466
  193. package/templates/languages/TYPESCRIPT.md +591 -591
  194. package/templates/languages/ZIG.md +265 -265
  195. package/templates/libraries/go/ECHO.md +18 -0
  196. package/templates/libraries/go/GIN.md +18 -0
  197. package/templates/libraries/go/GORM.md +18 -0
  198. package/templates/libraries/python/DJANGO.md +18 -0
  199. package/templates/libraries/python/FASTAPI.md +18 -0
  200. package/templates/libraries/python/FLASK.md +17 -0
  201. package/templates/libraries/python/PYDANTIC.md +17 -0
  202. package/templates/libraries/python/PYTEST.md +17 -0
  203. package/templates/libraries/python/SQLALCHEMY.md +17 -0
  204. package/templates/libraries/rust/ACTIX.md +17 -0
  205. package/templates/libraries/rust/AXUM.md +18 -0
  206. package/templates/libraries/rust/SERDE.md +16 -0
  207. package/templates/libraries/rust/SQLX.md +17 -0
  208. package/templates/libraries/rust/TOKIO.md +16 -0
  209. package/templates/libraries/typescript/ANGULAR.md +17 -0
  210. package/templates/libraries/typescript/DRIZZLE.md +16 -0
  211. package/templates/libraries/typescript/EXPRESS.md +17 -0
  212. package/templates/libraries/typescript/HEROUI.md +16 -0
  213. package/templates/libraries/typescript/JEST.md +17 -0
  214. package/templates/libraries/typescript/NESTJS.md +17 -0
  215. package/templates/libraries/typescript/NEXT.md +18 -0
  216. package/templates/libraries/typescript/PRISMA.md +16 -0
  217. package/templates/libraries/typescript/RADIX.md +16 -0
  218. package/templates/libraries/typescript/REACT.md +18 -0
  219. package/templates/libraries/typescript/SHADCN.md +16 -0
  220. package/templates/libraries/typescript/SVELTE.md +16 -0
  221. package/templates/libraries/typescript/TAILWIND.md +16 -0
  222. package/templates/libraries/typescript/TRPC.md +16 -0
  223. package/templates/libraries/typescript/VITEST.md +17 -0
  224. package/templates/libraries/typescript/VUE.md +17 -0
  225. package/templates/libraries/typescript/ZOD.md +17 -0
  226. package/templates/modules/ATLASSIAN.md +255 -255
  227. package/templates/modules/CONTEXT7.md +54 -54
  228. package/templates/modules/FIGMA.md +267 -267
  229. package/templates/modules/GITHUB_MCP.md +64 -64
  230. package/templates/modules/GRAFANA.md +328 -328
  231. package/templates/modules/MEMORY.md +126 -126
  232. package/templates/modules/NOTION.md +247 -247
  233. package/templates/modules/PLAYWRIGHT.md +90 -90
  234. package/templates/modules/RULEBOOK_MCP.md +208 -208
  235. package/templates/modules/SERENA.md +337 -337
  236. package/templates/modules/SUPABASE.md +223 -223
  237. package/templates/modules/SYNAP.md +69 -69
  238. package/templates/modules/VECTORIZER.md +63 -63
  239. package/templates/modules/sequential-thinking.md +42 -42
  240. package/templates/rules/consult-analysis-before-implementing.md +23 -23
  241. package/templates/rules/cpp.md +46 -46
  242. package/templates/rules/csharp.md +44 -44
  243. package/templates/rules/diagnostic-first.md +39 -39
  244. package/templates/rules/fail-twice-escalate.md +46 -46
  245. package/templates/rules/follow-task-sequence.md +36 -36
  246. package/templates/rules/git-safety.md +29 -29
  247. package/templates/rules/go.md +40 -40
  248. package/templates/rules/incremental-implementation.md +56 -56
  249. package/templates/rules/incremental-tests.md +29 -29
  250. package/templates/rules/java.md +43 -43
  251. package/templates/rules/javascript.md +39 -39
  252. package/templates/rules/knowledge-base-usage.md +41 -41
  253. package/templates/rules/multi-agent-teams.md +75 -75
  254. package/templates/rules/no-deferred.md +31 -31
  255. package/templates/rules/no-shortcuts.md +30 -30
  256. package/templates/rules/python.md +43 -43
  257. package/templates/rules/research-first.md +30 -30
  258. package/templates/rules/respect-handoff-trigger.md +41 -41
  259. package/templates/rules/rust.md +40 -40
  260. package/templates/rules/sequential-editing.md +21 -21
  261. package/templates/rules/session-workflow.md +24 -24
  262. package/templates/rules/task-decomposition.md +32 -32
  263. package/templates/rules/typescript.md +40 -40
  264. package/templates/skills/cli/aider/SKILL.md +59 -59
  265. package/templates/skills/cli/amazon-q/SKILL.md +35 -35
  266. package/templates/skills/cli/auggie/SKILL.md +42 -42
  267. package/templates/skills/cli/claude/SKILL.md +42 -42
  268. package/templates/skills/cli/cline/SKILL.md +42 -42
  269. package/templates/skills/cli/codebuddy/SKILL.md +30 -30
  270. package/templates/skills/cli/codeium/SKILL.md +30 -30
  271. package/templates/skills/cli/codex/SKILL.md +31 -31
  272. package/templates/skills/cli/continue/SKILL.md +44 -44
  273. package/templates/skills/cli/cursor-cli/SKILL.md +38 -38
  274. package/templates/skills/cli/factory/SKILL.md +28 -28
  275. package/templates/skills/cli/gemini/SKILL.md +45 -45
  276. package/templates/skills/cli/kilocode/SKILL.md +28 -28
  277. package/templates/skills/core/agent-automation/SKILL.md +194 -194
  278. package/templates/skills/core/dag/SKILL.md +314 -314
  279. package/templates/skills/core/documentation-rules/SKILL.md +46 -46
  280. package/templates/skills/core/quality-enforcement/SKILL.md +78 -78
  281. package/templates/skills/core/rulebook/SKILL.md +176 -176
  282. package/templates/skills/core/rulebook-terse/SKILL.md +116 -116
  283. package/templates/skills/core/rulebook-terse-commit/SKILL.md +96 -96
  284. package/templates/skills/core/rulebook-terse-review/SKILL.md +112 -112
  285. package/templates/skills/dev/accessibility/SKILL.md +17 -17
  286. package/templates/skills/dev/analysis/SKILL.md +19 -19
  287. package/templates/skills/dev/api-design/SKILL.md +15 -15
  288. package/templates/skills/dev/architect/SKILL.md +17 -17
  289. package/templates/skills/dev/build-fix/SKILL.md +17 -17
  290. package/templates/skills/dev/db-design/SKILL.md +15 -15
  291. package/templates/skills/dev/debug/SKILL.md +16 -16
  292. package/templates/skills/dev/deploy/SKILL.md +17 -17
  293. package/templates/skills/dev/docs/SKILL.md +17 -17
  294. package/templates/skills/dev/handoff/SKILL.md +27 -27
  295. package/templates/skills/dev/migrate/SKILL.md +15 -15
  296. package/templates/skills/dev/perf/SKILL.md +17 -17
  297. package/templates/skills/dev/refactor/SKILL.md +17 -17
  298. package/templates/skills/dev/research/SKILL.md +14 -14
  299. package/templates/skills/dev/review/SKILL.md +18 -18
  300. package/templates/skills/dev/security-audit/SKILL.md +17 -17
  301. package/templates/skills/dev/spec/SKILL.md +65 -0
  302. package/templates/skills/ides/copilot/SKILL.md +47 -47
  303. package/templates/skills/ides/cursor/SKILL.md +53 -53
  304. package/templates/skills/ides/jetbrains-ai/SKILL.md +45 -45
  305. package/templates/skills/ides/replit/SKILL.md +46 -46
  306. package/templates/skills/ides/tabnine/SKILL.md +39 -39
  307. package/templates/skills/ides/vscode/SKILL.md +50 -50
  308. package/templates/skills/ides/windsurf/SKILL.md +46 -46
  309. package/templates/skills/ides/zed/SKILL.md +42 -42
  310. package/templates/skills/languages/c/SKILL.md +343 -343
  311. package/templates/skills/languages/cpp/SKILL.md +753 -753
  312. package/templates/skills/languages/csharp/SKILL.md +427 -427
  313. package/templates/skills/languages/elixir/SKILL.md +464 -464
  314. package/templates/skills/languages/erlang/SKILL.md +371 -371
  315. package/templates/skills/languages/go/SKILL.md +655 -655
  316. package/templates/skills/languages/haskell/SKILL.md +187 -187
  317. package/templates/skills/languages/java/SKILL.md +617 -617
  318. package/templates/skills/languages/javascript/SKILL.md +641 -641
  319. package/templates/skills/languages/julia/SKILL.md +107 -107
  320. package/templates/skills/languages/kotlin/SKILL.md +521 -521
  321. package/templates/skills/languages/lisp/SKILL.md +110 -110
  322. package/templates/skills/languages/lua/SKILL.md +84 -84
  323. package/templates/skills/languages/objectivec/SKILL.md +100 -100
  324. package/templates/skills/languages/php/SKILL.md +426 -426
  325. package/templates/skills/languages/python/SKILL.md +692 -692
  326. package/templates/skills/languages/ruby/SKILL.md +431 -431
  327. package/templates/skills/languages/rust/SKILL.md +487 -487
  328. package/templates/skills/languages/sas/SKILL.md +83 -83
  329. package/templates/skills/languages/scala/SKILL.md +358 -358
  330. package/templates/skills/languages/solidity/SKILL.md +590 -590
  331. package/templates/skills/languages/sql/SKILL.md +147 -147
  332. package/templates/skills/languages/swift/SKILL.md +476 -476
  333. package/templates/skills/languages/typescript/SKILL.md +302 -302
  334. package/templates/skills/languages/zig/SKILL.md +275 -275
  335. package/templates/skills/modules/atlassian/SKILL.md +265 -265
  336. package/templates/skills/modules/context7/SKILL.md +64 -64
  337. package/templates/skills/modules/figma/SKILL.md +277 -277
  338. package/templates/skills/modules/github-mcp/SKILL.md +74 -74
  339. package/templates/skills/modules/grafana/SKILL.md +338 -338
  340. package/templates/skills/modules/memory/SKILL.md +73 -73
  341. package/templates/skills/modules/notion/SKILL.md +257 -257
  342. package/templates/skills/modules/playwright/SKILL.md +100 -100
  343. package/templates/skills/modules/rulebook-mcp/SKILL.md +166 -166
  344. package/templates/skills/modules/serena/SKILL.md +347 -347
  345. package/templates/skills/modules/supabase/SKILL.md +233 -233
  346. package/templates/skills/modules/synap/SKILL.md +79 -79
  347. package/templates/skills/modules/vectorizer/SKILL.md +73 -73
  348. package/templates/workflows/typescript-test.yml +9 -3
  349. package/dist/agents/ralph-parser.d.ts +0 -91
  350. package/dist/agents/ralph-parser.d.ts.map +0 -1
  351. package/dist/agents/ralph-parser.js +0 -415
  352. package/dist/agents/ralph-parser.js.map +0 -1
  353. package/dist/cli/commands/analysis.d.ts +0 -8
  354. package/dist/cli/commands/analysis.d.ts.map +0 -1
  355. package/dist/cli/commands/analysis.js +0 -78
  356. package/dist/cli/commands/analysis.js.map +0 -1
  357. package/dist/cli/commands/compress.d.ts +0 -18
  358. package/dist/cli/commands/compress.d.ts.map +0 -1
  359. package/dist/cli/commands/compress.js +0 -100
  360. package/dist/cli/commands/compress.js.map +0 -1
  361. package/dist/cli/commands/ralph.d.ts +0 -45
  362. package/dist/cli/commands/ralph.d.ts.map +0 -1
  363. package/dist/cli/commands/ralph.js +0 -694
  364. package/dist/cli/commands/ralph.js.map +0 -1
  365. package/dist/cli/docs-prompts.d.ts +0 -3
  366. package/dist/cli/docs-prompts.d.ts.map +0 -1
  367. package/dist/cli/docs-prompts.js +0 -45
  368. package/dist/cli/docs-prompts.js.map +0 -1
  369. package/dist/core/agent-manager.d.ts +0 -69
  370. package/dist/core/agent-manager.d.ts.map +0 -1
  371. package/dist/core/agent-manager.js +0 -476
  372. package/dist/core/agent-manager.js.map +0 -1
  373. package/dist/core/agent-template-engine.d.ts +0 -51
  374. package/dist/core/agent-template-engine.d.ts.map +0 -1
  375. package/dist/core/agent-template-engine.js +0 -291
  376. package/dist/core/agent-template-engine.js.map +0 -1
  377. package/dist/core/analysis-manager.d.ts +0 -56
  378. package/dist/core/analysis-manager.d.ts.map +0 -1
  379. package/dist/core/analysis-manager.js +0 -218
  380. package/dist/core/analysis-manager.js.map +0 -1
  381. package/dist/core/auto-fixer.d.ts +0 -14
  382. package/dist/core/auto-fixer.d.ts.map +0 -1
  383. package/dist/core/auto-fixer.js +0 -207
  384. package/dist/core/auto-fixer.js.map +0 -1
  385. package/dist/core/changelog-generator.d.ts +0 -44
  386. package/dist/core/changelog-generator.d.ts.map +0 -1
  387. package/dist/core/changelog-generator.js +0 -222
  388. package/dist/core/changelog-generator.js.map +0 -1
  389. package/dist/core/claude-mcp.d.ts +0 -59
  390. package/dist/core/claude-mcp.d.ts.map +0 -1
  391. package/dist/core/claude-mcp.js +0 -220
  392. package/dist/core/claude-mcp.js.map +0 -1
  393. package/dist/core/claude-md-generator.d.ts +0 -52
  394. package/dist/core/claude-md-generator.d.ts.map +0 -1
  395. package/dist/core/claude-md-generator.js +0 -104
  396. package/dist/core/claude-md-generator.js.map +0 -1
  397. package/dist/core/claude-settings-manager.d.ts +0 -44
  398. package/dist/core/claude-settings-manager.d.ts.map +0 -1
  399. package/dist/core/claude-settings-manager.js +0 -191
  400. package/dist/core/claude-settings-manager.js.map +0 -1
  401. package/dist/core/cli-bridge.d.ts +0 -113
  402. package/dist/core/cli-bridge.d.ts.map +0 -1
  403. package/dist/core/cli-bridge.js +0 -1094
  404. package/dist/core/cli-bridge.js.map +0 -1
  405. package/dist/core/compact-context-manager.d.ts +0 -34
  406. package/dist/core/compact-context-manager.d.ts.map +0 -1
  407. package/dist/core/compact-context-manager.js +0 -60
  408. package/dist/core/compact-context-manager.js.map +0 -1
  409. package/dist/core/complexity-detector.d.ts +0 -36
  410. package/dist/core/complexity-detector.d.ts.map +0 -1
  411. package/dist/core/complexity-detector.js +0 -334
  412. package/dist/core/complexity-detector.js.map +0 -1
  413. package/dist/core/compress/compressor.d.ts +0 -60
  414. package/dist/core/compress/compressor.d.ts.map +0 -1
  415. package/dist/core/compress/compressor.js +0 -232
  416. package/dist/core/compress/compressor.js.map +0 -1
  417. package/dist/core/compress/discover.d.ts +0 -19
  418. package/dist/core/compress/discover.d.ts.map +0 -1
  419. package/dist/core/compress/discover.js +0 -100
  420. package/dist/core/compress/discover.js.map +0 -1
  421. package/dist/core/compress/validator.d.ts +0 -47
  422. package/dist/core/compress/validator.d.ts.map +0 -1
  423. package/dist/core/compress/validator.js +0 -131
  424. package/dist/core/compress/validator.js.map +0 -1
  425. package/dist/core/config-manager.d.ts +0 -86
  426. package/dist/core/config-manager.d.ts.map +0 -1
  427. package/dist/core/config-manager.js +0 -621
  428. package/dist/core/config-manager.js.map +0 -1
  429. package/dist/core/coverage-checker.d.ts +0 -14
  430. package/dist/core/coverage-checker.d.ts.map +0 -1
  431. package/dist/core/coverage-checker.js +0 -176
  432. package/dist/core/coverage-checker.js.map +0 -1
  433. package/dist/core/cursor-mdc-generator.d.ts +0 -30
  434. package/dist/core/cursor-mdc-generator.d.ts.map +0 -1
  435. package/dist/core/cursor-mdc-generator.js +0 -98
  436. package/dist/core/cursor-mdc-generator.js.map +0 -1
  437. package/dist/core/decision-manager.d.ts +0 -25
  438. package/dist/core/decision-manager.d.ts.map +0 -1
  439. package/dist/core/decision-manager.js +0 -183
  440. package/dist/core/decision-manager.js.map +0 -1
  441. package/dist/core/dependency-checker.d.ts +0 -21
  442. package/dist/core/dependency-checker.d.ts.map +0 -1
  443. package/dist/core/dependency-checker.js +0 -247
  444. package/dist/core/dependency-checker.js.map +0 -1
  445. package/dist/core/detector.d.ts +0 -27
  446. package/dist/core/detector.d.ts.map +0 -1
  447. package/dist/core/detector.js +0 -1763
  448. package/dist/core/detector.js.map +0 -1
  449. package/dist/core/docs-generator.d.ts +0 -9
  450. package/dist/core/docs-generator.d.ts.map +0 -1
  451. package/dist/core/docs-generator.js +0 -531
  452. package/dist/core/docs-generator.js.map +0 -1
  453. package/dist/core/doctor.d.ts +0 -19
  454. package/dist/core/doctor.d.ts.map +0 -1
  455. package/dist/core/doctor.js +0 -229
  456. package/dist/core/doctor.js.map +0 -1
  457. package/dist/core/generator.d.ts +0 -56
  458. package/dist/core/generator.d.ts.map +0 -1
  459. package/dist/core/generator.js +0 -1193
  460. package/dist/core/generator.js.map +0 -1
  461. package/dist/core/github-issues-importer.d.ts +0 -82
  462. package/dist/core/github-issues-importer.d.ts.map +0 -1
  463. package/dist/core/github-issues-importer.js +0 -161
  464. package/dist/core/github-issues-importer.js.map +0 -1
  465. package/dist/core/gitignore-generator.d.ts +0 -13
  466. package/dist/core/gitignore-generator.d.ts.map +0 -1
  467. package/dist/core/gitignore-generator.js +0 -307
  468. package/dist/core/gitignore-generator.js.map +0 -1
  469. package/dist/core/health-scorer.d.ts +0 -61
  470. package/dist/core/health-scorer.d.ts.map +0 -1
  471. package/dist/core/health-scorer.js +0 -638
  472. package/dist/core/health-scorer.js.map +0 -1
  473. package/dist/core/iteration-tracker.d.ts +0 -85
  474. package/dist/core/iteration-tracker.d.ts.map +0 -1
  475. package/dist/core/iteration-tracker.js +0 -295
  476. package/dist/core/iteration-tracker.js.map +0 -1
  477. package/dist/core/knowledge-manager.d.ts +0 -24
  478. package/dist/core/knowledge-manager.d.ts.map +0 -1
  479. package/dist/core/knowledge-manager.js +0 -173
  480. package/dist/core/knowledge-manager.js.map +0 -1
  481. package/dist/core/learn-manager.d.ts +0 -29
  482. package/dist/core/learn-manager.d.ts.map +0 -1
  483. package/dist/core/learn-manager.js +0 -159
  484. package/dist/core/learn-manager.js.map +0 -1
  485. package/dist/core/mcp-reference-generator.d.ts +0 -13
  486. package/dist/core/mcp-reference-generator.d.ts.map +0 -1
  487. package/dist/core/mcp-reference-generator.js +0 -66
  488. package/dist/core/mcp-reference-generator.js.map +0 -1
  489. package/dist/core/minimal-scaffolder.d.ts +0 -8
  490. package/dist/core/minimal-scaffolder.d.ts.map +0 -1
  491. package/dist/core/minimal-scaffolder.js +0 -51
  492. package/dist/core/minimal-scaffolder.js.map +0 -1
  493. package/dist/core/modern-console.d.ts +0 -98
  494. package/dist/core/modern-console.d.ts.map +0 -1
  495. package/dist/core/modern-console.js +0 -556
  496. package/dist/core/modern-console.js.map +0 -1
  497. package/dist/core/multi-tool-generator.d.ts +0 -59
  498. package/dist/core/multi-tool-generator.d.ts.map +0 -1
  499. package/dist/core/multi-tool-generator.js +0 -157
  500. package/dist/core/multi-tool-generator.js.map +0 -1
  501. package/dist/core/override-manager.d.ts +0 -23
  502. package/dist/core/override-manager.d.ts.map +0 -1
  503. package/dist/core/override-manager.js +0 -82
  504. package/dist/core/override-manager.js.map +0 -1
  505. package/dist/core/plans-manager.d.ts +0 -46
  506. package/dist/core/plans-manager.d.ts.map +0 -1
  507. package/dist/core/plans-manager.js +0 -158
  508. package/dist/core/plans-manager.js.map +0 -1
  509. package/dist/core/prd-generator.d.ts +0 -48
  510. package/dist/core/prd-generator.d.ts.map +0 -1
  511. package/dist/core/prd-generator.js +0 -233
  512. package/dist/core/prd-generator.js.map +0 -1
  513. package/dist/core/ralph-manager.d.ts +0 -163
  514. package/dist/core/ralph-manager.d.ts.map +0 -1
  515. package/dist/core/ralph-manager.js +0 -555
  516. package/dist/core/ralph-manager.js.map +0 -1
  517. package/dist/core/ralph-parallel.d.ts +0 -55
  518. package/dist/core/ralph-parallel.d.ts.map +0 -1
  519. package/dist/core/ralph-parallel.js +0 -201
  520. package/dist/core/ralph-parallel.js.map +0 -1
  521. package/dist/core/ralph-plan-checkpoint.d.ts +0 -58
  522. package/dist/core/ralph-plan-checkpoint.d.ts.map +0 -1
  523. package/dist/core/ralph-plan-checkpoint.js +0 -154
  524. package/dist/core/ralph-plan-checkpoint.js.map +0 -1
  525. package/dist/core/ralph-scripts.d.ts +0 -12
  526. package/dist/core/ralph-scripts.d.ts.map +0 -1
  527. package/dist/core/ralph-scripts.js +0 -50
  528. package/dist/core/ralph-scripts.js.map +0 -1
  529. package/dist/core/review-manager.d.ts +0 -74
  530. package/dist/core/review-manager.d.ts.map +0 -1
  531. package/dist/core/review-manager.js +0 -371
  532. package/dist/core/review-manager.js.map +0 -1
  533. package/dist/core/rules-generator.d.ts +0 -73
  534. package/dist/core/rules-generator.d.ts.map +0 -1
  535. package/dist/core/rules-generator.js +0 -202
  536. package/dist/core/rules-generator.js.map +0 -1
  537. package/dist/core/skills-manager.d.ts +0 -126
  538. package/dist/core/skills-manager.d.ts.map +0 -1
  539. package/dist/core/skills-manager.js +0 -654
  540. package/dist/core/skills-manager.js.map +0 -1
  541. package/dist/core/state-writer.d.ts +0 -35
  542. package/dist/core/state-writer.d.ts.map +0 -1
  543. package/dist/core/state-writer.js +0 -81
  544. package/dist/core/state-writer.js.map +0 -1
  545. package/dist/core/task-manager.d.ts +0 -127
  546. package/dist/core/task-manager.d.ts.map +0 -1
  547. package/dist/core/task-manager.js +0 -607
  548. package/dist/core/task-manager.js.map +0 -1
  549. package/dist/core/telemetry.d.ts +0 -29
  550. package/dist/core/telemetry.d.ts.map +0 -1
  551. package/dist/core/telemetry.js +0 -57
  552. package/dist/core/telemetry.js.map +0 -1
  553. package/dist/core/validator.d.ts +0 -21
  554. package/dist/core/validator.d.ts.map +0 -1
  555. package/dist/core/validator.js +0 -177
  556. package/dist/core/validator.js.map +0 -1
  557. package/dist/core/version-bumper.d.ts +0 -19
  558. package/dist/core/version-bumper.d.ts.map +0 -1
  559. package/dist/core/version-bumper.js +0 -180
  560. package/dist/core/version-bumper.js.map +0 -1
  561. package/dist/core/watcher.d.ts +0 -9
  562. package/dist/core/watcher.d.ts.map +0 -1
  563. package/dist/core/watcher.js +0 -22
  564. package/dist/core/watcher.js.map +0 -1
  565. package/dist/core/workflow-generator.d.ts +0 -15
  566. package/dist/core/workflow-generator.d.ts.map +0 -1
  567. package/dist/core/workflow-generator.js +0 -391
  568. package/dist/core/workflow-generator.js.map +0 -1
  569. package/dist/hooks/terse-activate.d.ts +0 -59
  570. package/dist/hooks/terse-activate.d.ts.map +0 -1
  571. package/dist/hooks/terse-activate.js +0 -149
  572. package/dist/hooks/terse-activate.js.map +0 -1
  573. package/dist/hooks/terse-config.d.ts +0 -51
  574. package/dist/hooks/terse-config.d.ts.map +0 -1
  575. package/dist/hooks/terse-config.js +0 -130
  576. package/dist/hooks/terse-config.js.map +0 -1
  577. package/dist/hooks/terse-mode-tracker.d.ts +0 -78
  578. package/dist/hooks/terse-mode-tracker.d.ts.map +0 -1
  579. package/dist/hooks/terse-mode-tracker.js +0 -213
  580. package/dist/hooks/terse-mode-tracker.js.map +0 -1
  581. package/dist/memory/hnsw-index.d.ts +0 -68
  582. package/dist/memory/hnsw-index.d.ts.map +0 -1
  583. package/dist/memory/hnsw-index.js +0 -544
  584. package/dist/memory/hnsw-index.js.map +0 -1
  585. package/dist/memory/memory-cache.d.ts +0 -33
  586. package/dist/memory/memory-cache.d.ts.map +0 -1
  587. package/dist/memory/memory-cache.js +0 -85
  588. package/dist/memory/memory-cache.js.map +0 -1
  589. package/dist/memory/memory-search.d.ts +0 -42
  590. package/dist/memory/memory-search.d.ts.map +0 -1
  591. package/dist/memory/memory-search.js +0 -180
  592. package/dist/memory/memory-search.js.map +0 -1
  593. package/dist/memory/memory-store.d.ts +0 -84
  594. package/dist/memory/memory-store.d.ts.map +0 -1
  595. package/dist/memory/memory-store.js +0 -566
  596. package/dist/memory/memory-store.js.map +0 -1
  597. package/dist/memory/memory-vectorizer.d.ts +0 -29
  598. package/dist/memory/memory-vectorizer.d.ts.map +0 -1
  599. package/dist/memory/memory-vectorizer.js +0 -199
  600. package/dist/memory/memory-vectorizer.js.map +0 -1
@@ -1,51 +0,0 @@
1
- /**
2
- * Default-mode resolution for rulebook-terse.
3
- *
4
- * Resolution order (first match wins):
5
- *
6
- * 1. `RULEBOOK_TERSE_MODE` environment variable.
7
- * 2. Project-local config at `<projectRoot>/.rulebook/rulebook.json`,
8
- * field `terse.defaultMode`. Project config dominates user-global
9
- * because a project's team standard should not be overridden by
10
- * an individual contributor's personal preference.
11
- * 3. User-global config at `$XDG_CONFIG_HOME/rulebook/config.json`,
12
- * `~/.config/rulebook/config.json`, or `%APPDATA%/rulebook/config.json`.
13
- * 4. The fallback literal `brief`.
14
- *
15
- * The active agent-tier can also override — see `resolveTierDefault`.
16
- *
17
- * Every read silent-fails on filesystem errors. A missing or corrupt
18
- * config file never prevents the hook from proceeding; we fall through
19
- * to the next tier.
20
- */
21
- import { type TerseMode } from './safe-flag-io.js';
22
- /**
23
- * Compute the user-global rulebook config path in OS-appropriate order:
24
- * - `$XDG_CONFIG_HOME/rulebook/config.json` if XDG_CONFIG_HOME is set.
25
- * - `%APPDATA%/rulebook/config.json` on Windows.
26
- * - `~/.config/rulebook/config.json` otherwise.
27
- */
28
- export declare function getUserGlobalConfigPath(env?: NodeJS.ProcessEnv): string;
29
- /**
30
- * Read the project-local config if present.
31
- */
32
- export declare function getProjectConfigPath(projectRoot: string): string;
33
- /**
34
- * Translate an agent-tier name into the default intensity level, or
35
- * null if the tier is unknown.
36
- */
37
- export declare function resolveTierDefault(tier: string | undefined): TerseMode | null;
38
- /**
39
- * Resolve the default intensity mode. Options allow tests to inject
40
- * env + project root deterministically.
41
- */
42
- export declare function getDefaultMode(options?: {
43
- env?: NodeJS.ProcessEnv;
44
- projectRoot?: string;
45
- tier?: string;
46
- }): TerseMode;
47
- /**
48
- * Path to the mode flag file (project-local).
49
- */
50
- export declare function getFlagPath(projectRoot?: string): string;
51
- //# sourceMappingURL=terse-config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"terse-config.d.ts","sourceRoot":"","sources":["../../src/hooks/terse-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAKH,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAmChE;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAOpF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,IAAI,CAI7E;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,OAAO,GAAE;IACP,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACV,GACL,SAAS,CAgCX;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,WAAW,GAAE,MAAsB,GAAG,MAAM,CAEvE"}
@@ -1,130 +0,0 @@
1
- /**
2
- * Default-mode resolution for rulebook-terse.
3
- *
4
- * Resolution order (first match wins):
5
- *
6
- * 1. `RULEBOOK_TERSE_MODE` environment variable.
7
- * 2. Project-local config at `<projectRoot>/.rulebook/rulebook.json`,
8
- * field `terse.defaultMode`. Project config dominates user-global
9
- * because a project's team standard should not be overridden by
10
- * an individual contributor's personal preference.
11
- * 3. User-global config at `$XDG_CONFIG_HOME/rulebook/config.json`,
12
- * `~/.config/rulebook/config.json`, or `%APPDATA%/rulebook/config.json`.
13
- * 4. The fallback literal `brief`.
14
- *
15
- * The active agent-tier can also override — see `resolveTierDefault`.
16
- *
17
- * Every read silent-fails on filesystem errors. A missing or corrupt
18
- * config file never prevents the hook from proceeding; we fall through
19
- * to the next tier.
20
- */
21
- import { existsSync, readFileSync } from 'node:fs';
22
- import { homedir, platform } from 'node:os';
23
- import { join } from 'node:path';
24
- import { VALID_MODES } from './safe-flag-io.js';
25
- const FALLBACK_MODE = 'brief';
26
- /**
27
- * Tier → default-intensity map. Per
28
- * `.rulebook/specs/RULEBOOK_TERSE.md` §Tier-aware defaults.
29
- */
30
- const TIER_DEFAULTS = {
31
- research: 'terse',
32
- haiku: 'terse',
33
- standard: 'brief',
34
- sonnet: 'brief',
35
- 'team-lead': 'brief',
36
- core: 'off',
37
- opus: 'off',
38
- };
39
- function readJsonSilently(path) {
40
- try {
41
- if (!existsSync(path))
42
- return null;
43
- return JSON.parse(readFileSync(path, 'utf8'));
44
- }
45
- catch {
46
- return null;
47
- }
48
- }
49
- function asTerseMode(v) {
50
- if (typeof v !== 'string')
51
- return null;
52
- const lower = v.trim().toLowerCase();
53
- return VALID_MODES.includes(lower)
54
- ? lower
55
- : null;
56
- }
57
- /**
58
- * Compute the user-global rulebook config path in OS-appropriate order:
59
- * - `$XDG_CONFIG_HOME/rulebook/config.json` if XDG_CONFIG_HOME is set.
60
- * - `%APPDATA%/rulebook/config.json` on Windows.
61
- * - `~/.config/rulebook/config.json` otherwise.
62
- */
63
- export function getUserGlobalConfigPath(env = process.env) {
64
- if (env.XDG_CONFIG_HOME)
65
- return join(env.XDG_CONFIG_HOME, 'rulebook', 'config.json');
66
- if (platform() === 'win32') {
67
- const appData = env.APPDATA ?? join(homedir(), 'AppData', 'Roaming');
68
- return join(appData, 'rulebook', 'config.json');
69
- }
70
- return join(homedir(), '.config', 'rulebook', 'config.json');
71
- }
72
- /**
73
- * Read the project-local config if present.
74
- */
75
- export function getProjectConfigPath(projectRoot) {
76
- return join(projectRoot, '.rulebook', 'rulebook.json');
77
- }
78
- /**
79
- * Translate an agent-tier name into the default intensity level, or
80
- * null if the tier is unknown.
81
- */
82
- export function resolveTierDefault(tier) {
83
- if (!tier)
84
- return null;
85
- const key = tier.trim().toLowerCase();
86
- return TIER_DEFAULTS[key] ?? null;
87
- }
88
- /**
89
- * Resolve the default intensity mode. Options allow tests to inject
90
- * env + project root deterministically.
91
- */
92
- export function getDefaultMode(options = {}) {
93
- const env = options.env ?? process.env;
94
- const projectRoot = options.projectRoot ?? process.cwd();
95
- // 1. Env var override.
96
- const fromEnv = asTerseMode(env.RULEBOOK_TERSE_MODE);
97
- if (fromEnv)
98
- return fromEnv;
99
- // 2. Project-local .rulebook/rulebook.json → terse.defaultMode.
100
- const projectConfig = readJsonSilently(getProjectConfigPath(projectRoot));
101
- const projectTerse = projectConfig?.['terse'];
102
- if (projectTerse && typeof projectTerse === 'object') {
103
- const m = asTerseMode(projectTerse.defaultMode);
104
- if (m)
105
- return m;
106
- }
107
- // 3. User-global config.
108
- const userConfig = readJsonSilently(getUserGlobalConfigPath(env));
109
- const userTerse = userConfig?.['terse'];
110
- if (userTerse && typeof userTerse === 'object') {
111
- const m = asTerseMode(userTerse.defaultMode);
112
- if (m)
113
- return m;
114
- }
115
- // 4. Agent-tier default (only if explicitly provided).
116
- if (options.tier) {
117
- const tierMode = resolveTierDefault(options.tier);
118
- if (tierMode)
119
- return tierMode;
120
- }
121
- // 5. Literal fallback.
122
- return FALLBACK_MODE;
123
- }
124
- /**
125
- * Path to the mode flag file (project-local).
126
- */
127
- export function getFlagPath(projectRoot = process.cwd()) {
128
- return join(projectRoot, '.rulebook', '.terse-mode');
129
- }
130
- //# sourceMappingURL=terse-config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"terse-config.js","sourceRoot":"","sources":["../../src/hooks/terse-config.ts"],"names":[],"mappings":"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"}
@@ -1,78 +0,0 @@
1
- /**
2
- * Claude Code UserPromptSubmit hook for rulebook-terse.
3
- *
4
- * Runs on every user message. Three responsibilities:
5
- *
6
- * 1. **Mode switching.** Parses slash commands (`/rulebook-terse`,
7
- * `/rulebook-terse brief|terse|ultra|off`, `/rulebook-terse-commit`,
8
- * `/rulebook-terse-review`) and natural-language activation
9
- * phrases ("be terse", "less tokens please", "terse mode",
10
- * "activate rulebook-terse"). Writes the resolved mode to the
11
- * flag file via `safeWriteFlag`.
12
- *
13
- * 2. **Mode deactivation.** Recognizes "normal mode", "stop terse",
14
- * "disable terse", etc. Deletes the flag file.
15
- *
16
- * 3. **Per-turn reinforcement.** When the flag is set to a persistent
17
- * mode (brief / terse / ultra), emits a short ~45 token attention
18
- * anchor as `hookSpecificOutput.additionalContext` JSON. The
19
- * SessionStart hook supplied the full rules once; this reminder
20
- * keeps the register in the model's attention when other plugins
21
- * inject competing instructions mid-conversation.
22
- *
23
- * Independent modes (commit / review) do not get the anchor —
24
- * they have their own skill files that fully own the behavior
25
- * during the single turn they're invoked.
26
- *
27
- * Silent-fails on every filesystem error. A broken hook must NEVER
28
- * prevent a user message from reaching the model.
29
- */
30
- import { type TerseMode } from './safe-flag-io.js';
31
- /**
32
- * Result of parsing a user prompt. `null` means no mode change is
33
- * implied by the prompt.
34
- */
35
- export type ParsedIntent = {
36
- kind: 'set';
37
- mode: TerseMode;
38
- } | {
39
- kind: 'off';
40
- } | null;
41
- /**
42
- * Parse a user prompt for an intent to activate, switch, or disable
43
- * rulebook-terse. Slash commands take priority over natural language;
44
- * natural-language deactivation takes priority over activation when
45
- * both appear in the same prompt.
46
- *
47
- * `defaultMode` is used for plain `/rulebook-terse` (no argument).
48
- */
49
- export declare function parseIntent(prompt: string, defaultMode: TerseMode): ParsedIntent;
50
- /**
51
- * Build the per-turn attention-anchor JSON emitted when a persistent
52
- * mode is active. Format matches Claude Code's `hookSpecificOutput`
53
- * contract for UserPromptSubmit hooks.
54
- */
55
- export declare function buildAttentionAnchor(mode: TerseMode): string;
56
- /**
57
- * Core hook logic, pure and testable. Given an input object and
58
- * options, returns the string (if any) that should be emitted to
59
- * stdout, and performs the flag-file side effects.
60
- */
61
- export declare function runHook(input: {
62
- prompt?: string;
63
- cwd?: string;
64
- }, options?: {
65
- projectRoot?: string;
66
- env?: NodeJS.ProcessEnv;
67
- }): string | null;
68
- /**
69
- * CLI entry. Reads JSON from stdin, invokes `runHook`, emits any
70
- * returned string to stdout. Always exits 0.
71
- */
72
- export declare function main(options?: {
73
- stdin?: NodeJS.ReadableStream;
74
- stdout?: NodeJS.WriteStream;
75
- projectRoot?: string;
76
- env?: NodeJS.ProcessEnv;
77
- }): Promise<void>;
78
- //# sourceMappingURL=terse-mode-tracker.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"terse-mode-tracker.d.ts","sourceRoot":"","sources":["../../src/hooks/terse-mode-tracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAIH,OAAO,EAA2B,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AA+B5E;;;GAGG;AACH,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GACf,IAAI,CAAC;AAET;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,GAAG,YAAY,CA6ChF;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAa5D;AAcD;;;;GAIG;AACH,wBAAgB,OAAO,CACrB,KAAK,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,EACxC,OAAO,GAAE;IACP,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACpB,GACL,MAAM,GAAG,IAAI,CA6Cf;AAED;;;GAGG;AACH,wBAAsB,IAAI,CACxB,OAAO,GAAE;IACP,KAAK,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACpB,GACL,OAAO,CAAC,IAAI,CAAC,CAkBf"}
@@ -1,213 +0,0 @@
1
- /**
2
- * Claude Code UserPromptSubmit hook for rulebook-terse.
3
- *
4
- * Runs on every user message. Three responsibilities:
5
- *
6
- * 1. **Mode switching.** Parses slash commands (`/rulebook-terse`,
7
- * `/rulebook-terse brief|terse|ultra|off`, `/rulebook-terse-commit`,
8
- * `/rulebook-terse-review`) and natural-language activation
9
- * phrases ("be terse", "less tokens please", "terse mode",
10
- * "activate rulebook-terse"). Writes the resolved mode to the
11
- * flag file via `safeWriteFlag`.
12
- *
13
- * 2. **Mode deactivation.** Recognizes "normal mode", "stop terse",
14
- * "disable terse", etc. Deletes the flag file.
15
- *
16
- * 3. **Per-turn reinforcement.** When the flag is set to a persistent
17
- * mode (brief / terse / ultra), emits a short ~45 token attention
18
- * anchor as `hookSpecificOutput.additionalContext` JSON. The
19
- * SessionStart hook supplied the full rules once; this reminder
20
- * keeps the register in the model's attention when other plugins
21
- * inject competing instructions mid-conversation.
22
- *
23
- * Independent modes (commit / review) do not get the anchor —
24
- * they have their own skill files that fully own the behavior
25
- * during the single turn they're invoked.
26
- *
27
- * Silent-fails on every filesystem error. A broken hook must NEVER
28
- * prevent a user message from reaching the model.
29
- */
30
- import { unlinkSync } from 'node:fs';
31
- import { fileURLToPath } from 'node:url';
32
- import { readFlag, safeWriteFlag } from './safe-flag-io.js';
33
- import { getDefaultMode, getFlagPath } from './terse-config.js';
34
- /**
35
- * Modes whose behavior is fully handled by their own sub-skill file
36
- * and do NOT get a per-turn attention anchor.
37
- */
38
- const INDEPENDENT_MODES = new Set(['commit', 'review']);
39
- /**
40
- * Natural-language activation patterns. Matched case-insensitively.
41
- * Both orderings are accepted ("activate caveman" and "caveman mode").
42
- */
43
- const ACTIVATION_PATTERNS = [
44
- /\b(activate|enable|turn\s+on|start)\b.*\brulebook[-\s]?terse\b/i,
45
- /\brulebook[-\s]?terse\b.*\b(mode|activate|enable|turn\s+on|start)\b/i,
46
- /\bbe\s+terse\b/i,
47
- /\bterse\s+mode\b/i,
48
- /\bless\s+tokens?\s*(please)?\b/i,
49
- ];
50
- /**
51
- * Natural-language deactivation patterns.
52
- */
53
- const DEACTIVATION_PATTERNS = [
54
- /\b(stop|disable|turn\s+off|deactivate)\b.*\brulebook[-\s]?terse\b/i,
55
- /\brulebook[-\s]?terse\b.*\b(stop|disable|turn\s+off|deactivate)\b/i,
56
- /\b(stop|disable)\s+terse\b/i,
57
- /\bnormal\s+mode\b/i,
58
- ];
59
- /**
60
- * Parse a user prompt for an intent to activate, switch, or disable
61
- * rulebook-terse. Slash commands take priority over natural language;
62
- * natural-language deactivation takes priority over activation when
63
- * both appear in the same prompt.
64
- *
65
- * `defaultMode` is used for plain `/rulebook-terse` (no argument).
66
- */
67
- export function parseIntent(prompt, defaultMode) {
68
- const trimmed = prompt.trim();
69
- const lower = trimmed.toLowerCase();
70
- // Slash commands — highest priority, exact surface.
71
- if (lower.startsWith('/rulebook-terse')) {
72
- const parts = lower.split(/\s+/);
73
- const cmd = parts[0];
74
- const arg = parts[1] ?? '';
75
- if (cmd === '/rulebook-terse-commit') {
76
- return { kind: 'set', mode: 'commit' };
77
- }
78
- if (cmd === '/rulebook-terse-review') {
79
- return { kind: 'set', mode: 'review' };
80
- }
81
- if (cmd === '/rulebook-terse') {
82
- switch (arg) {
83
- case 'off':
84
- return { kind: 'off' };
85
- case 'brief':
86
- case 'terse':
87
- case 'ultra':
88
- case 'commit':
89
- case 'review':
90
- return { kind: 'set', mode: arg };
91
- case '':
92
- return { kind: 'set', mode: defaultMode };
93
- default:
94
- return null; // Unknown subcommand — leave mode unchanged.
95
- }
96
- }
97
- }
98
- // Natural-language deactivation first — "stop terse" should win over
99
- // a stray "terse" that happens to also match activation.
100
- if (DEACTIVATION_PATTERNS.some((re) => re.test(trimmed))) {
101
- return { kind: 'off' };
102
- }
103
- if (ACTIVATION_PATTERNS.some((re) => re.test(trimmed))) {
104
- return { kind: 'set', mode: defaultMode };
105
- }
106
- return null;
107
- }
108
- /**
109
- * Build the per-turn attention-anchor JSON emitted when a persistent
110
- * mode is active. Format matches Claude Code's `hookSpecificOutput`
111
- * contract for UserPromptSubmit hooks.
112
- */
113
- export function buildAttentionAnchor(mode) {
114
- const text = `RULEBOOK-TERSE ACTIVE (${mode}). ` +
115
- `Drop filler/hedging/pleasantries. ` +
116
- (mode === 'brief' ? 'Keep articles and full sentences.' : 'Fragments OK.') +
117
- ` Code/tests/commits/security: write full. Quality-gate failures + destructive ops: write full.`;
118
- return JSON.stringify({
119
- hookSpecificOutput: {
120
- hookEventName: 'UserPromptSubmit',
121
- additionalContext: text,
122
- },
123
- });
124
- }
125
- /**
126
- * Read an entire JSON object from a readable stream. Claude Code
127
- * passes hook input as `{ prompt, cwd, ... }` on stdin.
128
- */
129
- async function readAllStdin(stream) {
130
- const chunks = [];
131
- for await (const chunk of stream) {
132
- chunks.push(typeof chunk === 'string' ? Buffer.from(chunk) : chunk);
133
- }
134
- return Buffer.concat(chunks).toString('utf8');
135
- }
136
- /**
137
- * Core hook logic, pure and testable. Given an input object and
138
- * options, returns the string (if any) that should be emitted to
139
- * stdout, and performs the flag-file side effects.
140
- */
141
- export function runHook(input, options = {}) {
142
- try {
143
- const prompt = input.prompt ?? '';
144
- const projectRoot = options.projectRoot ?? input.cwd ?? process.cwd();
145
- const env = options.env ?? process.env;
146
- const flagPath = getFlagPath(projectRoot);
147
- // Resolve default-mode fresh each turn so env changes take effect.
148
- const defaultMode = getDefaultMode({ env, projectRoot, tier: env.RULEBOOK_AGENT_TIER });
149
- const intent = parseIntent(prompt, defaultMode);
150
- if (intent?.kind === 'off') {
151
- try {
152
- unlinkSync(flagPath);
153
- }
154
- catch {
155
- /* flag already absent — fine */
156
- }
157
- return null;
158
- }
159
- if (intent?.kind === 'set') {
160
- if (intent.mode === 'off') {
161
- try {
162
- unlinkSync(flagPath);
163
- }
164
- catch {
165
- /* fine */
166
- }
167
- return null;
168
- }
169
- safeWriteFlag(flagPath, intent.mode);
170
- }
171
- // Read whatever mode is now persisted (may be set by this turn or
172
- // a previous one) and emit the attention anchor for persistent
173
- // modes only.
174
- const currentMode = readFlag(flagPath);
175
- if (currentMode && currentMode !== 'off' && !INDEPENDENT_MODES.has(currentMode)) {
176
- return buildAttentionAnchor(currentMode);
177
- }
178
- return null;
179
- }
180
- catch {
181
- return null;
182
- }
183
- }
184
- /**
185
- * CLI entry. Reads JSON from stdin, invokes `runHook`, emits any
186
- * returned string to stdout. Always exits 0.
187
- */
188
- export async function main(options = {}) {
189
- try {
190
- const stdin = options.stdin ?? process.stdin;
191
- const stdout = options.stdout ?? process.stdout;
192
- const raw = await readAllStdin(stdin);
193
- let input = {};
194
- try {
195
- input = JSON.parse(raw);
196
- }
197
- catch {
198
- /* Non-JSON input — treat as empty. Hook still no-ops gracefully. */
199
- }
200
- const out = runHook(input, { projectRoot: options.projectRoot, env: options.env });
201
- if (out !== null)
202
- stdout.write(out);
203
- }
204
- catch {
205
- /* silent fail */
206
- }
207
- }
208
- // CLI guard — only auto-run when invoked as the entry script.
209
- const __filename = fileURLToPath(import.meta.url);
210
- if (process.argv[1] === __filename) {
211
- void main();
212
- }
213
- //# sourceMappingURL=terse-mode-tracker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"terse-mode-tracker.js","sourceRoot":"","sources":["../../src/hooks/terse-mode-tracker.ts"],"names":[],"mappings":"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"}
@@ -1,68 +0,0 @@
1
- /**
2
- * Pure TypeScript HNSW (Hierarchical Navigable Small World) Index
3
- *
4
- * Approximate nearest neighbor search using cosine distance.
5
- * Zero native dependencies. Designed for <50K vectors.
6
- */
7
- export interface HNSWConfig {
8
- M?: number;
9
- efConstruction?: number;
10
- dimensions: number;
11
- maxNodes?: number;
12
- }
13
- export declare class HNSWIndex {
14
- private readonly M;
15
- private readonly efConstruction;
16
- private readonly dimensions;
17
- private readonly maxNodes;
18
- private readonly mL;
19
- private nodes;
20
- private insertionOrder;
21
- private entryPoint;
22
- private maxLayer;
23
- constructor(config: HNSWConfig);
24
- get size(): number;
25
- /**
26
- * Cosine distance: 1 - cosine_similarity (0 = identical, 2 = opposite)
27
- */
28
- private cosineDistance;
29
- /**
30
- * Assign a random layer for a new node
31
- */
32
- private randomLayer;
33
- /**
34
- * Greedy search at a single layer, returning ef nearest candidates.
35
- * Uses min-heap for candidates and max-heap for results to avoid
36
- * O(n log n) array sorts on every iteration (now O(log n) per operation).
37
- */
38
- private searchLayer;
39
- /**
40
- * Select M nearest neighbors from candidates, pruning for diversity
41
- */
42
- private selectNeighbors;
43
- /**
44
- * Add a vector to the index
45
- */
46
- add(label: string, vector: Float32Array): void;
47
- /**
48
- * Search k nearest neighbors
49
- */
50
- search(query: Float32Array, k: number, ef?: number): Array<{
51
- label: string;
52
- distance: number;
53
- }>;
54
- /**
55
- * Remove a vector from the index
56
- */
57
- remove(label: string): void;
58
- /**
59
- * Serialize the index to an ArrayBuffer for disk persistence
60
- * Format: [magic:u32][version:u8][dimensions:u32][M:u16][nodeCount:u32][...nodes]
61
- */
62
- serialize(): ArrayBuffer;
63
- /**
64
- * Deserialize an index from an ArrayBuffer
65
- */
66
- static deserialize(buffer: ArrayBuffer): HNSWIndex;
67
- }
68
- //# sourceMappingURL=hnsw-index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hnsw-index.d.ts","sourceRoot":"","sources":["../../src/memory/hnsw-index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAsIH,MAAM,WAAW,UAAU;IACzB,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAKD,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAS;IAC5B,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,QAAQ,CAAK;gBAET,MAAM,EAAE,UAAU;IAQ9B,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;OAEG;IACH,OAAO,CAAC,cAAc;IAiBtB;;OAEG;IACH,OAAO,CAAC,WAAW;IAInB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAsDnB;;OAEG;IACH,OAAO,CAAC,eAAe;IAKvB;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI;IAyG9C;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IA4B/F;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAwC3B;;;OAGG;IACH,SAAS,IAAI,WAAW;IAkFxB;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS;CA2GnD"}