devrites 5.4.0 → 5.6.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 (490) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +8 -6
  3. package/docs/command-map.md +2 -2
  4. package/docs/engine/state-schema.md +12 -0
  5. package/docs/flow.md +4 -0
  6. package/docs/orchestration.md +5 -2
  7. package/engine/commands.go +2 -2
  8. package/engine/internal/devritespaths/paths.go +18 -0
  9. package/engine/internal/gate/gate.go +78 -0
  10. package/engine/internal/gate/gate_test.go +118 -0
  11. package/engine/internal/hostpack/hostpack.go +45 -6
  12. package/engine/internal/hostpack/hostpack_test.go +29 -13
  13. package/engine/internal/install/apply.go +14 -5
  14. package/engine/internal/install/install.go +8 -2
  15. package/engine/internal/install/install_test.go +12 -5
  16. package/engine/internal/install/merge.go +5 -0
  17. package/engine/internal/install/preflight.go +20 -2
  18. package/engine/internal/install/uninstall.go +5 -0
  19. package/engine/internal/install/update.go +1 -1
  20. package/engine/internal/lib/candidate.go +7 -3
  21. package/engine/internal/lib/manifest_union.go +326 -0
  22. package/engine/internal/lib/manifest_union_test.go +214 -0
  23. package/engine/internal/lib/observe_budgets.go +73 -0
  24. package/engine/internal/lib/observe_budgets_test.go +142 -0
  25. package/engine/internal/lib/observe_summary.go +74 -13
  26. package/engine/internal/lib/workspace_read.go +11 -6
  27. package/engine/internal/state/budgets.go +163 -0
  28. package/engine/internal/state/budgets_test.go +42 -0
  29. package/engine/internal/state/cursor.go +16 -10
  30. package/engine/internal/state/observation.go +50 -4
  31. package/engine/internal/state/status.go +38 -26
  32. package/engine/internal/state/taskgraph.go +23 -0
  33. package/engine/main.go +32 -13
  34. package/engine/root_routing_test.go +3 -1
  35. package/install.sh +4 -1
  36. package/pack/.claude/agents/devrites-code-reviewer.md +9 -6
  37. package/pack/.claude/agents/devrites-doubt-reviewer.md +6 -0
  38. package/pack/.claude/agents/devrites-plan-reviewer.md +7 -1
  39. package/pack/.claude/agents/devrites-slice-wright.md +42 -46
  40. package/pack/.claude/agents/devrites-test-analyst.md +9 -4
  41. package/pack/.claude/agents/devrites-upgrade-planner.md +9 -1
  42. package/pack/.claude/settings.json +17 -0
  43. package/pack/.claude/skills/devrites-api-interface/SKILL.md +2 -2
  44. package/pack/.claude/skills/devrites-doubt/SKILL.md +9 -17
  45. package/pack/.claude/skills/devrites-lib/reference/candidate-integrity.md +34 -35
  46. package/pack/.claude/skills/devrites-lib/reference/parallel-dispatch.md +11 -12
  47. package/pack/.claude/skills/devrites-lib/reference/standards/afk-hitl.md +104 -51
  48. package/pack/.claude/skills/devrites-lib/reference/standards/agents.md +1 -0
  49. package/pack/.claude/skills/devrites-lib/reference/standards/context-hygiene.md +45 -25
  50. package/pack/.claude/skills/devrites-lib/reference/standards/core.md +1 -1
  51. package/pack/.claude/skills/devrites-lib/reference/workspace-artifact-schema.md +80 -41
  52. package/pack/.claude/skills/rite-autocomplete/SKILL.md +19 -8
  53. package/pack/.claude/skills/rite-autocomplete/reference/loop.md +33 -1
  54. package/pack/.claude/skills/rite-build/SKILL.md +26 -19
  55. package/pack/.claude/skills/rite-build/reference/afk-discipline.md +1 -1
  56. package/pack/.claude/skills/rite-build/reference/parallel-batch.md +90 -40
  57. package/pack/.claude/skills/rite-build/reference/phase-contract.md +79 -59
  58. package/pack/.claude/skills/rite-build/reference/spec-drift-guard.md +14 -15
  59. package/pack/.claude/skills/rite-build/reference/wright-dispatch.md +8 -8
  60. package/pack/.claude/skills/rite-define/SKILL.md +4 -1
  61. package/pack/.claude/skills/rite-plan/SKILL.md +4 -1
  62. package/pack/.claude/skills/rite-plan/reference/replan-and-repair.md +21 -0
  63. package/pack/.claude/skills/rite-plan/reference/slicing.md +117 -15
  64. package/pack/.claude/skills/rite-prove/SKILL.md +20 -22
  65. package/pack/.claude/skills/rite-review/SKILL.md +23 -16
  66. package/pack/.claude/skills/rite-seal/SKILL.md +8 -8
  67. package/pack/.claude/skills/rite-seal/reference/final-evidence.md +6 -5
  68. package/pack/.claude/skills/rite-seal/reference/phase-contract.md +13 -13
  69. package/pack/.claude/skills/rite-ship/SKILL.md +3 -0
  70. package/pack/.claude/skills/rite-ship/reference/close-out.md +16 -2
  71. package/pack/.claude/skills/rite-ship/reference/git-ship.md +14 -5
  72. package/pack/.claude/skills/rite-spec/SKILL.md +6 -0
  73. package/pack/.claude/skills/rite-spec/reference/state-workspace.md +6 -0
  74. package/pack/.claude/skills/rite-status/SKILL.md +4 -1
  75. package/pack/.claude/skills/rite-temper/SKILL.md +14 -11
  76. package/pack/.claude/skills/rite-temper/reference/anti-patterns.md +14 -13
  77. package/pack/.claude/skills/rite-temper/reference/review-dimensions.md +3 -4
  78. package/pack/.claude/skills/rite-upgrade/SKILL.md +11 -2
  79. package/pack/.claude/skills/rite-vet/SKILL.md +22 -15
  80. package/pack/.claude/skills/rite-vet/reference/anti-patterns.md +11 -9
  81. package/pack/.claude/skills/rite-vet/reference/depth.md +6 -7
  82. package/pack/.claude/skills/rite-vet/reference/review-axes.md +39 -14
  83. package/pack/generated/README.md +5 -1
  84. package/pack/generated/claude/agents/devrites-code-reviewer.md +9 -6
  85. package/pack/generated/claude/agents/devrites-doubt-reviewer.md +6 -0
  86. package/pack/generated/claude/agents/devrites-plan-reviewer.md +7 -1
  87. package/pack/generated/claude/agents/devrites-slice-wright.md +42 -46
  88. package/pack/generated/claude/agents/devrites-test-analyst.md +9 -4
  89. package/pack/generated/claude/agents/devrites-upgrade-planner.md +9 -1
  90. package/pack/generated/claude/settings.json +17 -0
  91. package/pack/generated/claude/skills/devrites-api-interface/SKILL.md +2 -2
  92. package/pack/generated/claude/skills/devrites-doubt/SKILL.md +9 -17
  93. package/pack/generated/claude/skills/devrites-lib/reference/candidate-integrity.md +34 -35
  94. package/pack/generated/claude/skills/devrites-lib/reference/parallel-dispatch.md +11 -12
  95. package/pack/generated/claude/skills/devrites-lib/reference/standards/afk-hitl.md +104 -51
  96. package/pack/generated/claude/skills/devrites-lib/reference/standards/agents.md +1 -0
  97. package/pack/generated/claude/skills/devrites-lib/reference/standards/context-hygiene.md +45 -25
  98. package/pack/generated/claude/skills/devrites-lib/reference/standards/core.md +1 -1
  99. package/pack/generated/claude/skills/devrites-lib/reference/workspace-artifact-schema.md +80 -41
  100. package/pack/generated/claude/skills/rite-autocomplete/SKILL.md +19 -8
  101. package/pack/generated/claude/skills/rite-autocomplete/reference/loop.md +33 -1
  102. package/pack/generated/claude/skills/rite-build/SKILL.md +26 -19
  103. package/pack/generated/claude/skills/rite-build/reference/afk-discipline.md +1 -1
  104. package/pack/generated/claude/skills/rite-build/reference/parallel-batch.md +90 -40
  105. package/pack/generated/claude/skills/rite-build/reference/phase-contract.md +79 -59
  106. package/pack/generated/claude/skills/rite-build/reference/spec-drift-guard.md +14 -15
  107. package/pack/generated/claude/skills/rite-build/reference/wright-dispatch.md +8 -8
  108. package/pack/generated/claude/skills/rite-define/SKILL.md +4 -1
  109. package/pack/generated/claude/skills/rite-plan/SKILL.md +4 -1
  110. package/pack/generated/claude/skills/rite-plan/reference/replan-and-repair.md +21 -0
  111. package/pack/generated/claude/skills/rite-plan/reference/slicing.md +117 -15
  112. package/pack/generated/claude/skills/rite-prove/SKILL.md +20 -22
  113. package/pack/generated/claude/skills/rite-review/SKILL.md +23 -16
  114. package/pack/generated/claude/skills/rite-seal/SKILL.md +8 -8
  115. package/pack/generated/claude/skills/rite-seal/reference/final-evidence.md +6 -5
  116. package/pack/generated/claude/skills/rite-seal/reference/phase-contract.md +13 -13
  117. package/pack/generated/claude/skills/rite-ship/SKILL.md +3 -0
  118. package/pack/generated/claude/skills/rite-ship/reference/close-out.md +16 -2
  119. package/pack/generated/claude/skills/rite-ship/reference/git-ship.md +14 -5
  120. package/pack/generated/claude/skills/rite-spec/SKILL.md +6 -0
  121. package/pack/generated/claude/skills/rite-spec/reference/state-workspace.md +6 -0
  122. package/pack/generated/claude/skills/rite-status/SKILL.md +4 -1
  123. package/pack/generated/claude/skills/rite-temper/SKILL.md +14 -11
  124. package/pack/generated/claude/skills/rite-temper/reference/anti-patterns.md +14 -13
  125. package/pack/generated/claude/skills/rite-temper/reference/review-dimensions.md +3 -4
  126. package/pack/generated/claude/skills/rite-upgrade/SKILL.md +11 -2
  127. package/pack/generated/claude/skills/rite-vet/SKILL.md +22 -15
  128. package/pack/generated/claude/skills/rite-vet/reference/anti-patterns.md +11 -9
  129. package/pack/generated/claude/skills/rite-vet/reference/depth.md +6 -7
  130. package/pack/generated/claude/skills/rite-vet/reference/review-axes.md +39 -14
  131. package/pack/generated/codex/agents/devrites-code-reviewer.toml +9 -6
  132. package/pack/generated/codex/agents/devrites-doubt-reviewer.toml +6 -0
  133. package/pack/generated/codex/agents/devrites-plan-reviewer.toml +7 -1
  134. package/pack/generated/codex/agents/devrites-slice-wright.toml +42 -46
  135. package/pack/generated/codex/agents/devrites-test-analyst.toml +9 -4
  136. package/pack/generated/codex/agents/devrites-upgrade-planner.toml +9 -1
  137. package/pack/generated/codex/skills/devrites-api-interface/SKILL.md +2 -2
  138. package/pack/generated/codex/skills/devrites-doubt/SKILL.md +9 -17
  139. package/pack/generated/codex/skills/devrites-lib/reference/candidate-integrity.md +34 -35
  140. package/pack/generated/codex/skills/devrites-lib/reference/parallel-dispatch.md +11 -12
  141. package/pack/generated/codex/skills/devrites-lib/reference/standards/afk-hitl.md +104 -51
  142. package/pack/generated/codex/skills/devrites-lib/reference/standards/agents.md +1 -0
  143. package/pack/generated/codex/skills/devrites-lib/reference/standards/context-hygiene.md +45 -25
  144. package/pack/generated/codex/skills/devrites-lib/reference/standards/core.md +1 -1
  145. package/pack/generated/codex/skills/devrites-lib/reference/workspace-artifact-schema.md +80 -41
  146. package/pack/generated/codex/skills/rite-autocomplete/SKILL.md +19 -8
  147. package/pack/generated/codex/skills/rite-autocomplete/reference/loop.md +33 -1
  148. package/pack/generated/codex/skills/rite-build/SKILL.md +26 -19
  149. package/pack/generated/codex/skills/rite-build/reference/afk-discipline.md +1 -1
  150. package/pack/generated/codex/skills/rite-build/reference/parallel-batch.md +90 -40
  151. package/pack/generated/codex/skills/rite-build/reference/phase-contract.md +79 -59
  152. package/pack/generated/codex/skills/rite-build/reference/spec-drift-guard.md +14 -15
  153. package/pack/generated/codex/skills/rite-build/reference/wright-dispatch.md +8 -8
  154. package/pack/generated/codex/skills/rite-define/SKILL.md +4 -1
  155. package/pack/generated/codex/skills/rite-plan/SKILL.md +4 -1
  156. package/pack/generated/codex/skills/rite-plan/reference/replan-and-repair.md +21 -0
  157. package/pack/generated/codex/skills/rite-plan/reference/slicing.md +117 -15
  158. package/pack/generated/codex/skills/rite-prove/SKILL.md +20 -22
  159. package/pack/generated/codex/skills/rite-review/SKILL.md +23 -16
  160. package/pack/generated/codex/skills/rite-seal/SKILL.md +8 -8
  161. package/pack/generated/codex/skills/rite-seal/reference/final-evidence.md +6 -5
  162. package/pack/generated/codex/skills/rite-seal/reference/phase-contract.md +13 -13
  163. package/pack/generated/codex/skills/rite-ship/SKILL.md +3 -0
  164. package/pack/generated/codex/skills/rite-ship/reference/close-out.md +16 -2
  165. package/pack/generated/codex/skills/rite-ship/reference/git-ship.md +14 -5
  166. package/pack/generated/codex/skills/rite-spec/SKILL.md +6 -0
  167. package/pack/generated/codex/skills/rite-spec/reference/state-workspace.md +6 -0
  168. package/pack/generated/codex/skills/rite-status/SKILL.md +4 -1
  169. package/pack/generated/codex/skills/rite-temper/SKILL.md +14 -11
  170. package/pack/generated/codex/skills/rite-temper/reference/anti-patterns.md +14 -13
  171. package/pack/generated/codex/skills/rite-temper/reference/review-dimensions.md +3 -4
  172. package/pack/generated/codex/skills/rite-upgrade/SKILL.md +11 -2
  173. package/pack/generated/codex/skills/rite-vet/SKILL.md +22 -15
  174. package/pack/generated/codex/skills/rite-vet/reference/anti-patterns.md +11 -9
  175. package/pack/generated/codex/skills/rite-vet/reference/depth.md +6 -7
  176. package/pack/generated/codex/skills/rite-vet/reference/review-axes.md +39 -14
  177. package/pack/generated/omp/agents/devrites-code-reviewer.md +9 -6
  178. package/pack/generated/omp/agents/devrites-doubt-reviewer.md +6 -0
  179. package/pack/generated/omp/agents/devrites-plan-reviewer.md +7 -1
  180. package/pack/generated/omp/agents/devrites-slice-wright.md +42 -46
  181. package/pack/generated/omp/agents/devrites-test-analyst.md +9 -4
  182. package/pack/generated/omp/agents/devrites-upgrade-planner.md +9 -1
  183. package/pack/generated/omp/skills/devrites-api-interface/SKILL.md +2 -2
  184. package/pack/generated/omp/skills/devrites-doubt/SKILL.md +9 -17
  185. package/pack/generated/omp/skills/devrites-lib/reference/candidate-integrity.md +34 -35
  186. package/pack/generated/omp/skills/devrites-lib/reference/parallel-dispatch.md +11 -12
  187. package/pack/generated/omp/skills/devrites-lib/reference/standards/afk-hitl.md +104 -51
  188. package/pack/generated/omp/skills/devrites-lib/reference/standards/agents.md +1 -0
  189. package/pack/generated/omp/skills/devrites-lib/reference/standards/context-hygiene.md +45 -25
  190. package/pack/generated/omp/skills/devrites-lib/reference/standards/core.md +1 -1
  191. package/pack/generated/omp/skills/devrites-lib/reference/workspace-artifact-schema.md +80 -41
  192. package/pack/generated/omp/skills/rite-autocomplete/SKILL.md +19 -8
  193. package/pack/generated/omp/skills/rite-autocomplete/reference/loop.md +33 -1
  194. package/pack/generated/omp/skills/rite-build/SKILL.md +26 -19
  195. package/pack/generated/omp/skills/rite-build/reference/afk-discipline.md +1 -1
  196. package/pack/generated/omp/skills/rite-build/reference/parallel-batch.md +90 -40
  197. package/pack/generated/omp/skills/rite-build/reference/phase-contract.md +79 -59
  198. package/pack/generated/omp/skills/rite-build/reference/spec-drift-guard.md +14 -15
  199. package/pack/generated/omp/skills/rite-build/reference/wright-dispatch.md +8 -8
  200. package/pack/generated/omp/skills/rite-define/SKILL.md +4 -1
  201. package/pack/generated/omp/skills/rite-plan/SKILL.md +4 -1
  202. package/pack/generated/omp/skills/rite-plan/reference/replan-and-repair.md +21 -0
  203. package/pack/generated/omp/skills/rite-plan/reference/slicing.md +117 -15
  204. package/pack/generated/omp/skills/rite-prove/SKILL.md +20 -22
  205. package/pack/generated/omp/skills/rite-review/SKILL.md +23 -16
  206. package/pack/generated/omp/skills/rite-seal/SKILL.md +8 -8
  207. package/pack/generated/omp/skills/rite-seal/reference/final-evidence.md +6 -5
  208. package/pack/generated/omp/skills/rite-seal/reference/phase-contract.md +13 -13
  209. package/pack/generated/omp/skills/rite-ship/SKILL.md +3 -0
  210. package/pack/generated/omp/skills/rite-ship/reference/close-out.md +16 -2
  211. package/pack/generated/omp/skills/rite-ship/reference/git-ship.md +14 -5
  212. package/pack/generated/omp/skills/rite-spec/SKILL.md +6 -0
  213. package/pack/generated/omp/skills/rite-spec/reference/state-workspace.md +6 -0
  214. package/pack/generated/omp/skills/rite-status/SKILL.md +4 -1
  215. package/pack/generated/omp/skills/rite-temper/SKILL.md +14 -11
  216. package/pack/generated/omp/skills/rite-temper/reference/anti-patterns.md +14 -13
  217. package/pack/generated/omp/skills/rite-temper/reference/review-dimensions.md +3 -4
  218. package/pack/generated/omp/skills/rite-upgrade/SKILL.md +11 -2
  219. package/pack/generated/omp/skills/rite-vet/SKILL.md +22 -15
  220. package/pack/generated/omp/skills/rite-vet/reference/anti-patterns.md +11 -9
  221. package/pack/generated/omp/skills/rite-vet/reference/depth.md +6 -7
  222. package/pack/generated/omp/skills/rite-vet/reference/review-axes.md +39 -14
  223. package/pack/generated/pi/AGENTS.md +22 -0
  224. package/pack/generated/pi/agents/devrites-code-reviewer.md +142 -0
  225. package/pack/generated/pi/agents/devrites-devex-reviewer.md +124 -0
  226. package/pack/generated/pi/agents/devrites-doubt-reviewer.md +88 -0
  227. package/pack/generated/pi/agents/devrites-evidence-scout.md +72 -0
  228. package/pack/generated/pi/agents/devrites-frontend-reviewer.md +116 -0
  229. package/pack/generated/pi/agents/devrites-performance-reviewer.md +115 -0
  230. package/pack/generated/pi/agents/devrites-plan-drafter.md +99 -0
  231. package/pack/generated/pi/agents/devrites-plan-reviewer.md +142 -0
  232. package/pack/generated/pi/agents/devrites-proof-runner.md +74 -0
  233. package/pack/generated/pi/agents/devrites-retrospector.md +61 -0
  234. package/pack/generated/pi/agents/devrites-security-auditor.md +109 -0
  235. package/pack/generated/pi/agents/devrites-simplifier-reviewer.md +94 -0
  236. package/pack/generated/pi/agents/devrites-slice-wright.md +204 -0
  237. package/pack/generated/pi/agents/devrites-spec-reviewer.md +96 -0
  238. package/pack/generated/pi/agents/devrites-strategy-reviewer.md +100 -0
  239. package/pack/generated/pi/agents/devrites-test-analyst.md +94 -0
  240. package/pack/generated/pi/agents/devrites-upgrade-planner.md +89 -0
  241. package/pack/generated/pi/prompts/rite-adopt.md +5 -0
  242. package/pack/generated/pi/prompts/rite-autocomplete.md +5 -0
  243. package/pack/generated/pi/prompts/rite-build.md +5 -0
  244. package/pack/generated/pi/prompts/rite-clarify.md +5 -0
  245. package/pack/generated/pi/prompts/rite-converge.md +5 -0
  246. package/pack/generated/pi/prompts/rite-customize.md +5 -0
  247. package/pack/generated/pi/prompts/rite-define.md +5 -0
  248. package/pack/generated/pi/prompts/rite-doctor.md +5 -0
  249. package/pack/generated/pi/prompts/rite-dogfood.md +5 -0
  250. package/pack/generated/pi/prompts/rite-explain.md +5 -0
  251. package/pack/generated/pi/prompts/rite-frame.md +5 -0
  252. package/pack/generated/pi/prompts/rite-handoff.md +5 -0
  253. package/pack/generated/pi/prompts/rite-learn.md +5 -0
  254. package/pack/generated/pi/prompts/rite-plan.md +5 -0
  255. package/pack/generated/pi/prompts/rite-polish.md +5 -0
  256. package/pack/generated/pi/prompts/rite-pov.md +5 -0
  257. package/pack/generated/pi/prompts/rite-pr-feedback.md +5 -0
  258. package/pack/generated/pi/prompts/rite-pressure-test.md +5 -0
  259. package/pack/generated/pi/prompts/rite-prototype.md +5 -0
  260. package/pack/generated/pi/prompts/rite-prove.md +5 -0
  261. package/pack/generated/pi/prompts/rite-quick.md +5 -0
  262. package/pack/generated/pi/prompts/rite-resolve.md +5 -0
  263. package/pack/generated/pi/prompts/rite-review.md +5 -0
  264. package/pack/generated/pi/prompts/rite-seal.md +5 -0
  265. package/pack/generated/pi/prompts/rite-ship.md +5 -0
  266. package/pack/generated/pi/prompts/rite-spec.md +5 -0
  267. package/pack/generated/pi/prompts/rite-status.md +5 -0
  268. package/pack/generated/pi/prompts/rite-temper.md +5 -0
  269. package/pack/generated/pi/prompts/rite-upgrade.md +5 -0
  270. package/pack/generated/pi/prompts/rite-vet.md +5 -0
  271. package/pack/generated/pi/prompts/rite-watch-pr.md +5 -0
  272. package/pack/generated/pi/prompts/rite-zoom-out.md +5 -0
  273. package/pack/generated/pi/prompts/rite.md +5 -0
  274. package/pack/generated/pi/skills/devrites-api-interface/SKILL.md +63 -0
  275. package/pack/generated/pi/skills/devrites-audit/SKILL.md +50 -0
  276. package/pack/generated/pi/skills/devrites-browser-proof/SKILL.md +76 -0
  277. package/pack/generated/pi/skills/devrites-browser-proof/reference/browser-performance.md +15 -0
  278. package/pack/generated/pi/skills/devrites-browser-proof/reference/visual-verdict.md +34 -0
  279. package/pack/generated/pi/skills/devrites-debug-recovery/SKILL.md +96 -0
  280. package/pack/generated/pi/skills/devrites-debug-recovery/reference/build-the-loop.md +58 -0
  281. package/pack/generated/pi/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +34 -0
  282. package/pack/generated/pi/skills/devrites-debug-recovery/reference/hypotheses.md +17 -0
  283. package/pack/generated/pi/skills/devrites-debug-recovery/reference/instrumentation.md +21 -0
  284. package/pack/generated/pi/skills/devrites-debug-recovery/reference/regression-test.md +30 -0
  285. package/pack/generated/pi/skills/devrites-debug-recovery/reference/trace.md +25 -0
  286. package/pack/generated/pi/skills/devrites-doubt/SKILL.md +79 -0
  287. package/pack/generated/pi/skills/devrites-frontend-craft/SKILL.md +86 -0
  288. package/pack/generated/pi/skills/devrites-frontend-craft/reference/craft.md +63 -0
  289. package/pack/generated/pi/skills/devrites-frontend-craft/reference/design-references.md +116 -0
  290. package/pack/generated/pi/skills/devrites-frontend-craft/reference/fullstack.md +46 -0
  291. package/pack/generated/pi/skills/devrites-frontend-craft/reference/quality-standards.md +294 -0
  292. package/pack/generated/pi/skills/devrites-frontend-craft/reference/reuse-first.md +53 -0
  293. package/pack/generated/pi/skills/devrites-frontend-craft/reference/shape.md +56 -0
  294. package/pack/generated/pi/skills/devrites-interview/SKILL.md +102 -0
  295. package/pack/generated/pi/skills/devrites-lib/SKILL.md +58 -0
  296. package/pack/generated/pi/skills/devrites-lib/reference/candidate-integrity.md +42 -0
  297. package/pack/generated/pi/skills/devrites-lib/reference/intent-map.md +64 -0
  298. package/pack/generated/pi/skills/devrites-lib/reference/orchestration-profiles.md +27 -0
  299. package/pack/generated/pi/skills/devrites-lib/reference/parallel-dispatch.md +73 -0
  300. package/pack/generated/pi/skills/devrites-lib/reference/reply-contract.md +88 -0
  301. package/pack/generated/pi/skills/devrites-lib/reference/standards/README.md +60 -0
  302. package/pack/generated/pi/skills/devrites-lib/reference/standards/acceptance-preserving-reslice.md +30 -0
  303. package/pack/generated/pi/skills/devrites-lib/reference/standards/afk-hitl.md +398 -0
  304. package/pack/generated/pi/skills/devrites-lib/reference/standards/agents.md +99 -0
  305. package/pack/generated/pi/skills/devrites-lib/reference/standards/anti-patterns.md +48 -0
  306. package/pack/generated/pi/skills/devrites-lib/reference/standards/browser-proof-checklist.md +24 -0
  307. package/pack/generated/pi/skills/devrites-lib/reference/standards/ci-cd.md +50 -0
  308. package/pack/generated/pi/skills/devrites-lib/reference/standards/code-navigation.md +43 -0
  309. package/pack/generated/pi/skills/devrites-lib/reference/standards/code-review.md +108 -0
  310. package/pack/generated/pi/skills/devrites-lib/reference/standards/coding-style.md +48 -0
  311. package/pack/generated/pi/skills/devrites-lib/reference/standards/context-hygiene.md +109 -0
  312. package/pack/generated/pi/skills/devrites-lib/reference/standards/core.md +167 -0
  313. package/pack/generated/pi/skills/devrites-lib/reference/standards/data-integrity.md +118 -0
  314. package/pack/generated/pi/skills/devrites-lib/reference/standards/debug-recovery.md +28 -0
  315. package/pack/generated/pi/skills/devrites-lib/reference/standards/definition-of-done.md +19 -0
  316. package/pack/generated/pi/skills/devrites-lib/reference/standards/deprecation.md +31 -0
  317. package/pack/generated/pi/skills/devrites-lib/reference/standards/developer-experience.md +119 -0
  318. package/pack/generated/pi/skills/devrites-lib/reference/standards/development-workflow.md +29 -0
  319. package/pack/generated/pi/skills/devrites-lib/reference/standards/documentation.md +43 -0
  320. package/pack/generated/pi/skills/devrites-lib/reference/standards/edge-case-trace.md +92 -0
  321. package/pack/generated/pi/skills/devrites-lib/reference/standards/elicitation.md +85 -0
  322. package/pack/generated/pi/skills/devrites-lib/reference/standards/error-handling.md +47 -0
  323. package/pack/generated/pi/skills/devrites-lib/reference/standards/git-workflow.md +49 -0
  324. package/pack/generated/pi/skills/devrites-lib/reference/standards/hooks.md +25 -0
  325. package/pack/generated/pi/skills/devrites-lib/reference/standards/integration-reliability.md +102 -0
  326. package/pack/generated/pi/skills/devrites-lib/reference/standards/loop-operations.md +85 -0
  327. package/pack/generated/pi/skills/devrites-lib/reference/standards/observability.md +88 -0
  328. package/pack/generated/pi/skills/devrites-lib/reference/standards/one-shot-actions.md +97 -0
  329. package/pack/generated/pi/skills/devrites-lib/reference/standards/patterns.md +68 -0
  330. package/pack/generated/pi/skills/devrites-lib/reference/standards/performance.md +51 -0
  331. package/pack/generated/pi/skills/devrites-lib/reference/standards/principles.md +42 -0
  332. package/pack/generated/pi/skills/devrites-lib/reference/standards/prose-style.md +123 -0
  333. package/pack/generated/pi/skills/devrites-lib/reference/standards/release/ship-checklist.md +8 -0
  334. package/pack/generated/pi/skills/devrites-lib/reference/standards/repository-topology.md +80 -0
  335. package/pack/generated/pi/skills/devrites-lib/reference/standards/review-checklist.md +12 -0
  336. package/pack/generated/pi/skills/devrites-lib/reference/standards/security-checklist.md +25 -0
  337. package/pack/generated/pi/skills/devrites-lib/reference/standards/security.md +202 -0
  338. package/pack/generated/pi/skills/devrites-lib/reference/standards/skill-authoring.md +209 -0
  339. package/pack/generated/pi/skills/devrites-lib/reference/standards/spec-grammar.md +197 -0
  340. package/pack/generated/pi/skills/devrites-lib/reference/standards/test-proof-checklist.md +13 -0
  341. package/pack/generated/pi/skills/devrites-lib/reference/standards/testing.md +212 -0
  342. package/pack/generated/pi/skills/devrites-lib/reference/standards/tooling.md +92 -0
  343. package/pack/generated/pi/skills/devrites-lib/reference/standards/workflow-artifacts.md +427 -0
  344. package/pack/generated/pi/skills/devrites-lib/reference/visual-playbooks/code.md +44 -0
  345. package/pack/generated/pi/skills/devrites-lib/reference/visual-playbooks/comparison.md +42 -0
  346. package/pack/generated/pi/skills/devrites-lib/reference/visual-playbooks/diagram.md +51 -0
  347. package/pack/generated/pi/skills/devrites-lib/reference/visual-playbooks/index.md +66 -0
  348. package/pack/generated/pi/skills/devrites-lib/reference/visual-playbooks/input.md +46 -0
  349. package/pack/generated/pi/skills/devrites-lib/reference/visual-playbooks/outline-template.md +106 -0
  350. package/pack/generated/pi/skills/devrites-lib/reference/visual-playbooks/plan.md +48 -0
  351. package/pack/generated/pi/skills/devrites-lib/reference/visual-playbooks/slides.md +40 -0
  352. package/pack/generated/pi/skills/devrites-lib/reference/visual-playbooks/table.md +42 -0
  353. package/pack/generated/pi/skills/devrites-lib/reference/workspace-artifact-schema.md +267 -0
  354. package/pack/generated/pi/skills/devrites-prose-craft/SKILL.md +73 -0
  355. package/pack/generated/pi/skills/devrites-prose-craft/reference/banned-phrases.md +132 -0
  356. package/pack/generated/pi/skills/devrites-prose-craft/reference/examples.md +131 -0
  357. package/pack/generated/pi/skills/devrites-prose-craft/reference/structures.md +196 -0
  358. package/pack/generated/pi/skills/devrites-source-driven/SKILL.md +52 -0
  359. package/pack/generated/pi/skills/devrites-ux-shape/SKILL.md +134 -0
  360. package/pack/generated/pi/skills/devrites-ux-shape/reference/brief-template.md +108 -0
  361. package/pack/generated/pi/skills/devrites-ux-shape/reference/visual-direction-probe.md +48 -0
  362. package/pack/generated/pi/skills/rite/SKILL.md +148 -0
  363. package/pack/generated/pi/skills/rite/reference/menu.md +48 -0
  364. package/pack/generated/pi/skills/rite-adopt/SKILL.md +52 -0
  365. package/pack/generated/pi/skills/rite-adopt/reference/adoption.md +19 -0
  366. package/pack/generated/pi/skills/rite-adopt/reference/anti-patterns.md +19 -0
  367. package/pack/generated/pi/skills/rite-autocomplete/SKILL.md +132 -0
  368. package/pack/generated/pi/skills/rite-autocomplete/reference/decision-policy.md +41 -0
  369. package/pack/generated/pi/skills/rite-autocomplete/reference/loop.md +148 -0
  370. package/pack/generated/pi/skills/rite-autocomplete/reference/stop-conditions.md +92 -0
  371. package/pack/generated/pi/skills/rite-build/SKILL.md +96 -0
  372. package/pack/generated/pi/skills/rite-build/reference/afk-discipline.md +145 -0
  373. package/pack/generated/pi/skills/rite-build/reference/anti-patterns.md +23 -0
  374. package/pack/generated/pi/skills/rite-build/reference/checkpoint-protocol.md +120 -0
  375. package/pack/generated/pi/skills/rite-build/reference/checkpoint.md +44 -0
  376. package/pack/generated/pi/skills/rite-build/reference/frontend-trigger.md +39 -0
  377. package/pack/generated/pi/skills/rite-build/reference/one-slice-cycle.md +50 -0
  378. package/pack/generated/pi/skills/rite-build/reference/output.md +33 -0
  379. package/pack/generated/pi/skills/rite-build/reference/parallel-batch.md +205 -0
  380. package/pack/generated/pi/skills/rite-build/reference/phase-contract.md +87 -0
  381. package/pack/generated/pi/skills/rite-build/reference/spec-drift-guard.md +84 -0
  382. package/pack/generated/pi/skills/rite-build/reference/tdd.md +27 -0
  383. package/pack/generated/pi/skills/rite-build/reference/wright-dispatch.md +89 -0
  384. package/pack/generated/pi/skills/rite-clarify/SKILL.md +99 -0
  385. package/pack/generated/pi/skills/rite-clarify/reference/anti-patterns.md +24 -0
  386. package/pack/generated/pi/skills/rite-clarify/reference/decision-coverage.md +55 -0
  387. package/pack/generated/pi/skills/rite-converge/SKILL.md +145 -0
  388. package/pack/generated/pi/skills/rite-converge/reference/anti-patterns.md +35 -0
  389. package/pack/generated/pi/skills/rite-converge/reference/convergence-assessment.md +65 -0
  390. package/pack/generated/pi/skills/rite-customize/SKILL.md +60 -0
  391. package/pack/generated/pi/skills/rite-define/SKILL.md +169 -0
  392. package/pack/generated/pi/skills/rite-define/reference/anti-patterns.md +26 -0
  393. package/pack/generated/pi/skills/rite-define/reference/gates.md +154 -0
  394. package/pack/generated/pi/skills/rite-define/reference/plan-template.md +149 -0
  395. package/pack/generated/pi/skills/rite-doctor/SKILL.md +69 -0
  396. package/pack/generated/pi/skills/rite-dogfood/SKILL.md +55 -0
  397. package/pack/generated/pi/skills/rite-explain/SKILL.md +152 -0
  398. package/pack/generated/pi/skills/rite-explain/reference/intake.md +89 -0
  399. package/pack/generated/pi/skills/rite-frame/SKILL.md +115 -0
  400. package/pack/generated/pi/skills/rite-frame/reference/failure-modes.md +66 -0
  401. package/pack/generated/pi/skills/rite-handoff/SKILL.md +97 -0
  402. package/pack/generated/pi/skills/rite-handoff/reference/handoff-template.md +44 -0
  403. package/pack/generated/pi/skills/rite-learn/SKILL.md +72 -0
  404. package/pack/generated/pi/skills/rite-plan/SKILL.md +186 -0
  405. package/pack/generated/pi/skills/rite-plan/reference/anti-patterns.md +34 -0
  406. package/pack/generated/pi/skills/rite-plan/reference/dependency-graph.md +48 -0
  407. package/pack/generated/pi/skills/rite-plan/reference/replan-and-repair.md +105 -0
  408. package/pack/generated/pi/skills/rite-plan/reference/slicing.md +167 -0
  409. package/pack/generated/pi/skills/rite-plan/reference/task-breakdown.md +42 -0
  410. package/pack/generated/pi/skills/rite-polish/SKILL.md +104 -0
  411. package/pack/generated/pi/skills/rite-polish/reference/adr-promotion.md +11 -0
  412. package/pack/generated/pi/skills/rite-polish/reference/anti-ai-slop.md +187 -0
  413. package/pack/generated/pi/skills/rite-polish/reference/anti-patterns.md +30 -0
  414. package/pack/generated/pi/skills/rite-polish/reference/backend-polish.md +80 -0
  415. package/pack/generated/pi/skills/rite-polish/reference/browser-polish-evidence.md +33 -0
  416. package/pack/generated/pi/skills/rite-polish/reference/code.md +82 -0
  417. package/pack/generated/pi/skills/rite-polish/reference/design-memory.md +117 -0
  418. package/pack/generated/pi/skills/rite-polish/reference/design-system-discovery.md +8 -0
  419. package/pack/generated/pi/skills/rite-polish/reference/harden-checklist.md +109 -0
  420. package/pack/generated/pi/skills/rite-polish/reference/ledger.md +65 -0
  421. package/pack/generated/pi/skills/rite-polish/reference/ui.md +137 -0
  422. package/pack/generated/pi/skills/rite-pov/SKILL.md +58 -0
  423. package/pack/generated/pi/skills/rite-pr-feedback/SKILL.md +54 -0
  424. package/pack/generated/pi/skills/rite-pressure-test/SKILL.md +67 -0
  425. package/pack/generated/pi/skills/rite-prototype/SKILL.md +104 -0
  426. package/pack/generated/pi/skills/rite-prove/SKILL.md +120 -0
  427. package/pack/generated/pi/skills/rite-prove/reference/acceptance-proof.md +88 -0
  428. package/pack/generated/pi/skills/rite-prove/reference/anti-patterns.md +25 -0
  429. package/pack/generated/pi/skills/rite-prove/reference/browser-proof.md +51 -0
  430. package/pack/generated/pi/skills/rite-prove/reference/failure-triage.md +43 -0
  431. package/pack/generated/pi/skills/rite-prove/reference/proof-ladder.md +28 -0
  432. package/pack/generated/pi/skills/rite-prove/reference/test-command-discovery.md +30 -0
  433. package/pack/generated/pi/skills/rite-quick/SKILL.md +82 -0
  434. package/pack/generated/pi/skills/rite-resolve/SKILL.md +95 -0
  435. package/pack/generated/pi/skills/rite-resolve/reference/answer-protocol.md +118 -0
  436. package/pack/generated/pi/skills/rite-review/SKILL.md +170 -0
  437. package/pack/generated/pi/skills/rite-review/reference/anti-patterns.md +32 -0
  438. package/pack/generated/pi/skills/rite-review/reference/cognitive-load.md +90 -0
  439. package/pack/generated/pi/skills/rite-review/reference/feature-scoped-review.md +26 -0
  440. package/pack/generated/pi/skills/rite-review/reference/five-axis-review.md +66 -0
  441. package/pack/generated/pi/skills/rite-review/reference/nielsen-heuristics.md +126 -0
  442. package/pack/generated/pi/skills/rite-review/reference/performance-checklist.md +80 -0
  443. package/pack/generated/pi/skills/rite-review/reference/performance-review.md +14 -0
  444. package/pack/generated/pi/skills/rite-review/reference/security-review.md +42 -0
  445. package/pack/generated/pi/skills/rite-seal/SKILL.md +75 -0
  446. package/pack/generated/pi/skills/rite-seal/reference/anti-patterns.md +29 -0
  447. package/pack/generated/pi/skills/rite-seal/reference/final-evidence.md +41 -0
  448. package/pack/generated/pi/skills/rite-seal/reference/go-no-go.md +29 -0
  449. package/pack/generated/pi/skills/rite-seal/reference/output.md +5 -0
  450. package/pack/generated/pi/skills/rite-seal/reference/phase-contract.md +47 -0
  451. package/pack/generated/pi/skills/rite-seal/reference/risk-and-rollback.md +56 -0
  452. package/pack/generated/pi/skills/rite-seal/reference/seal-template.md +27 -0
  453. package/pack/generated/pi/skills/rite-ship/SKILL.md +88 -0
  454. package/pack/generated/pi/skills/rite-ship/reference/anti-patterns.md +28 -0
  455. package/pack/generated/pi/skills/rite-ship/reference/close-out.md +68 -0
  456. package/pack/generated/pi/skills/rite-ship/reference/git-ship.md +120 -0
  457. package/pack/generated/pi/skills/rite-ship/reference/rollout.md +62 -0
  458. package/pack/generated/pi/skills/rite-ship/reference/ship-template.md +39 -0
  459. package/pack/generated/pi/skills/rite-spec/SKILL.md +150 -0
  460. package/pack/generated/pi/skills/rite-spec/reference/acceptance-criteria.md +31 -0
  461. package/pack/generated/pi/skills/rite-spec/reference/ai-spec-template.md +40 -0
  462. package/pack/generated/pi/skills/rite-spec/reference/anti-patterns.md +27 -0
  463. package/pack/generated/pi/skills/rite-spec/reference/interview-patterns.md +56 -0
  464. package/pack/generated/pi/skills/rite-spec/reference/investigation.md +83 -0
  465. package/pack/generated/pi/skills/rite-spec/reference/question-protocol.md +36 -0
  466. package/pack/generated/pi/skills/rite-spec/reference/references-intake.md +62 -0
  467. package/pack/generated/pi/skills/rite-spec/reference/spec-checklists.md +89 -0
  468. package/pack/generated/pi/skills/rite-spec/reference/spec-template.md +154 -0
  469. package/pack/generated/pi/skills/rite-spec/reference/state-workspace.md +227 -0
  470. package/pack/generated/pi/skills/rite-status/SKILL.md +57 -0
  471. package/pack/generated/pi/skills/rite-temper/SKILL.md +130 -0
  472. package/pack/generated/pi/skills/rite-temper/reference/anti-patterns.md +30 -0
  473. package/pack/generated/pi/skills/rite-temper/reference/review-dimensions.md +66 -0
  474. package/pack/generated/pi/skills/rite-temper/reference/scope-modes.md +53 -0
  475. package/pack/generated/pi/skills/rite-temper/reference/significance.md +46 -0
  476. package/pack/generated/pi/skills/rite-temper/reference/strategy-template.md +90 -0
  477. package/pack/generated/pi/skills/rite-upgrade/SKILL.md +121 -0
  478. package/pack/generated/pi/skills/rite-vet/SKILL.md +193 -0
  479. package/pack/generated/pi/skills/rite-vet/reference/anti-patterns.md +43 -0
  480. package/pack/generated/pi/skills/rite-vet/reference/artifacts.md +202 -0
  481. package/pack/generated/pi/skills/rite-vet/reference/cross-model.md +19 -0
  482. package/pack/generated/pi/skills/rite-vet/reference/depth.md +59 -0
  483. package/pack/generated/pi/skills/rite-vet/reference/eng-lenses.md +48 -0
  484. package/pack/generated/pi/skills/rite-vet/reference/review-axes.md +201 -0
  485. package/pack/generated/pi/skills/rite-watch-pr/SKILL.md +85 -0
  486. package/pack/generated/pi/skills/rite-zoom-out/SKILL.md +69 -0
  487. package/package.json +3 -2
  488. package/scripts/build-host-artifacts.sh +54 -4
  489. package/scripts/codex-generate.sh +6 -0
  490. package/scripts/pi-generate.sh +198 -0
