devrites 5.3.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 +12 -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 -17
  45. package/pack/.claude/skills/rite-build/reference/afk-discipline.md +1 -1
  46. package/pack/.claude/skills/rite-build/reference/parallel-batch.md +101 -39
  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 -17
  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 +101 -39
  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 -17
  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 +101 -39
  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 -17
  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 +101 -39
  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
@@ -1,8 +1,6 @@
1
1
  # /rite-vet: 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 vet-specific ones.
3
+ Read [universal anti-patterns](../../devrites-lib/reference/standards/anti-patterns.md).
6
4
 
7
5
  Authority: `.omp/skills/devrites-lib/reference/standards/acceptance-preserving-reslice.md`.
8
6
 
@@ -16,15 +14,15 @@ Authority: `.omp/skills/devrites-lib/reference/standards/acceptance-preserving-r
16
14
 
17
15
  | Excuse | Rebuttal |
18
16
  |---|---|
19
- | "I'll write all the findings into `eng-review.md` and let the user read it." | The artifact is the *output* of an interactive review, not a substitute for it. A material 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 this skill exists to prevent. |
17
+ | "I'll write all the findings into `eng-review.md` and let the user read it." | Fold verified behavior-preserving findings together and recheck affected closure. Ask human-owned choices with recommendations and await answers. Recording alone resolves nothing; never silently change acceptance or mark unresolved choices READY. |
20
18
  | "The plan doesn't handle X: flag it." (without checking) | Quote the line first. If you can't quote where the plan handles X, you also can't be sure it doesn't: force confidence ≤4 and suppress. The "field/case doesn't exist" finding is the most common false positive; the verification gate exists to kill it. |
21
- | "It's an obvious fix. I'll just edit the plan." | Verified plan hardening is Vet's job; topology uses the marked action. |
19
+ | "It's an obvious fix. I'll just edit the plan." | Vet hardens verified plans; topology uses the marked action. |
22
20
  | "This dimension is thin but the others are strong: net it's fine." | The gate is the **floor**, not the average. A plan `broken` on test-coverage does not pass because it's `strong` on architecture. |
23
- | "I can see it's adequate. I'll note the band, the evidence is obvious." | Cite the quoted evidence **before** the band. Score-first-justify-later is how a reviewer waves through a plan it already likes. |
24
- | "8+ files but it all needs to change: proceed." | The complexity smell is a **STOP-and-ask**, not a note. Name the overbuilt part, propose the smaller version that still meets acceptance, and let the human decide before any axis runs. Maybe it's justified (record *why*) but the gate fires first. |
21
+ | "I can see it's adequate. I'll note the band, the evidence is obvious." | Cite quoted evidence **before** the band; never score first and rationalize later. |
22
+ | "8+ files but it all needs to change: proceed." | Apply `review-axes.md` §0: justify complexity against the smallest contract-complete alternative; fold technical reductions through the marked action. File count does not justify design or require a pause. Ask only for changed scope, behavior, or risk policy. |
25
23
  | "There's no test for this, but the user can add one later." | Coverage is designed **now**, before the code, so the build writes tests alongside it. A deferred test is a test that misses the boundary cases writing-it-now would expose. Regressions are non-negotiable. Critical, no question. |
26
24
  | "Performance looks fine." | "Looks fine" is not a measurement. A perf finding is "measure X against budget Y" or it's nothing: don't recommend speculative tuning, and don't wave past an N+1 you can quote. |
27
- | "Cross-model agrees, so apply it." | Cross-model consensus is a strong *signal*, not an approval. Every cross-model finding is informational until the human approves it (or, in AFK, until the gate ceiling clears a hardening-only change). |
25
+ | "Cross-model agrees, so apply it." | Consensus is a signal, not proof or approval. Verify the finding against source, then use the same technical-hardening or human-owned decision route; model agreement never authorizes a scope, acceptance, or policy change. |
28
26
 
29
27
  ## Reslice classifier rationalizations
30
28
 
@@ -36,6 +34,10 @@ Authority: `.omp/skills/devrites-lib/reference/standards/acceptance-preserving-r
36
34
  - A finding raised with confidence ≥7 but **no quoted source line**, that defeats the verification gate.
37
35
  - Acceptance/product-behavior growth auto-applied in AFK, or an orthogonal human-owned gate that did not pause.
38
36
  - A failure-mode table with rows but no verdict column filled: a "no test + no handling + silent" row not marked Critical.
39
- - The reviewer loop running past 3 iterations, or the reviewer / cross-model being handed the author's reasoning (defeats the fresh-context point).
37
+ - Repeating an exhausted causal failure under the shared no-progress rule in
38
+ [`afk-hitl.md`](../../devrites-lib/reference/standards/afk-hitl.md), or stopping a
39
+ distinct cause solely because the total review round exceeds three.
40
+ - The reviewer / cross-model being handed the author's reasoning as independent
41
+ evidence (defeats the fresh-context point).
40
42
  - The skill writing code, implementing a slice, or running the build. That's `/rite-build`. Vet reviews and hardens the plan; it never implements.
