devrites 7.1.0 → 7.1.2

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 (183) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +1 -1
  3. package/pack/.claude/agents/devrites-upgrade-planner.md +12 -4
  4. package/pack/.claude/skills/devrites-debug-recovery/SKILL.md +21 -4
  5. package/pack/.claude/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +10 -3
  6. package/pack/.claude/skills/devrites-debug-recovery/reference/regression-test.md +7 -4
  7. package/pack/.claude/skills/devrites-lib/reference/reply-contract.md +11 -11
  8. package/pack/.claude/skills/devrites-lib/reference/standards/afk-hitl.md +52 -56
  9. package/pack/.claude/skills/devrites-lib/reference/standards/agents.md +11 -1
  10. package/pack/.claude/skills/devrites-lib/reference/standards/core.md +41 -40
  11. package/pack/.claude/skills/rite-autocomplete/SKILL.md +12 -14
  12. package/pack/.claude/skills/rite-autocomplete/reference/loop.md +44 -49
  13. package/pack/.claude/skills/rite-autocomplete/reference/stop-conditions.md +38 -39
  14. package/pack/.claude/skills/rite-build/SKILL.md +5 -6
  15. package/pack/.claude/skills/rite-build/reference/afk-discipline.md +9 -11
  16. package/pack/.claude/skills/rite-build/reference/anti-patterns.md +2 -2
  17. package/pack/.claude/skills/rite-build/reference/checkpoint.md +10 -5
  18. package/pack/.claude/skills/rite-build/reference/one-slice-cycle.md +6 -4
  19. package/pack/.claude/skills/rite-build/reference/output.md +15 -21
  20. package/pack/.claude/skills/rite-define/SKILL.md +28 -27
  21. package/pack/.claude/skills/rite-plan/SKILL.md +7 -2
  22. package/pack/.claude/skills/rite-plan/reference/replan-and-repair.md +5 -2
  23. package/pack/.claude/skills/rite-resolve/SKILL.md +17 -10
  24. package/pack/.claude/skills/rite-resolve/reference/answer-protocol.md +18 -6
  25. package/pack/.claude/skills/rite-review/SKILL.md +4 -4
  26. package/pack/.claude/skills/rite-review/reference/security-review.md +4 -2
  27. package/pack/.claude/skills/rite-seal/SKILL.md +28 -33
  28. package/pack/.claude/skills/rite-ship/SKILL.md +14 -7
  29. package/pack/.claude/skills/rite-temper/SKILL.md +18 -18
  30. package/pack/.claude/skills/rite-temper/reference/scope-modes.md +6 -7
  31. package/pack/.claude/skills/rite-upgrade/SKILL.md +7 -2
  32. package/pack/.claude/skills/rite-vet/SKILL.md +33 -34
  33. package/pack/generated/claude/agents/devrites-upgrade-planner.md +12 -4
  34. package/pack/generated/claude/skills/devrites-debug-recovery/SKILL.md +21 -4
  35. package/pack/generated/claude/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +10 -3
  36. package/pack/generated/claude/skills/devrites-debug-recovery/reference/regression-test.md +7 -4
  37. package/pack/generated/claude/skills/devrites-lib/reference/reply-contract.md +11 -11
  38. package/pack/generated/claude/skills/devrites-lib/reference/standards/afk-hitl.md +52 -56
  39. package/pack/generated/claude/skills/devrites-lib/reference/standards/agents.md +11 -1
  40. package/pack/generated/claude/skills/devrites-lib/reference/standards/core.md +41 -40
  41. package/pack/generated/claude/skills/rite-autocomplete/SKILL.md +12 -14
  42. package/pack/generated/claude/skills/rite-autocomplete/reference/loop.md +44 -49
  43. package/pack/generated/claude/skills/rite-autocomplete/reference/stop-conditions.md +38 -39
  44. package/pack/generated/claude/skills/rite-build/SKILL.md +5 -6
  45. package/pack/generated/claude/skills/rite-build/reference/afk-discipline.md +9 -11
  46. package/pack/generated/claude/skills/rite-build/reference/anti-patterns.md +2 -2
  47. package/pack/generated/claude/skills/rite-build/reference/checkpoint.md +10 -5
  48. package/pack/generated/claude/skills/rite-build/reference/one-slice-cycle.md +6 -4
  49. package/pack/generated/claude/skills/rite-build/reference/output.md +15 -21
  50. package/pack/generated/claude/skills/rite-define/SKILL.md +28 -27
  51. package/pack/generated/claude/skills/rite-plan/SKILL.md +7 -2
  52. package/pack/generated/claude/skills/rite-plan/reference/replan-and-repair.md +5 -2
  53. package/pack/generated/claude/skills/rite-resolve/SKILL.md +17 -10
  54. package/pack/generated/claude/skills/rite-resolve/reference/answer-protocol.md +18 -6
  55. package/pack/generated/claude/skills/rite-review/SKILL.md +4 -4
  56. package/pack/generated/claude/skills/rite-review/reference/security-review.md +4 -2
  57. package/pack/generated/claude/skills/rite-seal/SKILL.md +28 -33
  58. package/pack/generated/claude/skills/rite-ship/SKILL.md +14 -7
  59. package/pack/generated/claude/skills/rite-temper/SKILL.md +18 -18
  60. package/pack/generated/claude/skills/rite-temper/reference/scope-modes.md +6 -7
  61. package/pack/generated/claude/skills/rite-upgrade/SKILL.md +7 -2
  62. package/pack/generated/claude/skills/rite-vet/SKILL.md +33 -34
  63. package/pack/generated/codex/agents/devrites-upgrade-planner.toml +12 -4
  64. package/pack/generated/codex/skills/devrites-debug-recovery/SKILL.md +21 -4
  65. package/pack/generated/codex/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +10 -3
  66. package/pack/generated/codex/skills/devrites-debug-recovery/reference/regression-test.md +7 -4
  67. package/pack/generated/codex/skills/devrites-lib/reference/reply-contract.md +11 -11
  68. package/pack/generated/codex/skills/devrites-lib/reference/standards/afk-hitl.md +52 -56
  69. package/pack/generated/codex/skills/devrites-lib/reference/standards/agents.md +11 -1
  70. package/pack/generated/codex/skills/devrites-lib/reference/standards/core.md +41 -40
  71. package/pack/generated/codex/skills/rite-autocomplete/SKILL.md +12 -14
  72. package/pack/generated/codex/skills/rite-autocomplete/reference/loop.md +44 -49
  73. package/pack/generated/codex/skills/rite-autocomplete/reference/stop-conditions.md +38 -39
  74. package/pack/generated/codex/skills/rite-build/SKILL.md +5 -6
  75. package/pack/generated/codex/skills/rite-build/reference/afk-discipline.md +9 -11
  76. package/pack/generated/codex/skills/rite-build/reference/anti-patterns.md +2 -2
  77. package/pack/generated/codex/skills/rite-build/reference/checkpoint.md +10 -5
  78. package/pack/generated/codex/skills/rite-build/reference/one-slice-cycle.md +6 -4
  79. package/pack/generated/codex/skills/rite-build/reference/output.md +15 -21
  80. package/pack/generated/codex/skills/rite-define/SKILL.md +28 -27
  81. package/pack/generated/codex/skills/rite-plan/SKILL.md +7 -2
  82. package/pack/generated/codex/skills/rite-plan/reference/replan-and-repair.md +5 -2
  83. package/pack/generated/codex/skills/rite-resolve/SKILL.md +17 -10
  84. package/pack/generated/codex/skills/rite-resolve/reference/answer-protocol.md +18 -6
  85. package/pack/generated/codex/skills/rite-review/SKILL.md +4 -4
  86. package/pack/generated/codex/skills/rite-review/reference/security-review.md +4 -2
  87. package/pack/generated/codex/skills/rite-seal/SKILL.md +28 -33
  88. package/pack/generated/codex/skills/rite-ship/SKILL.md +14 -7
  89. package/pack/generated/codex/skills/rite-temper/SKILL.md +18 -18
  90. package/pack/generated/codex/skills/rite-temper/reference/scope-modes.md +6 -7
  91. package/pack/generated/codex/skills/rite-upgrade/SKILL.md +7 -2
  92. package/pack/generated/codex/skills/rite-vet/SKILL.md +33 -34
  93. package/pack/generated/devin/agents/devrites-upgrade-planner.md +12 -4
  94. package/pack/generated/devin/skills/devrites-debug-recovery/SKILL.md +21 -4
  95. package/pack/generated/devin/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +10 -3
  96. package/pack/generated/devin/skills/devrites-debug-recovery/reference/regression-test.md +7 -4
  97. package/pack/generated/devin/skills/devrites-lib/reference/reply-contract.md +11 -11
  98. package/pack/generated/devin/skills/devrites-lib/reference/standards/afk-hitl.md +52 -56
  99. package/pack/generated/devin/skills/devrites-lib/reference/standards/agents.md +11 -1
  100. package/pack/generated/devin/skills/devrites-lib/reference/standards/core.md +41 -40
  101. package/pack/generated/devin/skills/rite-autocomplete/SKILL.md +12 -14
  102. package/pack/generated/devin/skills/rite-autocomplete/reference/loop.md +44 -49
  103. package/pack/generated/devin/skills/rite-autocomplete/reference/stop-conditions.md +38 -39
  104. package/pack/generated/devin/skills/rite-build/SKILL.md +5 -6
  105. package/pack/generated/devin/skills/rite-build/reference/afk-discipline.md +9 -11
  106. package/pack/generated/devin/skills/rite-build/reference/anti-patterns.md +2 -2
  107. package/pack/generated/devin/skills/rite-build/reference/checkpoint.md +10 -5
  108. package/pack/generated/devin/skills/rite-build/reference/one-slice-cycle.md +6 -4
  109. package/pack/generated/devin/skills/rite-build/reference/output.md +15 -21
  110. package/pack/generated/devin/skills/rite-define/SKILL.md +28 -27
  111. package/pack/generated/devin/skills/rite-plan/SKILL.md +7 -2
  112. package/pack/generated/devin/skills/rite-plan/reference/replan-and-repair.md +5 -2
  113. package/pack/generated/devin/skills/rite-resolve/SKILL.md +17 -10
  114. package/pack/generated/devin/skills/rite-resolve/reference/answer-protocol.md +18 -6
  115. package/pack/generated/devin/skills/rite-review/SKILL.md +4 -4
  116. package/pack/generated/devin/skills/rite-review/reference/security-review.md +4 -2
  117. package/pack/generated/devin/skills/rite-seal/SKILL.md +28 -33
  118. package/pack/generated/devin/skills/rite-ship/SKILL.md +14 -7
  119. package/pack/generated/devin/skills/rite-temper/SKILL.md +18 -18
  120. package/pack/generated/devin/skills/rite-temper/reference/scope-modes.md +6 -7
  121. package/pack/generated/devin/skills/rite-upgrade/SKILL.md +7 -2
  122. package/pack/generated/devin/skills/rite-vet/SKILL.md +33 -34
  123. package/pack/generated/omp/agents/devrites-upgrade-planner.md +12 -4
  124. package/pack/generated/omp/skills/devrites-debug-recovery/SKILL.md +21 -4
  125. package/pack/generated/omp/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +10 -3
  126. package/pack/generated/omp/skills/devrites-debug-recovery/reference/regression-test.md +7 -4
  127. package/pack/generated/omp/skills/devrites-lib/reference/reply-contract.md +11 -11
  128. package/pack/generated/omp/skills/devrites-lib/reference/standards/afk-hitl.md +52 -56
  129. package/pack/generated/omp/skills/devrites-lib/reference/standards/agents.md +11 -1
  130. package/pack/generated/omp/skills/devrites-lib/reference/standards/core.md +41 -40
  131. package/pack/generated/omp/skills/rite-autocomplete/SKILL.md +12 -14
  132. package/pack/generated/omp/skills/rite-autocomplete/reference/loop.md +44 -49
  133. package/pack/generated/omp/skills/rite-autocomplete/reference/stop-conditions.md +38 -39
  134. package/pack/generated/omp/skills/rite-build/SKILL.md +5 -6
  135. package/pack/generated/omp/skills/rite-build/reference/afk-discipline.md +9 -11
  136. package/pack/generated/omp/skills/rite-build/reference/anti-patterns.md +2 -2
  137. package/pack/generated/omp/skills/rite-build/reference/checkpoint.md +10 -5
  138. package/pack/generated/omp/skills/rite-build/reference/one-slice-cycle.md +6 -4
  139. package/pack/generated/omp/skills/rite-build/reference/output.md +15 -21
  140. package/pack/generated/omp/skills/rite-define/SKILL.md +28 -27
  141. package/pack/generated/omp/skills/rite-plan/SKILL.md +7 -2
  142. package/pack/generated/omp/skills/rite-plan/reference/replan-and-repair.md +5 -2
  143. package/pack/generated/omp/skills/rite-resolve/SKILL.md +17 -10
  144. package/pack/generated/omp/skills/rite-resolve/reference/answer-protocol.md +18 -6
  145. package/pack/generated/omp/skills/rite-review/SKILL.md +4 -4
  146. package/pack/generated/omp/skills/rite-review/reference/security-review.md +4 -2
  147. package/pack/generated/omp/skills/rite-seal/SKILL.md +28 -33
  148. package/pack/generated/omp/skills/rite-ship/SKILL.md +14 -7
  149. package/pack/generated/omp/skills/rite-temper/SKILL.md +18 -18
  150. package/pack/generated/omp/skills/rite-temper/reference/scope-modes.md +6 -7
  151. package/pack/generated/omp/skills/rite-upgrade/SKILL.md +7 -2
  152. package/pack/generated/omp/skills/rite-vet/SKILL.md +33 -34
  153. package/pack/generated/pi/agents/devrites-upgrade-planner.md +12 -4
  154. package/pack/generated/pi/skills/devrites-debug-recovery/SKILL.md +21 -4
  155. package/pack/generated/pi/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +10 -3
  156. package/pack/generated/pi/skills/devrites-debug-recovery/reference/regression-test.md +7 -4
  157. package/pack/generated/pi/skills/devrites-lib/reference/reply-contract.md +11 -11
  158. package/pack/generated/pi/skills/devrites-lib/reference/standards/afk-hitl.md +52 -56
  159. package/pack/generated/pi/skills/devrites-lib/reference/standards/agents.md +11 -1
  160. package/pack/generated/pi/skills/devrites-lib/reference/standards/core.md +41 -40
  161. package/pack/generated/pi/skills/rite-autocomplete/SKILL.md +12 -14
  162. package/pack/generated/pi/skills/rite-autocomplete/reference/loop.md +44 -49
  163. package/pack/generated/pi/skills/rite-autocomplete/reference/stop-conditions.md +38 -39
  164. package/pack/generated/pi/skills/rite-build/SKILL.md +5 -6
  165. package/pack/generated/pi/skills/rite-build/reference/afk-discipline.md +9 -11
  166. package/pack/generated/pi/skills/rite-build/reference/anti-patterns.md +2 -2
  167. package/pack/generated/pi/skills/rite-build/reference/checkpoint.md +10 -5
  168. package/pack/generated/pi/skills/rite-build/reference/one-slice-cycle.md +6 -4
  169. package/pack/generated/pi/skills/rite-build/reference/output.md +15 -21
  170. package/pack/generated/pi/skills/rite-define/SKILL.md +28 -27
  171. package/pack/generated/pi/skills/rite-plan/SKILL.md +7 -2
  172. package/pack/generated/pi/skills/rite-plan/reference/replan-and-repair.md +5 -2
  173. package/pack/generated/pi/skills/rite-resolve/SKILL.md +17 -10
  174. package/pack/generated/pi/skills/rite-resolve/reference/answer-protocol.md +18 -6
  175. package/pack/generated/pi/skills/rite-review/SKILL.md +4 -4
  176. package/pack/generated/pi/skills/rite-review/reference/security-review.md +4 -2
  177. package/pack/generated/pi/skills/rite-seal/SKILL.md +28 -33
  178. package/pack/generated/pi/skills/rite-ship/SKILL.md +14 -7
  179. package/pack/generated/pi/skills/rite-temper/SKILL.md +18 -18
  180. package/pack/generated/pi/skills/rite-temper/reference/scope-modes.md +6 -7
  181. package/pack/generated/pi/skills/rite-upgrade/SKILL.md +7 -2
  182. package/pack/generated/pi/skills/rite-vet/SKILL.md +33 -34
  183. package/package.json +1 -1
