@hivehub/rulebook 4.0.0 → 4.2.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 (348) hide show
  1. package/.claude/commands/continue.md +33 -33
  2. package/.claude/commands/ralph-config.md +112 -112
  3. package/.claude/commands/ralph-history.md +110 -110
  4. package/.claude/commands/ralph-init.md +72 -72
  5. package/.claude/commands/ralph-pause-resume.md +105 -105
  6. package/.claude/commands/ralph-run.md +101 -101
  7. package/.claude/commands/ralph-status.md +76 -76
  8. package/.claude/commands/rulebook-memory-save.md +48 -48
  9. package/.claude/commands/rulebook-memory-search.md +47 -47
  10. package/.claude/commands/rulebook-task-apply.md +67 -67
  11. package/.claude/commands/rulebook-task-archive.md +70 -70
  12. package/.claude/commands/rulebook-task-create.md +93 -93
  13. package/.claude/commands/rulebook-task-list.md +42 -42
  14. package/.claude/commands/rulebook-task-show.md +52 -52
  15. package/.claude/commands/rulebook-task-validate.md +53 -53
  16. package/.claude-plugin/marketplace.json +28 -28
  17. package/.claude-plugin/plugin.json +8 -8
  18. package/README.md +34 -0
  19. package/dist/cli/commands.d.ts +18 -6
  20. package/dist/cli/commands.d.ts.map +1 -1
  21. package/dist/cli/commands.js +717 -406
  22. package/dist/cli/commands.js.map +1 -1
  23. package/dist/core/claude-mcp.d.ts +4 -2
  24. package/dist/core/claude-mcp.d.ts.map +1 -1
  25. package/dist/core/claude-mcp.js +14 -9
  26. package/dist/core/claude-mcp.js.map +1 -1
  27. package/dist/core/generator.d.ts.map +1 -1
  28. package/dist/core/generator.js +13 -0
  29. package/dist/core/generator.js.map +1 -1
  30. package/dist/core/indexer/background-indexer.d.ts +27 -0
  31. package/dist/core/indexer/background-indexer.d.ts.map +1 -0
  32. package/dist/core/indexer/background-indexer.js +156 -0
  33. package/dist/core/indexer/background-indexer.js.map +1 -0
  34. package/dist/core/indexer/file-parser.d.ts +28 -0
  35. package/dist/core/indexer/file-parser.d.ts.map +1 -0
  36. package/dist/core/indexer/file-parser.js +171 -0
  37. package/dist/core/indexer/file-parser.js.map +1 -0
  38. package/dist/core/indexer/indexer-types.d.ts +35 -0
  39. package/dist/core/indexer/indexer-types.d.ts.map +1 -0
  40. package/dist/core/indexer/indexer-types.js +8 -0
  41. package/dist/core/indexer/indexer-types.js.map +1 -0
  42. package/dist/core/workspace/legacy-migrator.d.ts +29 -0
  43. package/dist/core/workspace/legacy-migrator.d.ts.map +1 -0
  44. package/dist/core/workspace/legacy-migrator.js +142 -0
  45. package/dist/core/workspace/legacy-migrator.js.map +1 -0
  46. package/dist/core/workspace/project-worker.d.ts +49 -0
  47. package/dist/core/workspace/project-worker.d.ts.map +1 -0
  48. package/dist/core/workspace/project-worker.js +108 -0
  49. package/dist/core/workspace/project-worker.js.map +1 -0
  50. package/dist/core/workspace/workspace-manager.d.ts +90 -0
  51. package/dist/core/workspace/workspace-manager.d.ts.map +1 -0
  52. package/dist/core/workspace/workspace-manager.js +337 -0
  53. package/dist/core/workspace/workspace-manager.js.map +1 -0
  54. package/dist/core/workspace/workspace-types.d.ts +37 -0
  55. package/dist/core/workspace/workspace-types.d.ts.map +1 -0
  56. package/dist/core/workspace/workspace-types.js +8 -0
  57. package/dist/core/workspace/workspace-types.js.map +1 -0
  58. package/dist/index.js +43 -7
  59. package/dist/index.js.map +1 -1
  60. package/dist/mcp/rulebook-server.d.ts.map +1 -1
  61. package/dist/mcp/rulebook-server.js +450 -81
  62. package/dist/mcp/rulebook-server.js.map +1 -1
  63. package/dist/memory/memory-manager.d.ts +4 -1
  64. package/dist/memory/memory-manager.d.ts.map +1 -1
  65. package/dist/memory/memory-manager.js +33 -4
  66. package/dist/memory/memory-manager.js.map +1 -1
  67. package/dist/memory/memory-search.d.ts +2 -2
  68. package/dist/memory/memory-search.d.ts.map +1 -1
  69. package/dist/memory/memory-search.js +19 -0
  70. package/dist/memory/memory-search.js.map +1 -1
  71. package/dist/memory/memory-store.d.ts +13 -0
  72. package/dist/memory/memory-store.d.ts.map +1 -1
  73. package/dist/memory/memory-store.js +88 -1
  74. package/dist/memory/memory-store.js.map +1 -1
  75. package/dist/memory/memory-types.d.ts +15 -0
  76. package/dist/memory/memory-types.d.ts.map +1 -1
  77. package/dist/types.d.ts +1 -0
  78. package/dist/types.d.ts.map +1 -1
  79. package/package.json +22 -21
  80. package/templates/agents/implementer.md +35 -35
  81. package/templates/agents/researcher.md +34 -34
  82. package/templates/agents/team-lead.md +34 -34
  83. package/templates/agents/tester.md +42 -42
  84. package/templates/ci/rulebook-review.yml +26 -26
  85. package/templates/cli/AIDER.md +49 -49
  86. package/templates/cli/AMAZON_Q.md +25 -25
  87. package/templates/cli/AUGGIE.md +32 -32
  88. package/templates/cli/CLAUDE.md +117 -117
  89. package/templates/cli/CLINE.md +99 -99
  90. package/templates/cli/CODEBUDDY.md +20 -20
  91. package/templates/cli/CODEIUM.md +20 -20
  92. package/templates/cli/CODEX.md +21 -21
  93. package/templates/cli/CONTINUE.md +34 -34
  94. package/templates/cli/CURSOR_CLI.md +62 -62
  95. package/templates/cli/FACTORY.md +18 -18
  96. package/templates/cli/GEMINI.md +35 -35
  97. package/templates/cli/KILOCODE.md +18 -18
  98. package/templates/cli/OPENCODE.md +18 -18
  99. package/templates/cli/_GENERIC_TEMPLATE.md +29 -29
  100. package/templates/commands/rulebook-memory-save.md +48 -48
  101. package/templates/commands/rulebook-memory-search.md +47 -47
  102. package/templates/commands/rulebook-task-apply.md +67 -67
  103. package/templates/commands/rulebook-task-archive.md +94 -70
  104. package/templates/commands/rulebook-task-create.md +93 -93
  105. package/templates/commands/rulebook-task-list.md +42 -42
  106. package/templates/commands/rulebook-task-show.md +52 -52
  107. package/templates/commands/rulebook-task-validate.md +53 -53
  108. package/templates/core/AGENTS_LEAN.md +25 -25
  109. package/templates/core/AGENTS_OVERRIDE.md +16 -16
  110. package/templates/core/AGENT_AUTOMATION.md +288 -288
  111. package/templates/core/DAG.md +304 -304
  112. package/templates/core/DOCUMENTATION_RULES.md +36 -36
  113. package/templates/core/MULTI_AGENT.md +74 -74
  114. package/templates/core/PLANS.md +28 -28
  115. package/templates/core/QUALITY_ENFORCEMENT.md +68 -68
  116. package/templates/core/RALPH.md +471 -471
  117. package/templates/core/RULEBOOK.md +1935 -1893
  118. package/templates/core/WORKSPACE.md +69 -0
  119. package/templates/frameworks/ANGULAR.md +36 -36
  120. package/templates/frameworks/DJANGO.md +83 -83
  121. package/templates/frameworks/ELECTRON.md +147 -147
  122. package/templates/frameworks/FLASK.md +38 -38
  123. package/templates/frameworks/FLUTTER.md +55 -55
  124. package/templates/frameworks/JQUERY.md +32 -32
  125. package/templates/frameworks/LARAVEL.md +38 -38
  126. package/templates/frameworks/NESTJS.md +43 -43
  127. package/templates/frameworks/NEXTJS.md +127 -127
  128. package/templates/frameworks/NUXT.md +40 -40
  129. package/templates/frameworks/RAILS.md +66 -66
  130. package/templates/frameworks/REACT.md +38 -38
  131. package/templates/frameworks/REACT_NATIVE.md +47 -47
  132. package/templates/frameworks/SPRING.md +39 -39
  133. package/templates/frameworks/SYMFONY.md +36 -36
  134. package/templates/frameworks/VUE.md +36 -36
  135. package/templates/frameworks/ZEND.md +35 -35
  136. package/templates/git/CI_CD_PATTERNS.md +661 -661
  137. package/templates/git/GITHUB_ACTIONS.md +728 -728
  138. package/templates/git/GITLAB_CI.md +730 -730
  139. package/templates/git/GIT_WORKFLOW.md +1157 -1157
  140. package/templates/git/SECRETS_MANAGEMENT.md +585 -585
  141. package/templates/hooks/COMMIT_MSG.md +530 -530
  142. package/templates/hooks/POST_CHECKOUT.md +546 -546
  143. package/templates/hooks/PREPARE_COMMIT_MSG.md +619 -619
  144. package/templates/hooks/PRE_COMMIT.md +414 -414
  145. package/templates/hooks/PRE_PUSH.md +601 -601
  146. package/templates/ides/CONTINUE_RULES.md +16 -16
  147. package/templates/ides/COPILOT.md +37 -37
  148. package/templates/ides/COPILOT_INSTRUCTIONS.md +23 -23
  149. package/templates/ides/CURSOR.md +43 -43
  150. package/templates/ides/GEMINI_RULES.md +17 -17
  151. package/templates/ides/JETBRAINS_AI.md +35 -35
  152. package/templates/ides/REPLIT.md +36 -36
  153. package/templates/ides/TABNINE.md +29 -29
  154. package/templates/ides/VSCODE.md +40 -40
  155. package/templates/ides/WINDSURF.md +36 -36
  156. package/templates/ides/WINDSURF_RULES.md +14 -14
  157. package/templates/ides/ZED.md +32 -32
  158. package/templates/ides/cursor-mdc/go.mdc +24 -24
  159. package/templates/ides/cursor-mdc/python.mdc +24 -24
  160. package/templates/ides/cursor-mdc/quality.mdc +25 -25
  161. package/templates/ides/cursor-mdc/ralph.mdc +39 -39
  162. package/templates/ides/cursor-mdc/rulebook.mdc +38 -38
  163. package/templates/ides/cursor-mdc/rust.mdc +24 -24
  164. package/templates/ides/cursor-mdc/typescript.mdc +25 -25
  165. package/templates/languages/C.md +333 -333
  166. package/templates/languages/CPP.md +743 -743
  167. package/templates/languages/CSHARP.md +417 -417
  168. package/templates/languages/ELIXIR.md +454 -454
  169. package/templates/languages/ERLANG.md +361 -361
  170. package/templates/languages/GO.md +645 -645
  171. package/templates/languages/HASKELL.md +177 -177
  172. package/templates/languages/JAVA.md +607 -607
  173. package/templates/languages/JAVASCRIPT.md +631 -631
  174. package/templates/languages/JULIA.md +97 -97
  175. package/templates/languages/KOTLIN.md +511 -511
  176. package/templates/languages/LISP.md +100 -100
  177. package/templates/languages/LUA.md +74 -74
  178. package/templates/languages/OBJECTIVEC.md +90 -90
  179. package/templates/languages/PHP.md +416 -416
  180. package/templates/languages/PYTHON.md +682 -682
  181. package/templates/languages/RUBY.md +421 -421
  182. package/templates/languages/RUST.md +477 -477
  183. package/templates/languages/SAS.md +73 -73
  184. package/templates/languages/SCALA.md +348 -348
  185. package/templates/languages/SOLIDITY.md +580 -580
  186. package/templates/languages/SQL.md +137 -137
  187. package/templates/languages/SWIFT.md +466 -466
  188. package/templates/languages/TYPESCRIPT.md +591 -591
  189. package/templates/languages/ZIG.md +265 -265
  190. package/templates/modules/ATLASSIAN.md +255 -255
  191. package/templates/modules/CONTEXT7.md +54 -54
  192. package/templates/modules/FIGMA.md +267 -267
  193. package/templates/modules/GITHUB_MCP.md +64 -64
  194. package/templates/modules/GRAFANA.md +328 -328
  195. package/templates/modules/MEMORY.md +126 -126
  196. package/templates/modules/NOTION.md +247 -247
  197. package/templates/modules/PLAYWRIGHT.md +90 -90
  198. package/templates/modules/RULEBOOK_MCP.md +156 -156
  199. package/templates/modules/SERENA.md +337 -337
  200. package/templates/modules/SUPABASE.md +223 -223
  201. package/templates/modules/SYNAP.md +69 -69
  202. package/templates/modules/VECTORIZER.md +63 -63
  203. package/templates/modules/sequential-thinking.md +42 -42
  204. package/templates/ralph/ralph-history.bat +4 -4
  205. package/templates/ralph/ralph-history.sh +5 -5
  206. package/templates/ralph/ralph-init.bat +5 -5
  207. package/templates/ralph/ralph-init.sh +5 -5
  208. package/templates/ralph/ralph-pause.bat +5 -5
  209. package/templates/ralph/ralph-pause.sh +5 -5
  210. package/templates/ralph/ralph-run.bat +5 -5
  211. package/templates/ralph/ralph-run.sh +5 -5
  212. package/templates/ralph/ralph-status.bat +4 -4
  213. package/templates/ralph/ralph-status.sh +5 -5
  214. package/templates/services/AZURE_BLOB.md +184 -184
  215. package/templates/services/CASSANDRA.md +239 -239
  216. package/templates/services/DATADOG.md +26 -26
  217. package/templates/services/DOCKER.md +124 -124
  218. package/templates/services/DOCKER_COMPOSE.md +168 -168
  219. package/templates/services/DYNAMODB.md +308 -308
  220. package/templates/services/ELASTICSEARCH.md +347 -347
  221. package/templates/services/GCS.md +178 -178
  222. package/templates/services/HELM.md +194 -194
  223. package/templates/services/INFLUXDB.md +265 -265
  224. package/templates/services/KAFKA.md +341 -341
  225. package/templates/services/KUBERNETES.md +208 -208
  226. package/templates/services/MARIADB.md +183 -183
  227. package/templates/services/MEMCACHED.md +242 -242
  228. package/templates/services/MINIO.md +201 -201
  229. package/templates/services/MONGODB.md +268 -268
  230. package/templates/services/MYSQL.md +358 -358
  231. package/templates/services/NEO4J.md +247 -247
  232. package/templates/services/OPENTELEMETRY.md +25 -25
  233. package/templates/services/ORACLE.md +290 -290
  234. package/templates/services/PINO.md +24 -24
  235. package/templates/services/POSTGRESQL.md +326 -326
  236. package/templates/services/PROMETHEUS.md +33 -33
  237. package/templates/services/RABBITMQ.md +286 -286
  238. package/templates/services/REDIS.md +292 -292
  239. package/templates/services/S3.md +298 -298
  240. package/templates/services/SENTRY.md +23 -23
  241. package/templates/services/SQLITE.md +294 -294
  242. package/templates/services/SQLSERVER.md +294 -294
  243. package/templates/services/WINSTON.md +30 -30
  244. package/templates/skills/cli/aider/SKILL.md +59 -59
  245. package/templates/skills/cli/amazon-q/SKILL.md +35 -35
  246. package/templates/skills/cli/auggie/SKILL.md +42 -42
  247. package/templates/skills/cli/claude/SKILL.md +42 -42
  248. package/templates/skills/cli/cline/SKILL.md +42 -42
  249. package/templates/skills/cli/codebuddy/SKILL.md +30 -30
  250. package/templates/skills/cli/codeium/SKILL.md +30 -30
  251. package/templates/skills/cli/codex/SKILL.md +31 -31
  252. package/templates/skills/cli/continue/SKILL.md +44 -44
  253. package/templates/skills/cli/cursor-cli/SKILL.md +38 -38
  254. package/templates/skills/cli/factory/SKILL.md +28 -28
  255. package/templates/skills/cli/gemini/SKILL.md +45 -45
  256. package/templates/skills/cli/kilocode/SKILL.md +28 -28
  257. package/templates/skills/cli/opencode/SKILL.md +28 -28
  258. package/templates/skills/core/agent-automation/SKILL.md +194 -194
  259. package/templates/skills/core/dag/SKILL.md +314 -314
  260. package/templates/skills/core/documentation-rules/SKILL.md +46 -46
  261. package/templates/skills/core/quality-enforcement/SKILL.md +78 -78
  262. package/templates/skills/core/rulebook/SKILL.md +176 -176
  263. package/templates/skills/frameworks/angular/SKILL.md +46 -46
  264. package/templates/skills/frameworks/django/SKILL.md +93 -93
  265. package/templates/skills/frameworks/electron/SKILL.md +157 -157
  266. package/templates/skills/frameworks/flask/SKILL.md +48 -48
  267. package/templates/skills/frameworks/flutter/SKILL.md +65 -65
  268. package/templates/skills/frameworks/jquery/SKILL.md +42 -42
  269. package/templates/skills/frameworks/laravel/SKILL.md +48 -48
  270. package/templates/skills/frameworks/nestjs/SKILL.md +53 -53
  271. package/templates/skills/frameworks/nextjs/SKILL.md +137 -137
  272. package/templates/skills/frameworks/nuxt/SKILL.md +50 -50
  273. package/templates/skills/frameworks/rails/SKILL.md +76 -76
  274. package/templates/skills/frameworks/react/SKILL.md +48 -48
  275. package/templates/skills/frameworks/react-native/SKILL.md +57 -57
  276. package/templates/skills/frameworks/spring/SKILL.md +49 -49
  277. package/templates/skills/frameworks/symfony/SKILL.md +46 -46
  278. package/templates/skills/frameworks/vue/SKILL.md +46 -46
  279. package/templates/skills/frameworks/zend/SKILL.md +45 -45
  280. package/templates/skills/ides/copilot/SKILL.md +47 -47
  281. package/templates/skills/ides/cursor/SKILL.md +53 -53
  282. package/templates/skills/ides/jetbrains-ai/SKILL.md +45 -45
  283. package/templates/skills/ides/replit/SKILL.md +46 -46
  284. package/templates/skills/ides/tabnine/SKILL.md +39 -39
  285. package/templates/skills/ides/vscode/SKILL.md +50 -50
  286. package/templates/skills/ides/windsurf/SKILL.md +46 -46
  287. package/templates/skills/ides/zed/SKILL.md +42 -42
  288. package/templates/skills/languages/c/SKILL.md +343 -343
  289. package/templates/skills/languages/cpp/SKILL.md +753 -753
  290. package/templates/skills/languages/csharp/SKILL.md +427 -427
  291. package/templates/skills/languages/elixir/SKILL.md +464 -464
  292. package/templates/skills/languages/erlang/SKILL.md +371 -371
  293. package/templates/skills/languages/go/SKILL.md +655 -655
  294. package/templates/skills/languages/haskell/SKILL.md +187 -187
  295. package/templates/skills/languages/java/SKILL.md +617 -617
  296. package/templates/skills/languages/javascript/SKILL.md +641 -641
  297. package/templates/skills/languages/julia/SKILL.md +107 -107
  298. package/templates/skills/languages/kotlin/SKILL.md +521 -521
  299. package/templates/skills/languages/lisp/SKILL.md +110 -110
  300. package/templates/skills/languages/lua/SKILL.md +84 -84
  301. package/templates/skills/languages/objectivec/SKILL.md +100 -100
  302. package/templates/skills/languages/php/SKILL.md +426 -426
  303. package/templates/skills/languages/python/SKILL.md +692 -692
  304. package/templates/skills/languages/ruby/SKILL.md +431 -431
  305. package/templates/skills/languages/rust/SKILL.md +487 -487
  306. package/templates/skills/languages/sas/SKILL.md +83 -83
  307. package/templates/skills/languages/scala/SKILL.md +358 -358
  308. package/templates/skills/languages/solidity/SKILL.md +590 -590
  309. package/templates/skills/languages/sql/SKILL.md +147 -147
  310. package/templates/skills/languages/swift/SKILL.md +476 -476
  311. package/templates/skills/languages/typescript/SKILL.md +302 -302
  312. package/templates/skills/languages/zig/SKILL.md +275 -275
  313. package/templates/skills/modules/atlassian/SKILL.md +265 -265
  314. package/templates/skills/modules/context7/SKILL.md +64 -64
  315. package/templates/skills/modules/figma/SKILL.md +277 -277
  316. package/templates/skills/modules/github-mcp/SKILL.md +74 -74
  317. package/templates/skills/modules/grafana/SKILL.md +338 -338
  318. package/templates/skills/modules/memory/SKILL.md +73 -73
  319. package/templates/skills/modules/notion/SKILL.md +257 -257
  320. package/templates/skills/modules/playwright/SKILL.md +100 -100
  321. package/templates/skills/modules/rulebook-mcp/SKILL.md +166 -166
  322. package/templates/skills/modules/serena/SKILL.md +347 -347
  323. package/templates/skills/modules/supabase/SKILL.md +233 -233
  324. package/templates/skills/modules/synap/SKILL.md +79 -79
  325. package/templates/skills/modules/vectorizer/SKILL.md +73 -73
  326. package/templates/skills/services/azure-blob/SKILL.md +194 -194
  327. package/templates/skills/services/cassandra/SKILL.md +249 -249
  328. package/templates/skills/services/dynamodb/SKILL.md +318 -318
  329. package/templates/skills/services/elasticsearch/SKILL.md +357 -357
  330. package/templates/skills/services/gcs/SKILL.md +188 -188
  331. package/templates/skills/services/influxdb/SKILL.md +275 -275
  332. package/templates/skills/services/kafka/SKILL.md +351 -351
  333. package/templates/skills/services/mariadb/SKILL.md +193 -193
  334. package/templates/skills/services/memcached/SKILL.md +252 -252
  335. package/templates/skills/services/minio/SKILL.md +211 -211
  336. package/templates/skills/services/mongodb/SKILL.md +278 -278
  337. package/templates/skills/services/mysql/SKILL.md +368 -368
  338. package/templates/skills/services/neo4j/SKILL.md +257 -257
  339. package/templates/skills/services/oracle/SKILL.md +300 -300
  340. package/templates/skills/services/postgresql/SKILL.md +336 -336
  341. package/templates/skills/services/rabbitmq/SKILL.md +296 -296
  342. package/templates/skills/services/redis/SKILL.md +302 -302
  343. package/templates/skills/services/s3/SKILL.md +308 -308
  344. package/templates/skills/services/sqlite/SKILL.md +304 -304
  345. package/templates/skills/services/sqlserver/SKILL.md +304 -304
  346. package/templates/skills/workflows/ralph/SKILL.md +309 -309
  347. package/templates/skills/workflows/ralph/install.sh +87 -87
  348. package/templates/skills/workflows/ralph/manifest.json +158 -158