@@ -59,6 +59,9 @@ expires_at: "<ISO-8601 UTC timestamp>" # absolute unattended-authority expiry
59
59
  # max_cost_usd: 10 # optional stricter host-observed cost cap
60
60
  notify: "ntfy.sh/my-topic" # shell command; examples: rite-build/reference/afk-discipline.md
61
61
  allow_gates: [advisory, validating] # gate severities AFK auto-handles (auto-picks the recommended option)
62
+ continue_sequence: true # after Seal GO, open the next recorded continuation
63
+ max_workspaces: 5 # workspaces one armed sequence may open
64
+ max_parallel: 10 # cap on eligible path-disjoint Build batches (1 = serial)
62
65
  ```
63
66
 
64
67
  The file is **read-only config**: never rewritten in place. `max_slices` is the initial
@@ -79,6 +82,49 @@ existing counter may be lowered but never increased or reinitialized. Once prese
79
82
  counter is the effective remaining budget even when the read-only sentinel omits
80
83
  `max_slices`.
81
84
 
85
+ ### Sequence continuation (`continue_sequence`, `max_workspaces`)
86
+
87
+ `continue_sequence: true` lets one armed run open the next **recorded** continuation
88
+ after a `Seal GO` instead of stopping. Absent means `1` — the current workspace only;
89
+ an existing sentinel never receives the default implicitly. `max_workspaces` is the
90
+ sequence budget (nonnegative decimal, fail closed): spend one when a new workspace is
91
+ opened, never when resuming the current one. `max_slices` stays **per workspace** —
92
+ each new workspace's `state.md` seeds its own `afk_slices_remaining`.
93
+
94
+ The chain lives in root-owned `state.md` cursor fields, not in chat:
95
+ `sequence_parent` (the immediately preceding workspace slug), `sequence_position`
96
+ (1-based ordinal), `sequence_workspaces_remaining` (slots the chain may still
97
+ open after this workspace), and — on the release milestone only —
98
+ `sequence_role: release`. Seeding is exactly-once because the values are
99
+ derived, not remembered: a continuation's fields are computed from its recorded
100
+ parent and the parent's counter at creation, and a resumed run that finds a
101
+ continuation workspace missing the fields re-derives the same values from its
102
+ `brief.md` parent/position plus the parent's counter — never a second charge. A
103
+ workspace without a recorded parent/position is not a sequence member; the
104
+ counter only decreases, malformed values fail closed, and `0` opens nothing.
105
+ `sequence_role: release` makes `check candidate` and `check seal` require the
106
+ candidate manifest to cover the whole recorded chain — run
107
+ `devrites-engine state merge-manifest <slug>` before Prove.
108
+
109
+ - Only continuations recorded in the parent's `decisions.md` sequence
110
+ ([slicing.md § Continuation workspaces](../../../rite-plan/reference/slicing.md#continuation-workspaces))
111
+ qualify; no recorded next entry, or the cap/expiry/review-queue bound reached, stops
112
+ with the winning reason.
113
+ - Milestones are **not** shipped: they stay sealed and unarchived in `.devrites/work/`
114
+ with `Next step: /rite-ship` preserved. Per-slice `WIP(<slug>)` checkpoints still
115
+ land locally ([checkpoint.md](../../../rite-build/reference/checkpoint.md)), so the tree
116
+ stays clean and crash-safe.
117
+ - Git stays human-gated. The release ship is one disclosed plan, one literal `GO`, and
118
+ one native approval; it collapses the sequence's `WIP` commits into the single
119
+ release commit and may archive the sealed predecessors.
120
+ - Every human-owned, safety, access, exhaustion, and `NO-GO` condition still stops the
121
+ run exactly as without this field.
122
+
123
+ `max_parallel` caps a Build batch for unattended runs; `1` forces the serial cycle.
124
+ Unattended runs take the largest eligible set ≤ cap and recompute after every integrate
125
+ ([parallel-batch.md § Dynamic selection and re-batching](../../../rite-build/reference/parallel-batch.md#dynamic-selection-and-re-batching));
126
+ an explicit `/rite-build --parallel N` cap wins for that invocation.
127
+
82
128
  ## Unattended resource envelope
83
129
 
84
130
  AFK writer admission needs a bounded input queue, effective slice cap, and valid
@@ -258,65 +304,72 @@ When `/rite-resolve` does resume a stopped session, the skill does **not** auto-
258
304
 
259
305
  ## AFK exception for discretionary pauses
260
306
 
261
- `devrites-doubt` and similar skills that "ask the user" follow this rule when
262
- `.devrites/AFK` exists:
307
+ With `.devrites/AFK`, apply decision ownership first. Accepted in-scope technical
308
+ corrections return to the caller for repair/verification; severity blocks acceptance,
309
+ not authorized repair. Never silently accept a defect or broaden existing approval.
263
310
 
264
- Ceiling comparison order: Suggestion/Nit/FYI < Important < Critical; gates advisory <
265
- validating < blocking < escalating; a finding is the ceiling when its severity's gate
266
- class (Suggestion/Nit/FYI→advisory, Important→validating, Critical→blocking) is at or
267
- below the slice's gate.
311
+ Discretionary ceilings apply only to
312
+ human-owned trade-off/risk decisions; accepted technical corrections do not enter
313
+ these branches. Compare Suggestion/Nit/FYI→advisory, Important→validating,
314
+ Critical→blocking against advisory < validating < blocking < escalating:
268
315
 
269
- - Finding severity slice's gate ceiling (slice's `Gate:` plus `.devrites/AFK`
270
- `allow_gates`) → log to `questions.md` as `gate: advisory`, record the trade-off in
271
- `decisions.md`, proceed.
272
- - Finding severity > gate ceiling, OR finding touches the irreversible-risk list →
273
- log to `questions.md` as `gate: blocking`, set `state.md` `Status: awaiting_human`,
274
- fire `notify:`, STOP.
316
+ - Within the slice's `Gate:` and `.devrites/AFK` `allow_gates`: record advisory in
317
+ `questions.md`, trade-off in `decisions.md`, proceed.
318
+ - Above ceiling, missing authority, or unapproved irreversible risk: record blocking
319
+ question, `Status: awaiting_human`, fire `notify:`, STOP.
275
320
 
276
- The loop limits of the calling skill still apply. At the limit, classify the unresolved
277
- finding by the decision-ownership rule above: human-owned uncertainty becomes a blocking
278
- question; an objective technical finding becomes a recorded blocker with its required
279
- changes, not a request for permission to retry.
321
+ Recovery uses only the [retry contract](#retry-cap-no-progress-loops-and-self-resolve).
280
322
 
281
323
  ## Retry cap, no-progress loops, and self-resolve
282
324
 
283
- - **Fingerprint the failed invariant, not the review round.** An exact causal
284
- fingerprint is the owning gate/invariant plus its minimal reproduction and
285
- decisive failure signal. A new DEC/DRIFT number, changed line number, reviewer
286
- wording, or splitting one finding does not create a new fingerprint.
325
+ Owns all phase recovery, including Doubt/Vet/serial/parallel Build. Resource,
326
+ access, safety and irreversible-action boundaries independently stop work.
327
+
328
+ - **Fingerprint the failed invariant, not the review round.** Identify owning
329
+ invariant + defect mechanism + minimal reproduction/decisive failure signal.
330
+ DEC/DRIFT IDs, line numbers, wording and splitting one cause create no new budget.
287
331
  - **Cap no-progress retries:** three no-progress attempts per exact causal fingerprint
288
- across wright and recovery is a hard cap. Only a repair whose narrow recheck
289
- leaves that fingerprint open or reproduces the same decisive failure consumes
290
- an attempt. Closing a prior finding with discriminating evidence is progress:
291
- mark that fingerprint resolved and do not charge it as no-progress. A genuinely
292
- new Critical or Important finding with a different failed invariant and exact
293
- evidence gets its own fingerprint and budget; Suggestion, Nit, FYI, or renamed
294
- evidence cannot open, reset, or extend recovery.
295
- - **Separate consumptive authority from recovery.** Spending a one-shot action's
296
- authorization forbids another real execution but does not consume the offline
297
- recovery budget for a newly evidenced fingerprint. The retained artifact starts
298
- caller-owned diagnosis and correction immediately; only the next consumptive
299
- execution waits for fresh authorization.
300
- - **Persist accounting in existing records.** Record each fingerprint,
301
- reproduction, attempted correction, `progress: resolved|no-progress`, and
302
- decisive result in `drift.md` and `evidence.md`. Cold resume derives the count
303
- from those records. There is no recovery counter file or command.
304
- - **Reconcile before honoring a terminal cursor.** A persisted distinct
305
- Critical/Important fingerprint with retained evidence and fewer than three
306
- recorded no-progress corrections still has recovery budget, even when an older
307
- `state.md` says `Next step: none`. Resume it; do not treat session age or the
308
- prior action's spent authorization as exhaustion.
332
+ across wright/recovery. Only a correction whose narrow recheck leaves that cause
333
+ open or reproduces its failure consumes an attempt.
334
+ Closing a prior finding with discriminating evidence is progress: resolve it,
335
+ do not charge. A new Critical or Important finding gets its own budget only for
336
+ a distinct evidenced cause. The same invariant with a different evidenced mechanism qualifies;
337
+ renaming/splitting an unchanged cause does not. Suggestion/Nit/FYI cannot extend
338
+ recovery. Initial discovery and expected test-first RED are not corrections;
339
+ total rounds, re-batches and distinct-finding counts never exhaust recovery.
340
+ - **Rechecks are scoped; late findings never reopen the round.** *Late* applies only
341
+ from a phase's **second** review pass (Vet 1b, Build's recheck after the first repair,
342
+ Review step 7); an initial pass has no late findings and every supported finding is
343
+ folded normally. A recheck packet
344
+ names the open fingerprints, the correction diff, and the dependents of each
345
+ changed clause/hunk; the owning reviewer's verdict covers exactly that. A finding
346
+ on text/code unchanged since that role's previous pass is *late*: Critical with a
347
+ concrete failure path new fingerprint under this budget; otherwise recorded
348
+ (Plan/Vet: `eng-review.md` `## Deferred findings`; Build: `touched-files.md`
349
+ `## Review trail`) with severity · site · role · kind · round, and consumed by the
350
+ next full-inventory gate (Vet `mechanism` one `test-plan.md` proof row; Build →
351
+ the `/rite-review` roster) never by another repair round in this phase. Review
352
+ closes every deferred row with a labeled verdict; Seal blocks on any without one.
353
+ **Failing case:** round 4 finds three Important items on clauses untouched since
354
+ round 1 and dispatches another repair.
355
+ - **Separate consumptive authority from recovery.** Spent one-shot authorization
356
+ blocks another execution, not offline recovery. Retained evidence starts caller-owned
357
+ diagnosis/correction immediately; the next consumptive execution needs fresh authority.
358
+ - **Persist existing records.** Put fingerprint, reproduction, correction,
359
+ `progress: resolved|no-progress` and decisive result in `drift.md` and `evidence.md`.
360
+ Cold resume derives counts there; no new counter file/command.
361
+ - **Reconcile terminal cursors.** Retained distinct Critical/Important evidence below
362
+ cap resumes despite stale `Next step: none`; age/spent action authority is not exhaustion.
309
363
  <!-- workflow-artifact-adapter: {"module":"devrites-lib/reference/standards/workflow-artifacts.md","entry":"unattended root reaches current admitted Workflow Artifact work","action":"invoke classifier; execute returned route without wright/slice charge","return":"saved lifecycle phase/action; no intermediate reply"} -->