@@ -39,9 +39,11 @@ Pull these via `Read` when shaping the resolve:
39
39
  - **Never overwrite an answered question.** If the qid's `status` is `answered` or
40
40
  `dropped`, refuse with the existing answer; ask the user to open a new qid that
41
41
  references the old one (the file is the audit trail).
42
- - **If the answer materially changes scope, architecture, or acceptance**, route it
43
- through the Spec Drift Guard (`/rite-plan repair`) **after** writing the answer: do
44
- not modify `spec.md` / `plan.md` inside this skill.
42
+ - **Phase-aware handoff after writing the answer:** before planning artifacts exist,
43
+ recommend the current phase owner's action emitted by `state resolve` (for example,
44
+ `/rite-spec`), not Plan repair. Once a plan exists, material scope, architecture,
45
+ or acceptance changes route through the Spec Drift Guard (`/rite-plan repair`).
46
+ Never modify `spec.md` / `plan.md` inside this skill.
45
47
  - **The script is the source of truth.** Always invoke
46
48
  `devrites-engine state resolve`. It keeps `questions.md` + `state.md` consistent and emits the
47
49
  next-action recommendation. The one `state.md` field this skill may write by hand is the
@@ -66,8 +68,9 @@ Pull these via `Read` when shaping the resolve:
66
68
  - `--batch <plain-text-file>`: bulk resolve, one entry per qid (see
67
69
  [`reference/answer-protocol.md`](reference/answer-protocol.md) for the batch
68
70
  format).
