@hivehub/rulebook 5.5.2 → 5.7.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 (325) hide show
  1. package/.claude/commands/rulebook-learn-capture.md +41 -48
  2. package/.claude/commands/rulebook-learn-list.md +13 -13
  3. package/README.md +332 -394
  4. package/dist/cli/commands/context-intelligence.d.ts +0 -1
  5. package/dist/cli/commands/context-intelligence.d.ts.map +1 -1
  6. package/dist/cli/commands/context-intelligence.js +12 -33
  7. package/dist/cli/commands/context-intelligence.js.map +1 -1
  8. package/dist/cli/commands/index.d.ts +4 -7
  9. package/dist/cli/commands/index.d.ts.map +1 -1
  10. package/dist/cli/commands/index.js +4 -7
  11. package/dist/cli/commands/index.js.map +1 -1
  12. package/dist/cli/commands/init.d.ts.map +1 -1
  13. package/dist/cli/commands/init.js +40 -81
  14. package/dist/cli/commands/init.js.map +1 -1
  15. package/dist/cli/commands/mcp.d.ts +0 -1
  16. package/dist/cli/commands/mcp.d.ts.map +1 -1
  17. package/dist/cli/commands/mcp.js +1 -7
  18. package/dist/cli/commands/mcp.js.map +1 -1
  19. package/dist/cli/commands/memory.d.ts +7 -1
  20. package/dist/cli/commands/memory.d.ts.map +1 -1
  21. package/dist/cli/commands/memory.js +51 -57
  22. package/dist/cli/commands/memory.js.map +1 -1
  23. package/dist/cli/commands/misc.d.ts +1 -15
  24. package/dist/cli/commands/misc.d.ts.map +1 -1
  25. package/dist/cli/commands/misc.js +36 -215
  26. package/dist/cli/commands/misc.js.map +1 -1
  27. package/dist/cli/commands/plans.d.ts +0 -6
  28. package/dist/cli/commands/plans.d.ts.map +1 -1
  29. package/dist/cli/commands/plans.js +9 -77
  30. package/dist/cli/commands/plans.js.map +1 -1
  31. package/dist/cli/commands/skills.js +6 -6
  32. package/dist/cli/commands/skills.js.map +1 -1
  33. package/dist/cli/commands/task.js +4 -4
  34. package/dist/cli/commands/task.js.map +1 -1
  35. package/dist/cli/commands/update.d.ts.map +1 -1
  36. package/dist/cli/commands/update.js +122 -52
  37. package/dist/cli/commands/update.js.map +1 -1
  38. package/dist/cli/prompts.d.ts.map +1 -1
  39. package/dist/cli/prompts.js +1 -78
  40. package/dist/cli/prompts.js.map +1 -1
  41. package/dist/core/claude/claude-mcp.d.ts +59 -0
  42. package/dist/core/claude/claude-mcp.d.ts.map +1 -0
  43. package/dist/core/claude/claude-mcp.js +220 -0
  44. package/dist/core/claude/claude-mcp.js.map +1 -0
  45. package/dist/core/claude/claude-md-generator.d.ts +52 -0
  46. package/dist/core/claude/claude-md-generator.d.ts.map +1 -0
  47. package/dist/core/claude/claude-md-generator.js +104 -0
  48. package/dist/core/claude/claude-md-generator.js.map +1 -0
  49. package/dist/core/claude/claude-settings-manager.d.ts +44 -0
  50. package/dist/core/claude/claude-settings-manager.d.ts.map +1 -0
  51. package/dist/core/claude/claude-settings-manager.js +194 -0
  52. package/dist/core/claude/claude-settings-manager.js.map +1 -0
  53. package/dist/core/console/cli-bridge.d.ts +113 -0
  54. package/dist/core/console/cli-bridge.d.ts.map +1 -0
  55. package/dist/core/console/cli-bridge.js +1094 -0
  56. package/dist/core/console/cli-bridge.js.map +1 -0
  57. package/dist/core/detect/detector.d.ts +35 -0
  58. package/dist/core/detect/detector.d.ts.map +1 -0
  59. package/dist/core/detect/detector.js +541 -0
  60. package/dist/core/detect/detector.js.map +1 -0
  61. package/dist/core/docs/docs-generator.d.ts +9 -0
  62. package/dist/core/docs/docs-generator.d.ts.map +1 -0
  63. package/dist/core/docs/docs-generator.js +531 -0
  64. package/dist/core/docs/docs-generator.js.map +1 -0
  65. package/dist/core/docs/mcp-reference-generator.d.ts +13 -0
  66. package/dist/core/docs/mcp-reference-generator.d.ts.map +1 -0
  67. package/dist/core/docs/mcp-reference-generator.js +66 -0
  68. package/dist/core/docs/mcp-reference-generator.js.map +1 -0
  69. package/dist/core/generators/generator.d.ts +54 -0
  70. package/dist/core/generators/generator.d.ts.map +1 -0
  71. package/dist/core/generators/generator.js +1041 -0
  72. package/dist/core/generators/generator.js.map +1 -0
  73. package/dist/core/generators/gitignore-generator.d.ts +13 -0
  74. package/dist/core/generators/gitignore-generator.d.ts.map +1 -0
  75. package/dist/core/generators/gitignore-generator.js +307 -0
  76. package/dist/core/generators/gitignore-generator.js.map +1 -0
  77. package/dist/core/generators/minimal-scaffolder.d.ts +8 -0
  78. package/dist/core/generators/minimal-scaffolder.d.ts.map +1 -0
  79. package/dist/core/generators/minimal-scaffolder.js +51 -0
  80. package/dist/core/generators/minimal-scaffolder.js.map +1 -0
  81. package/dist/core/generators/rules-generator.d.ts +73 -0
  82. package/dist/core/generators/rules-generator.d.ts.map +1 -0
  83. package/dist/core/generators/rules-generator.js +202 -0
  84. package/dist/core/generators/rules-generator.js.map +1 -0
  85. package/dist/core/generators/workflow-generator.d.ts +15 -0
  86. package/dist/core/generators/workflow-generator.d.ts.map +1 -0
  87. package/dist/core/generators/workflow-generator.js +390 -0
  88. package/dist/core/generators/workflow-generator.js.map +1 -0
  89. package/dist/core/ide/multi-tool-generator.d.ts +59 -0
  90. package/dist/core/ide/multi-tool-generator.d.ts.map +1 -0
  91. package/dist/core/ide/multi-tool-generator.js +157 -0
  92. package/dist/core/ide/multi-tool-generator.js.map +1 -0
  93. package/dist/core/ide/opencode-generator.d.ts +72 -0
  94. package/dist/core/ide/opencode-generator.d.ts.map +1 -0
  95. package/dist/core/ide/opencode-generator.js +450 -0
  96. package/dist/core/ide/opencode-generator.js.map +1 -0
  97. package/dist/core/merger.d.ts +1 -1
  98. package/dist/core/merger.d.ts.map +1 -1
  99. package/dist/core/merger.js +5 -5
  100. package/dist/core/merger.js.map +1 -1
  101. package/dist/core/migrator.d.ts +0 -1
  102. package/dist/core/migrator.d.ts.map +1 -1
  103. package/dist/core/migrator.js +4 -29
  104. package/dist/core/migrator.js.map +1 -1
  105. package/dist/core/quality/coverage-checker.d.ts +14 -0
  106. package/dist/core/quality/coverage-checker.d.ts.map +1 -0
  107. package/dist/core/quality/coverage-checker.js +176 -0
  108. package/dist/core/quality/coverage-checker.js.map +1 -0
  109. package/dist/core/quality/dependency-checker.d.ts +21 -0
  110. package/dist/core/quality/dependency-checker.d.ts.map +1 -0
  111. package/dist/core/quality/dependency-checker.js +247 -0
  112. package/dist/core/quality/dependency-checker.js.map +1 -0
  113. package/dist/core/quality/doctor.d.ts +19 -0
  114. package/dist/core/quality/doctor.d.ts.map +1 -0
  115. package/dist/core/quality/doctor.js +163 -0
  116. package/dist/core/quality/doctor.js.map +1 -0
  117. package/dist/core/quality/validator.d.ts +21 -0
  118. package/dist/core/quality/validator.d.ts.map +1 -0
  119. package/dist/core/quality/validator.js +177 -0
  120. package/dist/core/quality/validator.js.map +1 -0
  121. package/dist/core/skills/skills-manager.d.ts +126 -0
  122. package/dist/core/skills/skills-manager.d.ts.map +1 -0
  123. package/dist/core/skills/skills-manager.js +630 -0
  124. package/dist/core/skills/skills-manager.js.map +1 -0
  125. package/dist/core/state/config-manager.d.ts +86 -0
  126. package/dist/core/state/config-manager.d.ts.map +1 -0
  127. package/dist/core/state/config-manager.js +562 -0
  128. package/dist/core/state/config-manager.js.map +1 -0
  129. package/dist/core/state/override-manager.d.ts +23 -0
  130. package/dist/core/state/override-manager.d.ts.map +1 -0
  131. package/dist/core/state/override-manager.js +82 -0
  132. package/dist/core/state/override-manager.js.map +1 -0
  133. package/dist/core/state/state-writer.d.ts +34 -0
  134. package/dist/core/state/state-writer.d.ts.map +1 -0
  135. package/dist/core/state/state-writer.js +78 -0
  136. package/dist/core/state/state-writer.js.map +1 -0
  137. package/dist/core/state/version-bumper.d.ts +19 -0
  138. package/dist/core/state/version-bumper.d.ts.map +1 -0
  139. package/dist/core/state/version-bumper.js +180 -0
  140. package/dist/core/state/version-bumper.js.map +1 -0
  141. package/dist/core/tasks/decision-manager.d.ts +25 -0
  142. package/dist/core/tasks/decision-manager.d.ts.map +1 -0
  143. package/dist/core/tasks/decision-manager.js +183 -0
  144. package/dist/core/tasks/decision-manager.js.map +1 -0
  145. package/dist/core/tasks/knowledge-manager.d.ts +24 -0
  146. package/dist/core/tasks/knowledge-manager.d.ts.map +1 -0
  147. package/dist/core/tasks/knowledge-manager.js +173 -0
  148. package/dist/core/tasks/knowledge-manager.js.map +1 -0
  149. package/dist/core/tasks/learn-manager.d.ts +27 -0
  150. package/dist/core/tasks/learn-manager.d.ts.map +1 -0
  151. package/dist/core/tasks/learn-manager.js +121 -0
  152. package/dist/core/tasks/learn-manager.js.map +1 -0
  153. package/dist/core/tasks/plans-manager.d.ts +46 -0
  154. package/dist/core/tasks/plans-manager.d.ts.map +1 -0
  155. package/dist/core/tasks/plans-manager.js +158 -0
  156. package/dist/core/tasks/plans-manager.js.map +1 -0
  157. package/dist/core/tasks/task-manager.d.ts +127 -0
  158. package/dist/core/tasks/task-manager.d.ts.map +1 -0
  159. package/dist/core/tasks/task-manager.js +607 -0
  160. package/dist/core/tasks/task-manager.js.map +1 -0
  161. package/dist/core/workspace/project-worker.d.ts +6 -6
  162. package/dist/core/workspace/project-worker.d.ts.map +1 -1
  163. package/dist/core/workspace/project-worker.js +6 -6
  164. package/dist/core/workspace/project-worker.js.map +1 -1
  165. package/dist/index.d.ts +1 -1
  166. package/dist/index.d.ts.map +1 -1
  167. package/dist/index.js +19 -176
  168. package/dist/index.js.map +1 -1
  169. package/dist/mcp/rulebook-server.d.ts.map +1 -1
  170. package/dist/mcp/rulebook-server.js +16 -960
  171. package/dist/mcp/rulebook-server.js.map +1 -1
  172. package/dist/memory/file-search.d.ts +43 -0
  173. package/dist/memory/file-search.d.ts.map +1 -0
  174. package/dist/memory/file-search.js +228 -0
  175. package/dist/memory/file-search.js.map +1 -0
  176. package/dist/memory/file-store.d.ts +99 -0
  177. package/dist/memory/file-store.d.ts.map +1 -0
  178. package/dist/memory/file-store.js +615 -0
  179. package/dist/memory/file-store.js.map +1 -0
  180. package/dist/memory/legacy-migrator.d.ts +27 -0
  181. package/dist/memory/legacy-migrator.d.ts.map +1 -0
  182. package/dist/memory/legacy-migrator.js +185 -0
  183. package/dist/memory/legacy-migrator.js.map +1 -0
  184. package/dist/memory/memory-manager.d.ts +25 -24
  185. package/dist/memory/memory-manager.d.ts.map +1 -1
  186. package/dist/memory/memory-manager.js +97 -140
  187. package/dist/memory/memory-manager.js.map +1 -1
  188. package/dist/memory/memory-types.d.ts +1 -1
  189. package/dist/memory/memory-types.d.ts.map +1 -1
  190. package/dist/types.d.ts +8 -119
  191. package/dist/types.d.ts.map +1 -1
  192. package/package.json +1 -6
  193. package/templates/agents/context-intelligence.md +50 -52
  194. package/templates/cli/OPENCODE.md +85 -18
  195. package/templates/commands/rulebook-learn-capture.md +41 -48
  196. package/templates/commands/rulebook-learn-list.md +13 -13
  197. package/templates/core/AGENTS_LEAN.md +0 -14
  198. package/templates/hooks/check-context-and-handoff.sh +8 -10
  199. package/templates/hooks/enforce-pre-tool.sh +70 -0
  200. package/templates/hooks/terse-mode-tracker.sh +146 -143
  201. package/templates/ides/OPENCODE.md +63 -0
  202. package/templates/skills/cli/opencode/SKILL.md +82 -28
  203. package/.claude/commands/ralph-config.md +0 -112
  204. package/.claude/commands/ralph-history.md +0 -110
  205. package/.claude/commands/ralph-init.md +0 -72
  206. package/.claude/commands/ralph-pause-resume.md +0 -105
  207. package/.claude/commands/ralph-run.md +0 -101
  208. package/.claude/commands/ralph-status.md +0 -76
  209. package/templates/core/RALPH.md +0 -471
  210. package/templates/frameworks/ANGULAR.md +0 -36
  211. package/templates/frameworks/DJANGO.md +0 -83
  212. package/templates/frameworks/ELECTRON.md +0 -147
  213. package/templates/frameworks/FLASK.md +0 -38
  214. package/templates/frameworks/FLUTTER.md +0 -55
  215. package/templates/frameworks/JQUERY.md +0 -32
  216. package/templates/frameworks/LARAVEL.md +0 -38
  217. package/templates/frameworks/NESTJS.md +0 -43
  218. package/templates/frameworks/NEXTJS.md +0 -127
  219. package/templates/frameworks/NUXT.md +0 -40
  220. package/templates/frameworks/RAILS.md +0 -66
  221. package/templates/frameworks/REACT.md +0 -38
  222. package/templates/frameworks/REACT_NATIVE.md +0 -47
  223. package/templates/frameworks/SPRING.md +0 -39
  224. package/templates/frameworks/SYMFONY.md +0 -36
  225. package/templates/frameworks/VUE.md +0 -36
  226. package/templates/frameworks/ZEND.md +0 -35
  227. package/templates/hooks/enforce-mcp-for-tasks.sh +0 -31
  228. package/templates/hooks/enforce-no-deferred.sh +0 -21
  229. package/templates/hooks/enforce-no-shortcuts.sh +0 -31
  230. package/templates/ides/COPILOT.md +0 -37
  231. package/templates/ides/CURSOR.md +0 -43
  232. package/templates/ides/JETBRAINS_AI.md +0 -35
  233. package/templates/ides/REPLIT.md +0 -36
  234. package/templates/ides/TABNINE.md +0 -29
  235. package/templates/ides/VSCODE.md +0 -40
  236. package/templates/ides/WINDSURF.md +0 -36
  237. package/templates/ides/ZED.md +0 -32
  238. package/templates/ides/cursor-mdc/go.mdc +0 -24
  239. package/templates/ides/cursor-mdc/python.mdc +0 -24
  240. package/templates/ides/cursor-mdc/quality.mdc +0 -25
  241. package/templates/ides/cursor-mdc/ralph.mdc +0 -39
  242. package/templates/ides/cursor-mdc/rulebook.mdc +0 -38
  243. package/templates/ides/cursor-mdc/rust.mdc +0 -24
  244. package/templates/ides/cursor-mdc/typescript.mdc +0 -25
  245. package/templates/ralph/ralph-history.bat +0 -4
  246. package/templates/ralph/ralph-history.sh +0 -5
  247. package/templates/ralph/ralph-init.bat +0 -5
  248. package/templates/ralph/ralph-init.sh +0 -5
  249. package/templates/ralph/ralph-pause.bat +0 -5
  250. package/templates/ralph/ralph-pause.sh +0 -5
  251. package/templates/ralph/ralph-run.bat +0 -5
  252. package/templates/ralph/ralph-run.sh +0 -5
  253. package/templates/ralph/ralph-status.bat +0 -4
  254. package/templates/ralph/ralph-status.sh +0 -5
  255. package/templates/services/AZURE_BLOB.md +0 -184
  256. package/templates/services/CASSANDRA.md +0 -239
  257. package/templates/services/DATADOG.md +0 -26
  258. package/templates/services/DOCKER.md +0 -124
  259. package/templates/services/DOCKER_COMPOSE.md +0 -168
  260. package/templates/services/DYNAMODB.md +0 -308
  261. package/templates/services/ELASTICSEARCH.md +0 -347
  262. package/templates/services/GCS.md +0 -178
  263. package/templates/services/HELM.md +0 -194
  264. package/templates/services/INFLUXDB.md +0 -265
  265. package/templates/services/KAFKA.md +0 -341
  266. package/templates/services/KUBERNETES.md +0 -208
  267. package/templates/services/MARIADB.md +0 -183
  268. package/templates/services/MEMCACHED.md +0 -242
  269. package/templates/services/MINIO.md +0 -201
  270. package/templates/services/MONGODB.md +0 -268
  271. package/templates/services/MYSQL.md +0 -358
  272. package/templates/services/NEO4J.md +0 -247
  273. package/templates/services/OPENTELEMETRY.md +0 -25
  274. package/templates/services/ORACLE.md +0 -290
  275. package/templates/services/PINO.md +0 -24
  276. package/templates/services/POSTGRESQL.md +0 -326
  277. package/templates/services/PROMETHEUS.md +0 -33
  278. package/templates/services/RABBITMQ.md +0 -286
  279. package/templates/services/REDIS.md +0 -292
  280. package/templates/services/S3.md +0 -298
  281. package/templates/services/SENTRY.md +0 -23
  282. package/templates/services/SQLITE.md +0 -294
  283. package/templates/services/SQLSERVER.md +0 -294
  284. package/templates/services/WINSTON.md +0 -30
  285. package/templates/skills/frameworks/angular/SKILL.md +0 -46
  286. package/templates/skills/frameworks/django/SKILL.md +0 -93
  287. package/templates/skills/frameworks/electron/SKILL.md +0 -157
  288. package/templates/skills/frameworks/flask/SKILL.md +0 -48
  289. package/templates/skills/frameworks/flutter/SKILL.md +0 -65
  290. package/templates/skills/frameworks/jquery/SKILL.md +0 -42
  291. package/templates/skills/frameworks/laravel/SKILL.md +0 -48
  292. package/templates/skills/frameworks/nestjs/SKILL.md +0 -53
  293. package/templates/skills/frameworks/nextjs/SKILL.md +0 -137
  294. package/templates/skills/frameworks/nuxt/SKILL.md +0 -50
  295. package/templates/skills/frameworks/rails/SKILL.md +0 -76
  296. package/templates/skills/frameworks/react/SKILL.md +0 -48
  297. package/templates/skills/frameworks/react-native/SKILL.md +0 -57
  298. package/templates/skills/frameworks/spring/SKILL.md +0 -49
  299. package/templates/skills/frameworks/symfony/SKILL.md +0 -46
  300. package/templates/skills/frameworks/vue/SKILL.md +0 -46
  301. package/templates/skills/frameworks/zend/SKILL.md +0 -45
  302. package/templates/skills/services/azure-blob/SKILL.md +0 -194
  303. package/templates/skills/services/cassandra/SKILL.md +0 -249
  304. package/templates/skills/services/dynamodb/SKILL.md +0 -318
  305. package/templates/skills/services/elasticsearch/SKILL.md +0 -357
  306. package/templates/skills/services/gcs/SKILL.md +0 -188
  307. package/templates/skills/services/influxdb/SKILL.md +0 -275
  308. package/templates/skills/services/kafka/SKILL.md +0 -351
  309. package/templates/skills/services/mariadb/SKILL.md +0 -193
  310. package/templates/skills/services/memcached/SKILL.md +0 -252
  311. package/templates/skills/services/minio/SKILL.md +0 -211
  312. package/templates/skills/services/mongodb/SKILL.md +0 -278
  313. package/templates/skills/services/mysql/SKILL.md +0 -368
  314. package/templates/skills/services/neo4j/SKILL.md +0 -257
  315. package/templates/skills/services/oracle/SKILL.md +0 -300
  316. package/templates/skills/services/postgresql/SKILL.md +0 -336
  317. package/templates/skills/services/rabbitmq/SKILL.md +0 -296
  318. package/templates/skills/services/redis/SKILL.md +0 -302
  319. package/templates/skills/services/s3/SKILL.md +0 -308
  320. package/templates/skills/services/sqlite/SKILL.md +0 -304
  321. package/templates/skills/services/sqlserver/SKILL.md +0 -304
  322. package/templates/skills/workflows/ralph/SETUP.md +0 -228
  323. package/templates/skills/workflows/ralph/SKILL.md +0 -309
  324. package/templates/skills/workflows/ralph/install.sh +0 -87
  325. package/templates/skills/workflows/ralph/manifest.json +0 -158