310
- - **Classify exhaustion:** human-owned contract/risk/access gaps open their gate. Otherwise
311
- preserve reproduction/dead ends, set `Status: blocked` and `Next step: none — technical recovery exhausted; requires new evidence or changed failure conditions`.
312
- Do not emit `/rite-plan unblock`, another phase command, a question, or
313
- `/rite-resolve`. Reinvocation with the unchanged fingerprint remains blocked
314
- and never resets the retry cap.
315
- - **Resolve agent-owned questions first.** Before raising a question, try to answer it from the code, the docs,
316
- or `decisions.md`. Communicate only for a blocked environment, a deliverable to hand over,
317
- critical info you genuinely can't access, or a credential / permission you lack — never for
318
- writing code, writing tests, or reviewing; the agent's own work is not a valid human gate.
319
- This narrows needless pauses and never weakens the blocking / escalating / irreversible gates.
364
+ - **Classify exhaustion:** human-owned contract/risk/access gaps open their gate.
365
+ Otherwise preserve reproduction/dead ends, set `Status: blocked` and
366
+ `Next step: none technical recovery exhausted; requires new evidence or changed failure conditions`.
367
+ Emit no phase command, retry-permission question or `/rite-resolve`.
368
+ Reinvocation with unchanged cause stays blocked; it never resets the cap.
369
+ - **Resolve agent-owned questions first** from code/docs/decisions. Human communication
370
+ is for blocked environment, handover, inaccessible critical information or missing
371
+ credentials/permission—not writing, testing or review. Blocking/escalating/
372
+ irreversible gates remain.
320
373
 
