devrites 5.4.0 → 5.5.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 (213) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +1 -1
  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 +15 -0
  9. package/engine/internal/gate/gate.go +78 -0
  10. package/engine/internal/gate/gate_test.go +118 -0
  11. package/engine/internal/lib/candidate.go +7 -3
  12. package/engine/internal/lib/manifest_union.go +326 -0
  13. package/engine/internal/lib/manifest_union_test.go +214 -0
  14. package/engine/internal/lib/observe_budgets.go +73 -0
  15. package/engine/internal/lib/observe_budgets_test.go +142 -0
  16. package/engine/internal/lib/observe_summary.go +74 -13
  17. package/engine/internal/lib/workspace_read.go +11 -6
  18. package/engine/internal/state/budgets.go +163 -0
  19. package/engine/internal/state/budgets_test.go +42 -0
  20. package/engine/internal/state/cursor.go +16 -10
  21. package/engine/internal/state/observation.go +50 -4
  22. package/engine/internal/state/status.go +38 -26
  23. package/engine/internal/state/taskgraph.go +23 -0
  24. package/engine/main.go +32 -13
  25. package/engine/root_routing_test.go +3 -1
  26. package/pack/.claude/agents/devrites-code-reviewer.md +9 -6
  27. package/pack/.claude/agents/devrites-doubt-reviewer.md +6 -0
  28. package/pack/.claude/agents/devrites-plan-reviewer.md +7 -1
  29. package/pack/.claude/agents/devrites-slice-wright.md +42 -46
  30. package/pack/.claude/agents/devrites-test-analyst.md +9 -4
  31. package/pack/.claude/agents/devrites-upgrade-planner.md +9 -1
  32. package/pack/.claude/settings.json +17 -0
  33. package/pack/.claude/skills/devrites-api-interface/SKILL.md +2 -2
  34. package/pack/.claude/skills/devrites-doubt/SKILL.md +9 -17
  35. package/pack/.claude/skills/devrites-lib/reference/candidate-integrity.md +34 -35
  36. package/pack/.claude/skills/devrites-lib/reference/parallel-dispatch.md +11 -12
  37. package/pack/.claude/skills/devrites-lib/reference/standards/afk-hitl.md +104 -51
  38. package/pack/.claude/skills/devrites-lib/reference/standards/agents.md +1 -0
  39. package/pack/.claude/skills/devrites-lib/reference/standards/context-hygiene.md +45 -25
  40. package/pack/.claude/skills/devrites-lib/reference/standards/core.md +1 -1
  41. package/pack/.claude/skills/devrites-lib/reference/workspace-artifact-schema.md +80 -41
  42. package/pack/.claude/skills/rite-autocomplete/SKILL.md +19 -8
  43. package/pack/.claude/skills/rite-autocomplete/reference/loop.md +33 -1
  44. package/pack/.claude/skills/rite-build/SKILL.md +26 -19
  45. package/pack/.claude/skills/rite-build/reference/afk-discipline.md +1 -1
  46. package/pack/.claude/skills/rite-build/reference/parallel-batch.md +90 -40
  47. package/pack/.claude/skills/rite-build/reference/phase-contract.md +79 -59
  48. package/pack/.claude/skills/rite-build/reference/spec-drift-guard.md +14 -15
  49. package/pack/.claude/skills/rite-build/reference/wright-dispatch.md +8 -8
  50. package/pack/.claude/skills/rite-define/SKILL.md +4 -1
  51. package/pack/.claude/skills/rite-plan/SKILL.md +4 -1
  52. package/pack/.claude/skills/rite-plan/reference/replan-and-repair.md +21 -0
  53. package/pack/.claude/skills/rite-plan/reference/slicing.md +117 -15
  54. package/pack/.claude/skills/rite-prove/SKILL.md +20 -22
  55. package/pack/.claude/skills/rite-review/SKILL.md +23 -16
  56. package/pack/.claude/skills/rite-seal/SKILL.md +8 -8
  57. package/pack/.claude/skills/rite-seal/reference/final-evidence.md +6 -5
  58. package/pack/.claude/skills/rite-seal/reference/phase-contract.md +13 -13
  59. package/pack/.claude/skills/rite-ship/SKILL.md +3 -0
  60. package/pack/.claude/skills/rite-ship/reference/close-out.md +16 -2
  61. package/pack/.claude/skills/rite-ship/reference/git-ship.md +14 -5
  62. package/pack/.claude/skills/rite-spec/SKILL.md +6 -0
  63. package/pack/.claude/skills/rite-spec/reference/state-workspace.md +6 -0
  64. package/pack/.claude/skills/rite-status/SKILL.md +4 -1
  65. package/pack/.claude/skills/rite-temper/SKILL.md +14 -11
  66. package/pack/.claude/skills/rite-temper/reference/anti-patterns.md +14 -13
  67. package/pack/.claude/skills/rite-temper/reference/review-dimensions.md +3 -4
  68. package/pack/.claude/skills/rite-upgrade/SKILL.md +11 -2
  69. package/pack/.claude/skills/rite-vet/SKILL.md +22 -15
  70. package/pack/.claude/skills/rite-vet/reference/anti-patterns.md +11 -9
  71. package/pack/.claude/skills/rite-vet/reference/depth.md +6 -7
  72. package/pack/.claude/skills/rite-vet/reference/review-axes.md +39 -14
  73. package/pack/generated/claude/agents/devrites-code-reviewer.md +9 -6
  74. package/pack/generated/claude/agents/devrites-doubt-reviewer.md +6 -0
  75. package/pack/generated/claude/agents/devrites-plan-reviewer.md +7 -1
  76. package/pack/generated/claude/agents/devrites-slice-wright.md +42 -46
  77. package/pack/generated/claude/agents/devrites-test-analyst.md +9 -4
  78. package/pack/generated/claude/agents/devrites-upgrade-planner.md +9 -1
  79. package/pack/generated/claude/settings.json +17 -0
  80. package/pack/generated/claude/skills/devrites-api-interface/SKILL.md +2 -2
  81. package/pack/generated/claude/skills/devrites-doubt/SKILL.md +9 -17
  82. package/pack/generated/claude/skills/devrites-lib/reference/candidate-integrity.md +34 -35
  83. package/pack/generated/claude/skills/devrites-lib/reference/parallel-dispatch.md +11 -12
  84. package/pack/generated/claude/skills/devrites-lib/reference/standards/afk-hitl.md +104 -51
  85. package/pack/generated/claude/skills/devrites-lib/reference/standards/agents.md +1 -0
  86. package/pack/generated/claude/skills/devrites-lib/reference/standards/context-hygiene.md +45 -25
  87. package/pack/generated/claude/skills/devrites-lib/reference/standards/core.md +1 -1
  88. package/pack/generated/claude/skills/devrites-lib/reference/workspace-artifact-schema.md +80 -41
  89. package/pack/generated/claude/skills/rite-autocomplete/SKILL.md +19 -8
  90. package/pack/generated/claude/skills/rite-autocomplete/reference/loop.md +33 -1
  91. package/pack/generated/claude/skills/rite-build/SKILL.md +26 -19
  92. package/pack/generated/claude/skills/rite-build/reference/afk-discipline.md +1 -1
  93. package/pack/generated/claude/skills/rite-build/reference/parallel-batch.md +90 -40
  94. package/pack/generated/claude/skills/rite-build/reference/phase-contract.md +79 -59
  95. package/pack/generated/claude/skills/rite-build/reference/spec-drift-guard.md +14 -15
  96. package/pack/generated/claude/skills/rite-build/reference/wright-dispatch.md +8 -8
  97. package/pack/generated/claude/skills/rite-define/SKILL.md +4 -1
  98. package/pack/generated/claude/skills/rite-plan/SKILL.md +4 -1
  99. package/pack/generated/claude/skills/rite-plan/reference/replan-and-repair.md +21 -0
  100. package/pack/generated/claude/skills/rite-plan/reference/slicing.md +117 -15
  101. package/pack/generated/claude/skills/rite-prove/SKILL.md +20 -22
  102. package/pack/generated/claude/skills/rite-review/SKILL.md +23 -16
  103. package/pack/generated/claude/skills/rite-seal/SKILL.md +8 -8
  104. package/pack/generated/claude/skills/rite-seal/reference/final-evidence.md +6 -5
  105. package/pack/generated/claude/skills/rite-seal/reference/phase-contract.md +13 -13
  106. package/pack/generated/claude/skills/rite-ship/SKILL.md +3 -0
  107. package/pack/generated/claude/skills/rite-ship/reference/close-out.md +16 -2
  108. package/pack/generated/claude/skills/rite-ship/reference/git-ship.md +14 -5
  109. package/pack/generated/claude/skills/rite-spec/SKILL.md +6 -0
  110. package/pack/generated/claude/skills/rite-spec/reference/state-workspace.md +6 -0
  111. package/pack/generated/claude/skills/rite-status/SKILL.md +4 -1
  112. package/pack/generated/claude/skills/rite-temper/SKILL.md +14 -11
  113. package/pack/generated/claude/skills/rite-temper/reference/anti-patterns.md +14 -13
  114. package/pack/generated/claude/skills/rite-temper/reference/review-dimensions.md +3 -4
  115. package/pack/generated/claude/skills/rite-upgrade/SKILL.md +11 -2
  116. package/pack/generated/claude/skills/rite-vet/SKILL.md +22 -15
  117. package/pack/generated/claude/skills/rite-vet/reference/anti-patterns.md +11 -9
  118. package/pack/generated/claude/skills/rite-vet/reference/depth.md +6 -7
  119. package/pack/generated/claude/skills/rite-vet/reference/review-axes.md +39 -14
  120. package/pack/generated/codex/agents/devrites-code-reviewer.toml +9 -6
  121. package/pack/generated/codex/agents/devrites-doubt-reviewer.toml +6 -0
  122. package/pack/generated/codex/agents/devrites-plan-reviewer.toml +7 -1
  123. package/pack/generated/codex/agents/devrites-slice-wright.toml +42 -46
  124. package/pack/generated/codex/agents/devrites-test-analyst.toml +9 -4
  125. package/pack/generated/codex/agents/devrites-upgrade-planner.toml +9 -1
  126. package/pack/generated/codex/skills/devrites-api-interface/SKILL.md +2 -2
  127. package/pack/generated/codex/skills/devrites-doubt/SKILL.md +9 -17
  128. package/pack/generated/codex/skills/devrites-lib/reference/candidate-integrity.md +34 -35
  129. package/pack/generated/codex/skills/devrites-lib/reference/parallel-dispatch.md +11 -12
  130. package/pack/generated/codex/skills/devrites-lib/reference/standards/afk-hitl.md +104 -51
  131. package/pack/generated/codex/skills/devrites-lib/reference/standards/agents.md +1 -0
  132. package/pack/generated/codex/skills/devrites-lib/reference/standards/context-hygiene.md +45 -25
  133. package/pack/generated/codex/skills/devrites-lib/reference/standards/core.md +1 -1
  134. package/pack/generated/codex/skills/devrites-lib/reference/workspace-artifact-schema.md +80 -41
  135. package/pack/generated/codex/skills/rite-autocomplete/SKILL.md +19 -8
  136. package/pack/generated/codex/skills/rite-autocomplete/reference/loop.md +33 -1
  137. package/pack/generated/codex/skills/rite-build/SKILL.md +26 -19
  138. package/pack/generated/codex/skills/rite-build/reference/afk-discipline.md +1 -1
  139. package/pack/generated/codex/skills/rite-build/reference/parallel-batch.md +90 -40
  140. package/pack/generated/codex/skills/rite-build/reference/phase-contract.md +79 -59
  141. package/pack/generated/codex/skills/rite-build/reference/spec-drift-guard.md +14 -15
  142. package/pack/generated/codex/skills/rite-build/reference/wright-dispatch.md +8 -8
  143. package/pack/generated/codex/skills/rite-define/SKILL.md +4 -1
  144. package/pack/generated/codex/skills/rite-plan/SKILL.md +4 -1
  145. package/pack/generated/codex/skills/rite-plan/reference/replan-and-repair.md +21 -0
  146. package/pack/generated/codex/skills/rite-plan/reference/slicing.md +117 -15
  147. package/pack/generated/codex/skills/rite-prove/SKILL.md +20 -22
  148. package/pack/generated/codex/skills/rite-review/SKILL.md +23 -16
  149. package/pack/generated/codex/skills/rite-seal/SKILL.md +8 -8
  150. package/pack/generated/codex/skills/rite-seal/reference/final-evidence.md +6 -5
  151. package/pack/generated/codex/skills/rite-seal/reference/phase-contract.md +13 -13
  152. package/pack/generated/codex/skills/rite-ship/SKILL.md +3 -0
  153. package/pack/generated/codex/skills/rite-ship/reference/close-out.md +16 -2
  154. package/pack/generated/codex/skills/rite-ship/reference/git-ship.md +14 -5
  155. package/pack/generated/codex/skills/rite-spec/SKILL.md +6 -0
  156. package/pack/generated/codex/skills/rite-spec/reference/state-workspace.md +6 -0
  157. package/pack/generated/codex/skills/rite-status/SKILL.md +4 -1
  158. package/pack/generated/codex/skills/rite-temper/SKILL.md +14 -11
  159. package/pack/generated/codex/skills/rite-temper/reference/anti-patterns.md +14 -13
  160. package/pack/generated/codex/skills/rite-temper/reference/review-dimensions.md +3 -4
  161. package/pack/generated/codex/skills/rite-upgrade/SKILL.md +11 -2
  162. package/pack/generated/codex/skills/rite-vet/SKILL.md +22 -15
  163. package/pack/generated/codex/skills/rite-vet/reference/anti-patterns.md +11 -9
  164. package/pack/generated/codex/skills/rite-vet/reference/depth.md +6 -7
  165. package/pack/generated/codex/skills/rite-vet/reference/review-axes.md +39 -14
  166. package/pack/generated/omp/agents/devrites-code-reviewer.md +9 -6
  167. package/pack/generated/omp/agents/devrites-doubt-reviewer.md +6 -0
  168. package/pack/generated/omp/agents/devrites-plan-reviewer.md +7 -1
  169. package/pack/generated/omp/agents/devrites-slice-wright.md +42 -46
  170. package/pack/generated/omp/agents/devrites-test-analyst.md +9 -4
  171. package/pack/generated/omp/agents/devrites-upgrade-planner.md +9 -1
  172. package/pack/generated/omp/skills/devrites-api-interface/SKILL.md +2 -2
  173. package/pack/generated/omp/skills/devrites-doubt/SKILL.md +9 -17
  174. package/pack/generated/omp/skills/devrites-lib/reference/candidate-integrity.md +34 -35
  175. package/pack/generated/omp/skills/devrites-lib/reference/parallel-dispatch.md +11 -12
  176. package/pack/generated/omp/skills/devrites-lib/reference/standards/afk-hitl.md +104 -51
  177. package/pack/generated/omp/skills/devrites-lib/reference/standards/agents.md +1 -0
  178. package/pack/generated/omp/skills/devrites-lib/reference/standards/context-hygiene.md +45 -25
  179. package/pack/generated/omp/skills/devrites-lib/reference/standards/core.md +1 -1
  180. package/pack/generated/omp/skills/devrites-lib/reference/workspace-artifact-schema.md +80 -41
  181. package/pack/generated/omp/skills/rite-autocomplete/SKILL.md +19 -8
  182. package/pack/generated/omp/skills/rite-autocomplete/reference/loop.md +33 -1
  183. package/pack/generated/omp/skills/rite-build/SKILL.md +26 -19
  184. package/pack/generated/omp/skills/rite-build/reference/afk-discipline.md +1 -1
  185. package/pack/generated/omp/skills/rite-build/reference/parallel-batch.md +90 -40
  186. package/pack/generated/omp/skills/rite-build/reference/phase-contract.md +79 -59
  187. package/pack/generated/omp/skills/rite-build/reference/spec-drift-guard.md +14 -15
  188. package/pack/generated/omp/skills/rite-build/reference/wright-dispatch.md +8 -8
  189. package/pack/generated/omp/skills/rite-define/SKILL.md +4 -1
  190. package/pack/generated/omp/skills/rite-plan/SKILL.md +4 -1
  191. package/pack/generated/omp/skills/rite-plan/reference/replan-and-repair.md +21 -0
  192. package/pack/generated/omp/skills/rite-plan/reference/slicing.md +117 -15
  193. package/pack/generated/omp/skills/rite-prove/SKILL.md +20 -22
  194. package/pack/generated/omp/skills/rite-review/SKILL.md +23 -16
  195. package/pack/generated/omp/skills/rite-seal/SKILL.md +8 -8
  196. package/pack/generated/omp/skills/rite-seal/reference/final-evidence.md +6 -5
  197. package/pack/generated/omp/skills/rite-seal/reference/phase-contract.md +13 -13
  198. package/pack/generated/omp/skills/rite-ship/SKILL.md +3 -0
  199. package/pack/generated/omp/skills/rite-ship/reference/close-out.md +16 -2
  200. package/pack/generated/omp/skills/rite-ship/reference/git-ship.md +14 -5
  201. package/pack/generated/omp/skills/rite-spec/SKILL.md +6 -0
  202. package/pack/generated/omp/skills/rite-spec/reference/state-workspace.md +6 -0
  203. package/pack/generated/omp/skills/rite-status/SKILL.md +4 -1
  204. package/pack/generated/omp/skills/rite-temper/SKILL.md +14 -11
  205. package/pack/generated/omp/skills/rite-temper/reference/anti-patterns.md +14 -13
  206. package/pack/generated/omp/skills/rite-temper/reference/review-dimensions.md +3 -4
  207. package/pack/generated/omp/skills/rite-upgrade/SKILL.md +11 -2
  208. package/pack/generated/omp/skills/rite-vet/SKILL.md +22 -15
  209. package/pack/generated/omp/skills/rite-vet/reference/anti-patterns.md +11 -9
  210. package/pack/generated/omp/skills/rite-vet/reference/depth.md +6 -7
  211. package/pack/generated/omp/skills/rite-vet/reference/review-axes.md +39 -14
  212. package/package.json +1 -1
  213. package/scripts/codex-generate.sh +6 -0