69
- 2. **Load context.** Read `state.md`, `questions.md`, and the relevant slice from
70
- `tasks.md`. Confirm the qid is `status: open`. If `state.md` `Status` is not
71
+ 2. **Load context.** Read `state.md` and `questions.md`; require the relevant slice
72
+ from `tasks.md` only for an actual `SLICE-###` question, not `slice: spec | plan`.
73
+ Confirm the qid is `status: open`. If `state.md` `Status` is not
71
74
  `awaiting_human` and the question's `gate` is `blocking`, surface the inconsistency
72
75
  before proceeding (don't auto-repair: flag it).
73
76
  3. **Apply explicit consent.** Supplying `<qid> "<answer>"`, `--drop`, or `--batch` is the
@@ -86,13 +89,16 @@ Pull these via `Read` when shaping the resolve:
86
89
  writer left them.
87
90
  **Completion:** zero exit, or the failure reported with no hand edit.
88
91
 
89
- On resume, and only after a zero exit, also clear or update the unblocked slice's `Slice mode` in `state.md`: if
92
+ On resume, only for an actual `SLICE-###` question and after a zero exit, clear or
93
+ update the unblocked slice's `Slice mode` in `state.md`: if
90
94
  the answer lets the slice proceed, drop the pause-time `Slice mode` so `/rite-build`
91
95
  re-derives it on the next selection; if the answer re-shapes how the slice should be
92
96
  built, set `Slice mode` to match.
93
- 5. **Post-resolve hand-off.** If the answer changes product behavior or acceptance →
94
- recommend `/rite-plan repair`. Otherwise → recommend the slice's natural next action
95
- (typically `/rite-build` for the slice that was awaiting).
97
+ 5. **Post-resolve hand-off.** Before planning artifacts exist, recommend the emitted
98
+ phase-native next action (for example, `/rite-spec`); do not require or create a plan.
99
+ Once a plan exists, material scope, architecture, behavior, or acceptance changes →
100
+ recommend `/rite-plan repair` through the Spec Drift Guard. Otherwise → recommend
101
+ the emitted phase-native next action (typically `/rite-build` for a waiting slice).
96
102
  **Completion:** the resolved state contains exactly one next command.
97
103
  6. **STOP.** User-invoked `/rite-resolve` does not run `/rite-build` itself: the
98
104
  user re-enters the workflow explicitly. A controlling `/rite-autocomplete`
@@ -101,6 +107,7 @@ Pull these via `Read` when shaping the resolve:
101
107
  already names a ranked recommended option.
102
108
 
103
109
  > **Mid-flight discipline.** Don't edit `spec.md` / `plan.md` to "incorporate" the
104
- > answer. That's `/rite-plan repair`. Don't silently retry a build after the answer
110
+ > answer. Before planning artifacts exist, return to the emitted current phase owner;
111
+ > once a plan exists, material changes need `/rite-plan repair`. Don't silently retry a build after the answer
105
112
  > lands: the user types the next command. Don't merge two open questions into one
106
113
  > answered entry: each question is independently auditable.
@@ -87,12 +87,23 @@ writes one block at a time and pauses. When `/rite-resolve` matches the block's
87
87
 
88
88
  If `state.md`'s `Status` is `awaiting_human` but no `Awaiting human` block matches the
89
89
  qid (drift between the two files), `/rite-resolve` flags the inconsistency and refuses
90
- to silently fix it. Use `/rite-plan repair` to reconcile.
90
+ to silently fix it. Report it to the current phase owner; once a plan exists,
91
+ reconciliation uses `/rite-plan repair`.
92
+
93
+ ## Phase-aware handoff and slice context
94
+
95
+ Read `tasks.md` and update `Slice mode` only for an actual `SLICE-###` question,
96
+ never for `slice: spec | plan`; the update is allowed only after the writer exits zero.
97
+ Before planning artifacts exist, recommend the current phase owner's action emitted
98
+ by `state resolve` (for example, `/rite-spec`), not Plan repair. Never create planning
99
+ artifacts as part of Resolve.
91
100
 
92
101
  If the answer materially changes spec/plan, **do not** edit `spec.md` or `plan.md` inside
93
- `/rite-resolve`. That's `/rite-plan repair`'s job. The skill's post-resolve hand-off
94
- recommends `/rite-plan repair` whenever the answer touches acceptance criteria, scope,
95
- or architecture.
102
+ `/rite-resolve`. Once a plan exists, material acceptance, behavior, scope, or architecture
103
+ changes route through the Spec Drift Guard (`/rite-plan repair`); otherwise retain the
104
+ emitted phase-native next action. User-invoked resolutions use `state resolve --human`;
105
+ an internal Autocomplete caller uses the same writer without `--human` and continues.
106
+ Resolve itself never auto-runs the recommended phase owner.
96
107
 
97
108
  ## Multi-question awaiting
98
109
 
@@ -109,8 +120,9 @@ This shape is reserved: current `/rite-build` writes one question per pause.
109
120
 
110
121
  The user types the next command explicitly. Reasons:
111
122
 
112
- 1. The answer may need a `/rite-plan repair` first; auto-continuing would build against
113
- a stale plan.
123
+ 1. Before planning artifacts exist, the emitted current phase owner must resume;
124
+ once a plan exists, material changes may need `/rite-plan repair` first.
125
+ Auto-continuing a build would skip that owner or use a stale plan.
114
126
  2. The user may want to `/rite-status` before resuming.
115
127
  3. Atomicity: one verb, one mutation. Chaining is a hidden side-effect that hides bugs.
116
128
 
@@ -31,7 +31,7 @@ Pull these via `Read` when the diff demands them:
31
31
  - [`principles.md`](../devrites-lib/reference/standards/principles.md): declared project invariants (`.devrites/principles.md`); a diff that violates one with no recorded exception is a Critical, blocking finding.
32
32
  - [`testing.md`](../devrites-lib/reference/standards/testing.md): confirm that passing tests actually prove the spec.
33
33
  - [`agents.md`](../devrites-lib/reference/standards/agents.md): when to fan out to which review subagent.
34
- - [`security.md`](../devrites-lib/reference/standards/security.md): when input / auth / data / integrations / secrets are in scope.
34
+ - [`security.md`](../devrites-lib/reference/standards/security.md): when the shared [`parallel-dispatch.md`](../devrites-lib/reference/parallel-dispatch.md#roster) roster triggers the security auditor.
35
35
  - [`security-checklist.md`](../devrites-lib/reference/standards/security-checklist.md): for the same security-sensitive scope, the compact trust-boundary sweep.
36
36
  - [`repository-topology.md`](../devrites-lib/reference/standards/repository-topology.md), [`data-integrity.md`](../devrites-lib/reference/standards/data-integrity.md), [`integration-reliability.md`](../devrites-lib/reference/standards/integration-reliability.md): only
37
37
  when the spec applicability map or final diff triggers their ownership/failure/proof checks.
@@ -138,9 +138,9 @@ Pull these via `Read` when the diff demands them:
138
138
  [performance-checklist](reference/performance-checklist.md)). No UI/route/style
139
139
  paths: record `Not-applicable: no relevant paths in diff`.
140
140
  5. **Security:** `devrites-security-auditor`
141
- ([security-review](reference/security-review.md)) joins the step-3 cohort when
142
- input, auth, data,
143
- secrets, or permissions are in the diff; else `Not-applicable: no relevant paths in diff`.
141
+ ([security-review](reference/security-review.md)) joins the step-3 cohort under the
142
+ canonical [parallel-dispatch roster trigger](../devrites-lib/reference/parallel-dispatch.md#roster),
143
+ including a dependency-only diff; else `Not-applicable: no relevant paths in diff`.
144
144
  6. **Performance:** `devrites-performance-reviewer`
145
145
  ([performance-review](reference/performance-review.md),
146
146
  [performance-checklist](reference/performance-checklist.md)) joins the step-3 cohort
@@ -1,7 +1,9 @@
1
1
  # Security review (feature-scoped)
2
2
 
3
- Apply when the feature involves user input, auth/authz, data storage, external
4
- integrations, secrets, or permissions. Delegates to `devrites-audit security`.
3
+ Use the canonical [parallel-dispatch roster trigger](../../devrites-lib/reference/parallel-dispatch.md#roster),
4
+ including dependency and integration changes. A dependency-only diff still requires
5
+ `devrites-security-auditor`; a docs-only diff with no matching surfaces records
6
+ `Not-applicable: no relevant paths in diff`. Delegates to `devrites-audit security`.
5
7
 
6
8
  ## OWASP-Top-10-oriented checks
7
9
 
@@ -10,8 +10,7 @@ argument-hint: "[feature-slug] [--full]"
10
10
 
11
11
  # /rite-seal: GO / NO-GO
12
12
 
13
- Verify final candidate in `seal.md`; `/rite-ship` owns authorized irreversible
14
- actions and close-out.
13
+ Verify final candidate in `seal.md`; `/rite-ship` owns authorized irreversible actions/close-out.
15
14
 
16
15
  ## Authority
17
16
 
@@ -21,13 +20,12 @@ security, principles, documentation, observability, deprecation,
21
20
  definition-of-done, and [`verification-methods.md`](../devrites-lib/reference/standards/verification-methods.md)
22
21
  for coverage-denominator and evidence-status judgment.
23
22
  Load [`final-evidence.md`](reference/final-evidence.md) and
24
- [`go-no-go.md`](reference/go-no-go.md) for proof and verdict safety.
25
- Follow the shared
26
- [`candidate-integrity.md`](../devrites-lib/reference/candidate-integrity.md) for
27
- the reviewed digest and artifact bindings.
23
+ [`go-no-go.md`](reference/go-no-go.md) for proof/verdict safety.
24
+ Follow [`candidate-integrity.md`](../devrites-lib/reference/candidate-integrity.md)
25
+ for reviewed digest/artifact bindings.
28
26
 
29
- The host runs/reconciles named read-only reviewers; engine checks invariants.
30
- **Standard** is default; **Full** broadens conditional axes per
27
+ Host runs/reconciles named read-only reviewers; engine checks invariants.
28
+ **Standard** default; **Full** broadens conditional axes per
31
29
  [`devrites-lib/reference/orchestration-profiles.md`](../devrites-lib/reference/orchestration-profiles.md).
32
30
 
33
31
  ## Gate
@@ -35,7 +33,7 @@ The host runs/reconciles named read-only reviewers; engine checks invariants.
35
33
  | State | Verdict |
36
34
  |---|---|
37
35
  | Acceptance proven, deterministic checks pass, no unresolved drift or human gate, `Critical == 0`, `Important == 0` | **GO** |
38
- | Same, but `Important > 0` | Ask `Important findings remain. Proceed to seal? [y/N]`; default **N**. Only a human answers `y`; unattended (AFK/autocomplete) keeps **N** and stops for a human if Important remains |
36
+ | Same, but `Important > 0` | Ask `Important findings remain. Proceed to seal? [y/N]`; default **N**, unattended keeps **N**. Only humans answer `y`; standalone AFK stops for a human if Important remains. Autocomplete repairs agent-owned findings, re-enters Seal; only human-owned risk acceptance stops for a human |
39
37
  | `Critical > 0` | **NO-GO** |
40
38
  | Any acceptance criterion, resolved prohibition, or declared key link lacks proof | **NO-GO** |
41
39
  | `gates status` is not `all-met` — an unmet, stale, unapproved, or abandoned ledger gate remains | **NO-GO** |
@@ -48,8 +46,8 @@ The host runs/reconciles named read-only reviewers; engine checks invariants.
48
46
  | `check regression` reports an unblessed loss vs the recorded progress baseline | **NO-GO** |
49
47
  | `check windows` reports a deferral marker the change introduced without a `windows.md` waiver | **NO-GO** |
50
48
 
51
- A judgment-only criterion needs the human eye; AFK records a validating question
52
- (`slice: seal`) and stops. Autocomplete never auto-picks it; only a human answers.
49
+ Judgment-only criteria need humans. AFK records a validating question
50
+ (`slice: seal`), stops; Autocomplete never auto-picks.
53
51
 
54
52
  ## Workflow
55
53
 
@@ -67,36 +65,33 @@ Follow [`reference/phase-contract.md`](reference/phase-contract.md)
67
65
  5. draft GO/NO-GO `seal.md` with acceptance, tests, decisions, and seven roster accounts plus proof-runner and doubt-reviewer
68
66
  (each engineering lane its own account);
69
67
  6. write exactly one candidate binding, then run
70
- `devrites-engine check seal <slug>` for structure and identity, never semantics,
71
- and, when that check reports a stale readiness-input binding, run
72
- `devrites-engine check drift <slug>` before returning to Vet so the repair
73
- starts at the named changed, missing, or added input,
74
- and `devrites-engine check regression <slug>` to confirm no recorded progress
75
- fact was lost since the last checkpoint — `BLOCKED` is NO-GO; `unproven`
76
- (no baseline) does not block — plus two separate runs of `devrites-engine check windows <slug>`,
68
+ `devrites-engine check seal <slug>` for structure/identity, never semantics.
69
+ For stale readiness-input bindings, run `devrites-engine check drift <slug>`
70
+ before returning to Vet; start repair at the named changed/missing/added input.
71
+ Run `devrites-engine check regression <slug>` for progress lost since last
72
+ checkpoint: `BLOCKED` is NO-GO; `unproven` (no baseline) does not block.
73
+ Run `devrites-engine check windows <slug>` twice,
77
74
  one with `--base <release-base>` and one with `--worktree` (the only mode that scans
78
75
  untracked files; never pass both flags in one command, the last one wins) so each deferral marker the feature diff introduced
79
76
  carries a `windows.md` waiver row ([`windows.md`](../devrites-lib/reference/standards/windows.md));
80
- unwaived hits are NO-GO. The engine already refuses a `gates.md` ledger
81
- that is malformed, unmet,
82
- stale, unapproved, or abandoned — a seal-side `gates status` reading anything
83
- but `all-met` means Prove's evidence is not current; return there, never
84
- attest past it. Before the Seal wave, run `devrites-engine gates reverify <slug>
85
- --transcripts` on the frozen candidate, so every gate has a transcript bound to
86
- this digest for the proof runner. It likewise refuses a malformed `notes.md` or any anchor
87
- graded other than `exact`: `devrites-engine note check <slug> --repair`
88
- re-anchors `moved` notes; `stale`/`ambiguous`/`lost` ones are corrected or
89
- removed before GO. Repeat each `note: unexecuted driver` line `check seal` prints in the GO/NO-GO reply.
90
-
91
- Corrections return through affected Prove/Review before restarting Seal under
77
+ unwaived hits are NO-GO. The engine rejects malformed, unmet, stale, unapproved, or abandoned
78
+ `gates.md` ledgers. Unless Seal-side `gates status` says `all-met`, return to
79
+ Prove: evidence is not current; never attest past it. Before Seal wave, run `devrites-engine gates reverify <slug>
80
+ --transcripts` on the frozen candidate: bind every gate transcript to this
81
+ digest for the proof runner. It also rejects malformed `notes.md` or non-`exact` anchors:
82
+ `devrites-engine note check <slug> --repair` re-anchors `moved` notes;
83
+ fix/remove `stale`/`ambiguous`/`lost` notes before GO. Repeat each `note: unexecuted driver` line `check seal` prints in GO/NO-GO reply.
84
+
85
+ Corrections pass affected Prove/Review before Seal restarts under
92
86
  [evidence validity](../devrites-lib/reference/candidate-integrity.md#evidence-validity).
93
87
 
94
- Only repository scripts/CI authorize commands; never guess.
88
+ Only repo scripts/CI authorize commands; never guess.
95
89
 
96
90
  ## On GO
97
91
 
98
- Set `state.md` `Next step: /rite-ship` and stop. A GO is a verdict, not
99
- authorization to perform an irreversible action.
92
+ Set `state.md` `Next step: /rite-ship`. Standalone Seal stops. Under active `/rite-autocomplete`, return internally to the caller
93
+ for recorded sequence continuation or [Ship preflight](../rite-ship/reference/git-ship.md#before-type-go),
94
+ no intermediate final reply. GO grants no irreversible-action authority.
100
95
 
101
96
  ## Output
102
97
 
@@ -44,12 +44,16 @@ if absent, route to `/rite-spec <feature>`. Ship only with current **GO** in `se
44
44
  1a. **Health (advisory).** Apply `/rite-doctor` read-only; surface WARN/FAIL without
45
45
  repair. If ACTIVE is flagged, confirm the slug.
46
46
  2. **Prepare the exact Git candidate.** Follow
47
- [`git-ship.md`](reference/git-ship.md): refuse out-of-manifest staged work; stage
48
- exact manifest paths only after Seal GO; compare NUL-delimited staged state/path
49
- sets, require identical index/worktree bytes, and rerun candidate/Seal checks.
50
- From the verified index, build the exact project-conformant message/trailers,
51
- branch, tag/PR, commands, and skips.
52
- 2a. **Credential guard (HIGH blocks).** Scan staged blobs and any PR body. HIGH stops
47
+ [`git-ship.md`](reference/git-ship.md)'s read-only pre-GO ladder: inspect the
48
+ candidate and existing NUL-delimited staged state/path set, refuse out-of-manifest
49
+ staged work, and rerun candidate/Seal checks. Do not stage or collapse checkpoints
50
+ before fresh literal `GO`. From the verified candidate, disclose the exact proposed
51
+ staging/collapse commands, project-conformant message/trailers, branch, tag/PR,
52
+ commands, and skips; the existing index need not yet equal the candidate.
53
+ 2a. **Credential guard (HIGH blocks).** Before type-GO, run only read-only scans of
54
+ existing staged blobs and the proposed PR body. This is not a final candidate-clean
55
+ claim; after literal `GO` and exact staging, repeat the full staged scan before commit.
56
+ HIGH stops
53
57
  and requires rotation/redaction; MEDIUM needs confirmation recorded in `ship.md`;
54
58
  LOW is FYI.
55
59
  ```bash
@@ -70,7 +74,10 @@ if absent, route to `/rite-spec <feature>`. Ship only with current **GO** in `se
70
74
  Literal `GO` proceeds once; anything else records cancellation in `ship.md` and
71
75
  stops. Any command/scope/branch/message/tag/PR change or retry needs a fresh prompt;
72
76
  native approval is still required.
73
- 4. On GO, commit; verify committed state/path set and exact candidate digest; then push →
77
+ 4. On literal GO plus native approval, follow `git-ship.md`'s post-GO ladder:
78
+ disclosed collapse/staging, staged scope/byte comparisons, candidate/Seal revalidation,
79
+ and full staged secret scan BEFORE commit. Then commit; verify committed state/path
80
+ set and exact candidate digest; then push →
74
81
  tag/PR as applicable via `git-ship.md`. Record SHA and push state in `ship.md` before
75
82
  push (git-ship 7a); a push/tag/PR failure stops, and a rerun resumes at push under
76
83
  fresh type-GO. Capture branch, tag/PR URL. Mismatch stops before push/tag; retry
@@ -10,10 +10,10 @@ argument-hint: "[feature-slug] [--mode expand|selective|hold-rigor|reduce-to-MVP
10
10
 
11
11
  # /rite-temper: review scope and risk before planning
12
12
 
13
- Review the readied spec for ambition, scope, pre-mortem risk and unnecessary surface. Fold accepted decisions into the canonical contract before
14
- `/rite-define`. This step is optional for small work and skips low-stakes specs, but
15
- `/rite-autocomplete` always invokes it. **Read the active workspace first**; if there
16
- is no readied `spec.md`, tell the user to run `/rite-spec`. Review depth follows
13
+ Review readied spec ambition, scope, pre-mortem risk, and excess surface. Fold
14
+ accepted decisions into the canonical contract before `/rite-define`. Optional for
15
+ small work; skips low-stakes specs; `/rite-autocomplete` always invokes it.
16
+ **Read active workspace first**; no readied `spec.md` → `/rite-spec`. Depth follows
17
17
  [`devrites-lib/reference/orchestration-profiles.md`](../devrites-lib/reference/orchestration-profiles.md);
18
18
  the required exact strategy reviewer never changes with profile.
19
19
 
@@ -27,24 +27,24 @@ that needs more than the default pre-mortem) selected by the section's risk). Lo
27
27
  the spec applicability map triggers that risk family.
28
28
 
29
29
  ## Operating rules
30
- - **Raise outcome ambition without expanding the solution unnecessarily.** Solve the
31
- underlying problem without adding speculative capability or abstraction.
30
+ - **Raise outcome ambition, not excess solution surface.** Solve the underlying
31
+ problem without speculative capability/abstraction.
32
32
  - **Route every scope change through the Spec Drift Guard.** A scope change takes effect
33
33
  only when `spec.md` records the confirmed decision. Growth (`expand`, extra
34
34
  acceptance) needs a resolved human `questions.md` qid, so an unattended run holds it
35
35
  open. Irreversible-risk still pauses.
36
- - **Apply maximum caution to hard-to-reverse changes.** Auth, migration, public API, and
37
- data-model changes always pause under the irreversible-risk list.
38
- - **Honest verdict.** Never round "needs work" up to "ready"; record every scope call's *why*.
39
- - **Search before asking.** Apply [`afk-hitl.md`](../devrites-lib/reference/standards/afk-hitl.md) decision ownership; only human-owned calls
40
- enter the interactive walk.
41
- - **You write; the reviewer judges.** You are the single canonical writer (`strategy.md` +
42
- the spec edits); the reviewer agent is read-only.
43
- - **Require spec-quality checklists for significant features.** Before hardening,
44
- confirm `checklists/<domain>.md` exist and pass ([`spec-checklists.md`](../rite-spec/reference/spec-checklists.md)); a
45
- scope expansion you fold in **adds its own** rows (new Success/Acceptance criteria get
46
- checklist rows too). A folded expansion with an unquantified criterion is a CRITICAL
47
- failure that reopens the readiness gate.
36
+ - **Maximum caution:** auth, migration, public API, and data-model changes need
37
+ full review and explicit rollback. Pause only for [canonical irreversible-risk items](../devrites-lib/reference/standards/afk-hitl.md#irreversible-risk-list-always-pause)
38
+ or unresolved human-owned decisions, not an already-approved reversible internal data-model change.
39
+ - **Honest verdict.** Never round "needs work" to "ready"; record each scope call's *why*.
40
+ - **Search before asking.** Apply [`afk-hitl.md`](../devrites-lib/reference/standards/afk-hitl.md) ownership;
41
+ only human-owned calls enter the interactive walk.
42
+ - **You write; reviewer judges.** Sole canonical writer: `strategy.md` + spec edits;
43
+ reviewer is read-only.
44
+ - **Significant features require spec-quality checklists.** Before hardening,
45
+ require passing `checklists/<domain>.md` ([`spec-checklists.md`](../rite-spec/reference/spec-checklists.md)); a
46
+ folded scope expansion **adds its own** rows, including new Success/Acceptance
47
+ criteria. An unquantified folded criterion is a CRITICAL failure reopening readiness.
48
48
 
49
49
  ## Workflow
50
50
  0. **Read `.devin/skills/devrites-lib/reference/standards/core.md`**, then
@@ -1,7 +1,6 @@
1
1
  # Scope modes + the two passes
2
2
 
3
- The heart of `/rite-temper`: two ordered passes (heat, then quench), converging on exactly
4
- one scope mode. Ambition is a **generative** move followed by a **required convergence**: the
3
+ `/rite-temper`: two ordered passes (heat, then quench), converging on one scope mode. Ambition is a **generative** move followed by a **required convergence**: the
5
4
  divergence is never the spec; the converged sweet spot is.
6
5
 
7
6
  ## Pass 1: FORWARD (heat: raise ambition on the outcome)
@@ -41,11 +40,11 @@ Mode selection is the first convergence move. Record the chosen mode + rationale
41
40
  | **REDUCE-TO-MVP** | Over-scoped: second-system bloat, ~all must-haves, gold-plating | Hammer scope to the Minimum Usable Subset; move the rest to Non-goals with one-line reasons + revisit notes | Strongest YAGNI alignment. Cutting acceptance is **still a spec change**: record it via the Guard, never a silent trim |
42
41
 
43
42
  ## Bound ambition by reversibility
44
- The bigger the bet, the more it must be reversible. Irreversible-risk areas (auth, migrations,
45
- public API, data model) get the **opposite** of ambition: maximum conservatism, explicit
46
- rollback, and they **always pause** regardless of mode (the [`afk-hitl.md`](../../devrites-lib/reference/standards/afk-hitl.md) irreversible-risk
47
- list is honored verbatim). Size big bets so that if the whole thing vanished tomorrow, you'd be
48
- fine.
43
+ Bigger bets need more reversibility. Auth, migrations, public API, and data-model
44
+ changes need maximum conservatism, full review, and explicit rollback.
45
+ Pause only for actual [canonical irreversible-risk items](../../devrites-lib/reference/standards/afk-hitl.md#irreversible-risk-list-always-pause)
46
+ or unresolved human-owned decisions, not an already-approved reversible internal
47
+ data-model change. Size bets to tolerate their disappearance tomorrow.
49
48
 
50
49
  ## Effort foresight (frame it now, not "later")
51
50
  While choosing scope, surface the late-stage questions early: *"What will surprise us at
@@ -99,8 +99,13 @@ references, and only current phase contracts needed for the observed gap.
99
99
  - a missing/malformed strict manifest, missing/malformed/mismatched evidence binding,
100
100
  a browser-binding defect when that file exists, or current candidate-check failure
101
101
  → `/rite-prove`;
102
- - candidate-affecting capability-ledger, `DESIGN.md`, or ADR rollups still deferred by
103
- an old Ship-era workspace → `/rite-polish`;
102
+ - required candidate-affecting capability-ledger, `DESIGN.md`, or ADR rollups still
103
+ deferred by an old Ship-era workspace → `gap`: no admitted route. STOP with an
104
+ explicit `/rite-polish` handoff for separate user authorization; never invoke
105
+ those rollup writes inside Upgrade. After authorization outside Upgrade, normal
106
+ affected Prove → Review → Seal applies;
107
+ - workspace-only Polish refresh → `/rite-polish` only when its exact paths remain
108
+ within the admitted gate artifacts and no candidate-affecting rollup is required;
104
109
  - a missing, stale, or mismatched review binding → `/rite-review`;
105
110
  - a missing, stale, or mismatched seal binding or failed Seal gate → `/rite-seal`.
106
111
 
@@ -10,10 +10,10 @@ argument-hint: "[slug] [--cross-model] [--full]"
10
10
 
11
11
  # /rite-vet: review the plan before build
12
12
 
13
- Vet every plan's scope, architecture, quality, proof, performance, failures and writer
14
- safety. Fold cited technical findings; design Build tests. Temper owns product;
15
- Vet owns implementation; current `$ARGUMENTS` (`--full`) feeds the depth triggers in
16
- `reference/depth.md`; profiles never remove the exact plan-reviewer gate
13
+ Vet each plan: scope, architecture, quality, proof, performance, failures, writer
14
+ safety. Fold cited technical findings; design Build tests. Temper owns product,
15
+ Vet implementation. Current `$ARGUMENTS` (`--full`) feeds `reference/depth.md`
16
+ triggers; profiles never remove the exact plan-reviewer gate
17
17
  ([orchestration-profiles.md](../devrites-lib/reference/orchestration-profiles.md)).
18
18
 
19
19
  ## Rules
@@ -40,21 +40,23 @@ plan declares a root-authored executable workflow file, read
40
40
 
41
41
  ## Invariants
42
42
 
43
- - Review implementation, not ambition. Challenge creep, complexity, proof, and
44
- risk without changing accepted product scope.
45
- - Root owns decisions/writes/readiness; reviewers judge without route policy.
46
- Cite findings/confidence; suppress
47
- unverified or confidence ≤4 findings under `review-axes.md`.
48
- Lens arrows in `eng-lenses.md` are heuristics; band findings only under the
49
- four `review-axes.md` names.
50
- - Auth, migration, public API, and data-model changes use maximum caution and the
51
- irreversible-risk stop. Project principles never become trade-offs.
43
+ - Review implementation, not ambition. Challenge creep/complexity/proof/risk
44
+ without changing accepted product scope.
45
+ - Root owns decisions/writes/readiness; reviewers judge, not route. Cite
46
+ findings/confidence; suppress unverified or confidence ≤4 findings per
47
+ `review-axes.md`. `eng-lenses.md` arrows are heuristics; use only the four
48
+ `review-axes.md` band names.
49
+ - Auth, migration, public API, and data-model changes need maximum caution,
50
+ full review, and explicit rollback. Pause only for
51
+ [canonical irreversible-risk items](../devrites-lib/reference/standards/afk-hitl.md#irreversible-risk-list-always-pause)
52
+ or unresolved human-owned decisions, not an already-approved reversible internal
53
+ data-model change. Project principles never become trade-offs.
52
54
  - **Governance-protected paths** (`.devrites/**`, pack skill/agent trees,
53
- `NOTICE.md` generator regions, CI/hook config named in repo docs) require explicit
54
- human approval before plan slices may edit them. A slice touching a protected path
55
- without approval → Vet **NEEDS CLARIFICATION**.
56
- - Use the lowest axis band; never average or round thin to ready. Search before
57
- asking and resolve reversible technical choices. Ask only human-owned choices.
55
+ `NOTICE.md` generator regions, documented CI/hook config) require explicit
56
+ human approval before plan slices edit them; absent approval → Vet
57
+ **NEEDS CLARIFICATION**.
58
+ - Use lowest axis band; never average/round thin to ready. Search; resolve
59
+ reversible technical choices; ask only human-owned.
58
60
  - Preserve a valid technical return cursor. Agent-owned `NEEDS REPLAN` returns
59
61
  internally to its caller, not to the human; on a direct invocation there is
60
62
  no caller, so Vet becomes it — save a return cursor
@@ -75,18 +77,16 @@ plan declares a root-authored executable workflow file, read
75
77
  assumptions, and state. Require approved Plan and `Decision coverage: CLEAR`;
76
78
  otherwise stop for Define or Clarify. Check placement (`get_architecture`),
77
79
  blast radius (`trace_path`), and reuse (`search_graph`) per [`code-navigation.md`](../devrites-lib/reference/standards/code-navigation.md).
78
- 1. **Select depth.** Apply `reference/depth.md` exactly; never skip. Every initial
79
- pass records an engineering verdict and test-plan coverage. A valid Recovery
80
- recheck retains prior depth and enters 1b.
81
- 1a. **Independent initial pass.** Freeze candidate and dispatch the exact fresh
82
- read-only plan reviewer — plus developer-experience reviewer for developer
83
- surfaces (trigger `devex`) and the current strategy reviewer after significant
84
- Temper — in
85
- parallel under `../devrites-lib/reference/parallel-dispatch.md`; they are
86
- independent read-only passes on one frozen candidate. Missing
87
- required account blocks. Run root steps 2–4, including step 3's preflight
88
- commands, on the same frozen candidate while the wave is out; reconcile the
89
- accounts when they return.
80
+ 1. **Select depth.** Apply `reference/depth.md` exactly; never skip. Initial passes
81
+ record engineering verdict and test-plan coverage. Valid Recovery rechecks
82
+ retain prior depth; enter 1b.
83
+ 1a. **Independent initial pass.** Freeze candidate; dispatch exact fresh read-only
84
+ plan reviewer, plus developer-experience reviewer for developer surfaces
85
+ (trigger `devex`) and current strategy reviewer after significant Temper, in
86
+ parallel under `../devrites-lib/reference/parallel-dispatch.md`: independent
87
+ read-only passes on one frozen candidate. Missing required account blocks.
88
+ Meanwhile run root steps 2–4, including step 3 preflight commands, on that
89
+ candidate; reconcile returned accounts.
90
90
  1b. **Recovery recheck.** Require valid return cursor, accepted prior finding,
91
91
  exact fingerprint/reproduction, repaired candidate identity, changed
92
92
  paths/criteria, affected drift/evidence, and the recorded delta self-check.
@@ -117,14 +117,13 @@ plan declares a root-authored executable workflow file, read
117
117
  Do not fall through to steps 2–7. Retain evidenced unchanged coverage; changed
118
118
  global contract/uncertain impact requires full applicable review. Reopen historical
119
119
  findings only for affected invariants/dependencies.
120
- 2. **Challenge scope.** Apply review-axes §0 and search accepted decisions.
120
+ 2. **Challenge scope.** Apply review-axes §0; search accepted decisions.
121
121
  Harden to the smallest contract-complete plan, using marked topology action.
122
122
  Then verify bidirectional ID-and-meaning traceability across spec/plan/
123
123
  tasks/test-plan/traceability, acceptance, terms, principles, anti-slop,
124
124
  and conventions; every slice and test-plan row maps to a live requirement
125
- and vice versa. Critical gaps and
126
- unexcepted principle breaches block; record the challenge result in `eng-review.md`
127
- §2 (Scope challenge) after recheck.
125
+ and vice versa. Critical gaps/unexcepted principle breaches block. Record
126
+ rechecked result in `eng-review.md` §2 (Scope challenge).
128
127
  3. **Preflight Build entry.** Under `reference/artifacts.md`, verify exact
129
128
  command/cwd/tool/version/prerequisite; output filters must preserve upstream
130
129
  failure. Verify dependencies from authoritative source plus nearest manifest.
@@ -38,7 +38,10 @@ rules cannot fail.
38
38
  - `repairable`: each defect is neutral, preservation-safe, and owned by Clarify,
39
39
  Plan repair, Converge, Vet, Prove, Polish, Review, or Seal.
40
40
  - `unsupported`: cursor/topology is unofficial; propose no rewrite.
41
- - `gap`: evidence/contracts are insufficient. Missing input or unverifiable current rules produce `gap`, never `current` or `repairable`.
41
+ - `gap`: evidence/contracts are insufficient or the required delta has no admitted
42
+ preservation-safe route. Missing input or unverifiable current rules produce `gap`,
43
+ never `current` or `repairable`. Required candidate-affecting rollup writes also
44
+ produce `gap`.
42
45
 
43
46
  ## Rules
44
47
 
@@ -52,9 +55,14 @@ rules cannot fail.
52
55
  slices beyond the feature ceiling to Plan course-correct (`MVP cut` + named
53
56
  continuation sequence); built slices and their evidence stay.
54
57
  - For released post-Build work, route a strict-manifest, evidence/browser-binding, or
55
- candidate-check defect to Prove; an old Ship-era candidate rollup to Polish; a
56
- review-binding defect to Review; and a seal-binding or Seal-gate defect to Seal.
57
- Include only applicable owners, ordered Prove, Polish, Review, Seal. Never infer scope
58
+ candidate-check defect to Prove; a workspace-only Polish refresh to Polish only
59
+ within Upgrade's admitted gate artifacts; a review-binding defect to Review; and a
60
+ seal-binding or Seal-gate defect to Seal. Required candidate-affecting capability-ledger,
61
+ `DESIGN.md`, or ADR rollups are outside admission: return `gap` with an explicit
62
+ `/rite-polish` handoff for separate user authorization, no writable paths and no admitted route.
63
+ Never recommend invoking those writes inside Upgrade. After authorization
64
+ outside Upgrade, normal affected Prove → Review → Seal applies.
65
+ Include only applicable admitted owners, ordered Prove, Polish, Review, Seal. Never infer scope
58
66
  or treat an old pass as current proof. A Prove repair is admissible only when legacy
59
67
  scope inputs are present and agree unambiguously; ambiguous candidate scope produces
60
68
  `gap` with no route.
@@ -53,6 +53,21 @@ has no clear next move. Optional slug selects the active workspace; defaults to
53
53
  gone, hypothesis recorded. Classify the failure.
54
54
  See [cleanup-and-classify.md](reference/cleanup-and-classify.md).
55
55
 
56
+ ## Caller-owned records and routing
57
+
58
+ The controlling root accepts and persists all recovery records in `decisions.md`,
59
+ `evidence.md`, and `## Dead ends` before the next admission/attempt. This rule governs
60
+ all loaded recovery steps, including cleanup and regression instructions. A leaf
61
+ returns the complete class/rationale, proposed routing, hypothesis/probe, baseline,
62
+ exact failure/evidence, causal fingerprint, attempt number and failed idea/dead ends,
63
+ and human predicate in its existing result fields (`gates`, `dead_ends`,
64
+ `follow_ups`, or `Escalation` as applicable); no new result schema is required.
65
+ A leaf never writes `.devrites/**`, changes phase, invokes agents, or commits through
66
+ recovery. Only the controlling root routes to owning rites and supplies later attempts
67
+ with accepted records. Product/test edits remain inside the caller's exact allowed
68
+ paths; recovery never widens them. Commit/PR wording is a returned proposal for the
69
+ authorized owner, not authority to commit.
70
+
56
71
  ## Hard rules
57
72
 
58
73
  - Quote exact signal-bearing error text with typed redactions (not paraphrase); apply
@@ -79,8 +94,9 @@ has no clear next move. Optional slug selects the active workspace; defaults to
79
94
  <!-- workflow-artifact-adapter: {"module":"devrites-lib/reference/standards/workflow-artifacts.md","entry":"durable active failure or ambiguous admitted state","action":"OFFLINE_RECOVERY; correct offline, re-preflight, narrow Vet, retry only under cap","return":"saved caller or exact Plan/Vet route"} -->
80
95
  - **Classify before routing** with
81
96
  [cleanup-and-classify.md](reference/cleanup-and-classify.md).
82
- - **Durably record class and rationale** in `decisions.md` and the applicable
83
- `evidence.md` or `## Dead ends` entry.
97
+ - **Durably record class and rationale** through [Caller-owned records and routing](#caller-owned-records-and-routing):
98
+ root persists `decisions.md` and the applicable `evidence.md` or `## Dead ends`
99
+ entry; leaves return the full payload for root acceptance.
84
100
  - **One causal fingerprint, counted by the caller.** Normalize the root cause as
85
101
  `<affected boundary>: <failed invariant/failure mechanism>` and bind its minimal
86
102
  reproduction plus decisive signal rather than hashing symptom text.
@@ -98,5 +114,6 @@ has no clear next move. Optional slug selects the active workspace; defaults to
98
114
  human-only access becomes a human gate; otherwise return the spent strategy and
99
115
  reproduction to the caller, which escalates or parks per the
100
116
  [retry contract](skill://devrites-lib/reference/standards/afk-hitl.md#retry-cap-no-progress-loops-and-self-resolve);
101
- never request attempt four of the same strategy. While budget remains, coupled failure requiring behavior change routes
102
- `/rite-plan repair` inline; behavior-neutral rerouting uses `unblock` inline.
117
+ never request attempt four of the same strategy. While budget remains, the controlling
118
+ root routes coupled failure requiring behavior change to `/rite-plan repair` inline;
119
+ behavior-neutral rerouting uses `unblock` inline. Leaves return proposed routes only.
@@ -1,5 +1,10 @@
1
1
  # Cleanup + classify
2
2
 
3
+ All recording and routing below follows
4
+ [`SKILL.md` § Caller-owned records and routing](skill://devrites-debug-recovery/SKILL.md#caller-owned-records-and-routing):
5
+ root accepts/persists the full payload and owns transitions; leaves return proposals
6
+ and evidence only, never workspace writes, agent launches, or commits.
7
+
3
8
  ## Classify one causal fingerprint
4
9
 
5
10
  Fingerprint the diagnosis, not its symptom. Reuse it until evidence disproves it; then
@@ -19,8 +24,9 @@ required before the next consumptive execution pause. Fresh authorization never
19
24
  pauses offline diagnosis or correction from retained evidence; never ask for a
20
25
  blind retry.
21
26
 
22
- Record class/routing in `decisions.md` and each failed attempt in `evidence.md`
23
- or `## Dead ends`. Apply the causal-fingerprint and three-attempt rules in
27
+ Root records class/routing in `decisions.md` and each failed attempt in `evidence.md`
28
+ or `## Dead ends`; leaves return the complete record for root acceptance/persistence
29
+ before the next admission. Apply the causal-fingerprint and three-attempt rules in
24
30
  [`SKILL.md`](skill://devrites-debug-recovery/SKILL.md) Hard rules; record baseline, exact failure,
25
31
  hypothesis/probe, attempt number, and any human predicate.
26
32
 
@@ -31,4 +37,5 @@ hypothesis/probe, attempt number, and any human predicate.
31
37
  - [ ] Regression test passes (or absence of seam is documented).
32
38
  - [ ] All `[DEBUG-...]` instrumentation removed (`grep` the prefix).
33
39
  - [ ] Throwaway harnesses deleted (or moved to a clearly marked debug location).
34
- - [ ] The correct hypothesis is stated in `evidence.md` + the commit/PR message: next debugger learns.
40
+ - [ ] Root persists the correct hypothesis in `evidence.md`; leaves return it plus
41
+ proposed commit/PR wording for the authorized owner, without committing.