321
374
  ## What the rule does NOT cover
322
375
 
@@ -51,6 +51,7 @@ Each job gets objective/exclusions, exact paths/immutable candidate, rubric/resu
51
51
  ## Independence
52
52
 
53
53
  - A fresh result sees scope/paths-diff/rubric only — never another result's or the root's conclusions, severities, expected verdicts, or edited context; seeding voids the packet.
54
+ - **Verify the packet is clean before admitting the account.** Confirm the returned packet/trace carries no host-injected context: an automatic memory/summary banner naming an earlier phase verdict (e.g. `past Temper PASS … next is /rite-define`) or harness reminder text seeds the pass and voids it. Cancel that account — never admit it — name the lost coverage, and re-dispatch with the host's context injection disabled for that child. Tool config changes that do not stop native child auto-injection are not a fix; verify on the next spawn instead of assuming.
54
55
  - A parent-context pass contributes attributed evidence but is not independent: exclude it from independent accounting and name the lost coverage.
55
56
  - Final severity is set at reconciliation after re-verifying the claimed consequence at the cited site (reviewer severity advisory); dismissals record a reason, and true facts about neighboring code route elsewhere instead of being dismissed.
56
57
  - Conflicting required results are arbitrated by re-verifying evidence at the site; the deciding evidence is recorded, truly unresolved conflicts stay open blockers. Two results describing the same defect merge only when both defect and fix path match; otherwise the more conservative classification stands, and severity never widens without new site evidence — an overridden or demoted finding stays visible with the reason, never silently merged away.