@@ -1,105 +1,105 @@
1
- ---
2
- name: /ralph-pause-resume
3
- id: ralph-pause-resume
4
- category: Ralph
5
- description: Pause and resume Ralph autonomous loop for manual intervention or debugging.
6
- ---
7
- <!-- RALPH:START -->
8
- **Overview**
9
- Control Ralph's iteration loop by pausing and resuming execution:
10
- - **Pause**: Stop after current iteration completes, allows manual inspection or fixes
11
- - **Resume**: Continue from where paused, picking up with next incomplete story
12
-
13
- **Guardrails**
14
- - Pause completes current iteration before stopping (safe operation)
15
- - Loop can only be resumed from paused state
16
- - Use pause when: debugging failures, making manual fixes, investigating quality issues
17
- - Keep pause duration short - long pauses may lose AI context
18
-
19
- **Steps**
20
-
21
- ### Pausing the Loop
22
-
23
- 1. **Pause Ralph**:
24
- ```bash
25
- rulebook ralph pause
26
- ```
27
- - Completes current iteration
28
- - Stops before next iteration starts
29
- - Preserves all progress and iteration records
30
-
31
- 2. **Verify Paused State**:
32
- ```bash
33
- rulebook ralph status
34
- ```
35
- Should show: `Paused: true`
36
-
37
- 3. **Investigate Issues** (while paused):
38
- - Review latest iteration: `rulebook ralph history --iteration <N>`
39
- - Check quality gate failures: `rulebook ralph show <story-id>`
40
- - Review error logs and learnings
41
- - Make manual fixes to code if needed
42
-
43
- ### Resuming the Loop
44
-
45
- 1. **Resume Ralph**:
46
- ```bash
47
- rulebook ralph resume
48
- ```
49
- - Continues from where paused
50
- - Picks up with next incomplete story
51
- - Maintains iteration count and progress
52
-
53
- 2. **Verify Running State**:
54
- ```bash
55
- rulebook ralph status
56
- ```
57
- Should show: `Paused: false`
58
-
59
- 3. **Monitor Resumed Iterations**:
60
- ```bash
61
- rulebook ralph history --limit 3
62
- ```
63
- Check latest iterations to ensure resumption succeeded
64
-
65
- **Common Workflows**
66
-
67
- ### Debugging Quality Gate Failures
68
- 1. Loop running, tests fail in iteration 5
69
- 2. `rulebook ralph pause` - stops after iteration 5
70
- 3. Analyze: `rulebook ralph history --iteration 5`
71
- 4. Identify test failure root cause
72
- 5. Make manual code fixes
73
- 6. `rulebook ralph resume` - continues from iteration 6
74
-
75
- ### Making Manual Adjustments
76
- 1. Pause loop: `rulebook ralph pause`
77
- 2. Manually edit code based on iteration learnings
78
- 3. Update PRD: `vi .rulebook/ralph/prd.json`
79
- 4. Resume: `rulebook ralph resume` - continues with updated PRD
80
-
81
- ### Inspecting AI Tool Output
82
- 1. Pause: `rulebook ralph pause`
83
- 2. Check `rulebook ralph history --iteration <N>` for AI output
84
- 3. Review learnings and errors from iteration
85
- 4. Resume: `rulebook ralph resume`
86
-
87
- **Pause vs Stopping**
88
- - **Pause** (`ralph pause`): Loop continues later with resume
89
- - **Stop** (Ctrl+C during run): Stops immediately, may interrupt current iteration
90
- - Use pause for graceful, resumable stops
91
- - Use Ctrl+C only for emergency stops
92
-
93
- **State Preservation**
94
- When paused:
95
- - Current iteration status saved
96
- - User story states preserved
97
- - Learnings and errors recorded
98
- - Loop progress not lost
99
-
100
- **Edge Cases**
101
- - **Can't pause if not running**: Check with `ralph status`
102
- - **Can't resume if not paused**: Call `ralph run` instead
103
- - **Resuming after long pause**: Ralph retains context up to max iterations allowed
104
-
105
- <!-- RALPH:END -->
1
+ ---
2
+ name: /ralph-pause-resume
3
+ id: ralph-pause-resume
4
+ category: Ralph
5
+ description: Pause and resume Ralph autonomous loop for manual intervention or debugging.
6
+ ---
7
+ <!-- RALPH:START -->
8
+ **Overview**
9
+ Control Ralph's iteration loop by pausing and resuming execution:
10
+ - **Pause**: Stop after current iteration completes, allows manual inspection or fixes
11
+ - **Resume**: Continue from where paused, picking up with next incomplete story
12
+
13
+ **Guardrails**
14
+ - Pause completes current iteration before stopping (safe operation)
15
+ - Loop can only be resumed from paused state
16
+ - Use pause when: debugging failures, making manual fixes, investigating quality issues
17
+ - Keep pause duration short - long pauses may lose AI context
18
+
19
+ **Steps**
20
+
21
+ ### Pausing the Loop
22
+
23
+ 1. **Pause Ralph**:
24
+ ```bash
25
+ rulebook ralph pause
26
+ ```
27
+ - Completes current iteration
28
+ - Stops before next iteration starts
29
+ - Preserves all progress and iteration records
30
+
31
+ 2. **Verify Paused State**:
32
+ ```bash
33
+ rulebook ralph status
34
+ ```
35
+ Should show: `Paused: true`
36
+
37
+ 3. **Investigate Issues** (while paused):
38
+ - Review latest iteration: `rulebook ralph history --iteration <N>`
39
+ - Check quality gate failures: `rulebook ralph show <story-id>`
40
+ - Review error logs and learnings
41
+ - Make manual fixes to code if needed
42
+
43
+ ### Resuming the Loop
44
+
45
+ 1. **Resume Ralph**:
46
+ ```bash
47
+ rulebook ralph resume
48
+ ```
49
+ - Continues from where paused
50
+ - Picks up with next incomplete story
51
+ - Maintains iteration count and progress
52
+
53
+ 2. **Verify Running State**:
54
+ ```bash
55
+ rulebook ralph status
56
+ ```
57
+ Should show: `Paused: false`
58
+
59
+ 3. **Monitor Resumed Iterations**:
60
+ ```bash
61
+ rulebook ralph history --limit 3
62
+ ```
63
+ Check latest iterations to ensure resumption succeeded
64
+
65
+ **Common Workflows**
66
+
67
+ ### Debugging Quality Gate Failures
68
+ 1. Loop running, tests fail in iteration 5
69
+ 2. `rulebook ralph pause` - stops after iteration 5
70
+ 3. Analyze: `rulebook ralph history --iteration 5`
71
+ 4. Identify test failure root cause
72
+ 5. Make manual code fixes
73
+ 6. `rulebook ralph resume` - continues from iteration 6
74
+
75
+ ### Making Manual Adjustments
76
+ 1. Pause loop: `rulebook ralph pause`
77
+ 2. Manually edit code based on iteration learnings
78
+ 3. Update PRD: `vi .rulebook/ralph/prd.json`
79
+ 4. Resume: `rulebook ralph resume` - continues with updated PRD
80
+
81
+ ### Inspecting AI Tool Output
82
+ 1. Pause: `rulebook ralph pause`
83
+ 2. Check `rulebook ralph history --iteration <N>` for AI output
84
+ 3. Review learnings and errors from iteration
85
+ 4. Resume: `rulebook ralph resume`
86
+
87
+ **Pause vs Stopping**
88
+ - **Pause** (`ralph pause`): Loop continues later with resume
89
+ - **Stop** (Ctrl+C during run): Stops immediately, may interrupt current iteration
90
+ - Use pause for graceful, resumable stops
91
+ - Use Ctrl+C only for emergency stops
92
+
93
+ **State Preservation**
94
+ When paused:
95
+ - Current iteration status saved
96
+ - User story states preserved
97
+ - Learnings and errors recorded
98
+ - Loop progress not lost
99
+
100
+ **Edge Cases**
101
+ - **Can't pause if not running**: Check with `ralph status`
102
+ - **Can't resume if not paused**: Call `ralph run` instead
103
+ - **Resuming after long pause**: Ralph retains context up to max iterations allowed
104
+
105
+ <!-- RALPH:END -->
@@ -1,101 +1,101 @@
1
- ---
2
- name: /ralph-run
3
- id: ralph-run
4
- category: Ralph
5
- description: Start Ralph autonomous loop to iteratively complete tasks from the PRD.
6
- ---
7
- <!-- RALPH:START -->
8
- **Overview**
9
- Ralph runs your configured AI tool in a continuous loop, solving user stories from the PRD one at a time. Each iteration:
10
- 1. Picks the next incomplete user story
11
- 2. Invokes your AI tool (Claude, Cursor, or Gemini) to solve it
12
- 3. Parses the output for quality checks and completion status
13
- 4. Records the iteration results
14
- 5. Marks the story as complete if all quality gates pass
15
- 6. Moves to the next story or stops if max iterations reached
16
-
17
- **Guardrails**
18
- - Ralph must be initialized first with `rulebook ralph init`
19
- - Quality gates MUST pass: type-check, lint, tests, coverage
20
- - Failed iterations are recorded but don't auto-mark stories complete
21
- - Monitor logs and iteration history for quality issues
22
-
23
- **Prerequisites**
24
- - Ralph initialized with `rulebook ralph init`
25
- - All quality gate tools installed: TypeScript, ESLint, test framework, coverage reporter
26
- - `.rulebook/ralph/prd.json` exists with user stories
27
-
28
- **Steps**
29
- 1. **Start the Loop**:
30
- ```bash
31
- rulebook ralph run
32
- ```
33
- Ralph will:
34
- - Load configuration and PRD
35
- - Find first incomplete story (`passes: false`)
36
- - Invoke your AI tool
37
- - Parse output for task completion and quality checks
38
-
39
- 2. **Monitor Execution**:
40
- - Watch the console for iteration progress
41
- - Each iteration shows: story ID, title, execution time, quality gate results
42
- - Ralph will pause on quality gate failures for review
43
-
44
- 3. **Review Iteration Results**:
45
- ```bash
46
- rulebook ralph history
47
- ```
48
- Shows:
49
- - Iteration number
50
- - Task ID and title
51
- - Success/partial/failed status
52
- - Quality check results (type-check, lint, tests, coverage)
53
- - Execution time
54
- - Errors and learnings
55
-
56
- 4. **Check Status**:
57
- ```bash
58
- rulebook ralph status
59
- ```
60
- Shows:
61
- - Current iteration count
62
- - Pending user stories count
63
- - Completion percentage
64
- - Paused state (if paused)
65
-
66
- **Iteration Lifecycle**
67
- 1. **Iteration Start**: Ralph picks next incomplete story
68
- 2. **AI Tool Execution**: Runs your configured tool (Claude/Cursor/Gemini)
69
- 3. **Output Parsing**: Extracts quality checks, errors, completion indicators
70
- 4. **Quality Gates**:
71
- - type-check ✓ - TypeScript compilation succeeds
72
- - lint ✓ - ESLint passes without errors
73
- - tests ✓ - All test suites pass
74
- - coverage ✓ - Coverage meets thresholds
75
- 5. **Story Completion**: If all gates pass, marks `passes: true`
76
- 6. **Next Iteration**: Moves to next story or completes loop
77
-
78
- **Quality Gate Failures**
79
- If gates fail:
80
- - Status recorded as `partial` or `failed`
81
- - Story remains `passes: false` for retry
82
- - Error details saved in iteration history
83
- - Manual review and fixes may be needed before retry
84
-
85
- **Pausing and Resuming**
86
- - `rulebook ralph pause` - Pause after current iteration
87
- - `rulebook ralph resume` - Continue from where paused
88
- - Useful for investigating failures or making manual adjustments
89
-
90
- **Iteration Records**
91
- Each iteration is recorded in:
92
- - `.rulebook/ralph/history/iteration-<N>.json` with full details
93
- - Includes: task details, quality checks, errors, learnings, git commit
94
-
95
- **Troubleshooting**
96
- - **Loop stops early**: Check quality gate failures in latest iteration
97
- - **AI tool not found**: Ensure `rulebook ralph config set ai-tool <tool>` is set correctly
98
- - **Infinite loops**: Use `rulebook ralph pause` and check loop configuration
99
- - **Context loss**: Ralph tracks context loss and reports it in iteration metadata
100
-
101
- <!-- RALPH:END -->
1
+ ---
2
+ name: /ralph-run
3
+ id: ralph-run
4
+ category: Ralph
5
+ description: Start Ralph autonomous loop to iteratively complete tasks from the PRD.
6
+ ---
7
+ <!-- RALPH:START -->
8
+ **Overview**
9
+ Ralph runs your configured AI tool in a continuous loop, solving user stories from the PRD one at a time. Each iteration:
10
+ 1. Picks the next incomplete user story
11
+ 2. Invokes your AI tool (Claude, Cursor, or Gemini) to solve it
12
+ 3. Parses the output for quality checks and completion status
13
+ 4. Records the iteration results
14
+ 5. Marks the story as complete if all quality gates pass
15
+ 6. Moves to the next story or stops if max iterations reached
16
+
17
+ **Guardrails**
18
+ - Ralph must be initialized first with `rulebook ralph init`
19
+ - Quality gates MUST pass: type-check, lint, tests, coverage
20
+ - Failed iterations are recorded but don't auto-mark stories complete
21
+ - Monitor logs and iteration history for quality issues
22
+
23
+ **Prerequisites**
24
+ - Ralph initialized with `rulebook ralph init`
25
+ - All quality gate tools installed: TypeScript, ESLint, test framework, coverage reporter
26
+ - `.rulebook/ralph/prd.json` exists with user stories
27
+
28
+ **Steps**
29
+ 1. **Start the Loop**:
30
+ ```bash
31
+ rulebook ralph run
32
+ ```
33
+ Ralph will:
34
+ - Load configuration and PRD
35
+ - Find first incomplete story (`passes: false`)
36
+ - Invoke your AI tool
37
+ - Parse output for task completion and quality checks
38
+
39
+ 2. **Monitor Execution**:
40
+ - Watch the console for iteration progress
41
+ - Each iteration shows: story ID, title, execution time, quality gate results
42
+ - Ralph will pause on quality gate failures for review
43
+
44
+ 3. **Review Iteration Results**:
45
+ ```bash
46
+ rulebook ralph history
47
+ ```
48
+ Shows:
49
+ - Iteration number
50
+ - Task ID and title
51
+ - Success/partial/failed status
52
+ - Quality check results (type-check, lint, tests, coverage)
53
+ - Execution time
54
+ - Errors and learnings
55
+
56
+ 4. **Check Status**:
57
+ ```bash
58
+ rulebook ralph status
59
+ ```
60
+ Shows:
61
+ - Current iteration count
62
+ - Pending user stories count
63
+ - Completion percentage
64
+ - Paused state (if paused)
65
+
66
+ **Iteration Lifecycle**
67
+ 1. **Iteration Start**: Ralph picks next incomplete story
68
+ 2. **AI Tool Execution**: Runs your configured tool (Claude/Cursor/Gemini)
69
+ 3. **Output Parsing**: Extracts quality checks, errors, completion indicators
70
+ 4. **Quality Gates**:
71
+ - type-check ✓ - TypeScript compilation succeeds
72
+ - lint ✓ - ESLint passes without errors
73
+ - tests ✓ - All test suites pass
74
+ - coverage ✓ - Coverage meets thresholds
75
+ 5. **Story Completion**: If all gates pass, marks `passes: true`
76
+ 6. **Next Iteration**: Moves to next story or completes loop
77
+
78
+ **Quality Gate Failures**
79
+ If gates fail:
80
+ - Status recorded as `partial` or `failed`
81
+ - Story remains `passes: false` for retry
82
+ - Error details saved in iteration history
83
+ - Manual review and fixes may be needed before retry
84
+
85
+ **Pausing and Resuming**
86
+ - `rulebook ralph pause` - Pause after current iteration
87
+ - `rulebook ralph resume` - Continue from where paused
88
+ - Useful for investigating failures or making manual adjustments
89
+
90
+ **Iteration Records**
91
+ Each iteration is recorded in:
92
+ - `.rulebook/ralph/history/iteration-<N>.json` with full details
93
+ - Includes: task details, quality checks, errors, learnings, git commit
94
+
95
+ **Troubleshooting**
96
+ - **Loop stops early**: Check quality gate failures in latest iteration
97
+ - **AI tool not found**: Ensure `rulebook ralph config set ai-tool <tool>` is set correctly
98
+ - **Infinite loops**: Use `rulebook ralph pause` and check loop configuration
99
+ - **Context loss**: Ralph tracks context loss and reports it in iteration metadata
100
+
101
+ <!-- RALPH:END -->
@@ -1,76 +1,76 @@
1
- ---
2
- name: /ralph-status
3
- id: ralph-status
4
- category: Ralph
5
- description: Check the status of Ralph autonomous loop and view task completion statistics.
6
- ---
7
- <!-- RALPH:START -->
8
- **Overview**
9
- View the current state of Ralph's autonomous loop, including:
10
- - Loop enabled/disabled status
11
- - Current iteration count and max iterations
12
- - Paused/running state
13
- - User story completion statistics
14
- - Overall project progress
15
-
16
- **Guardrails**
17
- - Status shows real-time state from `.rulebook/ralph/config.json` and `prd.json`
18
- - Use status regularly to monitor loop health
19
- - Paused state prevents iterations from continuing (must resume to continue)
20
-
21
- **Steps**
22
- 1. **Check Ralph Status**:
23
- ```bash
24
- rulebook ralph status
25
- ```
26
-
27
- 2. **Interpret Output**:
28
- ```
29
- Ralph Status:
30
- ├─ Enabled: true
31
- ├─ Current Iteration: 3
32
- ├─ Max Iterations: 10
33
- ├─ AI Tool: claude
34
- ├─ Paused: false
35
- ├─ Task Statistics:
36
- │ ├─ Total Stories: 5
37
- │ ├─ Completed: 2
38
- │ ├─ Pending: 3
39
- │ └─ Completion: 40%
40
- └─ Branch: ralph/my-project
41
- ```
42
-
43
- 3. **Status Fields**:
44
- - **Enabled**: Whether Ralph loop is active
45
- - **Current Iteration**: Which iteration loop is on (0 = not started)
46
- - **Max Iterations**: Total iterations allowed before stopping
47
- - **AI Tool**: Which AI tool is being used (claude, cursor, gemini)
48
- - **Paused**: Whether loop is paused (must resume to continue)
49
- - **Task Statistics**: User story completion breakdown
50
- - **Branch**: Git branch Ralph is working on
51
-
52
- 4. **Check Completion**:
53
- ```bash
54
- # View detailed task statistics
55
- rulebook ralph status --detailed
56
- ```
57
- Shows individual user story status and completion breakdown
58
-
59
- **Common Patterns**
60
- - **Just initialized**: `Current Iteration: 0`, `Pending: <all stories>`
61
- - **In progress**: `Current Iteration: N` increasing, `Pending` decreasing
62
- - **Complete**: `Current Iteration` matches total completed stories, `Pending: 0`
63
- - **Paused**: `Paused: true`, resume with `rulebook ralph resume`
64
-
65
- **Next Steps**
66
- - If loop not started: `rulebook ralph run`
67
- - If paused: `rulebook ralph resume`
68
- - To view iterations: `rulebook ralph history`
69
- - To view story details: `rulebook ralph show <story-id>` (if available)
70
-
71
- **Troubleshooting**
72
- - **Status shows disabled**: Run `rulebook ralph init` to enable
73
- - **Iteration count stuck**: Check if loop is paused or if max iterations reached
74
- - **Statistics don't match**: Check `.rulebook/ralph/prd.json` for consistency
75
-
76
- <!-- RALPH:END -->
1
+ ---
2
+ name: /ralph-status
3
+ id: ralph-status
4
+ category: Ralph
5
+ description: Check the status of Ralph autonomous loop and view task completion statistics.
6
+ ---
7
+ <!-- RALPH:START -->
8
+ **Overview**
9
+ View the current state of Ralph's autonomous loop, including:
10
+ - Loop enabled/disabled status
11
+ - Current iteration count and max iterations
12
+ - Paused/running state
13
+ - User story completion statistics
14
+ - Overall project progress
15
+
16
+ **Guardrails**
17
+ - Status shows real-time state from `.rulebook/ralph/config.json` and `prd.json`
18
+ - Use status regularly to monitor loop health
19
+ - Paused state prevents iterations from continuing (must resume to continue)
20
+
21
+ **Steps**
22
+ 1. **Check Ralph Status**:
23
+ ```bash
24
+ rulebook ralph status
25
+ ```
26
+
27
+ 2. **Interpret Output**:
28
+ ```
29
+ Ralph Status:
30
+ ├─ Enabled: true
31
+ ├─ Current Iteration: 3
32
+ ├─ Max Iterations: 10
33
+ ├─ AI Tool: claude
34
+ ├─ Paused: false
35
+ ├─ Task Statistics:
36
+ │ ├─ Total Stories: 5
37
+ │ ├─ Completed: 2
38
+ │ ├─ Pending: 3
39
+ │ └─ Completion: 40%
40
+ └─ Branch: ralph/my-project
41
+ ```
42
+
43
+ 3. **Status Fields**:
44
+ - **Enabled**: Whether Ralph loop is active
45
+ - **Current Iteration**: Which iteration loop is on (0 = not started)
46
+ - **Max Iterations**: Total iterations allowed before stopping
47
+ - **AI Tool**: Which AI tool is being used (claude, cursor, gemini)
48
+ - **Paused**: Whether loop is paused (must resume to continue)
49
+ - **Task Statistics**: User story completion breakdown
50
+ - **Branch**: Git branch Ralph is working on
51
+
52
+ 4. **Check Completion**:
53
+ ```bash
54
+ # View detailed task statistics
55
+ rulebook ralph status --detailed
56
+ ```
57
+ Shows individual user story status and completion breakdown
58
+
59
+ **Common Patterns**
60
+ - **Just initialized**: `Current Iteration: 0`, `Pending: <all stories>`
61
+ - **In progress**: `Current Iteration: N` increasing, `Pending` decreasing
62
+ - **Complete**: `Current Iteration` matches total completed stories, `Pending: 0`
63
+ - **Paused**: `Paused: true`, resume with `rulebook ralph resume`
64
+
65
+ **Next Steps**
66
+ - If loop not started: `rulebook ralph run`
67
+ - If paused: `rulebook ralph resume`
68
+ - To view iterations: `rulebook ralph history`
69
+ - To view story details: `rulebook ralph show <story-id>` (if available)
70
+
71
+ **Troubleshooting**
72
+ - **Status shows disabled**: Run `rulebook ralph init` to enable
73
+ - **Iteration count stuck**: Check if loop is paused or if max iterations reached
74
+ - **Statistics don't match**: Check `.rulebook/ralph/prd.json` for consistency
75
+
76
+ <!-- RALPH:END -->
@@ -1,48 +1,48 @@
1
- ---
2
- name: /rulebook-memory-save
3
- id: rulebook-memory-save
4
- category: Rulebook
5
- description: Save a new persistent memory for context across AI sessions.
6
- ---
7
- <!-- RULEBOOK:START -->
8
- **Guardrails**
9
- - Use the MCP memory tools when available (preferred over CLI commands).
10
- - Choose the correct memory type for accurate classification and search.
11
- - Keep titles concise and content descriptive.
12
- - Use tags for better discoverability.
13
-
14
- **Steps**
15
- 1. **Save a memory** using the MCP tool or CLI:
16
- ```
17
- # Via MCP (preferred)
18
- rulebook_memory_save({
19
- type: "feature",
20
- title: "Short descriptive title",
21
- content: "Detailed description of what happened, why, and context",
22
- tags: ["relevant", "tags"]
23
- })
24
-
25
- # Via CLI
26
- rulebook memory save "content text" --type feature --title "Title" --tags tag1,tag2
27
- ```
28
-
29
- 2. **Choose the right type**:
30
- - `bugfix` - Fixed a bug or resolved an error
31
- - `feature` - Added new functionality
32
- - `refactor` - Restructured code without changing behavior
33
- - `decision` - Made an architecture or design choice (protected from eviction)
34
- - `discovery` - Found something important about the codebase
35
- - `change` - General code modification
36
- - `observation` - Noted something worth remembering
37
-
38
- 3. **Verify** the memory was saved:
39
- ```
40
- rulebook_memory_search({ query: "your title keywords" })
41
- ```
42
-
43
- **Best Practices**
44
- - Save decisions early - they are protected from cache eviction
45
- - Include "why" in content, not just "what"
46
- - Use consistent tags across related memories
47
- - Content within `<private>...</private>` tags will be automatically redacted
48
- <!-- RULEBOOK:END -->
1
+ ---
2
+ name: /rulebook-memory-save
3
+ id: rulebook-memory-save
4
+ category: Rulebook
5
+ description: Save a new persistent memory for context across AI sessions.
6
+ ---
7
+ <!-- RULEBOOK:START -->
8
+ **Guardrails**
9
+ - Use the MCP memory tools when available (preferred over CLI commands).
10
+ - Choose the correct memory type for accurate classification and search.
11
+ - Keep titles concise and content descriptive.
12
+ - Use tags for better discoverability.
13
+
14
+ **Steps**
15
+ 1. **Save a memory** using the MCP tool or CLI:
16
+ ```
17
+ # Via MCP (preferred)
18
+ rulebook_memory_save({
19
+ type: "feature",
20
+ title: "Short descriptive title",
21
+ content: "Detailed description of what happened, why, and context",
22
+ tags: ["relevant", "tags"]
23
+ })
24
+
25
+ # Via CLI
26
+ rulebook memory save "content text" --type feature --title "Title" --tags tag1,tag2
27
+ ```
28
+
29
+ 2. **Choose the right type**:
30
+ - `bugfix` - Fixed a bug or resolved an error
31
+ - `feature` - Added new functionality
32
+ - `refactor` - Restructured code without changing behavior
33
+ - `decision` - Made an architecture or design choice (protected from eviction)
34
+ - `discovery` - Found something important about the codebase
35
+ - `change` - General code modification
36
+ - `observation` - Noted something worth remembering
37
+
38
+ 3. **Verify** the memory was saved:
39
+ ```
40
+ rulebook_memory_search({ query: "your title keywords" })
41
+ ```
42
+
43
+ **Best Practices**
44
+ - Save decisions early - they are protected from cache eviction
45
+ - Include "why" in content, not just "what"
46
+ - Use consistent tags across related memories
47
+ - Content within `<private>...</private>` tags will be automatically redacted
48
+ <!-- RULEBOOK:END -->