41
43
  - Re-litigating the **spec's** scope/ambition, that was `/rite-temper`. Vet challenges *implementation* scope only.
@@ -1,10 +1,8 @@
1
1
  # Depth calibration: always vet, scale the rigor (never skip)
2
2
 
3
- `/rite-vet` runs on **every** plan: every feature deserves a correct engineering plan, not
4
- just the big ones. What changes with stakes is the *depth*, never *whether* it runs: a simple,
5
- reversible plan gets a fast **light pass**; a big or risky one gets the **full pass**. There is
6
- no skip. This shared definition is used by both the standalone `/rite-vet` and the always-run
7
- `/rite-autocomplete` step, so they agree on how deep to go.
3
+ `/rite-vet` runs on **every** plan. Simple reversible work gets a **light pass**;
4
+ big/risky work gets a **full pass**, never a skip. Standalone Vet and Autocomplete
5
+ use these same depth rules.
8
6
 
9
7
  A four-section deep-dive on a one-file reversible plan is wasteful; rubber-stamping a
10
8
  migration-touching plan is dangerous. Match the effort to the stakes, but **always** leave a
@@ -55,6 +53,7 @@ triggers above, **never skipped**. Under the AFK gate ceiling:
55
53
  failure-mode coverage, tightened scope, reuse-over-rebuild, dependency-order fixes
56
54
  (these never grow acceptance). Record the rationale in `decisions.md`.
57
55
  - **Topology findings:** marked action; slice count alone never pauses.
