@hivehub/rulebook 5.5.2 → 5.8.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 (834) 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-learn-capture.md +41 -48
  8. package/.claude/commands/rulebook-learn-list.md +13 -13
  9. package/.claude/commands/rulebook-memory-save.md +48 -48
  10. package/.claude/commands/rulebook-memory-search.md +47 -47
  11. package/.claude/commands/rulebook-task-apply.md +67 -67
  12. package/.claude/commands/rulebook-task-archive.md +94 -94
  13. package/.claude/commands/rulebook-task-create.md +93 -93
  14. package/.claude/commands/rulebook-task-list.md +42 -42
  15. package/.claude/commands/rulebook-task-show.md +52 -52
  16. package/.claude/commands/rulebook-task-validate.md +53 -53
  17. package/.claude-plugin/marketplace.json +28 -28
  18. package/.claude-plugin/plugin.json +8 -8
  19. package/README.md +418 -394
  20. package/dist/cli/commands/claude.d.ts +17 -0
  21. package/dist/cli/commands/claude.d.ts.map +1 -0
  22. package/dist/cli/commands/claude.js +56 -0
  23. package/dist/cli/commands/claude.js.map +1 -0
  24. package/dist/cli/commands/context-intelligence.d.ts +0 -1
  25. package/dist/cli/commands/context-intelligence.d.ts.map +1 -1
  26. package/dist/cli/commands/context-intelligence.js +12 -33
  27. package/dist/cli/commands/context-intelligence.js.map +1 -1
  28. package/dist/cli/commands/index.d.ts +4 -7
  29. package/dist/cli/commands/index.d.ts.map +1 -1
  30. package/dist/cli/commands/index.js +4 -7
  31. package/dist/cli/commands/index.js.map +1 -1
  32. package/dist/cli/commands/init.d.ts.map +1 -1
  33. package/dist/cli/commands/init.js +58 -83
  34. package/dist/cli/commands/init.js.map +1 -1
  35. package/dist/cli/commands/mcp.d.ts +0 -1
  36. package/dist/cli/commands/mcp.d.ts.map +1 -1
  37. package/dist/cli/commands/mcp.js +1 -7
  38. package/dist/cli/commands/mcp.js.map +1 -1
  39. package/dist/cli/commands/memory.d.ts +7 -1
  40. package/dist/cli/commands/memory.d.ts.map +1 -1
  41. package/dist/cli/commands/memory.js +51 -57
  42. package/dist/cli/commands/memory.js.map +1 -1
  43. package/dist/cli/commands/misc.d.ts +1 -15
  44. package/dist/cli/commands/misc.d.ts.map +1 -1
  45. package/dist/cli/commands/misc.js +36 -215
  46. package/dist/cli/commands/misc.js.map +1 -1
  47. package/dist/cli/commands/plans.d.ts +0 -6
  48. package/dist/cli/commands/plans.d.ts.map +1 -1
  49. package/dist/cli/commands/plans.js +9 -77
  50. package/dist/cli/commands/plans.js.map +1 -1
  51. package/dist/cli/commands/skills.js +6 -6
  52. package/dist/cli/commands/skills.js.map +1 -1
  53. package/dist/cli/commands/task.js +4 -4
  54. package/dist/cli/commands/task.js.map +1 -1
  55. package/dist/cli/commands/update.d.ts.map +1 -1
  56. package/dist/cli/commands/update.js +128 -53
  57. package/dist/cli/commands/update.js.map +1 -1
  58. package/dist/cli/prompts.d.ts +13 -0
  59. package/dist/cli/prompts.d.ts.map +1 -1
  60. package/dist/cli/prompts.js +107 -78
  61. package/dist/cli/prompts.js.map +1 -1
  62. package/dist/core/{claude-mcp.d.ts → claude/claude-mcp.d.ts} +9 -0
  63. package/dist/core/claude/claude-mcp.d.ts.map +1 -0
  64. package/dist/core/{claude-mcp.js → claude/claude-mcp.js} +33 -3
  65. package/dist/core/claude/claude-mcp.js.map +1 -0
  66. package/dist/core/claude/claude-md-generator.d.ts.map +1 -0
  67. package/dist/core/{claude-md-generator.js → claude/claude-md-generator.js} +2 -2
  68. package/dist/core/claude/claude-md-generator.js.map +1 -0
  69. package/dist/core/{claude-settings-manager.d.ts → claude/claude-settings-manager.d.ts} +12 -0
  70. package/dist/core/claude/claude-settings-manager.d.ts.map +1 -0
  71. package/dist/core/{claude-settings-manager.js → claude/claude-settings-manager.js} +81 -22
  72. package/dist/core/claude/claude-settings-manager.js.map +1 -0
  73. package/dist/core/{cli-bridge.d.ts → console/cli-bridge.d.ts} +2 -2
  74. package/dist/core/console/cli-bridge.d.ts.map +1 -0
  75. package/dist/core/{cli-bridge.js → console/cli-bridge.js} +3 -3
  76. package/dist/core/console/cli-bridge.js.map +1 -0
  77. package/dist/core/{detector.d.ts → detect/detector.d.ts} +16 -1
  78. package/dist/core/detect/detector.d.ts.map +1 -0
  79. package/dist/core/detect/detector.js +766 -0
  80. package/dist/core/detect/detector.js.map +1 -0
  81. package/dist/core/detect/library-registry.d.ts +40 -0
  82. package/dist/core/detect/library-registry.d.ts.map +1 -0
  83. package/dist/core/detect/library-registry.js +239 -0
  84. package/dist/core/detect/library-registry.js.map +1 -0
  85. package/dist/core/docs/docs-generator.d.ts.map +1 -0
  86. package/dist/core/{docs-generator.js → docs/docs-generator.js} +1 -1
  87. package/dist/core/docs/docs-generator.js.map +1 -0
  88. package/dist/core/docs/mcp-reference-generator.d.ts.map +1 -0
  89. package/dist/core/{mcp-reference-generator.js → docs/mcp-reference-generator.js} +2 -2
  90. package/dist/core/docs/mcp-reference-generator.js.map +1 -0
  91. package/dist/core/{generator.d.ts → generators/generator.d.ts} +3 -4
  92. package/dist/core/generators/generator.d.ts.map +1 -0
  93. package/dist/core/{generator.js → generators/generator.js} +42 -157
  94. package/dist/core/generators/generator.js.map +1 -0
  95. package/dist/core/{gitignore-generator.d.ts → generators/gitignore-generator.d.ts} +1 -1
  96. package/dist/core/generators/gitignore-generator.d.ts.map +1 -0
  97. package/dist/core/{gitignore-generator.js → generators/gitignore-generator.js} +1 -1
  98. package/dist/core/generators/gitignore-generator.js.map +1 -0
  99. package/dist/core/generators/minimal-scaffolder.d.ts.map +1 -0
  100. package/dist/core/{minimal-scaffolder.js → generators/minimal-scaffolder.js} +2 -2
  101. package/dist/core/generators/minimal-scaffolder.js.map +1 -0
  102. package/dist/core/{rules-generator.d.ts → generators/rules-generator.d.ts} +2 -6
  103. package/dist/core/generators/rules-generator.d.ts.map +1 -0
  104. package/dist/core/{rules-generator.js → generators/rules-generator.js} +41 -2
  105. package/dist/core/generators/rules-generator.js.map +1 -0
  106. package/dist/core/{workflow-generator.d.ts → generators/workflow-generator.d.ts} +1 -1
  107. package/dist/core/generators/workflow-generator.d.ts.map +1 -0
  108. package/dist/core/{workflow-generator.js → generators/workflow-generator.js} +2 -3
  109. package/dist/core/generators/workflow-generator.js.map +1 -0
  110. package/dist/core/{multi-tool-generator.d.ts → ide/multi-tool-generator.d.ts} +1 -1
  111. package/dist/core/ide/multi-tool-generator.d.ts.map +1 -0
  112. package/dist/core/{multi-tool-generator.js → ide/multi-tool-generator.js} +1 -1
  113. package/dist/core/ide/multi-tool-generator.js.map +1 -0
  114. package/dist/core/ide/opencode-generator.d.ts +72 -0
  115. package/dist/core/ide/opencode-generator.d.ts.map +1 -0
  116. package/dist/core/ide/opencode-generator.js +450 -0
  117. package/dist/core/ide/opencode-generator.js.map +1 -0
  118. package/dist/core/merger.d.ts +1 -1
  119. package/dist/core/merger.d.ts.map +1 -1
  120. package/dist/core/merger.js +5 -5
  121. package/dist/core/merger.js.map +1 -1
  122. package/dist/core/migrator.d.ts +0 -1
  123. package/dist/core/migrator.d.ts.map +1 -1
  124. package/dist/core/migrator.js +4 -29
  125. package/dist/core/migrator.js.map +1 -1
  126. package/dist/core/quality/coverage-checker.d.ts.map +1 -0
  127. package/dist/core/{coverage-checker.js → quality/coverage-checker.js} +2 -2
  128. package/dist/core/quality/coverage-checker.js.map +1 -0
  129. package/dist/core/quality/dependency-checker.d.ts.map +1 -0
  130. package/dist/core/{dependency-checker.js → quality/dependency-checker.js} +1 -1
  131. package/dist/core/quality/dependency-checker.js.map +1 -0
  132. package/dist/core/quality/doctor.d.ts.map +1 -0
  133. package/dist/core/{doctor.js → quality/doctor.js} +1 -67
  134. package/dist/core/quality/doctor.js.map +1 -0
  135. package/dist/core/quality/validator.d.ts.map +1 -0
  136. package/dist/core/{validator.js → quality/validator.js} +1 -1
  137. package/dist/core/quality/validator.js.map +1 -0
  138. package/dist/core/{skills-manager.d.ts → skills/skills-manager.d.ts} +1 -1
  139. package/dist/core/skills/skills-manager.d.ts.map +1 -0
  140. package/dist/core/{skills-manager.js → skills/skills-manager.js} +1 -25
  141. package/dist/core/skills/skills-manager.js.map +1 -0
  142. package/dist/core/{config-manager.d.ts → state/config-manager.d.ts} +1 -1
  143. package/dist/core/state/config-manager.d.ts.map +1 -0
  144. package/dist/core/{config-manager.js → state/config-manager.js} +2 -61
  145. package/dist/core/state/config-manager.js.map +1 -0
  146. package/dist/core/state/override-manager.d.ts.map +1 -0
  147. package/dist/core/{override-manager.js → state/override-manager.js} +1 -1
  148. package/dist/core/state/override-manager.js.map +1 -0
  149. package/dist/core/{state-writer.d.ts → state/state-writer.d.ts} +2 -3
  150. package/dist/core/state/state-writer.d.ts.map +1 -0
  151. package/dist/core/{state-writer.js → state/state-writer.js} +6 -9
  152. package/dist/core/state/state-writer.js.map +1 -0
  153. package/dist/core/state/version-bumper.d.ts.map +1 -0
  154. package/dist/core/{version-bumper.js → state/version-bumper.js} +1 -1
  155. package/dist/core/state/version-bumper.js.map +1 -0
  156. package/dist/core/{decision-manager.d.ts → tasks/decision-manager.d.ts} +1 -1
  157. package/dist/core/tasks/decision-manager.d.ts.map +1 -0
  158. package/dist/core/{decision-manager.js → tasks/decision-manager.js} +1 -1
  159. package/dist/core/tasks/decision-manager.js.map +1 -0
  160. package/dist/core/{knowledge-manager.d.ts → tasks/knowledge-manager.d.ts} +1 -1
  161. package/dist/core/tasks/knowledge-manager.d.ts.map +1 -0
  162. package/dist/core/{knowledge-manager.js → tasks/knowledge-manager.js} +1 -1
  163. package/dist/core/tasks/knowledge-manager.js.map +1 -0
  164. package/dist/core/{learn-manager.d.ts → tasks/learn-manager.d.ts} +1 -3
  165. package/dist/core/tasks/learn-manager.d.ts.map +1 -0
  166. package/dist/core/{learn-manager.js → tasks/learn-manager.js} +1 -39
  167. package/dist/core/tasks/learn-manager.js.map +1 -0
  168. package/dist/core/tasks/plans-manager.d.ts.map +1 -0
  169. package/dist/core/{plans-manager.js → tasks/plans-manager.js} +1 -1
  170. package/dist/core/tasks/plans-manager.js.map +1 -0
  171. package/dist/core/tasks/task-manager.d.ts.map +1 -0
  172. package/dist/core/{task-manager.js → tasks/task-manager.js} +2 -2
  173. package/dist/core/tasks/task-manager.js.map +1 -0
  174. package/dist/core/workspace/project-worker.d.ts +6 -6
  175. package/dist/core/workspace/project-worker.d.ts.map +1 -1
  176. package/dist/core/workspace/project-worker.js +6 -6
  177. package/dist/core/workspace/project-worker.js.map +1 -1
  178. package/dist/index.d.ts +1 -1
  179. package/dist/index.d.ts.map +1 -1
  180. package/dist/index.js +31 -176
  181. package/dist/index.js.map +1 -1
  182. package/dist/mcp/rulebook-server.d.ts.map +1 -1
  183. package/dist/mcp/rulebook-server.js +16 -960
  184. package/dist/mcp/rulebook-server.js.map +1 -1
  185. package/dist/memory/file-search.d.ts +43 -0
  186. package/dist/memory/file-search.d.ts.map +1 -0
  187. package/dist/memory/file-search.js +228 -0
  188. package/dist/memory/file-search.js.map +1 -0
  189. package/dist/memory/file-store.d.ts +99 -0
  190. package/dist/memory/file-store.d.ts.map +1 -0
  191. package/dist/memory/file-store.js +615 -0
  192. package/dist/memory/file-store.js.map +1 -0
  193. package/dist/memory/legacy-migrator.d.ts +27 -0
  194. package/dist/memory/legacy-migrator.d.ts.map +1 -0
  195. package/dist/memory/legacy-migrator.js +185 -0
  196. package/dist/memory/legacy-migrator.js.map +1 -0
  197. package/dist/memory/memory-manager.d.ts +25 -24
  198. package/dist/memory/memory-manager.d.ts.map +1 -1
  199. package/dist/memory/memory-manager.js +97 -140
  200. package/dist/memory/memory-manager.js.map +1 -1
  201. package/dist/memory/memory-types.d.ts +1 -1
  202. package/dist/memory/memory-types.d.ts.map +1 -1
  203. package/dist/types.d.ts +20 -118
  204. package/dist/types.d.ts.map +1 -1
  205. package/package.json +23 -27
  206. package/templates/agents/accessibility-reviewer.md +43 -43
  207. package/templates/agents/api-designer.md +42 -42
  208. package/templates/agents/architect.md +51 -51
  209. package/templates/agents/build-engineer.md +36 -36
  210. package/templates/agents/code-reviewer.md +47 -47
  211. package/templates/agents/compiler/codegen-debugger.md +34 -34
  212. package/templates/agents/compiler/stdlib-engineer.md +28 -28
  213. package/templates/agents/compiler/test-coverage-guardian.md +31 -31
  214. package/templates/agents/context-intelligence.md +50 -52
  215. package/templates/agents/database-architect.md +41 -41
  216. package/templates/agents/devops-engineer.md +42 -42
  217. package/templates/agents/docs-writer.md +38 -38
  218. package/templates/agents/game-engine/cpp-core-expert.md +35 -35
  219. package/templates/agents/game-engine/render-engineer.md +22 -22
  220. package/templates/agents/game-engine/shader-engineer.md +38 -38
  221. package/templates/agents/game-engine/systems-integration.md +43 -43
  222. package/templates/agents/generic/code-reviewer.md +41 -41
  223. package/templates/agents/generic/docs-writer.md +25 -25
  224. package/templates/agents/generic/project-manager.md +36 -36
  225. package/templates/agents/generic/researcher.md +34 -34
  226. package/templates/agents/generic/test-engineer.md +41 -41
  227. package/templates/agents/i18n-engineer.md +42 -42
  228. package/templates/agents/implementer.md +42 -42
  229. package/templates/agents/migration-engineer.md +42 -42
  230. package/templates/agents/mobile/platform-specialist.md +22 -22
  231. package/templates/agents/mobile/ui-engineer.md +22 -22
  232. package/templates/agents/performance-engineer.md +49 -49
  233. package/templates/agents/project-manager.md +215 -0
  234. package/templates/agents/quality-gatekeeper.md +205 -0
  235. package/templates/agents/refactoring-agent.md +41 -41
  236. package/templates/agents/researcher.md +38 -38
  237. package/templates/agents/security-reviewer.md +40 -40
  238. package/templates/agents/team-lead.md +37 -37
  239. package/templates/agents/tester.md +48 -48
  240. package/templates/agents/ux-reviewer.md +43 -43
  241. package/templates/agents/web-app/api-designer.md +22 -22
  242. package/templates/agents/web-app/backend-engineer.md +30 -30
  243. package/templates/agents/web-app/database-engineer.md +22 -22
  244. package/templates/agents/web-app/frontend-engineer.md +29 -29
  245. package/templates/agents/web-app/security-reviewer.md +32 -32
  246. package/templates/ci/rulebook-review.yml +26 -26
  247. package/templates/claude-workflows/bugfix.js +94 -0
  248. package/templates/claude-workflows/feature-pipeline.js +88 -0
  249. package/templates/claude-workflows/release-gate.js +64 -0
  250. package/templates/claude-workflows/review-fanout.js +118 -0
  251. package/templates/claude-workflows/rulebook-driver.js +343 -0
  252. package/templates/claude-workflows/spec-author.js +133 -0
  253. package/templates/cli/AIDER.md +49 -49
  254. package/templates/cli/AMAZON_Q.md +25 -25
  255. package/templates/cli/AUGGIE.md +32 -32
  256. package/templates/cli/CLAUDE.md +117 -117
  257. package/templates/cli/CLINE.md +99 -99
  258. package/templates/cli/CODEBUDDY.md +20 -20
  259. package/templates/cli/CODEIUM.md +20 -20
  260. package/templates/cli/CODEX.md +21 -21
  261. package/templates/cli/CONTINUE.md +34 -34
  262. package/templates/cli/CURSOR_CLI.md +62 -62
  263. package/templates/cli/FACTORY.md +18 -18
  264. package/templates/cli/GEMINI.md +35 -35
  265. package/templates/cli/KILOCODE.md +18 -18
  266. package/templates/cli/OPENCODE.md +85 -18
  267. package/templates/cli/_GENERIC_TEMPLATE.md +29 -29
  268. package/templates/commands/rulebook-decision-create.md +55 -55
  269. package/templates/commands/rulebook-decision-list.md +15 -15
  270. package/templates/commands/rulebook-knowledge-add.md +41 -41
  271. package/templates/commands/rulebook-knowledge-list.md +15 -15
  272. package/templates/commands/rulebook-learn-capture.md +41 -48
  273. package/templates/commands/rulebook-learn-list.md +13 -13
  274. package/templates/commands/rulebook-memory-save.md +48 -48
  275. package/templates/commands/rulebook-memory-search.md +47 -47
  276. package/templates/commands/rulebook-task-apply.md +67 -67
  277. package/templates/commands/rulebook-task-archive.md +94 -94
  278. package/templates/commands/rulebook-task-create.md +93 -93
  279. package/templates/commands/rulebook-task-list.md +42 -42
  280. package/templates/commands/rulebook-task-show.md +52 -52
  281. package/templates/commands/rulebook-task-validate.md +53 -53
  282. package/templates/compact-context/_default.md +23 -23
  283. package/templates/compact-context/cpp.md +26 -26
  284. package/templates/compact-context/go.md +26 -26
  285. package/templates/compact-context/python.md +26 -26
  286. package/templates/compact-context/rust.md +28 -28
  287. package/templates/compact-context/typescript.md +29 -29
  288. package/templates/core/AGENTS_LEAN.md +0 -14
  289. package/templates/core/AGENTS_OVERRIDE.md +16 -16
  290. package/templates/core/AGENT_AUTOMATION.md +296 -296
  291. package/templates/core/CLAUDE_MD_v2.md +90 -90
  292. package/templates/core/DAG.md +304 -304
  293. package/templates/core/DECISIONS.md +38 -38
  294. package/templates/core/DOCUMENTATION_RULES.md +36 -36
  295. package/templates/core/KNOWLEDGE.md +49 -49
  296. package/templates/core/MULTI_AGENT.md +74 -74
  297. package/templates/core/PLANS.md +28 -28
  298. package/templates/core/QUALITY_ENFORCEMENT.md +68 -68
  299. package/templates/core/RULEBOOK.md +1947 -1947
  300. package/templates/core/TIER1_PROHIBITIONS.md +154 -154
  301. package/templates/core/TOKEN_OPTIMIZATION.md +49 -49
  302. package/templates/git/CI_CD_PATTERNS.md +661 -661
  303. package/templates/git/GITHUB_ACTIONS.md +728 -728
  304. package/templates/git/GITLAB_CI.md +730 -730
  305. package/templates/git/GIT_WORKFLOW.md +1192 -1192
  306. package/templates/git/SECRETS_MANAGEMENT.md +585 -585
  307. package/templates/hooks/COMMIT_MSG.md +530 -530
  308. package/templates/hooks/POST_CHECKOUT.md +546 -546
  309. package/templates/hooks/PREPARE_COMMIT_MSG.md +619 -619
  310. package/templates/hooks/PRE_COMMIT.md +414 -414
  311. package/templates/hooks/PRE_PUSH.md +601 -601
  312. package/templates/hooks/check-context-and-handoff.sh +24 -16
  313. package/templates/hooks/enforce-pre-tool.sh +70 -0
  314. package/templates/hooks/terse-mode-tracker.sh +146 -143
  315. package/templates/hooks/update-check.ps1 +84 -0
  316. package/templates/hooks/update-check.sh +103 -0
  317. package/templates/ides/CONTINUE_RULES.md +16 -16
  318. package/templates/ides/COPILOT_INSTRUCTIONS.md +23 -23
  319. package/templates/ides/GEMINI_RULES.md +17 -17
  320. package/templates/ides/OPENCODE.md +63 -0
  321. package/templates/ides/WINDSURF_RULES.md +14 -14
  322. package/templates/languages/C.md +333 -333
  323. package/templates/languages/CPP.md +743 -743
  324. package/templates/languages/CSHARP.md +417 -417
  325. package/templates/languages/ELIXIR.md +454 -454
  326. package/templates/languages/ERLANG.md +361 -361
  327. package/templates/languages/GO.md +645 -645
  328. package/templates/languages/HASKELL.md +177 -177
  329. package/templates/languages/JAVA.md +607 -607
  330. package/templates/languages/JAVASCRIPT.md +631 -631
  331. package/templates/languages/JULIA.md +97 -97
  332. package/templates/languages/KOTLIN.md +511 -511
  333. package/templates/languages/LISP.md +100 -100
  334. package/templates/languages/LUA.md +74 -74
  335. package/templates/languages/OBJECTIVEC.md +90 -90
  336. package/templates/languages/PHP.md +416 -416
  337. package/templates/languages/PYTHON.md +682 -682
  338. package/templates/languages/RUBY.md +421 -421
  339. package/templates/languages/RUST.md +477 -477
  340. package/templates/languages/SAS.md +73 -73
  341. package/templates/languages/SCALA.md +348 -348
  342. package/templates/languages/SOLIDITY.md +580 -580
  343. package/templates/languages/SQL.md +137 -137
  344. package/templates/languages/SWIFT.md +466 -466
  345. package/templates/languages/TYPESCRIPT.md +591 -591
  346. package/templates/languages/ZIG.md +265 -265
  347. package/templates/libraries/go/ECHO.md +18 -0
  348. package/templates/libraries/go/GIN.md +18 -0
  349. package/templates/libraries/go/GORM.md +18 -0
  350. package/templates/libraries/python/DJANGO.md +18 -0
  351. package/templates/libraries/python/FASTAPI.md +18 -0
  352. package/templates/libraries/python/FLASK.md +17 -0
  353. package/templates/libraries/python/PYDANTIC.md +17 -0
  354. package/templates/libraries/python/PYTEST.md +17 -0
  355. package/templates/libraries/python/SQLALCHEMY.md +17 -0
  356. package/templates/libraries/rust/ACTIX.md +17 -0
  357. package/templates/libraries/rust/AXUM.md +18 -0
  358. package/templates/libraries/rust/SERDE.md +16 -0
  359. package/templates/libraries/rust/SQLX.md +17 -0
  360. package/templates/libraries/rust/TOKIO.md +16 -0
  361. package/templates/libraries/typescript/ANGULAR.md +17 -0
  362. package/templates/libraries/typescript/DRIZZLE.md +16 -0
  363. package/templates/libraries/typescript/EXPRESS.md +17 -0
  364. package/templates/libraries/typescript/HEROUI.md +16 -0
  365. package/templates/libraries/typescript/JEST.md +17 -0
  366. package/templates/libraries/typescript/NESTJS.md +17 -0
  367. package/templates/libraries/typescript/NEXT.md +18 -0
  368. package/templates/libraries/typescript/PRISMA.md +16 -0
  369. package/templates/libraries/typescript/RADIX.md +16 -0
  370. package/templates/libraries/typescript/REACT.md +18 -0
  371. package/templates/libraries/typescript/SHADCN.md +16 -0
  372. package/templates/libraries/typescript/SVELTE.md +16 -0
  373. package/templates/libraries/typescript/TAILWIND.md +16 -0
  374. package/templates/libraries/typescript/TRPC.md +16 -0
  375. package/templates/libraries/typescript/VITEST.md +17 -0
  376. package/templates/libraries/typescript/VUE.md +17 -0
  377. package/templates/libraries/typescript/ZOD.md +17 -0
  378. package/templates/modules/ATLASSIAN.md +255 -255
  379. package/templates/modules/CONTEXT7.md +54 -54
  380. package/templates/modules/FIGMA.md +267 -267
  381. package/templates/modules/GITHUB_MCP.md +64 -64
  382. package/templates/modules/GRAFANA.md +328 -328
  383. package/templates/modules/MEMORY.md +126 -126
  384. package/templates/modules/NOTION.md +247 -247
  385. package/templates/modules/PLAYWRIGHT.md +90 -90
  386. package/templates/modules/RULEBOOK_MCP.md +208 -208
  387. package/templates/modules/SERENA.md +337 -337
  388. package/templates/modules/SUPABASE.md +223 -223
  389. package/templates/modules/SYNAP.md +69 -69
  390. package/templates/modules/VECTORIZER.md +63 -63
  391. package/templates/modules/sequential-thinking.md +42 -42
  392. package/templates/rules/consult-analysis-before-implementing.md +23 -23
  393. package/templates/rules/cpp.md +46 -46
  394. package/templates/rules/csharp.md +44 -44
  395. package/templates/rules/diagnostic-first.md +39 -39
  396. package/templates/rules/fail-twice-escalate.md +46 -46
  397. package/templates/rules/follow-task-sequence.md +36 -36
  398. package/templates/rules/git-safety.md +29 -29
  399. package/templates/rules/go.md +40 -40
  400. package/templates/rules/incremental-implementation.md +56 -56
  401. package/templates/rules/incremental-tests.md +29 -29
  402. package/templates/rules/java.md +43 -43
  403. package/templates/rules/javascript.md +39 -39
  404. package/templates/rules/knowledge-base-usage.md +41 -41
  405. package/templates/rules/multi-agent-teams.md +75 -75
  406. package/templates/rules/no-deferred.md +31 -31
  407. package/templates/rules/no-shortcuts.md +30 -30
  408. package/templates/rules/python.md +43 -43
  409. package/templates/rules/research-first.md +30 -30
  410. package/templates/rules/respect-handoff-trigger.md +41 -41
  411. package/templates/rules/rust.md +40 -40
  412. package/templates/rules/sequential-editing.md +21 -21
  413. package/templates/rules/session-workflow.md +24 -24
  414. package/templates/rules/task-decomposition.md +32 -32
  415. package/templates/rules/typescript.md +40 -40
  416. package/templates/skills/cli/aider/SKILL.md +59 -59
  417. package/templates/skills/cli/amazon-q/SKILL.md +35 -35
  418. package/templates/skills/cli/auggie/SKILL.md +42 -42
  419. package/templates/skills/cli/claude/SKILL.md +42 -42
  420. package/templates/skills/cli/cline/SKILL.md +42 -42
  421. package/templates/skills/cli/codebuddy/SKILL.md +30 -30
  422. package/templates/skills/cli/codeium/SKILL.md +30 -30
  423. package/templates/skills/cli/codex/SKILL.md +31 -31
  424. package/templates/skills/cli/continue/SKILL.md +44 -44
  425. package/templates/skills/cli/cursor-cli/SKILL.md +38 -38
  426. package/templates/skills/cli/factory/SKILL.md +28 -28
  427. package/templates/skills/cli/gemini/SKILL.md +45 -45
  428. package/templates/skills/cli/kilocode/SKILL.md +28 -28
  429. package/templates/skills/cli/opencode/SKILL.md +82 -28
  430. package/templates/skills/core/agent-automation/SKILL.md +194 -194
  431. package/templates/skills/core/dag/SKILL.md +314 -314
  432. package/templates/skills/core/documentation-rules/SKILL.md +46 -46
  433. package/templates/skills/core/quality-enforcement/SKILL.md +78 -78
  434. package/templates/skills/core/rulebook/SKILL.md +176 -176
  435. package/templates/skills/core/rulebook-terse/SKILL.md +116 -116
  436. package/templates/skills/core/rulebook-terse-commit/SKILL.md +96 -96
  437. package/templates/skills/core/rulebook-terse-review/SKILL.md +112 -112
  438. package/templates/skills/dev/accessibility/SKILL.md +17 -17
  439. package/templates/skills/dev/analysis/SKILL.md +19 -19
  440. package/templates/skills/dev/api-design/SKILL.md +15 -15
  441. package/templates/skills/dev/architect/SKILL.md +17 -17
  442. package/templates/skills/dev/build-fix/SKILL.md +17 -17
  443. package/templates/skills/dev/db-design/SKILL.md +15 -15
  444. package/templates/skills/dev/debug/SKILL.md +16 -16
  445. package/templates/skills/dev/deploy/SKILL.md +17 -17
  446. package/templates/skills/dev/docs/SKILL.md +17 -17
  447. package/templates/skills/dev/handoff/SKILL.md +27 -27
  448. package/templates/skills/dev/migrate/SKILL.md +15 -15
  449. package/templates/skills/dev/perf/SKILL.md +17 -17
  450. package/templates/skills/dev/refactor/SKILL.md +17 -17
  451. package/templates/skills/dev/research/SKILL.md +14 -14
  452. package/templates/skills/dev/review/SKILL.md +18 -18
  453. package/templates/skills/dev/security-audit/SKILL.md +17 -17
  454. package/templates/skills/dev/spec/SKILL.md +65 -0
  455. package/templates/skills/ides/copilot/SKILL.md +47 -47
  456. package/templates/skills/ides/cursor/SKILL.md +53 -53
  457. package/templates/skills/ides/jetbrains-ai/SKILL.md +45 -45
  458. package/templates/skills/ides/replit/SKILL.md +46 -46
  459. package/templates/skills/ides/tabnine/SKILL.md +39 -39
  460. package/templates/skills/ides/vscode/SKILL.md +50 -50
  461. package/templates/skills/ides/windsurf/SKILL.md +46 -46
  462. package/templates/skills/ides/zed/SKILL.md +42 -42
  463. package/templates/skills/languages/c/SKILL.md +343 -343
  464. package/templates/skills/languages/cpp/SKILL.md +753 -753
  465. package/templates/skills/languages/csharp/SKILL.md +427 -427
  466. package/templates/skills/languages/elixir/SKILL.md +464 -464
  467. package/templates/skills/languages/erlang/SKILL.md +371 -371
  468. package/templates/skills/languages/go/SKILL.md +655 -655
  469. package/templates/skills/languages/haskell/SKILL.md +187 -187
  470. package/templates/skills/languages/java/SKILL.md +617 -617
  471. package/templates/skills/languages/javascript/SKILL.md +641 -641
  472. package/templates/skills/languages/julia/SKILL.md +107 -107
  473. package/templates/skills/languages/kotlin/SKILL.md +521 -521
  474. package/templates/skills/languages/lisp/SKILL.md +110 -110
  475. package/templates/skills/languages/lua/SKILL.md +84 -84
  476. package/templates/skills/languages/objectivec/SKILL.md +100 -100
  477. package/templates/skills/languages/php/SKILL.md +426 -426
  478. package/templates/skills/languages/python/SKILL.md +692 -692
  479. package/templates/skills/languages/ruby/SKILL.md +431 -431
  480. package/templates/skills/languages/rust/SKILL.md +487 -487
  481. package/templates/skills/languages/sas/SKILL.md +83 -83
  482. package/templates/skills/languages/scala/SKILL.md +358 -358
  483. package/templates/skills/languages/solidity/SKILL.md +590 -590
  484. package/templates/skills/languages/sql/SKILL.md +147 -147
  485. package/templates/skills/languages/swift/SKILL.md +476 -476
  486. package/templates/skills/languages/typescript/SKILL.md +302 -302
  487. package/templates/skills/languages/zig/SKILL.md +275 -275
  488. package/templates/skills/modules/atlassian/SKILL.md +265 -265
  489. package/templates/skills/modules/context7/SKILL.md +64 -64
  490. package/templates/skills/modules/figma/SKILL.md +277 -277
  491. package/templates/skills/modules/github-mcp/SKILL.md +74 -74
  492. package/templates/skills/modules/grafana/SKILL.md +338 -338
  493. package/templates/skills/modules/memory/SKILL.md +73 -73
  494. package/templates/skills/modules/notion/SKILL.md +257 -257
  495. package/templates/skills/modules/playwright/SKILL.md +100 -100
  496. package/templates/skills/modules/rulebook-mcp/SKILL.md +166 -166
  497. package/templates/skills/modules/serena/SKILL.md +347 -347
  498. package/templates/skills/modules/supabase/SKILL.md +233 -233
  499. package/templates/skills/modules/synap/SKILL.md +79 -79
  500. package/templates/skills/modules/vectorizer/SKILL.md +73 -73
  501. package/.claude/commands/ralph-config.md +0 -112
  502. package/.claude/commands/ralph-history.md +0 -110
  503. package/.claude/commands/ralph-init.md +0 -72
  504. package/.claude/commands/ralph-pause-resume.md +0 -105
  505. package/.claude/commands/ralph-run.md +0 -101
  506. package/.claude/commands/ralph-status.md +0 -76
  507. package/dist/agents/ralph-parser.d.ts +0 -91
  508. package/dist/agents/ralph-parser.d.ts.map +0 -1
  509. package/dist/agents/ralph-parser.js +0 -415
  510. package/dist/agents/ralph-parser.js.map +0 -1
  511. package/dist/cli/commands/analysis.d.ts +0 -8
  512. package/dist/cli/commands/analysis.d.ts.map +0 -1
  513. package/dist/cli/commands/analysis.js +0 -78
  514. package/dist/cli/commands/analysis.js.map +0 -1
  515. package/dist/cli/commands/compress.d.ts +0 -18
  516. package/dist/cli/commands/compress.d.ts.map +0 -1
  517. package/dist/cli/commands/compress.js +0 -100
  518. package/dist/cli/commands/compress.js.map +0 -1
  519. package/dist/cli/commands/ralph.d.ts +0 -45
  520. package/dist/cli/commands/ralph.d.ts.map +0 -1
  521. package/dist/cli/commands/ralph.js +0 -694
  522. package/dist/cli/commands/ralph.js.map +0 -1
  523. package/dist/cli/docs-prompts.d.ts +0 -3
  524. package/dist/cli/docs-prompts.d.ts.map +0 -1
  525. package/dist/cli/docs-prompts.js +0 -45
  526. package/dist/cli/docs-prompts.js.map +0 -1
  527. package/dist/core/agent-manager.d.ts +0 -69
  528. package/dist/core/agent-manager.d.ts.map +0 -1
  529. package/dist/core/agent-manager.js +0 -476
  530. package/dist/core/agent-manager.js.map +0 -1
  531. package/dist/core/agent-template-engine.d.ts +0 -51
  532. package/dist/core/agent-template-engine.d.ts.map +0 -1
  533. package/dist/core/agent-template-engine.js +0 -291
  534. package/dist/core/agent-template-engine.js.map +0 -1
  535. package/dist/core/analysis-manager.d.ts +0 -56
  536. package/dist/core/analysis-manager.d.ts.map +0 -1
  537. package/dist/core/analysis-manager.js +0 -218
  538. package/dist/core/analysis-manager.js.map +0 -1
  539. package/dist/core/auto-fixer.d.ts +0 -14
  540. package/dist/core/auto-fixer.d.ts.map +0 -1
  541. package/dist/core/auto-fixer.js +0 -207
  542. package/dist/core/auto-fixer.js.map +0 -1
  543. package/dist/core/changelog-generator.d.ts +0 -44
  544. package/dist/core/changelog-generator.d.ts.map +0 -1
  545. package/dist/core/changelog-generator.js +0 -222
  546. package/dist/core/changelog-generator.js.map +0 -1
  547. package/dist/core/claude-mcp.d.ts.map +0 -1
  548. package/dist/core/claude-mcp.js.map +0 -1
  549. package/dist/core/claude-md-generator.d.ts.map +0 -1
  550. package/dist/core/claude-md-generator.js.map +0 -1
  551. package/dist/core/claude-settings-manager.d.ts.map +0 -1
  552. package/dist/core/claude-settings-manager.js.map +0 -1
  553. package/dist/core/cli-bridge.d.ts.map +0 -1
  554. package/dist/core/cli-bridge.js.map +0 -1
  555. package/dist/core/compact-context-manager.d.ts +0 -34
  556. package/dist/core/compact-context-manager.d.ts.map +0 -1
  557. package/dist/core/compact-context-manager.js +0 -60
  558. package/dist/core/compact-context-manager.js.map +0 -1
  559. package/dist/core/complexity-detector.d.ts +0 -36
  560. package/dist/core/complexity-detector.d.ts.map +0 -1
  561. package/dist/core/complexity-detector.js +0 -334
  562. package/dist/core/complexity-detector.js.map +0 -1
  563. package/dist/core/compress/compressor.d.ts +0 -60
  564. package/dist/core/compress/compressor.d.ts.map +0 -1
  565. package/dist/core/compress/compressor.js +0 -232
  566. package/dist/core/compress/compressor.js.map +0 -1
  567. package/dist/core/compress/discover.d.ts +0 -19
  568. package/dist/core/compress/discover.d.ts.map +0 -1
  569. package/dist/core/compress/discover.js +0 -100
  570. package/dist/core/compress/discover.js.map +0 -1
  571. package/dist/core/compress/validator.d.ts +0 -47
  572. package/dist/core/compress/validator.d.ts.map +0 -1
  573. package/dist/core/compress/validator.js +0 -131
  574. package/dist/core/compress/validator.js.map +0 -1
  575. package/dist/core/config-manager.d.ts.map +0 -1
  576. package/dist/core/config-manager.js.map +0 -1
  577. package/dist/core/coverage-checker.d.ts.map +0 -1
  578. package/dist/core/coverage-checker.js.map +0 -1
  579. package/dist/core/cursor-mdc-generator.d.ts +0 -30
  580. package/dist/core/cursor-mdc-generator.d.ts.map +0 -1
  581. package/dist/core/cursor-mdc-generator.js +0 -98
  582. package/dist/core/cursor-mdc-generator.js.map +0 -1
  583. package/dist/core/decision-manager.d.ts.map +0 -1
  584. package/dist/core/decision-manager.js.map +0 -1
  585. package/dist/core/dependency-checker.d.ts.map +0 -1
  586. package/dist/core/dependency-checker.js.map +0 -1
  587. package/dist/core/detector.d.ts.map +0 -1
  588. package/dist/core/detector.js +0 -1763
  589. package/dist/core/detector.js.map +0 -1
  590. package/dist/core/docs-generator.d.ts.map +0 -1
  591. package/dist/core/docs-generator.js.map +0 -1
  592. package/dist/core/doctor.d.ts.map +0 -1
  593. package/dist/core/doctor.js.map +0 -1
  594. package/dist/core/generator.d.ts.map +0 -1
  595. package/dist/core/generator.js.map +0 -1
  596. package/dist/core/github-issues-importer.d.ts +0 -82
  597. package/dist/core/github-issues-importer.d.ts.map +0 -1
  598. package/dist/core/github-issues-importer.js +0 -161
  599. package/dist/core/github-issues-importer.js.map +0 -1
  600. package/dist/core/gitignore-generator.d.ts.map +0 -1
  601. package/dist/core/gitignore-generator.js.map +0 -1
  602. package/dist/core/health-scorer.d.ts +0 -61
  603. package/dist/core/health-scorer.d.ts.map +0 -1
  604. package/dist/core/health-scorer.js +0 -638
  605. package/dist/core/health-scorer.js.map +0 -1
  606. package/dist/core/iteration-tracker.d.ts +0 -85
  607. package/dist/core/iteration-tracker.d.ts.map +0 -1
  608. package/dist/core/iteration-tracker.js +0 -295
  609. package/dist/core/iteration-tracker.js.map +0 -1
  610. package/dist/core/knowledge-manager.d.ts.map +0 -1
  611. package/dist/core/knowledge-manager.js.map +0 -1
  612. package/dist/core/learn-manager.d.ts.map +0 -1
  613. package/dist/core/learn-manager.js.map +0 -1
  614. package/dist/core/mcp-reference-generator.d.ts.map +0 -1
  615. package/dist/core/mcp-reference-generator.js.map +0 -1
  616. package/dist/core/minimal-scaffolder.d.ts.map +0 -1
  617. package/dist/core/minimal-scaffolder.js.map +0 -1
  618. package/dist/core/modern-console.d.ts +0 -98
  619. package/dist/core/modern-console.d.ts.map +0 -1
  620. package/dist/core/modern-console.js +0 -556
  621. package/dist/core/modern-console.js.map +0 -1
  622. package/dist/core/multi-tool-generator.d.ts.map +0 -1
  623. package/dist/core/multi-tool-generator.js.map +0 -1
  624. package/dist/core/override-manager.d.ts.map +0 -1
  625. package/dist/core/override-manager.js.map +0 -1
  626. package/dist/core/plans-manager.d.ts.map +0 -1
  627. package/dist/core/plans-manager.js.map +0 -1
  628. package/dist/core/prd-generator.d.ts +0 -48
  629. package/dist/core/prd-generator.d.ts.map +0 -1
  630. package/dist/core/prd-generator.js +0 -233
  631. package/dist/core/prd-generator.js.map +0 -1
  632. package/dist/core/ralph-manager.d.ts +0 -163
  633. package/dist/core/ralph-manager.d.ts.map +0 -1
  634. package/dist/core/ralph-manager.js +0 -555
  635. package/dist/core/ralph-manager.js.map +0 -1
  636. package/dist/core/ralph-parallel.d.ts +0 -55
  637. package/dist/core/ralph-parallel.d.ts.map +0 -1
  638. package/dist/core/ralph-parallel.js +0 -201
  639. package/dist/core/ralph-parallel.js.map +0 -1
  640. package/dist/core/ralph-plan-checkpoint.d.ts +0 -58
  641. package/dist/core/ralph-plan-checkpoint.d.ts.map +0 -1
  642. package/dist/core/ralph-plan-checkpoint.js +0 -154
  643. package/dist/core/ralph-plan-checkpoint.js.map +0 -1
  644. package/dist/core/ralph-scripts.d.ts +0 -12
  645. package/dist/core/ralph-scripts.d.ts.map +0 -1
  646. package/dist/core/ralph-scripts.js +0 -50
  647. package/dist/core/ralph-scripts.js.map +0 -1
  648. package/dist/core/review-manager.d.ts +0 -74
  649. package/dist/core/review-manager.d.ts.map +0 -1
  650. package/dist/core/review-manager.js +0 -371
  651. package/dist/core/review-manager.js.map +0 -1
  652. package/dist/core/rules-generator.d.ts.map +0 -1
  653. package/dist/core/rules-generator.js.map +0 -1
  654. package/dist/core/skills-manager.d.ts.map +0 -1
  655. package/dist/core/skills-manager.js.map +0 -1
  656. package/dist/core/state-writer.d.ts.map +0 -1
  657. package/dist/core/state-writer.js.map +0 -1
  658. package/dist/core/task-manager.d.ts.map +0 -1
  659. package/dist/core/task-manager.js.map +0 -1
  660. package/dist/core/telemetry.d.ts +0 -29
  661. package/dist/core/telemetry.d.ts.map +0 -1
  662. package/dist/core/telemetry.js +0 -57
  663. package/dist/core/telemetry.js.map +0 -1
  664. package/dist/core/validator.d.ts.map +0 -1
  665. package/dist/core/validator.js.map +0 -1
  666. package/dist/core/version-bumper.d.ts.map +0 -1
  667. package/dist/core/version-bumper.js.map +0 -1
  668. package/dist/core/watcher.d.ts +0 -9
  669. package/dist/core/watcher.d.ts.map +0 -1
  670. package/dist/core/watcher.js +0 -22
  671. package/dist/core/watcher.js.map +0 -1
  672. package/dist/core/workflow-generator.d.ts.map +0 -1
  673. package/dist/core/workflow-generator.js.map +0 -1
  674. package/dist/hooks/terse-activate.d.ts +0 -59
  675. package/dist/hooks/terse-activate.d.ts.map +0 -1
  676. package/dist/hooks/terse-activate.js +0 -149
  677. package/dist/hooks/terse-activate.js.map +0 -1
  678. package/dist/hooks/terse-config.d.ts +0 -51
  679. package/dist/hooks/terse-config.d.ts.map +0 -1
  680. package/dist/hooks/terse-config.js +0 -130
  681. package/dist/hooks/terse-config.js.map +0 -1
  682. package/dist/hooks/terse-mode-tracker.d.ts +0 -78
  683. package/dist/hooks/terse-mode-tracker.d.ts.map +0 -1
  684. package/dist/hooks/terse-mode-tracker.js +0 -213
  685. package/dist/hooks/terse-mode-tracker.js.map +0 -1
  686. package/dist/memory/hnsw-index.d.ts +0 -68
  687. package/dist/memory/hnsw-index.d.ts.map +0 -1
  688. package/dist/memory/hnsw-index.js +0 -544
  689. package/dist/memory/hnsw-index.js.map +0 -1
  690. package/dist/memory/memory-cache.d.ts +0 -33
  691. package/dist/memory/memory-cache.d.ts.map +0 -1
  692. package/dist/memory/memory-cache.js +0 -85
  693. package/dist/memory/memory-cache.js.map +0 -1
  694. package/dist/memory/memory-search.d.ts +0 -42
  695. package/dist/memory/memory-search.d.ts.map +0 -1
  696. package/dist/memory/memory-search.js +0 -180
  697. package/dist/memory/memory-search.js.map +0 -1
  698. package/dist/memory/memory-store.d.ts +0 -84
  699. package/dist/memory/memory-store.d.ts.map +0 -1
  700. package/dist/memory/memory-store.js +0 -566
  701. package/dist/memory/memory-store.js.map +0 -1
  702. package/dist/memory/memory-vectorizer.d.ts +0 -29
  703. package/dist/memory/memory-vectorizer.d.ts.map +0 -1
  704. package/dist/memory/memory-vectorizer.js +0 -199
  705. package/dist/memory/memory-vectorizer.js.map +0 -1
  706. package/templates/core/RALPH.md +0 -471
  707. package/templates/frameworks/ANGULAR.md +0 -36
  708. package/templates/frameworks/DJANGO.md +0 -83
  709. package/templates/frameworks/ELECTRON.md +0 -147
  710. package/templates/frameworks/FLASK.md +0 -38
  711. package/templates/frameworks/FLUTTER.md +0 -55
  712. package/templates/frameworks/JQUERY.md +0 -32
  713. package/templates/frameworks/LARAVEL.md +0 -38
  714. package/templates/frameworks/NESTJS.md +0 -43
  715. package/templates/frameworks/NEXTJS.md +0 -127
  716. package/templates/frameworks/NUXT.md +0 -40
  717. package/templates/frameworks/RAILS.md +0 -66
  718. package/templates/frameworks/REACT.md +0 -38
  719. package/templates/frameworks/REACT_NATIVE.md +0 -47
  720. package/templates/frameworks/SPRING.md +0 -39
  721. package/templates/frameworks/SYMFONY.md +0 -36
  722. package/templates/frameworks/VUE.md +0 -36
  723. package/templates/frameworks/ZEND.md +0 -35
  724. package/templates/hooks/enforce-mcp-for-tasks.sh +0 -31
  725. package/templates/hooks/enforce-no-deferred.sh +0 -21
  726. package/templates/hooks/enforce-no-shortcuts.sh +0 -31
  727. package/templates/ides/COPILOT.md +0 -37
  728. package/templates/ides/CURSOR.md +0 -43
  729. package/templates/ides/JETBRAINS_AI.md +0 -35
  730. package/templates/ides/REPLIT.md +0 -36
  731. package/templates/ides/TABNINE.md +0 -29
  732. package/templates/ides/VSCODE.md +0 -40
  733. package/templates/ides/WINDSURF.md +0 -36
  734. package/templates/ides/ZED.md +0 -32
  735. package/templates/ides/cursor-mdc/go.mdc +0 -24
  736. package/templates/ides/cursor-mdc/python.mdc +0 -24
  737. package/templates/ides/cursor-mdc/quality.mdc +0 -25
  738. package/templates/ides/cursor-mdc/ralph.mdc +0 -39
  739. package/templates/ides/cursor-mdc/rulebook.mdc +0 -38
  740. package/templates/ides/cursor-mdc/rust.mdc +0 -24
  741. package/templates/ides/cursor-mdc/typescript.mdc +0 -25
  742. package/templates/ralph/ralph-history.bat +0 -4
  743. package/templates/ralph/ralph-history.sh +0 -5
  744. package/templates/ralph/ralph-init.bat +0 -5
  745. package/templates/ralph/ralph-init.sh +0 -5
  746. package/templates/ralph/ralph-pause.bat +0 -5
  747. package/templates/ralph/ralph-pause.sh +0 -5
  748. package/templates/ralph/ralph-run.bat +0 -5
  749. package/templates/ralph/ralph-run.sh +0 -5
  750. package/templates/ralph/ralph-status.bat +0 -4
  751. package/templates/ralph/ralph-status.sh +0 -5
  752. package/templates/services/AZURE_BLOB.md +0 -184
  753. package/templates/services/CASSANDRA.md +0 -239
  754. package/templates/services/DATADOG.md +0 -26
  755. package/templates/services/DOCKER.md +0 -124
  756. package/templates/services/DOCKER_COMPOSE.md +0 -168
  757. package/templates/services/DYNAMODB.md +0 -308
  758. package/templates/services/ELASTICSEARCH.md +0 -347
  759. package/templates/services/GCS.md +0 -178
  760. package/templates/services/HELM.md +0 -194
  761. package/templates/services/INFLUXDB.md +0 -265
  762. package/templates/services/KAFKA.md +0 -341
  763. package/templates/services/KUBERNETES.md +0 -208
  764. package/templates/services/MARIADB.md +0 -183
  765. package/templates/services/MEMCACHED.md +0 -242
  766. package/templates/services/MINIO.md +0 -201
  767. package/templates/services/MONGODB.md +0 -268
  768. package/templates/services/MYSQL.md +0 -358
  769. package/templates/services/NEO4J.md +0 -247
  770. package/templates/services/OPENTELEMETRY.md +0 -25
  771. package/templates/services/ORACLE.md +0 -290
  772. package/templates/services/PINO.md +0 -24
  773. package/templates/services/POSTGRESQL.md +0 -326
  774. package/templates/services/PROMETHEUS.md +0 -33
  775. package/templates/services/RABBITMQ.md +0 -286
  776. package/templates/services/REDIS.md +0 -292
  777. package/templates/services/S3.md +0 -298
  778. package/templates/services/SENTRY.md +0 -23
  779. package/templates/services/SQLITE.md +0 -294
  780. package/templates/services/SQLSERVER.md +0 -294
  781. package/templates/services/WINSTON.md +0 -30
  782. package/templates/skills/frameworks/angular/SKILL.md +0 -46
  783. package/templates/skills/frameworks/django/SKILL.md +0 -93
  784. package/templates/skills/frameworks/electron/SKILL.md +0 -157
  785. package/templates/skills/frameworks/flask/SKILL.md +0 -48
  786. package/templates/skills/frameworks/flutter/SKILL.md +0 -65
  787. package/templates/skills/frameworks/jquery/SKILL.md +0 -42
  788. package/templates/skills/frameworks/laravel/SKILL.md +0 -48
  789. package/templates/skills/frameworks/nestjs/SKILL.md +0 -53
  790. package/templates/skills/frameworks/nextjs/SKILL.md +0 -137
  791. package/templates/skills/frameworks/nuxt/SKILL.md +0 -50
  792. package/templates/skills/frameworks/rails/SKILL.md +0 -76
  793. package/templates/skills/frameworks/react/SKILL.md +0 -48
  794. package/templates/skills/frameworks/react-native/SKILL.md +0 -57
  795. package/templates/skills/frameworks/spring/SKILL.md +0 -49
  796. package/templates/skills/frameworks/symfony/SKILL.md +0 -46
  797. package/templates/skills/frameworks/vue/SKILL.md +0 -46
  798. package/templates/skills/frameworks/zend/SKILL.md +0 -45
  799. package/templates/skills/services/azure-blob/SKILL.md +0 -194
  800. package/templates/skills/services/cassandra/SKILL.md +0 -249
  801. package/templates/skills/services/dynamodb/SKILL.md +0 -318
  802. package/templates/skills/services/elasticsearch/SKILL.md +0 -357
  803. package/templates/skills/services/gcs/SKILL.md +0 -188
  804. package/templates/skills/services/influxdb/SKILL.md +0 -275
  805. package/templates/skills/services/kafka/SKILL.md +0 -351
  806. package/templates/skills/services/mariadb/SKILL.md +0 -193
  807. package/templates/skills/services/memcached/SKILL.md +0 -252
  808. package/templates/skills/services/minio/SKILL.md +0 -211
  809. package/templates/skills/services/mongodb/SKILL.md +0 -278
  810. package/templates/skills/services/mysql/SKILL.md +0 -368
  811. package/templates/skills/services/neo4j/SKILL.md +0 -257
  812. package/templates/skills/services/oracle/SKILL.md +0 -300
  813. package/templates/skills/services/postgresql/SKILL.md +0 -336
  814. package/templates/skills/services/rabbitmq/SKILL.md +0 -296
  815. package/templates/skills/services/redis/SKILL.md +0 -302
  816. package/templates/skills/services/s3/SKILL.md +0 -308
  817. package/templates/skills/services/sqlite/SKILL.md +0 -304
  818. package/templates/skills/services/sqlserver/SKILL.md +0 -304
  819. package/templates/skills/workflows/ralph/SETUP.md +0 -228
  820. package/templates/skills/workflows/ralph/SKILL.md +0 -309
  821. package/templates/skills/workflows/ralph/install.sh +0 -87
  822. package/templates/skills/workflows/ralph/manifest.json +0 -158
  823. /package/dist/core/{claude-md-generator.d.ts → claude/claude-md-generator.d.ts} +0 -0
  824. /package/dist/core/{docs-generator.d.ts → docs/docs-generator.d.ts} +0 -0
  825. /package/dist/core/{mcp-reference-generator.d.ts → docs/mcp-reference-generator.d.ts} +0 -0
  826. /package/dist/core/{minimal-scaffolder.d.ts → generators/minimal-scaffolder.d.ts} +0 -0
  827. /package/dist/core/{coverage-checker.d.ts → quality/coverage-checker.d.ts} +0 -0
  828. /package/dist/core/{dependency-checker.d.ts → quality/dependency-checker.d.ts} +0 -0
  829. /package/dist/core/{doctor.d.ts → quality/doctor.d.ts} +0 -0
  830. /package/dist/core/{validator.d.ts → quality/validator.d.ts} +0 -0
  831. /package/dist/core/{override-manager.d.ts → state/override-manager.d.ts} +0 -0
  832. /package/dist/core/{version-bumper.d.ts → state/version-bumper.d.ts} +0 -0
  833. /package/dist/core/{plans-manager.d.ts → tasks/plans-manager.d.ts} +0 -0
  834. /package/dist/core/{task-manager.d.ts → tasks/task-manager.d.ts} +0 -0