@@ -1,25 +1,52 @@
1
1
  # Context hygiene
2
2
 
3
- Long conversations degrade an agent's reasoning. End phases cleanly, persist important
4
- state to disk, and start the next phase in a fresh context.
5
-
6
- The feature workspace stores the next session's authority; chat memory does not.
3
+ Persist phase results before starting fresh. The feature workspace, not chat memory,
4
+ stores continuity.
7
5
 
8
6
  ## Working-set rule
9
7
 
10
- Long tool histories can displace important facts and retain failed attempts. Act at 50%
11
- to 70% context use, keep one task's working set small, and load only what the current
12
- step needs. The workspace, not a summary, is the source of truth.
8
+ Act at 50% to 70% context use; load only the current task's working set. The
9
+ workspace, not a summary, is the source of truth.
13
10
 
14
11
  - **Count before viewing:** on a search hit list, read match counts first (`grep -c`,
15
- match summaries) and open only the files a one-line answer needs; dumping whole
16
- files for a one-line question is common waste.
12
+ match summaries), then open relevant files.
17
13
  - **Cut before load, not after.** Drop low-signal files, prior-turn dumps, and
18
- duplicate index queries before they enter context. Truncating a bloated window
19
- after the fact is not an efficiency strategy — the cost is already paid.
14
+ duplicate index queries before loading; later truncation cannot undo that cost.
20
15
  **Failing case:** five whole-file reads, then `/compact`, treated as cost control.