58
- - **Always pause:** irreversible-risk findings, and any axis still below bar after the
59
- ≤3-iteration reviewer loop.
56
+ - **Stops:** human-owned irreversible-risk findings pause. Technical recovery follows
57
+ [the canonical retry contract](../../devrites-lib/reference/standards/afk-hitl.md#retry-cap-no-progress-loops-and-self-resolve),
58
+ with no depth-specific round limit; no-progress exhaustion blocks, never grants readiness.
60
59
  - **Cross-model** is off by default; it runs only if `--cross-model` was explicitly armed.
@@ -1,7 +1,7 @@
1
1
  # Vet review: scope, four axes, and outputs
2
2
 
3
- Run blocking §0, then the four axes and required outputs. Apply
4
- [`eng-lenses.md`](eng-lenses.md) throughout; calibrate every finding before presenting it.
3
+ Run blocking §0, four axes, and outputs with [`eng-lenses.md`](eng-lenses.md);
4
+ calibrate findings before presentation.
5
5
 
6
6
  Authority: `.omp/skills/devrites-lib/reference/standards/acceptance-preserving-reslice.md`.
7
7
 
@@ -15,25 +15,28 @@ Authority: `.omp/skills/devrites-lib/reference/standards/acceptance-preserving-r
15
15
 
16
16
  ## §0. Scope challenge (blocking gate)
17
17
 
18
- Before reviewing implementation details, check whether the plan includes more work than
19
- the settled spec requires.
18
+ Before implementation review, check for work beyond the settled spec.
20
19
 
21
- 1. **What exists?** Find existing code/flows for each sub-problem (use the index per
22
- [`tooling.md`](../../devrites-lib/reference/standards/tooling.md)). Can the plan capture their outputs instead of building parallel work?
23
- Reuse → extend → build new; list missed reuse.
20
+ 1. **What exists?** Find reusable code/flows via
21
+ [`tooling.md`](../../devrites-lib/reference/standards/tooling.md). Reuse extend
22
+ build new; list missed reuse instead of planning parallel work.
24
23
  2. **Minimum diff.** Find the smallest contract-complete change. Flag non-blocking work;
25
24
  use the marked action for topology cuts.
26
25
  3. **Complexity smell.** **>8 files** or **>2 new services/modules/classes** needs a justified
27
26
  complexity gate; otherwise harden to the smallest contract-complete plan. Use the
28
27
  marked action for topology reduction.
29
- 4. **Built-in check.** For each new pattern/infra/concurrency approach, dispatch
30
- `devrites-source-driven` to verify current framework/runtime support and cite it. Custom
28
+ **Feature ceiling.** A plan over the
29
+ [feature ceiling](../../rite-plan/reference/slicing.md#feature-ceiling-split-an-epic-never-override-the-budget)
30
+ (over-budget `tasks.md`/`plan.md` from slice or AC count) is a scope finding, not a
31
+ `Budget override`: route to `/rite-plan course-correct` (`MVP cut`) with the
32
+ continuation sequence named; do not vet the whole epic.
33
+ 4. **Built-in check.** For each new pattern/infra/concurrency approach, invoke
34
+ `devrites-source-driven` inline to verify current framework/runtime support and cite it. Custom
31
35
  work where a built-in suffices is a scope-reduction finding.
32
36
  5. **Completeness.** Find edge/error/test shortcuts; prefer the complete option when the
33
37
  extra work is small, and flag small savings that leave known gaps.
34
- 6. **Distribution check.** If the plan introduces a new artifact (CLI binary, package, container,
35
- deployable), does it include how it gets built / published / installed? If distribution is
36
- deferred, say so explicitly in "NOT in scope": don't let it silently drop.
38
+ 6. **Distribution check.** New artifacts (binary/package/container/deployable) need
39
+ build/publish/install plans or explicit deferral in "NOT in scope".
37
40
  7. **Applicability check.** Compare `spec.md`'s topology/data/integration/security/delivery
38
41
  decisions with live seams. A false `not applicable` or an `applies` row without the
39
42
  focused standard's owner, failure/recovery, deployment order, and proof output is `broken`.
@@ -49,15 +52,18 @@ the settled spec requires.
49
52
  > **STOP discipline.** Fold technical reduction into the plan; ask and stop only for a
50
53
  > human-owned choice.
51
54
 
52
- If the smell does not trip, present the §0 findings and proceed to Axis 1.
55
+ After justifying complexity or folding the contract-preserving reduction, present
56
+ the §0 findings and proceed to Axis 1. A human-owned unresolved choice still pauses.
53
57
 
54
58
  ---
55
59
 
56
- ## Four axes (one at a time, at most 8 findings each)
60
+ ## Four axes (complete inventory, bounded presentation)
57
61
 
58
62
  Fold verified technical findings into the plan; present each human-owned decision in one
59
63
  `AskUserQuestion` packet. Combine support only for one owner/trade-off. HITL pauses; AFK
60
64
  uses `depth.md`. Never invent findings.
65
+ Report every supported Critical/Important before repair. Group duplicates; compact
66
+ presentation never caps the inventory or hides the ninth substantive defect.
61
67
 
62
68
  ### 1. Architecture
63
69
 
@@ -138,6 +144,25 @@ Tag each finding `[severity] (confidence: N/10) <plan/task/spec ref> — finding
138
144
  Quote supporting lines. Without them confidence is ≤4 and suppressed; never inflate it.
139
145
  `devrites-plan-reviewer` follows this rule.
140
146
 
147
+ ## Finding kind: contract or mechanism
148
+
149
+ Tag every Critical/Important `kind: contract` or `kind: mechanism`; root confirms the tag
150
+ at reconciliation.
151
+
152
+ - **contract** — a *guarantee* (acceptance, interface, boundary, ownership, data shape,
153
+ ordering/durability, failure outcome, dependency choice) an implementer could build
154
+ differently and still pass the planned tests → plan text → `NEEDS REPLAN` + Plan repair.
155
+ - **mechanism** — *how* a pinned clause is achieved (syscall order, fsync/rename shape,
156
+ lock scope, retry shape, parser detail): a test discriminates the wrong implementation
157
+ → root adds one named case row to `test-plan.md` (input → observable outcome + the
158
+ mutant that must fail) plus its `traceability.md` ref, re-emits the readiness binding,
159
+ rechecks mechanically (anchor, ID parity). No Plan repair, no reviewer redispatch;
160
+ Build's RED test proves it. Prove in code, not in prose.
161
+
162
+ Mechanism becomes `contract` only when the plan asserts the opposite mechanism or the
163
+ clause is a public/shared seam. **Failing case:** round after round of prose pins on
164
+ already-pinned clauses.
165
+
141
166
  ---
142
167
 
143
168
  ## Present human-owned decisions
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "devrites",
3
- "version": "5.3.0",
3
+ "version": "5.5.0",
4
4
  "description": "DevRites: a disciplined senior-engineer workflow pack for Claude Code and Codex",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "homepage": "https://github.com/ViktorsBaikers/DevRites#readme",
@@ -71,6 +71,12 @@ gen_codex_agent() {
71
71
  _body_codex="$TMP_GEN_DIR/codex-agent-body-$(basename "$_src").codex.md"
72
72
  awk 'NR==1 && $0=="---"{fm=1; next} fm && $0=="---"{fm=0; body=1; next} body{print}' "$_src" > "$_body_tmp"
73
73
  gen_codex_markdown_file "$_body_tmp" "$_body_codex"
74
+ # The body is embedded in a TOML literal string; a literal ''' would
75
+ # terminate it early and silently corrupt the generated agent. Refuse.
76
+ if grep -q "'''" "$_body_codex"; then
77
+ echo "gen_codex_agent: $(basename "$_src") body contains ''' (unrepresentable in a TOML literal string)" >&2
78
+ return 1
79
+ fi
74
80
  cat "$_body_codex"
75
81
  printf "\n%s\n" "'''"
76
82
  } > "$_out"