@@ -0,0 +1,343 @@
1
+ export const meta = {
2
+ name: 'rulebook-driver',
3
+ description:
4
+ 'Drain the rulebook backlog in a loop: discover the next unchecked task item, implement it, gate it through an independent SDD+TDD opus reviewer (max 3 rounds), document it, then move to the next item — until none remain, a item fails review, the item cap is hit, or the token budget runs low.',
5
+ phases: [
6
+ { title: 'Discover', detail: 'find first unchecked item (lowest phase)', model: 'haiku' },
7
+ { title: 'Implement', detail: 'dev implements; independent opus reviewer gates; loop ≤3', model: 'sonnet' },
8
+ { title: 'Review', detail: 'independent full SDD+TDD review', model: 'opus' },
9
+ { title: 'Fanout', detail: 'review-fanout adversarial diff review per approved item' },
10
+ { title: 'Document', detail: 'docs-writer updates README/CHANGELOG', model: 'haiku' },
11
+ { title: 'Gate', detail: 'release-gate go/no-go once the backlog is drained' },
12
+ ],
13
+ }
14
+
15
+ // ---- Tunables (override via args) ------------------------------------------
16
+ // args: { once?: boolean, maxItems?: number, minBudget?: number, fanoutRounds?: number }
17
+ // once — process a single item then stop (legacy one-shot behavior)
18
+ // maxItems — hard cap on items processed in one run (default 25 safety stop)
19
+ // minBudget — stop before the next item if remaining tokens fall below this
20
+ // fanoutRounds — max review-fanout remediation rounds per completed task (default 2)
21
+ const opts = args && typeof args === 'object' ? args : {}
22
+ const ONCE = opts.once === true
23
+ const MAX_ITEMS = typeof opts.maxItems === 'number' ? opts.maxItems : 25
24
+ const MIN_BUDGET = typeof opts.minBudget === 'number' ? opts.minBudget : 60_000
25
+ const MAX_REVIEW_ROUNDS = 3
26
+ // Per-completed-task adversarial gate. Counted SEPARATELY from MAX_REVIEW_ROUNDS so a
27
+ // fanout finding never competes with the per-item SDD/TDD round budget.
28
+ const MAX_FANOUT_ROUNDS = typeof opts.fanoutRounds === 'number' ? opts.fanoutRounds : 2
29
+
30
+ // ---- Structured-output schemas --------------------------------------------
31
+
32
+ const TASK_SCHEMA = {
33
+ type: 'object',
34
+ additionalProperties: false,
35
+ required: ['found', 'taskId', 'phase', 'item', 'specPaths', 'summary'],
36
+ properties: {
37
+ found: { type: 'boolean', description: 'true if an unchecked checklist item was found' },
38
+ taskId: { type: 'string', description: 'task directory id; empty string if none' },
39
+ phase: { type: 'string', description: 'phase the item belongs to; empty if none' },
40
+ item: { type: 'string', description: 'exact text of the first unchecked "- [ ]" item' },
41
+ specPaths: {
42
+ type: 'array',
43
+ items: { type: 'string' },
44
+ description: 'paths to proposal.md, tasks.md and specs/**/spec.md for this task',
45
+ },
46
+ summary: { type: 'string', description: 'one-line description of what the item asks for' },
47
+ },
48
+ }
49
+
50
+ const VERDICT_SCHEMA = {
51
+ type: 'object',
52
+ additionalProperties: false,
53
+ required: ['pass', 'sddCompliant', 'tddCompliant', 'issues', 'summary'],
54
+ properties: {
55
+ pass: {
56
+ type: 'boolean',
57
+ description: 'true ONLY if correct, well-implemented, and both SDD and TDD are satisfied',
58
+ },
59
+ sddCompliant: {
60
+ type: 'boolean',
61
+ description: 'implementation satisfies every SHALL/MUST scenario in the spec, nothing unspecified added',
62
+ },
63
+ tddCompliant: {
64
+ type: 'boolean',
65
+ description: 'tests exist for the new behavior, were written for it, and actually run and pass',
66
+ },
67
+ issues: {
68
+ type: 'array',
69
+ items: { type: 'string' },
70
+ description: 'concrete, actionable blocking problems; empty array when pass=true',
71
+ },
72
+ summary: { type: 'string', description: 'one-paragraph verdict rationale' },
73
+ },
74
+ }
75
+
76
+ const FILES_SCHEMA = {
77
+ type: 'object',
78
+ additionalProperties: false,
79
+ required: ['files'],
80
+ properties: {
81
+ files: {
82
+ type: 'array',
83
+ items: { type: 'string' },
84
+ description: 'union of changed file paths from `git diff --name-only` and `--staged`',
85
+ },
86
+ },
87
+ }
88
+
89
+ // ---- Per-item pipeline ----------------------------------------------------
90
+
91
+ async function driveItem(task, itemIndex) {
92
+ let verdict = null
93
+ let lastIssues = []
94
+ let passedRound = 0
95
+
96
+ for (let round = 1; round <= MAX_REVIEW_ROUNDS; round++) {
97
+ const devPrompt =
98
+ round === 1
99
+ ? `Implement this rulebook task item with strict SDD and TDD discipline.
100
+
101
+ Task: ${task.taskId} / ${task.phase}
102
+ Item: ${task.item}
103
+ Specs to satisfy (READ THESE FIRST): ${task.specPaths.join(', ')}
104
+
105
+ TDD: write the failing test(s) first, then the minimum implementation that makes them pass.
106
+ SDD: every behavior you add must trace to a SHALL/MUST scenario in the spec. Do NOT add unspecified features.
107
+ Before finishing: run the type-checker, then the relevant tests. Both must be green.
108
+ Report exactly which files you created/changed and which tests you added.`
109
+ : `An independent reviewer REJECTED your previous attempt (round ${round - 1}). Fix ONLY these blocking issues; do not touch anything else:
110
+
111
+ ${lastIssues.map((i, n) => `${n + 1}. ${i}`).join('\n')}
112
+
113
+ Re-run the type-checker and tests (both must pass). Report which files you changed and which tests you added or updated.`
114
+
115
+ const dev = await agent(devPrompt, {
116
+ label: `dev:item${itemIndex}:r${round}`,
117
+ phase: 'Implement',
118
+ agentType: 'typescript-implementer',
119
+ model: 'sonnet',
120
+ })
121
+
122
+ // Independent reviewer — fresh subagent, NO conversation context, opus for a
123
+ // thorough complete review. Sees only the git diff + the spec.
124
+ verdict = await agent(
125
+ `You are an INDEPENDENT senior reviewer with NO prior context. This is the FINAL quality gate — be exhaustive, judge ONLY from hard evidence, never trust the developer's claims without checking.
126
+
127
+ Steps:
128
+ 1. Run \`git --no-pager diff\` and \`git --no-pager diff --staged\` to see exactly what changed.
129
+ 2. Read the spec files: ${task.specPaths.join(', ')}
130
+ 3. Judge on two axes:
131
+ - SDD: does the diff satisfy EVERY SHALL/MUST scenario in the spec, with nothing unspecified bolted on?
132
+ - TDD: are there tests covering the new behavior, and do they actually run and PASS? Run the test suite for the touched area to confirm.
133
+ 4. Also verify correctness, edge cases, error paths, and that the type-checker passes.
134
+
135
+ The developer reported the following (verify it, do not take it at face value):
136
+ """
137
+ ${dev}
138
+ """
139
+
140
+ Set pass=true ONLY when SDD and TDD are both fully satisfied and the code is correct. Otherwise return concrete, actionable blocking issues the developer can fix.`,
141
+ {
142
+ label: `review:item${itemIndex}:r${round}`,
143
+ phase: 'Review',
144
+ agentType: 'code-reviewer',
145
+ model: 'opus',
146
+ schema: VERDICT_SCHEMA,
147
+ }
148
+ )
149
+
150
+ if (verdict && verdict.pass) {
151
+ passedRound = round
152
+ break
153
+ }
154
+ lastIssues = (verdict && verdict.issues) || ['Reviewer returned no verdict']
155
+ log(`Item ${itemIndex} round ${round} rejected: ${lastIssues.length} issue(s).`)
156
+ }
157
+
158
+ if (!verdict || !verdict.pass) {
159
+ return { passed: false, issues: lastIssues, verdict: verdict && verdict.summary }
160
+ }
161
+
162
+ const docs = await agent(
163
+ `A rulebook task item was just implemented and passed independent SDD+TDD review.
164
+
165
+ Task: ${task.taskId} / ${task.phase}
166
+ Item: ${task.item}
167
+ Specs: ${task.specPaths.join(', ')}
168
+
169
+ Update the application documentation to reflect what shipped:
170
+ 1. Run \`git --no-pager diff\` to see exactly what changed.
171
+ 2. Update CHANGELOG.md with a conventional-commit-style entry under the unreleased section.
172
+ 3. Update README.md only if public/user-facing behavior changed.
173
+ Keep all docs in English. Do not document behavior that is not present in the diff.
174
+ Report which documentation files you updated.`,
175
+ { label: `document:item${itemIndex}`, phase: 'Document', agentType: 'docs-writer', model: 'haiku' }
176
+ )
177
+
178
+ return { passed: true, passedRound, review: verdict.summary, docs }
179
+ }
180
+
181
+ // Snapshot the set of changed files (via git). Used to scope each task's review-fanout
182
+ // to only that task's changeset, since the driver does not commit between items/tasks.
183
+ async function gitChangedFiles() {
184
+ const r = await agent(
185
+ 'Run `git --no-pager diff --name-only` and `git --no-pager diff --name-only --staged`. Return the de-duplicated union of file paths, one per entry. Return an empty list if there are no changes.',
186
+ { label: 'git-files', phase: 'Discover', agentType: 'researcher', model: 'haiku', schema: FILES_SCHEMA }
187
+ )
188
+ return (r && Array.isArray(r.files) ? r.files : []).filter(Boolean)
189
+ }
190
+
191
+ // ---- Per-task adversarial gate (review-fanout) -----------------------------
192
+ // Runs ONCE per completed task, not per item. Scoped (via paths) to that task's
193
+ // changeset. Blocking (blocker/major) findings are remediated by a dev agent and
194
+ // re-reviewed, up to MAX_FANOUT_ROUNDS. Returns { passed, rounds, blocking } —
195
+ // passed=false means the task could not be cleaned.
196
+ async function reviewFanoutGate(taskId, specPaths, paths) {
197
+ const scope = paths && paths.length ? { paths } : undefined
198
+ const scopeLabel = scope ? ` (scoped to ${paths.length} file(s))` : ''
199
+ for (let fround = 1; fround <= MAX_FANOUT_ROUNDS; fround++) {
200
+ phase('Fanout')
201
+ log(`Task ${taskId}: review-fanout round ${fround}/${MAX_FANOUT_ROUNDS}${scopeLabel}…`)
202
+ const fanout = await workflow('review-fanout', scope)
203
+ const blocking = (fanout && fanout.blocking) || []
204
+
205
+ if (blocking.length === 0) {
206
+ log(`Task ${taskId}: review-fanout clean (round ${fround}).`)
207
+ return { passed: true, rounds: fround, blocking: [] }
208
+ }
209
+
210
+ if (fround === MAX_FANOUT_ROUNDS) {
211
+ log(`Task ${taskId}: still ${blocking.length} blocking issue(s) after ${fround} fanout round(s) — escalating.`)
212
+ return { passed: false, rounds: fround, blocking }
213
+ }
214
+
215
+ const issues = blocking
216
+ .map((f) => `[${f.severity}] ${f.file || ''} — ${f.title}: ${f.detail || ''} (${f.dimension || 'review'})`)
217
+ .join('\n')
218
+ log(`Task ${taskId}: review-fanout flagged ${blocking.length} blocking issue(s); remediating.`)
219
+ await agent(
220
+ `An independent adversarial review of task ${taskId} found blocking issues in the current diff. Fix ONLY these; do not touch anything else, and do not weaken or delete tests to make them pass:
221
+
222
+ ${issues}
223
+
224
+ Specs that still must hold: ${(specPaths || []).join(', ') || '(see task directory)'}
225
+ Re-run the type-checker and the relevant tests (both must pass). Report which files you changed.`,
226
+ { label: `fanout-fix:${taskId}:r${fround}`, phase: 'Fanout', agentType: 'typescript-implementer', model: 'sonnet' }
227
+ )
228
+ }
229
+ return { passed: true, rounds: MAX_FANOUT_ROUNDS, blocking: [] }
230
+ }
231
+
232
+ // ---- Backlog loop ---------------------------------------------------------
233
+
234
+ const processed = []
235
+ const taskGates = []
236
+ let stopReason = 'backlog-drained'
237
+ let currentTaskId = null
238
+ let currentSpecPaths = []
239
+ let currentTaskBaseline = []
240
+ let halted = false
241
+
242
+ // Run the per-task review-fanout gate once, scoped to the task's changeset, and record it.
243
+ async function gateCompletedTask(taskId, specPaths, baseline) {
244
+ const now = await gitChangedFiles()
245
+ const baseSet = new Set(baseline || [])
246
+ const paths = now.filter((f) => !baseSet.has(f))
247
+ const gate = await reviewFanoutGate(taskId, specPaths, paths)
248
+ taskGates.push({
249
+ taskId,
250
+ passed: gate.passed,
251
+ rounds: gate.rounds,
252
+ blockingCount: gate.blocking.length,
253
+ scopedFiles: paths.length,
254
+ })
255
+ return gate
256
+ }
257
+
258
+ for (let i = 1; i <= MAX_ITEMS; i++) {
259
+ if (budget.total && budget.remaining() < MIN_BUDGET) {
260
+ stopReason = 'budget-low'
261
+ log(`Stopping: ${Math.round(budget.remaining() / 1000)}k tokens left (< ${Math.round(MIN_BUDGET / 1000)}k).`)
262
+ break
263
+ }
264
+
265
+ phase('Discover')
266
+ const task = await agent(
267
+ `You are discovering the NEXT rulebook task item to execute. Follow the project rule "follow-task-sequence": pick the FIRST unchecked "- [ ]" item from the LOWEST-numbered phase. Never reorder, never cherry-pick.
268
+
269
+ Steps:
270
+ 1. Read .rulebook/STATE.md to find the active task id.
271
+ 2. Open .rulebook/tasks/<active-task>/tasks.md (fall back to the lowest-numbered task directory if STATE.md is stale or the active task is fully checked).
272
+ 3. Find the first "- [ ]" item, top to bottom.
273
+ 4. Collect that task's spec material: proposal.md, tasks.md, and every specs/**/spec.md under the task directory.
274
+
275
+ Set found=false (and leave the other string fields empty) if every item in every task is already checked.`,
276
+ { label: `discover:${i}`, phase: 'Discover', agentType: 'researcher', model: 'haiku', schema: TASK_SCHEMA }
277
+ )
278
+
279
+ if (!task || !task.found) {
280
+ stopReason = processed.length ? 'backlog-drained' : 'no-pending-task'
281
+ break
282
+ }
283
+
284
+ // Task boundary: a new taskId means the previous task is fully checked → gate it once,
285
+ // then snapshot the new task's baseline file set so its gate is scoped to its own diff.
286
+ if (task.taskId !== currentTaskId) {
287
+ if (currentTaskId) {
288
+ const gate = await gateCompletedTask(currentTaskId, currentSpecPaths, currentTaskBaseline)
289
+ if (!gate.passed) {
290
+ stopReason = 'task-fanout-failed'
291
+ log(`Halting: task ${currentTaskId} failed the review-fanout gate.`)
292
+ halted = true
293
+ break
294
+ }
295
+ }
296
+ currentTaskId = task.taskId
297
+ currentSpecPaths = task.specPaths || []
298
+ currentTaskBaseline = await gitChangedFiles()
299
+ }
300
+
301
+ log(`[${i}/${MAX_ITEMS}] ${task.taskId} / ${task.phase}: ${task.item}`)
302
+ const result = await driveItem(task, i)
303
+ processed.push({ taskId: task.taskId, phase: task.phase, item: task.item, ...result })
304
+
305
+ if (!result.passed) {
306
+ stopReason = 'item-failed-review'
307
+ log(`Item ${i} failed after ${MAX_REVIEW_ROUNDS} rounds — halting loop (sequential tasks must not build on a broken item).`)
308
+ halted = true
309
+ break
310
+ }
311
+
312
+ if (ONCE) {
313
+ stopReason = 'once'
314
+ break
315
+ }
316
+ if (i === MAX_ITEMS) stopReason = 'max-items'
317
+ }
318
+
319
+ // Gate the final task only when the backlog drained cleanly (last task fully checked).
320
+ // Mid-task stops (once / max-items / budget-low) leave the task incomplete — skip the gate.
321
+ if (!halted && stopReason === 'backlog-drained' && currentTaskId) {
322
+ const gate = await gateCompletedTask(currentTaskId, currentSpecPaths, currentTaskBaseline)
323
+ if (!gate.passed) {
324
+ stopReason = 'task-fanout-failed'
325
+ halted = true
326
+ }
327
+ }
328
+
329
+ const passed = processed.filter((p) => p.passed).length
330
+
331
+ // FINAL: one release-gate pass over the work completed this run. Skipped when we halted on a
332
+ // failure (broken state) or when nothing passed.
333
+ let releaseGate = null
334
+ if (passed > 0 && !halted) {
335
+ phase('Gate')
336
+ log(`Running release-gate over ${passed} completed item(s)…`)
337
+ releaseGate = await workflow('release-gate')
338
+ log(`release-gate: ${releaseGate && releaseGate.go ? 'GO ✅' : 'NO-GO ⛔'}`)
339
+ }
340
+
341
+ log(`Done: ${passed}/${processed.length} item(s) passed. Stop reason: ${stopReason}.`)
342
+
343
+ return { stopReason, processedCount: processed.length, passedCount: passed, processed, taskGates, releaseGate }
@@ -0,0 +1,133 @@
1
+ export const meta = {
2
+ name: 'spec-author',
3
+ description:
4
+ 'Help the user write a rulebook task spec: research the codebase + existing specs, draft a proposal + SHALL/MUST spec with Given/When/Then scenarios, then run an opus gap-critic that returns ranked clarifying questions and detected gaps for the user to answer. Iterates when prior answers are supplied via args.answers.',
5
+ phases: [
6
+ { title: 'Research', model: 'haiku' },
7
+ { title: 'Draft', model: 'opus' },
8
+ { title: 'Critique', model: 'opus' },
9
+ ],
10
+ }
11
+
12
+ // args: { topic: string, answers?: Array<{ question: string, answer: string }> }
13
+ // NOTE: workflow subagents are non-interactive — this workflow cannot prompt the
14
+ // user mid-run. It RETURNS ranked questions/gaps; the main loop asks the user
15
+ // (e.g. via AskUserQuestion), then re-invokes this workflow with args.answers
16
+ // folded in. Repeat until `questions` comes back empty / `ready` is true.
17
+ const input = args && typeof args === 'object' ? args : {}
18
+ const topic = input.topic || (typeof args === 'string' ? args : null)
19
+ const priorAnswers = Array.isArray(input.answers) ? input.answers : []
20
+
21
+ if (!topic) {
22
+ log('No topic provided. Pass args: { topic: "...", answers?: [...] }.')
23
+ return { error: 'missing-topic' }
24
+ }
25
+
26
+ const answersBlock = priorAnswers.length
27
+ ? `\n\nThe user has already answered these clarifying questions — fold them into the draft as settled decisions:\n${priorAnswers
28
+ .map((a, i) => `${i + 1}. Q: ${a.question}\n A: ${a.answer}`)
29
+ .join('\n')}`
30
+ : ''
31
+
32
+ const CRITIQUE_SCHEMA = {
33
+ type: 'object',
34
+ additionalProperties: false,
35
+ required: ['ready', 'questions', 'gaps', 'missingScenarios'],
36
+ properties: {
37
+ ready: {
38
+ type: 'boolean',
39
+ description: 'true when the spec is complete enough to implement with no open questions',
40
+ },
41
+ questions: {
42
+ type: 'array',
43
+ description: 'ranked clarifying questions for the user; empty when ready=true',
44
+ items: {
45
+ type: 'object',
46
+ additionalProperties: false,
47
+ required: ['question', 'why', 'options'],
48
+ properties: {
49
+ question: { type: 'string' },
50
+ why: { type: 'string', description: 'what decision this unblocks / why it matters' },
51
+ options: {
52
+ type: 'array',
53
+ items: { type: 'string' },
54
+ description: 'plausible answers to offer the user (may be empty for free-form)',
55
+ },
56
+ },
57
+ },
58
+ },
59
+ gaps: {
60
+ type: 'array',
61
+ items: { type: 'string' },
62
+ description: 'requirements, edge cases, or constraints the draft omits',
63
+ },
64
+ missingScenarios: {
65
+ type: 'array',
66
+ items: { type: 'string' },
67
+ description: 'Given/When/Then scenarios that SHOULD exist but are absent',
68
+ },
69
+ },
70
+ }
71
+
72
+ phase('Research')
73
+ const research = await agent(
74
+ `Research context for authoring a rulebook task spec on: "${topic}".
75
+ Read-only. Gather:
76
+ 1. Existing specs under .rulebook/specs/ and any related task specs in .rulebook/tasks/*/specs/ that overlap this topic.
77
+ 2. The relevant source code, types, and conventions this spec will govern.
78
+ 3. The required rulebook spec format (read .rulebook/specs/RULEBOOK.md if present): ## ADDED/MODIFIED/REMOVED headers, "### Requirement: <name>" with SHALL/MUST, "#### Scenario:" with Given/When/Then.
79
+ Report a concise map: what already exists, what this spec must cover, conventions to follow, and obvious risks.`,
80
+ { label: 'research', phase: 'Research', agentType: 'researcher', model: 'haiku' }
81
+ )
82
+
83
+ phase('Draft')
84
+ const draft = await agent(
85
+ `Draft a complete rulebook task spec for: "${topic}".${answersBlock}
86
+
87
+ Ground every requirement in this codebase research:
88
+ """
89
+ ${research}
90
+ """
91
+
92
+ Produce two artifacts as markdown:
93
+ 1. proposal.md — a "## Why" section (≥20 chars, the motivation) and a "## What Changes" section.
94
+ 2. spec.md — using "## ADDED Requirements" (and MODIFIED/REMOVED if relevant), each as
95
+ "### Requirement: <Name>\\nThe system SHALL/MUST <...>" followed by one or more
96
+ "#### Scenario: <Name>" blocks with Given / When / Then lines (4 hashtags for scenarios).
97
+
98
+ Be specific and testable. Do NOT invent requirements the topic/research/answers don't support — mark anything uncertain so the critic can turn it into a question. Do NOT write production code.`,
99
+ { label: 'draft', phase: 'Draft', agentType: 'architect', model: 'opus' }
100
+ )
101
+
102
+ phase('Critique')
103
+ const critique = await agent(
104
+ `You are an exacting spec reviewer. Adversarially critique this draft spec for "${topic}" — your job is to find what is missing, ambiguous, or unverifiable so it does not reach implementation half-baked.
105
+
106
+ Draft:
107
+ """
108
+ ${draft}
109
+ """
110
+
111
+ Research context:
112
+ """
113
+ ${research}
114
+ """
115
+ ${answersBlock}
116
+
117
+ Identify:
118
+ - ranked clarifying QUESTIONS the user must answer (most decision-critical first); for each, say why it matters and offer plausible options.
119
+ - GAPS: requirements, constraints, error paths, or edge cases the draft omits.
120
+ - MISSING SCENARIOS: Given/When/Then cases that should exist but are absent.
121
+ Set ready=true ONLY if there are genuinely no open questions and the spec is implementation-ready.`,
122
+ { label: 'critique', phase: 'Critique', agentType: 'architect', model: 'opus', schema: CRITIQUE_SCHEMA }
123
+ )
124
+
125
+ return {
126
+ topic,
127
+ draft,
128
+ ready: !!(critique && critique.ready),
129
+ questions: (critique && critique.questions) || [],
130
+ gaps: (critique && critique.gaps) || [],
131
+ missingScenarios: (critique && critique.missingScenarios) || [],
132
+ answeredSoFar: priorAnswers.length,
133
+ }
@@ -1,49 +1,49 @@
1
- <!-- AIDER:START -->
2
- # Aider CLI Rules
3
-
4
- **Tool**: AI pair programming in terminal (`pip install aider-chat`)
5
-
6
- ## Quick Start
7
-
8
- ```bash
9
- # Always include AGENTS.md
10
- aider AGENTS.md src/feature.ts tests/feature.test.ts
11
-
12
- # In chat:
13
- "Follow AGENTS.md standards. Implement [feature] with tests first."
14
- ```
15
-
16
- ## Essential Commands
17
-
18
- ```bash
19
- /add file.ts # Add files to context
20
- /drop file.ts # Remove from context
21
- /run npm test # Run command
22
- /commit "message" # Commit changes
23
- /undo # Undo last change
24
- /diff # Review changes
25
- ```
26
-
27
- ## Configuration (.aider.conf.yml)
28
-
29
- ```yaml
30
- model: gpt-4
31
- read: [AGENTS.md]
32
- lint: true
33
- lint-cmd: "npm run lint"
34
- test-cmd: "npm test"
35
- auto-commits: true
36
- commit-prompt: true
37
- ```
38
-
39
- ## Workflow
40
-
41
- 1. Start session with `aider AGENTS.md [files]`
42
- 2. Request: "Follow AGENTS.md. Implement [feature] with tests first (95%+ coverage)"
43
- 3. Review diffs with `/diff`
44
- 4. Test with `/run npm test`
45
- 5. Commit with `/commit "feat: description"`
46
-
47
- **Critical**: Always reference AGENTS.md in your requests for consistent standards.
48
-
49
- <!-- AIDER:END -->
1
+ <!-- AIDER:START -->
2
+ # Aider CLI Rules
3
+
4
+ **Tool**: AI pair programming in terminal (`pip install aider-chat`)
5
+
6
+ ## Quick Start
7
+
8
+ ```bash
9
+ # Always include AGENTS.md
10
+ aider AGENTS.md src/feature.ts tests/feature.test.ts
11
+
12
+ # In chat:
13
+ "Follow AGENTS.md standards. Implement [feature] with tests first."
14
+ ```
15
+
16
+ ## Essential Commands
17
+
18
+ ```bash
19
+ /add file.ts # Add files to context
20
+ /drop file.ts # Remove from context
21
+ /run npm test # Run command
22
+ /commit "message" # Commit changes
23
+ /undo # Undo last change
24
+ /diff # Review changes
25
+ ```
26
+
27
+ ## Configuration (.aider.conf.yml)
28
+
29
+ ```yaml
30
+ model: gpt-4
31
+ read: [AGENTS.md]
32
+ lint: true
33
+ lint-cmd: "npm run lint"
34
+ test-cmd: "npm test"
35
+ auto-commits: true
36
+ commit-prompt: true
37
+ ```
38
+
39
+ ## Workflow
40
+
41
+ 1. Start session with `aider AGENTS.md [files]`
42
+ 2. Request: "Follow AGENTS.md. Implement [feature] with tests first (95%+ coverage)"
43
+ 3. Review diffs with `/diff`
44
+ 4. Test with `/run npm test`
45
+ 5. Commit with `/commit "feat: description"`
46
+
47
+ **Critical**: Always reference AGENTS.md in your requests for consistent standards.
48
+
49
+ <!-- AIDER:END -->
@@ -1,25 +1,25 @@
1
- <!-- AMAZON_Q:START -->
2
- # Amazon Q Developer Rules
3
-
4
- **Tool**: AWS-focused AI assistant with security scanning
5
-
6
- ## Quick Start
7
-
8
- Available in AWS IDE Toolkit or via AWS Console.
9
-
10
- ## Usage
11
-
12
- ```
13
- "Follow @AGENTS.md standards. Implement [feature] with tests (95%+ coverage)."
14
- ```
15
-
16
- ## Workflow
17
-
18
- 1. Reference AGENTS.md in prompts
19
- 2. Leverage Q's security scanning for vulnerabilities
20
- 3. Review generated code
21
- 4. Run quality checks
22
-
23
- **Critical**: Q excels at AWS/security - combine with AGENTS.md standards.
24
-
25
- <!-- AMAZON_Q:END -->
1
+ <!-- AMAZON_Q:START -->
2
+ # Amazon Q Developer Rules
3
+
4
+ **Tool**: AWS-focused AI assistant with security scanning
5
+
6
+ ## Quick Start
7
+
8
+ Available in AWS IDE Toolkit or via AWS Console.
9
+
10
+ ## Usage
11
+
12
+ ```
13
+ "Follow @AGENTS.md standards. Implement [feature] with tests (95%+ coverage)."
14
+ ```
15
+
16
+ ## Workflow
17
+
18
+ 1. Reference AGENTS.md in prompts
19
+ 2. Leverage Q's security scanning for vulnerabilities
20
+ 3. Review generated code
21
+ 4. Run quality checks
22
+
23
+ **Critical**: Q excels at AWS/security - combine with AGENTS.md standards.
24
+
25
+ <!-- AMAZON_Q:END -->