21
16
 
22
- **Compaction-preservation directive.** If the harness compacts mid-feature, read `.devrites/ACTIVE`, then reload the `state.md` cursor, open `questions.md` gates, durable `decisions.md`, and `test-plan.md`/`evidence.md` proof pointers. Session hooks normally restore these; this is the fallback when no hook fires.
17
+ ## Dispatch packets
18
+
19
+ Give each role the exact candidate identity, scope, applicable contract/decision IDs,
20
+ all open findings, relevant tests/evidence, and anchored/hashed read-next paths. Read
21
+ owning text and dependencies: IDs/digests are not semantic evidence. Exclude whole
22
+ histories, duplicates, and raw transcripts from initial packets. Inspect serialized byte size
23
+ and long lines; line counts alone are insufficient. Within the host budget
24
+ and working-set rule, split retrieval rather than truncate active obligations.
25
+ Broaden retrieval when dependency boundaries are unknown.
26
+
27
+ Packets are **by reference**: project-relative path + SHA-256 + line anchors
28
+ (`path:start-end`) for every input; the reviewer reads the live file. Inline only the
29
+ excerpt a finding or claim needs, ≤ 4 KiB each. Never inline whole workspace artifacts,
30
+ standards/skill files (name the path; the role reads it), foreign documents, prior
31
+ packets, or another role's account. A serialized packet stays ≤ 64 KiB; larger means
32
+ the scope is wrong — split by anchor-disjoint cluster, never truncate. Persist packets
33
+ and admitted accounts under `.devrites/work/<slug>/packets/`; once a round's account
34
+ is recorded in its owning artifact, packets older than the last closed round may be
35
+ deleted. Never persist agent transcripts, traces, or
36
+ `session_init` dumps anywhere in `.devrites/`. Bulk raw proof output stays outside
37
+ `.devrites/work/`; `evidence.md` records the command, decisive lines, and that path.
38
+ **Failing case:** a 4 MiB `vet-review-input.json` embedding `tasks.md`, the spec, six
39
+ standards files, and a 2 MiB source document as `entries`, plus a 10 MiB
40
+ `vet-review-audit.json` of agent traces beside it.
41
+
42
+ Keep closed findings in immutable history/regressions; recheck those affected by
43
+ changed contracts, implementation, proof, or dependencies, not every prior generation.
44
+ Required review rosters and final proof remain. Preserve protected history unchanged;
45
+ a compact current view references originals without omitting active requirements.
46
+
47
+ **Compaction fallback:** when hooks do not restore context, read `.devrites/ACTIVE`,
48
+ then the `state.md` cursor, open `questions.md` gates, `decisions.md`, and
49
+ `test-plan.md`/`evidence.md` proof pointers.
23
50
 
24
51
  ## Authority and trust
25
52
 