@@ -57,7 +57,7 @@ Pull these via `Read` when the diff demands them:
57
57
 
58
58
  0. Read `.claude/skills/devrites-lib/reference/standards/core.md` first (the always-on operating rules); pull the
59
59
  on-demand rules above as the diff demands them.
60
- 1. Read `spec.md`, `tasks.md`, `state.md`, `decisions.md`, `evidence.md`,
60
+ 1. Read `spec.md`, `tasks.md`, `state.md`, `decisions.md`,
61
61
  `touched-files.md`, `.devrites/principles.md` (if present: the binding invariants to score
62
62
  the diff against), and the `git diff`. For "what would this change break"
63
63
  questions, apply `.claude/skills/devrites-lib/reference/standards/tooling.md`: use
@@ -66,7 +66,14 @@ Pull these via `Read` when the diff demands them:
66
66
  current API, context7 if available can confirm the signature. Run
67
67
  `devrites-engine check candidate <slug>` and require its digest to match the
68
68
  single `evidence.md` binding and the `browser-evidence.md` binding when that
69
- file exists. A missing, malformed, or open candidate returns to Polish/Prove.
69
+ file exists. Read those ledgers via the bounded advisory read
70
+ (`workspace-artifact-schema.md` § Read next by phase): binding line, `EVID-###`
71
+ index, then bodies for this candidate's AC/slice IDs only. A missing,
72
+ malformed, or open candidate returns to Polish/Prove.
73
+ Read `touched-files.md` `## Review trail` and `eng-review.md` `## Deferred findings`:
74
+ every deferred row is an input finding for the step-3 cohort (quoted in the owning
75
+ reviewer's brief without severity) and ends in `review.md` with its own label and
76
+ action tag — never silently dropped.
70
77
  2. **Review tests first:** do they prove the acceptance criteria? Missing,
71
78
  weak, or wrong tests are the first findings.
72
79
  **Completion:** every acceptance criterion maps to a proven test or a labeled finding.
@@ -74,7 +81,8 @@ Pull these via `Read` when the diff demands them:
74
81
  one axis and fail the other: code that follows every project standard but
75
82
  implements the wrong thing (Code-review pass, Spec fail), or code that does exactly
76
83
  what the spec asked but breaks project conventions (Spec pass, Code-review fail).
77
- Separate contexts prevent one axis from masking the other:
84
+ Separate contexts prevent one axis from masking the other. This is the initial
85
+ full pass; a correction uses step 7's bounded recheck:
78
86
  - Freeze that closed digest and give the same digest to **two** read-only reviewers in
79
87
  parallel, each with its own narrow brief and no
80
88
  cross-pollination — and evaluate the frontend (step 4), security (step 5),
@@ -88,17 +96,10 @@ Pull these via `Read` when the diff demands them:
88
96
  missing spec` and do not infer requirements from the diff."
89
97
  - **Code-review axis** → `devrites-code-reviewer`: "Apply your full documented
90
98
  discipline (tests-first, correctness, readability, architecture, maintainability,
91
- standards) on the active feature workspace + diff. Cite file:line per finding;
92
- skip what tooling already enforces. Also flag the AI-codegen smells (silent/empty
93
- catch, defensive try-catch bloat + redundant logging, single-use factory / needless
94
- indirection, dependency creep where an in-repo option exists, a 100-line function
95
- where 20 would do) and the silent-failure bugs (a missing value coerced to 0/''/[],
96
- a dropped Result/err return, off-by-one / boundary, logic that contradicts the
97
- comment/docstring/name). Per hunk, check whether working code was deleted that the
98
- task did not ask to remove. Score the diff against `.devrites/principles.md`: a change
99
- that breaks a declared invariant with no recorded, human-approved exception is a Critical.
100
- Distinguish hard documented-standard violations from baseline smells; smells are judgment
101
- calls unless a DevRites or project standard makes them binding."
99
+ standards) on the feature workspace + diff. Cite file:line; skip tooling-enforced
100
+ checks. Apply canonical anti-slop and silent-failure lenses; inspect each hunk
101
+ for unrequested deletion. Unexcepted `.devrites/principles.md` violations are
102
+ Critical. Distinguish binding standards from judgment-only baseline smells."
102
103
  - **Do NOT merge or re-rank** their findings. Present them under separate
103
104
  `## Spec` and `## Code review` sub-sections in `review.md`. Surface contradictions
104
105
  between the axes explicitly (e.g. "Spec axis says complete, Code-review axis says
@@ -131,9 +132,15 @@ Pull these via `Read` when the diff demands them:
131
132
  7. Reconcile and accept only in-scope fixes. Consolidate them into one bounded
132
133
  wright correction; never edit source in the reviewing context. Any correction
133
134
  updates the candidate manifest, returns through affected Prove, and then starts
134
- a fresh Review on the new digest. Do not carry a prior reviewer account across it.
135
+ a fresh Review binding on the new digest. Dispatch affected exact reviewers on
136
+ all their open findings and the dependency/regression closure under
137
+ [evidence validity](../devrites-lib/reference/candidate-integrity.md#evidence-validity).
138
+ Cite unchanged sub-scope coverage only with its original identity and explicit
139
+ justification; never relabel old accounts. Changed contracts or uncertain impact
140
+ require the full applicable pass.
135
141
  8. The root updates `review.md` and `state.md`, writing exactly one candidate
136
- binding in `review.md` for the digest given to every reviewer.
142
+ binding in `review.md` for the current digest, distinguishing fresh accounts from
143
+ cited unchanged sub-scope evidence and reconciling complete coverage.
137
144
  **Completion:** the records name the reviewed candidate identity and every accepted
138
145
  correction has affected proof plus a fresh Review.
139
146
 
@@ -7,8 +7,8 @@ user-invocable: true
7
7
 
8
8
  # /rite-seal: GO / NO-GO
9
9
 
10
- Verify the final candidate and write `seal.md`; `/rite-ship` alone performs
11
- authorized irreversible actions and close-out.
10
+ Verify final candidate in `seal.md`; `/rite-ship` owns authorized irreversible
11
+ actions and close-out.
12
12
 
13
13
  ## Authority
14
14
 
@@ -36,6 +36,7 @@ The host runs/reconciles named read-only reviewers; engine checks invariants.
36
36
  | Any acceptance criterion, resolved prohibition, or declared key link lacks proof | **NO-GO** |
37
37
  | Evidence is stale, or native diff review plus the exact test analyst finds weakened tests | **NO-GO: Critical** |
38
38
  | Any exact required reviewer account is missing or silent | **NO-GO** |
39
+ | Any deferred finding (`touched-files.md` `## Review trail`, `eng-review.md` `## Deferred findings`) lacks a `review.md` verdict | **NO-GO** |
39
40
  | Any `gate: validating` question remains open | **NO-GO** |
40
41
  | Material UI acceptance lacks or fails required browser proof | **NO-GO** |
41
42
  | Unresolved drift, unsafe migration/removal, or unapproved principle violation remains | **NO-GO** |
@@ -52,18 +53,17 @@ Follow [`reference/phase-contract.md`](reference/phase-contract.md)
52
53
 
53
54
  1. read workspace and final diff;
54
55
  2. recheck the canonical candidate/bindings and approved repository/CI proof;
55
- 3. dispatch exact proof, spec, test, doubt, and applicable review agents in
56
- parallel under `../devrites-lib/reference/parallel-dispatch.md` independent
57
- read-only verdicts on one frozen candidate;
56
+ 3. admit valid Spec/Code accounts; dispatch remaining required exact roles under
57
+ `../devrites-lib/reference/parallel-dispatch.md` on the same frozen candidate;
58
58
  4. reconcile their read-only verdicts against source and immutable evidence;
59
59
  5. draft GO/NO-GO `seal.md` with acceptance, tests, decisions, and seven accounts;
60
60
  6. write exactly one candidate binding, then run
61
61
  `devrites-engine check seal <slug>` for structure and identity, never semantics.
62
62
 
63
- Any candidate correction returns through affected Prove and a fresh Review before
64
- Seal starts again.
63
+ Corrections return through affected Prove/Review before restarting Seal under
64
+ [evidence validity](../devrites-lib/reference/candidate-integrity.md#evidence-validity).
65
65
 
66
- Only repository scripts/CI authorize commands; never guess them.
66
+ Only repository scripts/CI authorize commands; never guess.
67
67
 
68
68
  ## On GO
69
69
 
@@ -1,6 +1,6 @@
1
1
  # Final evidence check
2
2
 
3
- Map every `spec.md` promise to fresh observed proof.
3
+ Map spec promises to valid observed proof.
4
4
 
5
5
  ## Acceptance
6
6
 
@@ -11,7 +11,7 @@ inspection alone, and generic "tests pass" do not count.
11
11
 
12
12
  Apply [`testing.md`'s positive, discriminating proof](../../devrites-lib/reference/standards/testing.md#positive-discriminating-proof),
13
13
  including invalid-result exclusions and static/textual criterion boundaries.
14
- Unsupported behavioral claims remain unproven: NO-GO.
14
+ Unproven behavior: NO-GO.
15
15
 
16
16
  ## Cross-check
17
17
 
@@ -25,11 +25,12 @@ recovery evidence or an evidence-backed dismissal; a generic green suite cannot
25
25
 
26
26
  Run `devrites-engine check candidate <slug>` and require its digest to match the
27
27
  single evidence/review bindings and browser binding when present. Diff tests,
28
- dispatch exact `devrites-test-analyst`, run approved repository commands, then
29
- require the same candidate digest and no source mutation. Deleted/skipped/focused/
28
+ dispatch exact `devrites-test-analyst`; apply
29
+ [evidence validity](../../devrites-lib/reference/candidate-integrity.md#evidence-validity)
30
+ to approved proof, then require unchanged digest/sources. Deleted/skipped/focused/
30
31
  weakened/tautological tests are Critical.
31
32
 
32
- After the native semantic verdicts are recorded in `seal.md`, run:
33
+ After recording verdicts in `seal.md`, run:
33
34
 
34
35
  ```bash
35
36
  devrites-engine check seal "<slug>"
@@ -1,27 +1,29 @@
1
1
  # rite-seal phase contract
2
2
 
3
- Seal's candidate action follows
4
- [`candidate-integrity.md`](../../devrites-lib/reference/candidate-integrity.md).
5
-
6
3
  1. **Read.** Resolve the explicit slug or `.devrites/ACTIVE`, require its
7
4
  `state.md`, then read required workspace artifacts, conditional
8
5
  browser/design/devex evidence, and final diff.
9
6
  2. **Recheck identity and real proof.** Run
10
7
  `devrites-engine check candidate <slug>` and require its exact digest to match
11
8
  the single evidence/review bindings and the browser binding when present.
12
- Apply `spec-grammar.md`'s Native grammar re-read checklist, then run only
13
- `test-plan.md`'s repository/CI commands against that frozen digest. Rerun the
9
+ Apply `spec-grammar.md`'s Native grammar re-read checklist and
10
+ [evidence validity](../../devrites-lib/reference/candidate-integrity.md#evidence-validity).
11
+ Run required `test-plan.md` commands unless valid observed proof already satisfies
12
+ them under that contract. Rerun the
14
13
  candidate check afterward and require the identical digest and no source
15
14
  mutation. Capture command, cwd, exit, decisive output, and identity.
16
15
  Missing/red/mismatched blocks; unavailable is `cannot_verify`, never pass.
17
16
  3. **Judge acceptance.** Dispatch exact `devrites-proof-runner` on immutable
18
- proof and exact `devrites-spec-reviewer` on the same candidate. Reconcile every
17
+ proof; admit valid same-candidate `devrites-spec-reviewer` evidence from Review
18
+ or dispatch that exact reviewer. Reconcile every
19
19
  AC/REQ/scenario/key link by ID and meaning; missing/stale/self-attested/mismatched is NO-GO.
20
20
  4. **Judge tests.** Diff baseline/candidate tests for deletion, skip/focus,
21
21
  tautology, or weakening; dispatch exact `devrites-test-analyst`. Missing or
22
22
  adverse account, or green tests not asserting mapped behavior, is Critical.
23
23
  5. **Resolve gates.** Open blocking/escalating/validating questions and drift
24
24
  block. Each stood decision needs a reconciled exact `devrites-doubt-reviewer` verdict.
25
+ Every deferred finding (`touched-files.md` `## Review trail`, `eng-review.md`
26
+ `## Deferred findings`) needs its `review.md` verdict; a row without one blocks.
25
27
  6. **Risk and native review.** Apply [`risk-and-rollback.md`](risk-and-rollback.md)
26
28
  and the [`review roster`](../../devrites-lib/reference/parallel-dispatch.md) on
27
29
  the candidate. Admit each result through
@@ -31,17 +33,15 @@ Seal's candidate action follows
31
33
  7. **Route corrections.** Reconcile cited findings/disagreements, but do not
32
34
  edit the candidate or manifest in Seal. Route an accepted correction through
33
35
  one bounded wright, update the manifest, run affected Prove, complete a fresh
34
- Review, then restart Seal on the new digest.
35
- 8. **Draft, then check deterministic invariants.** Write `seal.md` from
36
+ Review under evidence validity, then restart Seal on the new digest.
37
+ 8. **Draft/check.** Write `seal.md` from
36
38
  [`seal-template.md`](seal-template.md) with the GO/NO-GO rationale, acceptance map,
37
39
  test-analysis account, stood-decision verdicts, all seven reviewer accounts,
38
40
  and exactly one `Candidate SHA-256: <64 lowercase hex>` line. Then run:
39
41
  ```bash
40
42
  devrites-engine check seal "<slug>"
41
43
  ```
42
- This checks structure and exact candidate bindings, not prose or semantics. Blocks exit `3`;
43
- invalid state exits `2`. GO sets `Next step: /rite-ship`; NO-GO names the
44
- smallest fix. Never commit, push, tag, publish, deploy, or close here.
44
+ Structure/bindings only: blocks exit `3`, invalid state `2`. GO sets
45
+ `Next step: /rite-ship`; NO-GO names the fix. No commit/push/tag/publish/deploy/close.
45
46
 
46
- > When tempted to round NO-GO up to GO or average away reviewer disagreement,
47
- > load [`anti-patterns.md`](anti-patterns.md).
47
+ Apply [`anti-patterns.md`](anti-patterns.md); never average away disagreement.
@@ -80,6 +80,9 @@ if absent, route to `/rite-spec <feature>`. Ship only with current **GO** in `se
80
80
  to move `.devrites/work/<slug>` → `.devrites/archive/<slug>` and clear `ACTIVE`
81
81
  only if it names this slug; preserve another active feature's cursor.
82
82
  Preserve every `.md`; stable hierarchical instructions need no active-workspace sync.
83
+ Report the recorded `Next step` verbatim — the exact `/rite-spec <parent>-<n> "<objective>"`
84
+ when a continuation sequence remains — so the next increment starts from one line,
85
+ never from chat memory.
83
86
 
84
87
  > **Mid-flight discipline.** No seal GO, skipped type-GO, out-of-manifest stage, or
85
88
  > deleted workspace. Stop and use [`anti-patterns`](reference/anti-patterns.md).
@@ -5,8 +5,13 @@ deleted. DevRites keeps the audit trail; it just moves out of the live path.
5
5
 
6
6
  ## What close-out does
7
7
 
8
- 1. **Mark done.** Set `state.md` → `Phase: done`, `Status: done`, and a `Next step`
9
- of `/rite-spec <next feature>`.
8
+ 1. **Mark done.** Set `state.md` → `Phase: done`, `Status: done`, and a `Next step`.
9
+ When this workspace's `decisions.md` records an unfinished
10
+ [continuation sequence](../../rite-plan/reference/slicing.md#continuation-workspaces),
11
+ that step is the **exact** next command — `/rite-spec <parent>-<n> "<objective>"` —
12
+ and the ship reply prints the same line. Otherwise it stays
13
+ `/rite-spec <next feature>`. Nothing spawns the continuation automatically:
14
+ the recorded command is the handoff, so the human starts each increment knowingly.
10
15
  2. **Archive.** Run the deterministic script:
11
16
  ```bash
12
17
  devrites-engine state close <slug>
@@ -25,6 +30,15 @@ can also fail. Inspect the actual live path, archive and cursor before reporting
25
30
  retrying. Record the command/error and observed locations; never claim restored state
26
31
  from an attempted rollback or repeat a move against an unverified destination.
27
32
 
33
+ ## Sequence predecessors
34
+
35
+ A deferred-ship sequence leaves earlier milestones sealed and unarchived in
36
+ `.devrites/work/`. The release ship's disclosed plan may close them
37
+ (`devrites-engine state close '<slug>'` per predecessor) after the release commit
38
+ lands; each close is safe because `ACTIVE` names the release workspace. Closing is
39
+ bookkeeping only: the release commit already carries their bytes, and their audit
40
+ records move intact.
41
+
28
42
  ## Why archive, not delete
29
43
 
30
44
  - The `.md` files (`spec`, `decisions`, `assumptions`, `evidence`, `seal`, `ship`, …)
@@ -12,11 +12,13 @@ Acceptance criteria proven: <n / total>
12
12
  Branch: <target branch>
13
13
  Candidate paths: <exact project-relative paths>
14
14
  Checkpoint collapse: <exact `git reset --soft '<merge-base>'` command | skip>
15
+ Collapse slugs: <active slug plus every recorded sequence slug in the range | n/a>
15
16
  Stage plan: <exact argv-safe `git add -- '<path>'` command for every manifest row>
16
17
  Commit: <exact git commit command>
17
18
  Push: <exact git push command | skip>
18
19
  Tag: <exact git tag command | skip>
19
20
  PR: <exact PR command, target, title, and body source | skip>
21
+ Close: <exact `devrites-engine state close '<slug>'` for each sealed sequence predecessor | skip>
20
22
 
21
23
  Type "GO" exactly to approve this attempt once. Anything else cancels.
22
24
  ```
@@ -45,9 +47,12 @@ Pre-GO is read-only. Do not run the disclosed collapse or staging commands.
45
47
  1. **Analyze checkpoint history without mutating it.** Read the upstream, merge
46
48
  base, commit OIDs, and full subjects. If no checkpoint commit exists, disclose
47
49
  `skip`. A collapse is eligible only when every commit in its range has the exact
48
- `WIP(<active-slug>):` prefix for the validated active slug. A different slug,
49
- missing colon, broad `WIP(` match, ordinary commit, or mixed history blocks;
50
- never reinterpret the range.
50
+ `WIP(<slug>):` prefix for the validated active slug or, for a release ship of a
51
+ deferred-ship sequence, for a slug recorded in the parent's `decisions.md`
52
+ sequence whose workspace is sealed in this run
53
+ ([afk-hitl.md § Sequence continuation](../../devrites-lib/reference/standards/afk-hitl.md#sequence-continuation-continue_sequence-max_workspaces));
54
+ disclose the exact slug set. A different slug, missing colon, broad `WIP(` match,
55
+ ordinary commit, or mixed history blocks; never reinterpret the range.
51
56
  2. **Verify the candidate.** Rerun `devrites-engine check candidate <slug>` and
52
57
  `devrites-engine check seal <slug>`, compare every binding, require the
53
58
  candidate worktree paths to be unchanged, and inspect the existing staged
@@ -62,8 +67,8 @@ Pre-GO is read-only. Do not run the disclosed collapse or staging commands.
62
67
 
63
68
  1. **Optional checkpoint collapse.** If and only if the prompt disclosed it,
64
69
  recheck that `HEAD`, merge base, and every subject are unchanged and that each
65
- subject starts exactly `WIP(<slug>):` for the active slug, then run the exact
66
- disclosed `git reset --soft "$mb"`. Otherwise skip. Any different or mixed
70
+ subject starts exactly `WIP(<slug>):` for the disclosed slug set, then run the
71
+ exact disclosed `git reset --soft "$mb"`. Otherwise skip. Any different or mixed
67
72
  subject blocks without mutation.
68
73
  2. **Exact staging.** Run `git add -- "$path"` once for each disclosed manifest
69
74
  row, passing each validated project-relative path as its own quoted argv
@@ -95,6 +100,10 @@ Pre-GO is read-only. Do not run the disclosed collapse or staging commands.
95
100
  Any mismatch stops; do not reinterpret it.
96
101
  8. **Push** to the project-conventional target branch.
97
102
  9. **Tag / PR** only when project convention requires it; otherwise skip.
103
+ 10. **Close sealed predecessors** only when the prompt disclosed them: run the
104
+ exact `devrites-engine state close '<slug>'` once per predecessor. Each is safe
105
+ because `ACTIVE` names the release workspace; a nonzero exit stops the rest and
106
+ is reported, never retried against an unverified destination.
98
107
 
99
108
  Record SHA(s), branch, and tag/PR URL in `ship.md`.
100
109
 
@@ -50,6 +50,12 @@ load a routed standard to discover required behavior, not to prescribe implement
50
50
  problem in one sentence. **Completion:** it includes both.
51
51
  1a. **Dedupe.** Search local issues/PRDs, work, and archive. On a close match ask
52
52
  extend/adopt/new, then record the choice; otherwise continue silently.
53
+ A recorded [feature-sequence continuation](../rite-plan/reference/slicing.md#continuation-workspaces)
54
+ is a **new** workspace (`<parent>-2`): carry the parent slug and position into
55
+ `brief.md`, read the parent artifacts as design input, and do not route to
56
+ `/rite-plan revise` on the parent. When the ask is open and archived work records
57
+ an unfinished sequence, propose that next continuation (slug + objective) as the
58
+ recommended option instead of a fresh slug.
53
59
  2. **Investigate:** follow [investigation](reference/investigation.md) through its
54
60
  complete findings and done-when gate. Discover the project's **test /
55
61
  build/typecheck/lint** commands, frontend/backend systems, and declared project guidance
@@ -172,6 +172,12 @@ Ordinary workspace creation preserves the field without initializing,
172
172
  increasing, renaming, or deleting it. Released bullet workspaces spell it `AFK
173
173
  slices remaining`; preserve that presentation rather than migrating it.
174
174
 
175
+ When the brief records a [sequence continuation](../../rite-plan/reference/slicing.md#continuation-workspaces),
176
+ seed the `sequence_parent`, `sequence_position`, `sequence_workspaces_remaining`,
177
+ and — for the release entry — `sequence_role` rows at creation per that contract.
178
+ Without them `state merge-manifest` cannot walk the chain and the release-union
179
+ gate never engages.
180
+
175
181
  ## questions.md entry format
176
182
 
177
183
  ```markdown
@@ -16,7 +16,10 @@ Use the supplied slug or `.devrites/ACTIVE`; require its authoritative
16
16
  `state.md` and read the cursor directly. Read question, evidence, and risk
17
17
  artifacts only as needed. Never infer lifecycle state from `README.md` or chat.
18
18
 
19
- If no workspace exists, recommend `/rite-spec <feature>` and stop.
19
+ If no workspace exists: when archived workspaces record an unfinished
20
+ [continuation sequence](../rite-plan/reference/slicing.md#continuation-workspaces),
21
+ list each next command (`/rite-spec <parent>-<n> "<objective>"`); otherwise
22
+ recommend `/rite-spec <feature>`. Then stop.
20
23
 
21
24
  If `state.md` is unreadable/malformed: report a gap with the defect and stop — never infer the phase from other files; `/rite-doctor`/`/rite-upgrade` own repair.
22
25
 
@@ -7,8 +7,7 @@ user-invocable: true
7
7
 
8
8
  # /rite-temper: review scope and risk before planning
9
9
 
10
- Review a readied spec for outcome ambition, scope, pre-mortem risks, and unnecessary
11
- solution surface. Fold accepted decisions into the canonical contract before
10
+ Review the readied spec for ambition, scope, pre-mortem risk and unnecessary surface. Fold accepted decisions into the canonical contract before
12
11
  `/rite-define`. This step is optional for small work and skips low-stakes specs, but
13
12
  `/rite-autocomplete` always invokes it. **Read the active workspace first**; if there
14
13
  is no readied `spec.md`, tell the user to run `/rite-spec`. Review depth follows
@@ -58,6 +57,10 @@ the spec applicability map triggers that risk family.
58
57
  First, the **one-sentence-intent test**: state the whole change's intent in a single sentence.
59
58
  If you can't without an "and" that joins two unrelated outcomes, it is **two features**: the
60
59
  scope-creep signal; recommend splitting or narrowing the spec before continuing.
60
+ Apply the same test to size: a spec whose honest decomposition would exceed the
61
+ [feature ceiling](../rite-plan/reference/slicing.md#feature-ceiling-split-an-epic-never-override-the-budget)
62
+ (roughly ten slices or more than ~20 acceptance criteria) is a feature sequence;
63
+ recommend the thinnest shippable subset now and name the continuations as Non-goals.
61
64
  Then consider the 10-star outcome for the underlying problem and choose **exactly one**
62
65
  scope mode (`expand` opt-in · `selective` · `hold-rigor` · `reduce-to-MVP`) with its
63
66
  rationale and the condition that would change the choice. `$ARGUMENTS` `--mode` is a
@@ -106,19 +109,19 @@ the spec applicability map triggers that risk family.
106
109
  and closed gates. Partial/Missing, an unowned material assumption, or an open
107
110
  blocking/escalating question routes `/rite-clarify`/HITL. Only after the
108
111
  matrix is re-closed may the phase advance.
109
- Update `state.md`: `Phase: temper`,
110
- `Next step: /rite-define`; on a blocking pause (expand / irreversible / a dimension still below
111
- bar) write the `Awaiting human` block + `Status: awaiting_human` before stopping.
112
+ Set `Phase: temper`; `Next step: /rite-define` only after verification.
113
+ Human-owned expansion/unapproved irreversible choices set `Awaiting human` +
114
+ `Status: awaiting_human`; objective below-bar findings continue correction.
112
115
  7. **Adversarial verification loop:** ask the exact
113
116
  [`devrites-strategy-reviewer`](../../agents/devrites-strategy-reviewer.md)
114
117
  through the native fresh-context contract in
115
118
  [`agents.md`](../devrites-lib/reference/standards/agents.md), with **only** the hardened
116
- spec + rubric: no authoring reasoning. Resolve
117
- actionable findings by editing `spec.md`/`strategy.md`, re-dispatch; **cap ≤3 iterations**. A
118
- dimension still below bar after 3 is classified by decision ownership: a product/scope/risk
119
- choice becomes a blocking question; an objective spec defect stays blocked with the exact
120
- required edit and routes to `/rite-spec`, not `/rite-resolve`. Irreversible-risk findings
121
- always pause. If the named agent is unavailable, stop for HITL. After an accepted edit to a
119
+ spec + rubric, no authoring reasoning. Fold technical findings into one correction;
120
+ exact strategy reviewer rechecks open findings and affected coverage/regressions under
121
+ [the canonical retry contract](../devrites-lib/reference/standards/afk-hitl.md#retry-cap-no-progress-loops-and-self-resolve):
122
+ Product/scope choices and unapproved irreversible risk remain human gates;
123
+ technical exhaustion preserves blocker/reproduction.
124
+ If the named agent is unavailable, stop for HITL. After an accepted edit to a
122
125
  coverage-bound input, repeat step 6's native coverage revalidation before handoff.
123
126
  8. **STOP.** Report the mode, the scope deltas, and the floor verdict; recommend `/rite-define`.
124
127
 
@@ -1,29 +1,30 @@
1
1
  # /rite-temper: anti-patterns
2
2
 
3
- Universal rationalizations + red flags live in
4
- [`../../devrites-lib/reference/standards/anti-patterns.md`](../../devrites-lib/reference/standards/anti-patterns.md): read it when the
5
- reluctance is broader than this phase. Below are the temper-specific ones.
3
+ For cross-phase issues, read [universal anti-patterns](../../devrites-lib/reference/standards/anti-patterns.md).
6
4
 
7
5
  ## Phase rationalizations
8
6
 
9
7
  | Excuse | Rebuttal |
10
8
  |---|---|
11
- | "I'll write all the findings into `strategy.md` and let the user read it." | The artifact is the *output* of an interactive review, not a substitute for it. A finding's path to "done" goes **through `AskUserQuestion`**, one at a time, with a recommendation + why. Dumping findings into one write and moving on is the exact failure mode this skill exists to prevent. |
9
+ | "I'll write all the findings into `strategy.md` and let the user read it." | Fold and recheck objective corrections preserving scope, behavior, and risk policy. Ask human-owned strategy/acceptance choices with recommendations and await answers. Recording alone resolves nothing; never silently expand or trim the spec. |
12
10
  | "Bigger is better: let's add the extra capability while we're thinking big." | Ambition belongs on the **outcome**, not the **solution surface**. A speculative capability/abstraction is gold plating. Expand the problem + acceptance; never the machinery. |
13
11
  | "The user obviously wants the ambitious version. I'll add it to the spec." | Expansion is **opt-in**, recorded, and confirmed (HITL) or paused (AFK). Adding acceptance the human didn't approve is silent scope growth: route it through the Spec Drift Guard or don't add it. |
14
12
  | "It's over-scoped, I'll just trim those criteria." | Reducing scope is **still a spec change**. Cut acceptance only as a recorded Spec-Drift-Guard decision, and park the rest in Non-goals with a revisit note: never a silent trim. |
15
- | "This dimension is weak but the others are strong: net it's fine." | The gate is the **floor**, not the average. A spec `broken` on risk does not pass because it's `strong` on clarity. |
16
- | "I can see it's adequate. I'll note the band, evidence is obvious." | Cite the evidence (the spec line or its absence) **before** the band. Score-first-justify-later is how a reviewer rationalizes a spec it already likes. |
13
+ | "This dimension is weak but the others are strong: net it's fine." | The gate is the **floor**, not the average; strong clarity cannot offset broken risk. |
14
+ | "I can see it's adequate. I'll note the band, evidence is obvious." | Cite spec evidence **before** the band; never score first and rationalize later. |
17
15
  | "It's a strategy doc, the implementation concerns don't apply yet." | Cross-cutting concerns (security/data/observability/modifiability) are where strategy breaks down. Address each or mark it explicitly N/A: silent omission is a gap. |
18
- | "This greenfield design is elegant." | Elegant for a codebase that doesn't exist. Ground ambition in the real seams + blast radius; flag a new dependency / second design system for an explicit decision. |
16
+ | "This greenfield design is elegant." | Ground ambition in live seams/blast radius; a new dependency or second design system needs an explicit decision. |
19
17
 
20
18
  ## Red flags
21
- - `strategy.md` written but `spec.md` acceptance/Non-goals **not** updated: the build follows
22
- the spec, so the review changed nothing.
23
- - An `expand` decision auto-applied in AFK (it must pause), or any irreversible-risk touch that
24
- didn't pause.
19
+ - An accepted strategy change recorded in `strategy.md` but not reflected in its
20
+ owning spec acceptance/Non-goals. A clean review does not require gratuitous spec edits.
21
+ - An `expand` decision auto-applied in AFK, an unapproved risk-policy change, or an
22
+ irreversible operation without its required authorization.
25
23
  - A pre-mortem with risks listed but no mitigation + owning slice: a risk without an owner is a
26
24
  wish.
27
- - The reviewer loop running past 3 iterations, or the reviewer being handed the author's
28
- reasoning (defeats the fresh-context point).
25
+ - Repeating an exhausted causal failure under the shared no-progress rule in
26
+ [`afk-hitl.md`](../../devrites-lib/reference/standards/afk-hitl.md), or stopping a
27
+ distinct cause solely because the total review round exceeds three.
28
+ - The reviewer being handed the author's reasoning as independent evidence
29
+ (defeats the fresh-context point).
29
30
  - The skill writing a `plan.md`, slicing, or touching code. That's `/rite-define` / `/rite-build`.
@@ -61,7 +61,6 @@ justifies it. Review a borderline dimension twice if needed and use the **lower*
61
61
  irreversibility & #9 convention-fit both touch codebase realism; #1 ambition & #2 scope both
62
62
  touch over/under-reach). Don't fail two dimensions for the *same* root cause: cite the
63
63
  evidence once and assign one band so one problem does not create two floor failures.
64
- - Below-bar dimension after the ≤3-iteration reviewer loop classify by decision ownership:
65
- product/scope/risk uncertainty becomes a blocking question; an objective prose/coverage defect
66
- routes back to `/rite-spec` without inventing a human decision. Irreversible-risk findings
67
- always pause regardless of band.
64
+ - Below-bar blocks readiness; objective fixes return to the caller under
65
+ [the canonical retry contract](../../devrites-lib/reference/standards/afk-hitl.md#retry-cap-no-progress-loops-and-self-resolve).
66
+ Human-owned scope/risk choices keep their gate; exhaustion blocks technically.
@@ -29,7 +29,7 @@ references, and only current phase contracts needed for the observed gap.
29
29
  a current rule, exact workspace evidence, affected gate, owning rite, exact paths, and
30
30
  the smallest behavior-neutral delta.
31
31
  - Existing rites own semantic changes. Upgrade may sequence `/rite-clarify`,
32
- `/rite-plan repair`, `/rite-converge`, `/rite-vet`, `/rite-prove`, `/rite-polish`,
32
+ `/rite-plan repair|revise|course-correct`, `/rite-converge`, `/rite-vet`, `/rite-prove`, `/rite-polish`,
33
33
  `/rite-review`, and `/rite-seal`; it never reimplements them or starts Build or Ship.
34
34
  `/rite-doctor` owns install/config diagnosis.
35
35
  - An admitted candidate route may name only the exact current gate artifacts its owner
@@ -50,7 +50,9 @@ references, and only current phase contracts needed for the observed gap.
50
50
  Archive-only is `current`; otherwise require contained regular `state.md` and read its
51
51
  cursor. A damaged/mismatched install stops at Doctor; missing live work routes
52
52
  `/rite-spec`; `done` is `current`. An unknown cursor is `unsupported`.
53
- 1. **Freeze preservation evidence.** Record `git status --short`, cursor form/fields, and
53
+ 1. **Freeze preservation evidence.** Record `git status --short`, cursor form/fields,
54
+ `devrites-engine orient <slug>` (cursor, `task_graph`, `artifact_budgets`,
55
+ `bulk_files`), and
54
56
  hashes of completed-slice fields, candidate gate artifacts, existing answers/decisions,
55
57
  and protected history. Inventory every path that could change; absence is evidence,
56
58
  never permission to synthesize history. For a post-Build workspace, also retain the
@@ -69,6 +71,13 @@ references, and only current phase contracts needed for the observed gap.
69
71
  one at a time:
70
72
  - decision coverage or a material assumption → `/rite-clarify`;
71
73
  - stale/inconsistent planning or traceability with settled intent → `/rite-plan repair`;
74
+ - over-budget `state.md` or planning artifacts carrying checkpoint narrative, or
75
+ packets/traces in the workspace root → `/rite-plan revise` (verbatim relocation to
76
+ `history/` / `packets/`, current view only; IDs, meaning, answers and decisions
77
+ unchanged; nothing deleted);
78
+ - unbuilt slices beyond the [feature ceiling](../rite-plan/reference/slicing.md#feature-ceiling-split-an-epic-never-override-the-budget)
79
+ → `/rite-plan course-correct` (`MVP cut` plus the named continuation sequence;
80
+ built slices and their evidence stay);
72
81
  - live code and recorded intent disagreement → `/rite-converge`;
73
82
  - any changed planning input or readiness defect → `/rite-vet`;
74
83
  - a missing/malformed strict manifest, missing/malformed/mismatched evidence binding,
@@ -7,10 +7,9 @@ user-invocable: true
7
7
 
8
8
  # /rite-vet: review the plan before build
9
9
 
10
- Vet every plan before code for scope, architecture, quality, proof, performance,
11
- failure modes, and writer safety. Cite findings; fold accepted technical
12
- hardening into planning artifacts; design Build tests. Temper owns product
13
- scope, Vet owns implementation; current `$ARGUMENTS` (`--full`) feeds the depth triggers in
10
+ Vet every plan's scope, architecture, quality, proof, performance, failures and writer
11
+ safety. Fold cited technical findings; design Build tests. Temper owns product;
12
+ Vet owns implementation; current `$ARGUMENTS` (`--full`) feeds the depth triggers in
14
13
  `reference/depth.md`; profiles never remove the exact plan-reviewer gate
15
14
  ([orchestration-profiles.md](../devrites-lib/reference/orchestration-profiles.md)).
16
15
 
@@ -36,8 +35,8 @@ plan declares a root-authored executable workflow file, read
36
35
 
37
36
  - Review implementation, not ambition. Challenge creep, complexity, proof, and
38
37
  risk without changing accepted product scope.
39
- - Root alone asks, decides, folds, writes, and sets readiness. Reviewers judge;
40
- they add no route policy. Cite every finding and confidence; suppress
38
+ - Root owns decisions/writes/readiness; reviewers judge without route policy.
39
+ Cite findings/confidence; suppress
41
40
  unverified or confidence ≤4 findings under `review-axes.md`.
42
41
  Lens arrows in `eng-lenses.md` are heuristics; band findings only under the
43
42
  four `review-axes.md` names.
@@ -47,8 +46,6 @@ plan declares a root-authored executable workflow file, read
47
46
  `NOTICE.md` generator regions, CI/hook config named in repo docs) require explicit
48
47
  human approval before plan slices may edit them. A slice touching a protected path
49
48
  without approval → Vet **NEEDS CLARIFICATION**.
50
- **Failing case:** plan edits another feature's `state.md` without recorded approval →
51
- fail closed.
52
49
  - Use the lowest axis band; never average or round thin to ready. Search before
53
50
  asking and resolve reversible technical choices. Ask only human-owned choices.
54
51
  - Preserve a valid technical return cursor. Agent-owned `NEEDS REPLAN` returns
@@ -91,7 +88,11 @@ plan declares a root-authored executable workflow file, read
91
88
  changed clause — enumerate dependents via the dep graph and traceability
92
89
  refs, not only patched sites. Otherwise record one no-progress outcome. A
93
90
  different Critical/Important invariant needs exact evidence and a new
94
- fingerprint; a Suggestion, Nit, or FYI cannot keep recovery open. A packet
91
+ fingerprint; a Suggestion, Nit, or FYI cannot keep recovery open. Reviewer
92
+ `Late:` rows on unchanged clauses follow the canonical
93
+ [late-finding rule](../devrites-lib/reference/standards/afk-hitl.md#retry-cap-no-progress-loops-and-self-resolve):
94
+ Critical with a failure path → new fingerprint; otherwise `eng-review.md`
95
+ `## Deferred findings` (mechanism rows become one proof row at step 6). A packet
95
96
  marked `convergence_pressure` accepts an explicit, bounded declared
96
97
  residual/limitation folded into the contract text as closure for a finding
97
98
  marked as a refinement of an already-pinned clause; the recheck may re-raise
@@ -101,7 +102,10 @@ plan declares a root-authored executable workflow file, read
101
102
  materialization gate — anchors applied, mirrors consistent, invariants
102
103
  pass — without a dispatched reviewer; sub-Important findings already
103
104
  cannot keep recovery open. Reconcile
104
- shared artifact/readiness gates and return to caller or next repair.
105
+ shared artifact/readiness gates, then enter step 8 or the next repair.
106
+ Do not fall through to steps 2–7. Retain evidenced unchanged coverage; changed
107
+ global contract/uncertain impact requires full applicable review. Reopen historical
108
+ findings only for affected invariants/dependencies.
105
109
  2. **Challenge scope.** Apply review-axes §0 and search accepted decisions.
106
110
  Harden to the smallest contract-complete plan, using marked topology action.
107
111
  Then verify bidirectional ID-and-meaning traceability across spec/plan/
@@ -133,7 +137,11 @@ plan declares a root-authored executable workflow file, read
133
137
  Technical gaps are `NEEDS REPLAN` and Plan repair — each finding marks
134
138
  itself `new_failure_mode` or names the already-pinned clause/fingerprint
135
139
  it refines, making alias-detection and `convergence_pressure` eligibility
136
- mechanical. Product/risk gaps are
140
+ mechanical and carries `kind: contract | mechanism`
141
+ (`review-axes.md` § Finding kind). Only `contract` findings open a Plan
142
+ repair; a `mechanism` finding is closed by one `test-plan.md` proof row
143
+ at step 6 and leaves readiness intact when nothing else is open.
144
+ Product/risk gaps are
137
145
  `NEEDS CLARIFICATION` and Clarify. Neither becomes a Build qid.
138
146
  5. **Review axes.** Apply `review-axes.md` through `eng-lenses.md`. Fold verified
139
147
  behavior-preserving technical findings; walk only human-owned decisions.
@@ -155,12 +163,11 @@ plan declares a root-authored executable workflow file, read
155
163
  that new fingerprint as progress. Then close matrix and rerun ID/meaning audit.
156
164
  8. **Build readback and readiness.** Add a cited five-line readback to
157
165
  `eng-review.md` (artifacts.md §7 rows 1–5): outcome/ACs; IN/OUT/must-NOT; UI direction and architecture/
158
- critical flow; slice order/first slice; decisive proof/action-time gates. A
159
- fresh implementer must need no product, architecture, or proof invention.
166
+ critical flow; slice order/first slice; decisive proof/action-time gates. No implementer should need to invent product, architecture, or proof.
160
167
  Contradiction, ownerlessness, or material ambiguity blocks via Clarify or Plan.
161
168
 
162
169
  Write exactly one `Implementation readiness: READY`, `NEEDS CLARIFICATION`,
163
- or `NEEDS REPLAN`. Root alone sets READY after every account, checklist,
170
+ or `NEEDS REPLAN`. Root sets READY after every account, checklist,
164
171
  preflight, and sweep is green. Write phase/next step and emit one
165
172
  `Readiness inputs SHA-256` with
166
173
  `devrites-engine check readiness --emit-binding <slug>`; normal readiness check
@@ -177,7 +184,7 @@ plan declares a root-authored executable workflow file, read
177
184
  > Do not replace interactive review with artifacts, change acceptance through
178
185
  > hardening, score without source evidence, or ignore unexplained complexity.
179
186
 
180
- ## Phase exit (observable)
187
+ ## Phase exit
181
188
 
182
189
  **Complete when:** `eng-review.md` records exactly one readiness verdict, readiness
183
190
  binding SHA-256 passes, and every required reviewer account is admitted.