@@ -1,471 +0,0 @@
1
- <!-- RALPH:START -->
2
- # Ralph Autonomous Loop Integration
3
-
4
- Ralph is an autonomous AI agent loop that iteratively solves tasks with fresh context for each iteration. This document explains how to use Ralph with your Rulebook project.
5
-
6
- ## Overview
7
-
8
- Ralph enables:
9
- - **Autonomous Multi-Iteration Development**: AI agents solve tasks across multiple iterations
10
- - **Quality Gates**: Automatic checks for type-safety, linting, testing, and coverage
11
- - **Progress Tracking**: Detailed history of each iteration with metrics and learnings
12
- - **Fresh Context per Iteration**: Each iteration starts with clean context, avoiding context window exhaustion
13
- - **Graceful Interruption**: Pause and resume capabilities for long-running tasks
14
-
15
- ## Quick Start
16
-
17
- ### Initialize Ralph
18
- ```bash
19
- rulebook ralph init
20
- ```
21
- This creates:
22
- - `.rulebook/ralph/prd.json` - Product Requirements Document from rulebook tasks
23
- - `.rulebook/ralph/state.json` - Current loop state and progress
24
- - `.rulebook/ralph/history/` - Per-iteration metadata and results
25
-
26
- ### Run Ralph Loop
27
- ```bash
28
- rulebook ralph run --max-iterations 10 --tool claude
29
- ```
30
- Flags:
31
- - `--max-iterations N` - Maximum iterations before stopping (default: 10)
32
- - `--tool TOOL` - AI tool to use: `claude`, `amp`, or `gemini` (default: claude)
33
-
34
- ### Check Status
35
- ```bash
36
- rulebook ralph status
37
- ```
38
- Shows:
39
- - Current iteration count
40
- - Completed vs. pending tasks
41
- - Success rate and quality metrics
42
-
43
- ### View History
44
- ```bash
45
- rulebook ralph history --limit 5
46
- ```
47
- Displays:
48
- - Last 5 iterations with status and duration
49
- - Task completions and failures
50
- - Quality gate results
51
-
52
- ### Pause/Resume
53
- ```bash
54
- rulebook ralph pause # Gracefully pause the loop
55
- rulebook ralph resume # Continue from where it paused
56
- ```
57
-
58
- ## How Ralph Works
59
-
60
- ### Iteration Loop
61
- ```
62
- ┌─────────────────────────────────────────┐
63
- │ 1. Load Next Pending Task from PRD │
64
- ├─────────────────────────────────────────┤
65
- │ 2. Execute Agent with Task Context │
66
- │ - Fresh context per iteration │
67
- │ - Task description and acceptance │
68
- │ criteria from rulebook │
69
- │ - Previous iteration learnings │
70
- ├─────────────────────────────────────────┤
71
- │ 3. Parse Agent Output │
72
- │ - Extract quality gate results │
73
- │ - Extract learnings and errors │
74
- │ - Extract git commit hash │
75
- ├─────────────────────────────────────────┤
76
- │ 4. Record Iteration Results │
77
- │ - Save to history/.iteration-N.json │
78
- │ - Update task status in PRD │
79
- │ - Log progress to progress.txt │
80
- ├─────────────────────────────────────────┤
81
- │ 5. Check Loop Continuation │
82
- │ - All tasks completed? → Stop │
83
- │ - Max iterations reached? → Stop │
84
- │ - Otherwise → Loop │
85
- └─────────────────────────────────────────┘
86
- ```
87
-
88
- ### Quality Gates
89
- Ralph automatically checks these gates after each iteration:
90
-
91
- | Gate | Description | Pass Criteria |
92
- |------|-------------|---------------|
93
- | **type-check** | TypeScript compilation | No errors |
94
- | **lint** | ESLint code quality | No errors |
95
- | **tests** | Unit tests | All passing |
96
- | **coverage** | Code coverage | ≥95% |
97
- | **security** | Vulnerability scan | No findings above `failOn` severity |
98
-
99
- **Security Gate** scans for vulnerabilities using the first available tool:
100
- 1. **trivy** — container and filesystem scanning (`trivy fs --format json`)
101
- 2. **semgrep** — static analysis (`semgrep --config auto --json`)
102
- 3. **npm audit** — Node.js dependency audit (always available in Node projects)
103
-
104
- Configure via `.rulebook` file:
105
- ```json
106
- {
107
- "ralph": {
108
- "securityGate": {
109
- "enabled": true,
110
- "failOn": "high",
111
- "tool": "auto"
112
- }
113
- }
114
- }
115
- ```
116
-
117
- | Setting | Default | Options | Description |
118
- |---------|---------|---------|-------------|
119
- | `enabled` | `true` | `true`/`false` | Enable/disable security gate |
120
- | `failOn` | `"high"` | `critical`/`high`/`moderate`/`low` | Minimum severity to fail |
121
- | `tool` | `"auto"` | `auto`/`npm-audit`/`trivy`/`semgrep` | Scanner to use |
122
-
123
- **Iteration Status:**
124
- - ✅ **success** - All 5 gates pass
125
- - ⚠️ **partial** - 2-4 gates pass
126
- - ❌ **failed** - 0-1 gates pass
127
-
128
- ### Fresh Context Strategy
129
- Each iteration provides context to the agent:
130
- 1. **Task Description** - What to implement
131
- 2. **Acceptance Criteria** - How to verify success
132
- 3. **Quality Requirements** - Type-check, lint, tests, coverage
133
- 4. **Previous Learnings** - Lessons from prior iterations
134
- 5. **Project Context** - Recent git commits, file structure
135
- 6. **Git Status** - Current diff and uncommitted changes
136
-
137
- This allows agents to make progress without exhausting context window.
138
-
139
- ## Task Sizing for Ralph
140
-
141
- ### Good Task Sizes
142
- ✅ **Small Tasks** (1-2 iterations)
143
- - Add single feature (button, form field)
144
- - Fix localized bug
145
- - Refactor single function/component
146
- - Add utility function
147
-
148
- Example:
149
- ```markdown
150
- ## Task: Add Dark Mode Toggle
151
-
152
- What Changes: Add UI toggle for theme switching
153
-
154
- Acceptance Criteria:
155
- - [ ] Toggle button visible in settings
156
- - [ ] Click toggles theme immediately
157
- - [ ] Selection persists in localStorage
158
- - [ ] All tests passing
159
- ```
160
-
161
- ✅ **Medium Tasks** (3-5 iterations)
162
- - Implement new API endpoint
163
- - Refactor component with dependencies
164
- - Add authentication system
165
- - Build complex feature with multiple parts
166
-
167
- Example:
168
- ```markdown
169
- ## Task: Implement User Authentication
170
-
171
- What Changes: Add JWT-based user auth
172
-
173
- Acceptance Criteria:
174
- - [ ] Login endpoint working
175
- - [ ] Token generation and validation
176
- - [ ] Protected routes enforced
177
- - [ ] Refresh token rotation
178
- - [ ] Error handling comprehensive
179
- ```
180
-
181
- ### Poor Task Sizes
182
- ❌ **Too Large** (>5 iterations)
183
- - Build entire new module
184
- - Major architectural redesign
185
- - Complete feature system
186
-
187
- → Break into smaller, focused tasks
188
-
189
- ❌ **Too Vague** (unclear acceptance criteria)
190
- - "Improve performance"
191
- - "Make code better"
192
- - "Add tests"
193
-
194
- → Define specific, measurable criteria
195
-
196
- ## Configuration
197
-
198
- ### .rulebook File
199
- ```json
200
- {
201
- "ralph": {
202
- "enabled": true,
203
- "maxIterations": 10,
204
- "tool": "claude",
205
- "maxContextLoss": 3,
206
- "securityGate": {
207
- "enabled": true,
208
- "failOn": "high",
209
- "tool": "auto"
210
- },
211
- "contextCompression": {
212
- "enabled": true,
213
- "recentCount": 3,
214
- "threshold": 5
215
- }
216
- }
217
- }
218
- ```
219
-
220
- | Setting | Default | Description |
221
- |---------|---------|-------------|
222
- | `enabled` | `true` | Enable Ralph features |
223
- | `maxIterations` | `10` | Max iterations per run |
224
- | `tool` | `claude` | Default AI tool: `claude`, `amp`, `gemini` |
225
- | `maxContextLoss` | `3` | Allow 3 context loss events before stopping |
226
- | `securityGate.enabled` | `true` | Enable 5th quality gate (vulnerability scan) |
227
- | `securityGate.failOn` | `"high"` | Fail on: `critical`, `high`, `moderate`, `low` |
228
- | `securityGate.tool` | `"auto"` | Scanner: `auto`, `npm-audit`, `trivy`, `semgrep` |
229
- | `contextCompression.enabled` | `true` | Compress old iteration history in prompts |
230
- | `contextCompression.recentCount` | `3` | Iterations shown in full detail |
231
- | `contextCompression.threshold` | `5` | Min iterations before compression activates |
232
-
233
- ## MCP Integration
234
-
235
- Ralph provides 4 MCP tools for programmatic access:
236
-
237
- ### rulebook_ralph_init
238
- Initialize Ralph and generate PRD from tasks
239
- ```json
240
- {
241
- "type": "resource",
242
- "name": "rulebook_ralph_init",
243
- "description": "Initialize Ralph autonomous loop"
244
- }
245
- ```
246
-
247
- ### rulebook_ralph_run
248
- Execute autonomous iteration loop
249
- ```json
250
- {
251
- "type": "resource",
252
- "name": "rulebook_ralph_run",
253
- "description": "Run Ralph iteration loop"
254
- }
255
- ```
256
-
257
- ### rulebook_ralph_status
258
- Get current loop state and progress
259
- ```json
260
- {
261
- "type": "resource",
262
- "name": "rulebook_ralph_status",
263
- "description": "Get Ralph loop status"
264
- }
265
- ```
266
-
267
- ### rulebook_ralph_get_iteration_history
268
- Retrieve iteration metadata and statistics
269
- ```json
270
- {
271
- "type": "resource",
272
- "name": "rulebook_ralph_get_iteration_history",
273
- "description": "Get Ralph iteration history"
274
- }
275
- ```
276
-
277
- ## Directory Structure
278
-
279
- Ralph stores all data in `.rulebook/ralph/`:
280
- ```
281
- .rulebook/ralph/
282
- ├── prd.json # Product Requirements Document
283
- ├── state.json # Current loop state
284
- ├── progress.txt # Append-only progress log
285
- └── history/
286
- ├── iteration-1.json # Metadata from iteration 1
287
- ├── iteration-2.json # Metadata from iteration 2
288
- └── ...
289
- ```
290
-
291
- ### prd.json Structure
292
- ```json
293
- {
294
- "version": "1.0",
295
- "generated_at": "2026-02-26T12:00:00Z",
296
- "project_name": "my-project",
297
- "total_tasks": 5,
298
- "tasks": [
299
- {
300
- "id": "task-1",
301
- "title": "Task Title",
302
- "description": "Task description",
303
- "status": "pending|in_iteration|completed|blocked",
304
- "priority": 1,
305
- "acceptance_criteria": ["Criterion 1", "Criterion 2"],
306
- "estimated_iterations": 2,
307
- "created_at": "2026-02-26T12:00:00Z",
308
- "updated_at": "2026-02-26T12:00:00Z"
309
- }
310
- ]
311
- }
312
- ```
313
-
314
- ### iteration-N.json Structure
315
- ```json
316
- {
317
- "iteration": 1,
318
- "started_at": "2026-02-26T12:00:00Z",
319
- "completed_at": "2026-02-26T12:05:00Z",
320
- "task_id": "task-1",
321
- "task_title": "Task Title",
322
- "duration_ms": 300000,
323
- "status": "success|partial|failed",
324
- "git_commit": "abc1234",
325
- "quality_checks": {
326
- "type_check": true,
327
- "lint": true,
328
- "tests": true,
329
- "coverage_met": true
330
- }
331
- }
332
- ```
333
-
334
- ## Best Practices
335
-
336
- ### 1. Clear Acceptance Criteria
337
- ❌ Bad: "Make it work"
338
- ✅ Good: "User can click button and see modal dialog with form"
339
-
340
- ### 2. Limit to 1 Task per Run
341
- Run Ralph on single focused task for best results
342
- ```bash
343
- # Focus on one task at a time
344
- rulebook ralph run --max-iterations 5
345
- ```
346
-
347
- ### 3. Review Iteration Results
348
- Check quality gates and learnings between runs
349
- ```bash
350
- rulebook ralph history --limit 1 # See latest iteration
351
- ```
352
-
353
- ### 4. Break Large Features
354
- Don't try to implement entire systems in one run
355
- - Task 1: API endpoint with basic validation
356
- - Task 2: Database models and migrations
357
- - Task 3: Error handling and edge cases
358
- - Task 4: Tests and documentation
359
-
360
- ### 5. Inspect Failed Iterations
361
- If status is "failed", examine what went wrong:
362
- ```bash
363
- cat .rulebook/ralph/history/iteration-N.json
364
- cat .rulebook/ralph/progress.txt
365
- ```
366
-
367
- ### 6. Use Learnings from History
368
- Ralph extracts and stores learnings from iterations. Review these to understand what strategies worked.
369
-
370
- ## Troubleshooting
371
-
372
- ### Iteration Loop Stops Early
373
- **Cause**: Hit max iterations or all tasks completed
374
-
375
- **Solution**:
376
- - Check status: `rulebook ralph status`
377
- - View history: `rulebook ralph history`
378
- - Increase max iterations: `rulebook ralph run --max-iterations 20`
379
-
380
- ### Quality Gates Failing
381
- **Cause**: Type-check, lint, tests, or coverage not meeting standards
382
-
383
- **Solution**:
384
- - Review failing gate in iteration history
385
- - Check PRD acceptance criteria match quality gates
386
- - Ensure task is small enough for single iteration
387
-
388
- ### Context Loss Events
389
- **Cause**: Agent ran out of context window during iteration
390
-
391
- **Solution**:
392
- - Break task into smaller pieces
393
- - Reduce task description complexity
394
- - Increase agent context window if possible
395
-
396
- ### Ralph State Gets Stuck
397
- **Cause**: Invalid state.json or corrupted PRD
398
-
399
- **Solution**:
400
- ```bash
401
- rm .rulebook/ralph/state.json # Reset state
402
- rulebook ralph init # Regenerate PRD
403
- rulebook ralph run # Restart loop
404
- ```
405
-
406
- ## Examples
407
-
408
- ### Example 1: Simple Feature Implementation
409
- Task: Add dark mode toggle button
410
-
411
- ```bash
412
- # Initialize Ralph
413
- rulebook ralph init
414
-
415
- # Run for up to 3 iterations
416
- rulebook ralph run --max-iterations 3
417
-
418
- # Check results
419
- rulebook ralph history
420
-
421
- # Review final output
422
- cat .rulebook/ralph/history/iteration-*.json
423
- ```
424
-
425
- ### Example 2: Multiple Task Execution
426
- Tasks: Several small features to implement
427
-
428
- ```bash
429
- # Run multiple tasks with generous iteration limit
430
- rulebook ralph run --max-iterations 20
431
-
432
- # Monitor progress
433
- watch -n 5 'rulebook ralph status'
434
-
435
- # Pause if needed
436
- rulebook ralph pause
437
-
438
- # Review and resume
439
- rulebook ralph history
440
- rulebook ralph resume
441
- ```
442
-
443
- ### Example 3: Debugging Failed Iteration
444
- ```bash
445
- # Run into failure
446
- rulebook ralph run --max-iterations 3
447
-
448
- # See what failed
449
- cat .rulebook/ralph/history/iteration-3.json
450
-
451
- # View full progress log
452
- tail -50 .rulebook/ralph/progress.txt
453
-
454
- # Manual fix and resume
455
- rulebook ralph resume
456
- ```
457
-
458
- ## Limitations
459
-
460
- - **Single Sequential Loop**: Ralph processes one task at a time sequentially
461
- - **No Parallel Execution**: Tasks don't run in parallel (by design)
462
- - **No Task Dependencies**: No automatic dependency resolution between tasks
463
- - **Manual Task Ordering**: You order tasks by priority in PRD
464
-
465
- ## Related Documentation
466
-
467
- - See `/.rulebook/specs/RULEBOOK.md` for task structure
468
- - See `/.rulebook/specs/QUALITY_ENFORCEMENT.md` for quality gates
469
- - See `/rulebook/AGENTS.md` for AI agent integration
470
-
471
- <!-- RALPH:END -->
@@ -1,36 +0,0 @@
1
- <!-- ANGULAR:START -->
2
- # Angular Framework Rules
3
-
4
- **CRITICAL**: Angular projects must meet these standards before delivery.
5
-
6
- ## Quality Commands
7
- - Lint: `npm run lint`
8
- - Unit tests: `npm run test -- --watch=false --code-coverage`
9
- - e2e tests: `npm run e2e`
10
- - Build: `npm run build -- --configuration production`
11
-
12
- ## Project Structure
13
- - Colocate features inside `src/app/<feature>/`
14
- - Keep shared modules in `src/app/shared`
15
- - Avoid `providedIn: 'root'` unless service truly global
16
- - Leverage `OnPush` change detection for performance-critical components
17
-
18
- ## Implementation Guidelines
19
- - Define interfaces for component inputs/outputs
20
- - Use `HttpClient` interceptors for auth/logging
21
- - Isolate environment variables in `src/environments/`
22
- - Prefer Reactive Forms and RxJS operators over manual subscriptions
23
-
24
- ## Pre-Commit Sequence
25
- ```bash
26
- npm run lint
27
- npm run test -- --watch=false
28
- npm run build -- --configuration production
29
- ```
30
-
31
- ## Documentation
32
- - Update `/docs/angular-architecture.md` with new modules and routes
33
- - Record shared component APIs in Storybook or `/docs/ui-components.md`
34
- - Version major route changes in `/docs/roadmap.md`
35
-
36
- <!-- ANGULAR:END -->
@@ -1,83 +0,0 @@
1
- <!-- DJANGO:START -->
2
- # Django Framework Rules
3
-
4
- **Language**: Python
5
- **Version**: Django 4.2+ (LTS) or 5.0+
6
-
7
- ## Setup & Configuration
8
-
9
- ```python
10
- # settings.py
11
- SECRET_KEY = env('SECRET_KEY') # Never hardcode
12
- DEBUG = env.bool('DEBUG', default=False)
13
- ALLOWED_HOSTS = env.list('ALLOWED_HOSTS')
14
-
15
- INSTALLED_APPS = [
16
- # Django apps
17
- 'django.contrib.admin',
18
- 'django.contrib.auth',
19
- # Third-party
20
- 'rest_framework',
21
- 'corsheaders',
22
- # Local apps
23
- 'apps.users',
24
- ]
25
-
26
- DATABASES = {
27
- 'default': env.db('DATABASE_URL') # Use django-environ
28
- }
29
- ```
30
-
31
- ## Quality Gates
32
-
33
- ```bash
34
- # Code quality
35
- black . # Format
36
- ruff check . # Lint
37
- mypy . # Type check
38
-
39
- # Tests
40
- python manage.py test # Run tests
41
- pytest --cov=apps --cov-report=html # With coverage
42
-
43
- # Security
44
- python manage.py check --deploy # Production checks
45
- bandit -r apps/ # Security scan
46
- ```
47
-
48
- ## Best Practices
49
-
50
- ✅ **DO:**
51
- - Use Class-Based Views (CBVs) or Django REST Framework ViewSets
52
- - Implement custom User model from start
53
- - Use Django ORM properly (select_related, prefetch_related)
54
- - Enable CSRF protection
55
- - Use environment variables for secrets
56
- - Write tests for views, models, and forms
57
-
58
- ❌ **DON'T:**
59
- - Use `DEBUG=True` in production
60
- - Store secrets in settings.py
61
- - Use raw SQL without parameterization
62
- - Skip migrations
63
- - Ignore security middleware
64
-
65
- ## Project Structure
66
-
67
- ```
68
- project/
69
- ├── manage.py
70
- ├── requirements.txt
71
- ├── apps/
72
- │ ├── users/
73
- │ ├── api/
74
- │ └── core/
75
- ├── config/
76
- │ ├── settings.py
77
- │ ├── urls.py
78
- │ └── wsgi.py
79
- └── tests/
80
- ```
81
-
82
- <!-- DJANGO:END -->
83
-