@@ -39,15 +66,11 @@ Apply [`core.md` § Precedence](core.md#precedence); authority and evidence diff
39
66
 
40
67
  | Use `/clear` (default) when | Use `/compact` when |
41
68
  |---|---|
42
- | The current phase is done and its outputs are on disk (the common DevRites case). | You need to keep mid-flight reasoning that hasn't yet been written to the workspace. |
43
- | Next phase reads workspace files anyway (every `rite-*` does). | The remaining work is small and continuation beats restart. |
44
- | The chat is dominated by tool outputs (file reads, diffs, test logs, browser snapshots). | A drift or doubt loop is mid-flight and the trade-off discussion isn't yet recorded. |
45
- | You hit a wrong path that needs unwinding: fresh start beats arguing with stale context. | A user clarification just landed that materially changes the next phase. |
69
+ | Phase results are persisted; the next phase reads them. | Important mid-flight reasoning is not yet persisted. |
70
+ | Tool output or a wrong path dominates context. | Small remaining work, unrecorded drift/doubt discussion, or fresh clarification favors continuity. |
46
71
 
47
- **Default to `/clear`.** Use `/compact` only when the workspace does not capture
48
- important continuity. When in doubt, write the missing decision /
49
- assumption / question to the canonical file (`/rite-handoff` does this in one step),
50
- then `/clear`.
72
+ **Default to `/clear`.** First persist missing decisions, assumptions, or questions
73
+ to their owners (`/rite-handoff`); `/compact` preserves unrecorded continuity.
51
74
 
52
75
  ## The "Session hygiene" footer (every rite-* output)
53
76
 
@@ -82,8 +105,5 @@ handoff.
82
105
 
83
106
  ## The handoff bridge
84
107
 
85
- When the user is leaving for a long break rather than moving directly between phases, `/rite-handoff`
86
- is safer than `/clear` alone because it syncs chat-only context into the canonical
87
- workspace files **before** the reset, then the user can `/clear` (or even close the
88
- session) without losing anything. The session-hygiene footer points at `/rite-handoff`
89
- when the gap to the next session is likely > a few hours.
108
+ For a break longer than a few hours, point the footer at `/rite-handoff`: persist
109
+ chat-only context to canonical files before clearing or closing the session.
@@ -42,7 +42,7 @@ Repository conventions follow [Precedence](#precedence).
42
42
 
43
43
  ## Lifecycle rest points
44
44
 
45
- Before advancing a phase, run `devrites-engine check readiness <slug>` for structure (semantics belong to exact agents/checklists). Standalone rites persist and stop on block; under a controlling caller, agent-owned technical blocks return backward as a nested phase boundary, not a user-facing handoff. `/rite-seal` runs `devrites-engine check seal <slug>` for structure/freshness, not prose. HITL/blocked stops follow [Persistence before stopping](#persistence-before-stopping-handoff-discipline).
45
+ Before advancing a phase, run `devrites-engine check readiness <slug>` for structure, including artifact budgets (semantics belong to exact agents/checklists). Standalone rites persist and stop on block; under a controlling caller, agent-owned technical blocks return backward as a nested phase boundary, not a user-facing handoff. `/rite-seal` runs `devrites-engine check seal <slug>` for structure/freshness, not prose. HITL/blocked stops follow [Persistence before stopping](#persistence-before-stopping-handoff-discipline).
46
46
 
47
47
  ### Gate contract
48
48
 
@@ -1,23 +1,19 @@
1
1
  # Workspace artifact schema
2
2
 
3
- Feature truth lives in `.devrites/work/<slug>/`; discovery requires `state.md`.
4
- `README.md` is an optional discovery map; the spec phase still writes it. Operational remnants and archive entries are not
5
- active workspaces. Current writers use canonical filenames. Both released cursor
6
- forms remain official; `/rite-upgrade` audits them in place and never performs
7
- path, alias, or format migration.
3
+ Feature truth: `.devrites/work/<slug>/`, discovered by `state.md`; remnants/archives
4
+ are inactive. Spec writes optional `README.md`. Use canonical filenames; both released
5
+ cursor forms remain valid. `/rite-upgrade` audits without path/alias/format migration.
8
6
 
9
7
  ## Slug identity
10
8
 
11
- New workspaces use a meaningful objective-derived slug that is lowercase ASCII
12
- kebab-case, matches `[a-z0-9]+(?:-[a-z0-9]+)*`, and is at most 64 characters.
13
- Prefer shortening at a word boundary. After the final shortening or suffix step,
14
- trim boundary hyphens and reject an empty result.
9
+ New slugs derive from the objective: lowercase ASCII kebab-case matching
10
+ `[a-z0-9]+(?:-[a-z0-9]+)*`, at most 64 characters. Shorten at word boundaries.
11
+ After the final shortening or suffix step, trim boundary hyphens; reject empty results.
15
12
 
16
- Before creating a directory, compare any matching workspace's `brief.md`
17
- objective. Reuse it only for the same feature. Otherwise append the smallest
18
- unused numeric suffix (`-2`, `-3`, ...), shortening and trimming the base again
19
- to stay within 64 characters. Never overwrite a workspace by slug alone.
20
- Readers continue to accept safe legacy basenames; no ordinary phase renames one.
13
+ Before creation, compare a matching workspace's `brief.md` objective: reuse only the
14
+ same feature. Otherwise append the smallest unused suffix (`-2`, `-3`, ...), keeping
15
+ the trimmed base within 64 characters. Never overwrite a workspace by slug alone;
16
+ accept safe legacy basenames. Ordinary phases never rename them.
21
17
 
22
18
  ## Required by phase
23
19
 
@@ -31,13 +27,13 @@ Readers continue to accept safe legacy basenames; no ordinary phase renames one.
31
27
  | vet/build/converge | plan artifacts plus `eng-review.md`, `test-plan.md`; Build creates and maintains `touched-files.md` after its first green slice |
32
28
  | prove/polish/review | vetted plan artifacts plus `evidence.md`, `touched-files.md` |
33
29
  | seal/ship/done | proof artifacts plus `review.md`, `seal.md`; Ship writes `ship.md` |
34
- | conditional | `flows.md` when diagrams clarify; `visual/` HTML+`.outline.md` companions when a richer reviewable visual earns it (optional; never readiness-required); `design-brief.md` and `browser-evidence.md` for UI; `drift.md` for drift; `polish-report.md` for polish; `handoff.md` only when requested; `references.md` + `references/` when references exist; `investigation-map.md` for pressure-test; `dogfood.md` for dogfood |
30
+ | conditional | `flows.md` when diagrams clarify; `visual/` HTML+`.outline.md` companions when a richer reviewable visual earns it (optional; never readiness-required); `design-brief.md` and `browser-evidence.md` for UI; `drift.md` for drift; `polish-report.md` for polish; `handoff.md` only when requested; `references.md` + `references/` when references exist; `investigation-map.md` for pressure-test; `dogfood.md` for dogfood; `packets/` for by-reference dispatch packets and admitted accounts (≤ 64 KiB each; older closed rounds may be deleted; never transcripts); `history/` for verbatim relocated checkpoint narrative (append-only, never a read-next) |
35
31
 
36
32
  ## What each file owns
37
33
 
38
34
  | File | Job | Budget |
39
35
  | --- | --- | --- |
40
- | `README.md` | compact workspace map: phase, status, next action, artifact map, read-next table, blocking gates, last updated | 120 lines |
36
+ | `README.md` | map: phase/status/next action, artifacts/read-next, blocking gates, last update | 120 lines |
41
37
  | `brief.md` | user request, objective, non-goals, success definition | 80 lines |
42
38
  | `spec.md` | product WHAT/WHY, requirements, acceptance criteria, edge cases, measurable success, scope boundaries | 260 lines |
43
39
  | `decision-coverage.md` | topology-first coverage matrix, assumption audit, residual uncertainty, and typed clarity verdict | 200 lines |
@@ -53,22 +49,23 @@ Readers continue to accept safe legacy basenames; no ordinary phase renames one.
53
49
  | `plan.md` | technical approach, slice strategy, canonical shared-contract proof, validation strategy, rollback | 220 lines |
54
50
  | `tasks.md` | `SLICE-###` vertical slices with AC IDs, likely files, tests/proof, mode/gate, dependencies, done condition | 280 lines |
55
51
  | `traceability.md` | matrix: AC/REQ ID, slice IDs, test/proof, evidence ID, touched files, status | 220 lines |
56
- | `eng-review.md` | vetted scope/architecture/quality/performance, failure modes, preflight, stable-input binding | 240 lines |
52
+ | `eng-review.md` | vetted scope/architecture/quality/performance, failure modes, preflight, stable-input binding, `## Deferred findings` (late rows: severity · site · role · kind · round) for Review | 240 lines |
57
53
  | `test-plan.md` | executable proof commands, preflight/provenance contract, acceptance and interaction coverage | 260 lines |
58
54
  | `state.md` | compact cursor table/key-values; no narrative log | 120 lines |
59
55
  | `evidence.md` | `EVID-###` command/action, result, timestamp if available, related AC/slice IDs, limitation | 280 lines |
60
56
  | `browser-evidence.md` | UI route/viewports/screenshots/console/network/interactions and Visual Verdict | 220 lines |
61
57
  | `drift.md` | `DRIFT-###` spec/plan drift and resolution | 160 lines |
62
- | `touched-files.md` | sole candidate manifest plus a concern-ordered `## Review trail` of `path:line` stops for human review | 160 lines |
58
+ | `touched-files.md` | sole candidate manifest plus a concern-ordered `## Review trail` of `path:line` stops for human review and Build's deferred late findings (severity · site · role · round) that `/rite-review` must close | 160 lines |
63
59
  | `design-brief.md` | UI design direction, states, interaction model | 160 lines |
64
- | `handoff.md` | cold-resume guide: objective, last slice, next action, blockers, read-next. Sections carry content or `Nothing yet`; unevidenced recollections go under `Not tried yet`, never as results | 120 lines |
60
+ | `handoff.md` | resume objective/last slice/next action/blockers/read-next; sections hold content or `Nothing yet`; unevidenced recollections: `Not tried yet`, never results | 120 lines |
65
61
  | `polish-report.md` | polish axis deltas, re-verification lines, residual subjective preferences | 200 lines |
66
62
  | `ship.md` | ship preflight, disclosed Git plan, commit/push/tag/PR record | 120 lines |
63
+ | `review.md` | reconciled Review verdict: `## Spec` and `## Code review` accounts, deferred-finding labels/actions, drift | 240 lines |
64
+ | `seal.md` | seal preflight, exact reviewer roster accounts, GO/NO-GO verdict and disclosures | 200 lines |
65
+ | `ai-spec.md` | model/RAG/agent/eval/LLM-output scope for AI surfaces | 160 lines |
67
66
 
68
- When emitting `visual/` HTML+outline pairs, open matching playbooks via
69
- [`visual-playbooks/index.md`](visual-playbooks/index.md) (progressive load; do not
70
- preload all seven). Required outline headings:
71
- [`visual-playbooks/outline-template.md`](visual-playbooks/outline-template.md).
67
+ For visual pairs load only matching [playbooks](visual-playbooks/index.md); use
68
+ the [required outline headings](visual-playbooks/outline-template.md).
72
69
 
73
70
  ## Candidate manifest and bindings
74
71
 
@@ -98,14 +95,19 @@ candidate scope; only manifest rows do.
98
95
  The public candidate limits are a 1 MiB manifest, 4,096 rows, a 4,096-byte
99
96
  path, 64 MiB per present file, and 256 MiB across all present files.
100
97
 
101
- Workspace and audit artifacts are not candidate paths. That includes every path
102
- under `.devrites/work/<slug>/visual/` (HTML, `.outline.md`, and optional
103
- `visual/README.md`). Durable project files include `.devrites/specs/**`,
104
- `DESIGN.md`, and `docs/adr/**`, plus the exact `.devrites/principles.md` owner.
105
- Under `.devrites`, only those principles and spec owners may be candidates;
106
- `ACTIVE`, `AFK`, `CHECKPOINT`, `archive/**`, `work/**`, and every other sibling
107
- fail closed. Engine owns malformed path, type, and size rejection; phases do
108
- not reinterpret a rejected manifest.
98
+ A release milestone's union manifest is produced by `devrites-engine state
99
+ merge-manifest <release-slug>` it walks the recorded `sequence_parent` chain,
100
+ folds every predecessor manifest, and resolves a path collision in favor of the
101
+ later sequence position; a hand-assembled union is not authoritative. When the
102
+ workspace cursor declares `sequence_role: release`, `check candidate` and
103
+ `check seal` require the manifest to cover the whole recorded chain.
104
+
105
+ Workspace and audit artifacts are not candidate paths, including all
106
+ `.devrites/work/<slug>/visual/`. Durable owners include `.devrites/specs/**`,
107
+ `DESIGN.md`, and `docs/adr/**`, plus `.devrites/principles.md`. Under `.devrites`,
108
+ only those spec/principles owners qualify; all other siblings (`ACTIVE`, `AFK`,
109
+ `CHECKPOINT`, `archive/**`, `work/**`) fail closed. Engine owns malformed path, type,
110
+ and size rejection; phases never reinterpret a rejected manifest.
109
111
 
110
112
  `evidence.md`, `review.md`, and `seal.md` each contain exactly one unindented standalone
111
113
  binding line; `browser-evidence.md` does too when that file exists:
@@ -122,16 +124,46 @@ against a malicious concurrent same-size rewrite. Ship's exact Git-index scope,
122
124
  byte, binding, and secret checks own the final freeze immediately before commit.
123
125
 
124
126
  Only a structural `Budget override: <reason>` line (not a fenced example)
125
- permits excess. Phase writers check these limits before returning; there is no
127
+ permits excess. Each line budget also bounds bytes at 400 bytes per budgeted line
128
+ (`state.md` 120 lines → 48 KiB); long lines do not evade it.
129
+ `devrites-engine orient <slug>` reports `artifact_budgets` (lines/bytes/over/override)
130
+ and `bulk_files` (non-canonical files over 64 KiB) so a phase can decide what to read
131
+ before loading. Phase writers check these limits before returning; there is no
126
132
  repository-local script assumption in the installed workflow.
127
133
 
134
+ `check readiness` and `check seal` enforce the material band deterministically: a
135
+ required artifact at or above 1.5× its line or byte budget with no structural override
136
+ line blocks with the exact measurement and the three legal remedies (relocate history
137
+ via `/rite-plan revise`, split via `/rite-plan course-correct`, or record the override).
138
+ Overshoot below that band stays advisory and is reported by `orient`. Proof ledgers
139
+ (`evidence.md`, `browser-evidence.md`, `touched-files.md`) are always advisory: they
140
+ scale with proof volume, and `touched-files.md` keeps its own manifest limits.
141
+ Because they are never gate-blocked they are also the only artifacts that can grow
142
+ unboundedly — so phases read them by index, not whole-file: the standalone binding
143
+ line, a `EVID-###`/section-header index (`grep -n`), then bodies only for entries
144
+ naming this candidate's AC/slice IDs. An entry naming no in-scope ID is anomaly
145
+ evidence to inspect, not skip. A whole-file read is allowed only when `orient`
146
+ reports the artifact within budget; completeness for seal is engine-checked
147
+ (literal `AC-###` presence), the reader judges quality.
148
+
149
+ Two reasons are not durable fixes: slice or acceptance-criteria count (an over-budget
150
+ `tasks.md`/`plan.md`/`traceability.md` from decomposition size is a
151
+ [feature-sequence split](../../rite-plan/reference/slicing.md#feature-ceiling-split-an-epic-never-override-the-budget)),
152
+ and history in `state.md` (checkpoint narrative moves verbatim to
153
+ `history/<file>-<YYYYMMDD>.md`, append-only, never a phase read-next, with a one-line
154
+ pointer left behind). A legacy workspace may carry a temporary `Budget override:` line
155
+ as a bridge; `/rite-upgrade` routes it to relocation or the split, and new writers never
156
+ create one for those two reasons.
157
+ Apply [`context-hygiene.md` dispatch packets](standards/context-hygiene.md#dispatch-packets)
158
+ for byte-size checks and lossless retrieval; budget overrides neither rewrite protected
159
+ history nor require loading it all.
160
+
128
161
  ## Native readiness ownership
129
162
 
130
- `decision-coverage.md` records the topology scan; `test-plan.md` records executable proof;
131
- `eng-review.md` records exact reviewer verdicts, `Implementation readiness`, and the emitted
132
- `Readiness inputs SHA-256`. Root re-reads them and applies the ID-and-meaning checklist.
133
- The digest binds reviewed bytes; it never substitutes for semantic review. Normal readiness
134
- checks structure plus that binding, and Seal rechecks it.
163
+ `decision-coverage.md` owns topology; `test-plan.md`, executable proof; `eng-review.md`,
164
+ reviewer verdicts, `Implementation readiness`, and `Readiness inputs SHA-256`. Root
165
+ re-reads their IDs/meaning. The digest binds bytes, never semantic correctness.
166
+ Readiness checks structure/binding; Seal rechecks both.
135
167
 
136
168
  Proof commands must be repository-portable: no host wrappers, user-specific absolute paths,
137
169
  or temporary proof trees. Evidence records the executed command. Optional `visual/`
@@ -189,9 +221,9 @@ unless the stated reason makes the boundary irreducible.
189
221
  | temper | `spec.md`, `decision-coverage.md`, `decisions.md`, `assumptions.md`, `design-brief.md` |
190
222
  | define | `README.md`, `state.md`, `spec.md`, `decision-coverage.md`, `architecture.md`, `decisions.md`, `assumptions.md` |
191
223
  | vet | `state.md`, `spec.md`, `decision-coverage.md`, `README.md`, `traceability.md`, `plan.md`, `tasks.md`, `architecture.md`, `decisions.md` |
192
- | build | `state.md`, `decision-coverage.md`, `eng-review.md`, `test-plan.md`, `tasks.md`, `plan.md`, `architecture.md`, `traceability.md`, `questions.md`, and `touched-files.md` when present |
193
- | prove | `traceability.md`, `tasks.md`, `evidence.md`, `browser-evidence.md`, `touched-files.md` |
194
- | review/seal | `README.md`, `traceability.md`, `spec.md`, `evidence.md`, `decisions.md`, `drift.md`, `touched-files.md` |
224
+ | build | `devrites-engine orient <slug>` first; then `state.md`, `eng-review.md` (Build readback + `## Deferred findings`), the selected slice and its `depends_on` via `devrites-engine observe slice <slug> <SLICE-ID>`, the `test-plan.md` and `traceability.md` rows that slice's AC IDs name, open `questions.md` gates, and `touched-files.md` when present. Load whole `tasks.md`/`plan.md`/`architecture.md`/`decision-coverage.md` only when `orient` shows them within budget or the slice cites a section by ID |
225
+ | prove | `traceability.md`, `touched-files.md`; each built slice's `Tests/proof` and `Evidence required` via `observe slice`; `evidence.md`/`browser-evidence.md` via the bounded advisory read above |
226
+ | review/seal | `README.md`, `traceability.md`, `spec.md`, `decisions.md`, `drift.md`, `touched-files.md`; `evidence.md`/`browser-evidence.md` via the bounded advisory read above |
195
227
  | handoff | `README.md`, `state.md`, `handoff.md`, then the linked source artifacts |
196
228
 
197
229
  ## Do not duplicate
@@ -199,7 +231,14 @@ unless the stated reason makes the boundary irreducible.
199
231
  - Do not make `spec.md` carry deep architecture; link to `architecture.md`/`flows.md`.
200
232
  - Do not copy acceptance criteria into `plan.md`; reference `AC-###`.
201
233
  - Do not copy full proof into `handoff.md`; link to `evidence.md`.
202
- - Do not make `state.md` an append-only log; keep only the current cursor.
234
+ - Do not make `state.md` an append-only log; keep only the current cursor. A
235
+ checkpoint entry is at most three lines: what changed, the canonical record path or
236
+ DEC/EVID ID, and the next action. Digests, packet hashes, and finding narratives
237
+ belong to the record they identify, not the cursor.
238
+ - Give each normative fact one owner and stable ID; reference rather than copy it.
239
+ Required schema mirrors remain required. Derive counts/mirrors or mechanically
240
+ check equality using available tools, never invented commands. Repair stale
241
+ derived values and assess consumer impact; they are not new policy decisions.
203
242
  - Do not create optional files before their phase; absence is meaningful. Do not
204
243
  treat `visual/` as required for readiness; emit HTML+outline only when a writer
205
244
  earns a richer visual, and keep Mermaid in `flows.md` when that is enough.
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: rite-autocomplete
3
3
  description: Run the full DevRites lifecycle unattended; --ship continues to the final Git approval boundary. Use for one-shot autonomous work; not for a single phase.
4
- argument-hint: "[idea] [--ship|--yolo] [--max-slices N] [--full] [--cross-model]"
4
+ argument-hint: "[idea] [--ship|--yolo] [--max-slices N] [--parallel N] [--full] [--cross-model]"
5
5
  user-invocable: true
6
6
  ---
7
7
 
@@ -53,9 +53,11 @@ executable controller/harness/bundle bytes or a missing writer, read
53
53
  malformed, and unavailable leaf calls. At the review cap, permit only work
54
54
  that reduces the queue.
55
55
  - Parse flags only from this invocation. `--ship`, `--yolo`, `--max-slices`,
56
- `--full`, and `--cross-model` activate only as exact standalone tokens in
57
- `$ARGUMENTS`; examples or earlier messages can never arm them. `--max-slices`
58
- must occur once and be followed by a positive base-10 integer; missing, repeated, malformed, or conflicting values stop before any write.
56
+ `--parallel`, `--full`, and `--cross-model` activate only as exact standalone
57
+ tokens in `$ARGUMENTS`; examples or earlier messages can never arm them.
58
+ `--max-slices` must occur once and be followed by a positive base-10 integer;
59
+ `--parallel` must occur once and be followed by a base-10 integer in `1`–`10`.
60
+ Missing, repeated, malformed, or conflicting values stop before any write.
59
61
  - Temper always runs after Clarify. Unattended mode auto-applies only
60
62
  `hold-rigor` and `reduce-to-MVP`; any `expand` or added acceptance pauses.
61
63
  - Vet every plan. Cross-model is off unless the current invocation arms it.
@@ -75,7 +77,8 @@ executable controller/harness/bundle bytes or a missing writer, read
75
77
  from chat. After compaction or a resumed session, read `.devrites/ACTIVE`, then
76
78
  the `state.md` cursor, `questions.md`, `decisions.md`, and `test-plan.md`/`evidence.md`.
77
79
  Normalize current arguments to idea, `ship_preflight: yes|no`,
78
- `max_slices: N|default`, `profile: standard|full`, and `cross_model: yes|no`.
80
+ `max_slices: N|default`, `parallel: N|default`, `profile: standard|full`,
81
+ and `cross_model: yes|no`.
79
82
  **Completion:** normalized state is unambiguous and no sentinel or workspace file has been written.
80
83
  2. **Specify and clarify.** Run `devrites-interview`, `/rite-spec`, and
81
84
  `/rite-clarify` as one window. Partial/Missing material coverage never arms
@@ -87,9 +90,13 @@ executable controller/harness/bundle bytes or a missing writer, read
87
90
  **Completion:** a valid read-only AFK sentinel exists.
88
91
  4. **Drive phases.** Follow [the loop](reference/loop.md): `/rite-spec` →
89
92
  `/rite-clarify` → `/rite-temper` → `/rite-define` → `/rite-vet` →
90
- `/rite-build` × pending slices → `/rite-prove` → `/rite-polish` →
93
+ `/rite-build` batch loop → `/rite-prove` → `/rite-polish` →
91
94
  `/rite-review` → `/rite-seal`. Read and execute each skill; durable files, not
92
95
  chat, carry state. Apply the mutable post-vet budget before first Build.
96
+ Build runs the largest eligible path-disjoint batch (cap: `--parallel N`, else
97
+ sentinel `max_parallel`, else 10) and recomputes after every integrate until no
98
+ pending slice remains; serial only when fewer than two slices are eligible or the
99
+ host cannot isolate concurrent worktree writers.
93
100
  **Completion:** loop reaches Seal GO or persists a valid stop before any later phase.
94
101
  5. **Apply stops.** At every gate use
95
102
  [stop-conditions.md](reference/stop-conditions.md). A `blocked` label alone is not a stop condition:
@@ -98,8 +105,12 @@ executable controller/harness/bundle bytes or a missing writer, read
98
105
  hard risk, human-owned blocking/escalating/NO-GO, resource exhaustion, or the
99
106
  exact fingerprint's proven exhaustion. Technical exhaustion records terminal
100
107
  `Next step: none`, never a routine phase command. **Completion:** no stop is active, or its cursor and reason are durable.
101
- 6. **Seal boundary.** Without a ship flag, stop at Seal GO with `/rite-ship`.
102
- With one, perform Ship preflight, disclose the exact Git plan, and stop for
108
+ 6. **Seal boundary.** Without a ship flag, stop at Seal GO with `/rite-ship` —
109
+ unless `continue_sequence` is armed and sequence budget remains, in which case
110
+ leave the sealed workspace unshipped and open the next recorded continuation
111
+ ([loop.md § Sequence continuation](reference/loop.md#sequence-continuation));
112
+ report the sequence position on every stop.
113
+ With a ship flag, perform Ship preflight, disclose the exact Git plan, and stop for
103
114
  fresh literal `GO` plus native approval. **Completion:** performed no Git action before fresh literal `GO` plus native approval.
104
115
 
105
116
  ## Reply and resume