devrites 7.1.1 → 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 (147) hide show
  1. package/CHANGELOG.md +7 -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 +34 -38
  13. package/pack/.claude/skills/rite-autocomplete/reference/stop-conditions.md +38 -39
  14. package/pack/.claude/skills/rite-define/SKILL.md +28 -27
  15. package/pack/.claude/skills/rite-plan/SKILL.md +7 -2
  16. package/pack/.claude/skills/rite-plan/reference/replan-and-repair.md +5 -2
  17. package/pack/.claude/skills/rite-resolve/SKILL.md +17 -10
  18. package/pack/.claude/skills/rite-resolve/reference/answer-protocol.md +18 -6
  19. package/pack/.claude/skills/rite-review/SKILL.md +4 -4
  20. package/pack/.claude/skills/rite-review/reference/security-review.md +4 -2
  21. package/pack/.claude/skills/rite-seal/SKILL.md +28 -33
  22. package/pack/.claude/skills/rite-ship/SKILL.md +14 -7
  23. package/pack/.claude/skills/rite-temper/SKILL.md +18 -18
  24. package/pack/.claude/skills/rite-temper/reference/scope-modes.md +6 -7
  25. package/pack/.claude/skills/rite-upgrade/SKILL.md +7 -2
  26. package/pack/.claude/skills/rite-vet/SKILL.md +33 -34
  27. package/pack/generated/claude/agents/devrites-upgrade-planner.md +12 -4
  28. package/pack/generated/claude/skills/devrites-debug-recovery/SKILL.md +21 -4
  29. package/pack/generated/claude/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +10 -3
  30. package/pack/generated/claude/skills/devrites-debug-recovery/reference/regression-test.md +7 -4
  31. package/pack/generated/claude/skills/devrites-lib/reference/reply-contract.md +11 -11
  32. package/pack/generated/claude/skills/devrites-lib/reference/standards/afk-hitl.md +52 -56
  33. package/pack/generated/claude/skills/devrites-lib/reference/standards/agents.md +11 -1
  34. package/pack/generated/claude/skills/devrites-lib/reference/standards/core.md +41 -40
  35. package/pack/generated/claude/skills/rite-autocomplete/SKILL.md +12 -14
  36. package/pack/generated/claude/skills/rite-autocomplete/reference/loop.md +34 -38
  37. package/pack/generated/claude/skills/rite-autocomplete/reference/stop-conditions.md +38 -39
  38. package/pack/generated/claude/skills/rite-define/SKILL.md +28 -27
  39. package/pack/generated/claude/skills/rite-plan/SKILL.md +7 -2
  40. package/pack/generated/claude/skills/rite-plan/reference/replan-and-repair.md +5 -2
  41. package/pack/generated/claude/skills/rite-resolve/SKILL.md +17 -10
  42. package/pack/generated/claude/skills/rite-resolve/reference/answer-protocol.md +18 -6
  43. package/pack/generated/claude/skills/rite-review/SKILL.md +4 -4
  44. package/pack/generated/claude/skills/rite-review/reference/security-review.md +4 -2
  45. package/pack/generated/claude/skills/rite-seal/SKILL.md +28 -33
  46. package/pack/generated/claude/skills/rite-ship/SKILL.md +14 -7
  47. package/pack/generated/claude/skills/rite-temper/SKILL.md +18 -18
  48. package/pack/generated/claude/skills/rite-temper/reference/scope-modes.md +6 -7
  49. package/pack/generated/claude/skills/rite-upgrade/SKILL.md +7 -2
  50. package/pack/generated/claude/skills/rite-vet/SKILL.md +33 -34
  51. package/pack/generated/codex/agents/devrites-upgrade-planner.toml +12 -4
  52. package/pack/generated/codex/skills/devrites-debug-recovery/SKILL.md +21 -4
  53. package/pack/generated/codex/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +10 -3
  54. package/pack/generated/codex/skills/devrites-debug-recovery/reference/regression-test.md +7 -4
  55. package/pack/generated/codex/skills/devrites-lib/reference/reply-contract.md +11 -11
  56. package/pack/generated/codex/skills/devrites-lib/reference/standards/afk-hitl.md +52 -56
  57. package/pack/generated/codex/skills/devrites-lib/reference/standards/agents.md +11 -1
  58. package/pack/generated/codex/skills/devrites-lib/reference/standards/core.md +41 -40
  59. package/pack/generated/codex/skills/rite-autocomplete/SKILL.md +12 -14
  60. package/pack/generated/codex/skills/rite-autocomplete/reference/loop.md +34 -38
  61. package/pack/generated/codex/skills/rite-autocomplete/reference/stop-conditions.md +38 -39
  62. package/pack/generated/codex/skills/rite-define/SKILL.md +28 -27
  63. package/pack/generated/codex/skills/rite-plan/SKILL.md +7 -2
  64. package/pack/generated/codex/skills/rite-plan/reference/replan-and-repair.md +5 -2
  65. package/pack/generated/codex/skills/rite-resolve/SKILL.md +17 -10
  66. package/pack/generated/codex/skills/rite-resolve/reference/answer-protocol.md +18 -6
  67. package/pack/generated/codex/skills/rite-review/SKILL.md +4 -4
  68. package/pack/generated/codex/skills/rite-review/reference/security-review.md +4 -2
  69. package/pack/generated/codex/skills/rite-seal/SKILL.md +28 -33
  70. package/pack/generated/codex/skills/rite-ship/SKILL.md +14 -7
  71. package/pack/generated/codex/skills/rite-temper/SKILL.md +18 -18
  72. package/pack/generated/codex/skills/rite-temper/reference/scope-modes.md +6 -7
  73. package/pack/generated/codex/skills/rite-upgrade/SKILL.md +7 -2
  74. package/pack/generated/codex/skills/rite-vet/SKILL.md +33 -34
  75. package/pack/generated/devin/agents/devrites-upgrade-planner.md +12 -4
  76. package/pack/generated/devin/skills/devrites-debug-recovery/SKILL.md +21 -4
  77. package/pack/generated/devin/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +10 -3
  78. package/pack/generated/devin/skills/devrites-debug-recovery/reference/regression-test.md +7 -4
  79. package/pack/generated/devin/skills/devrites-lib/reference/reply-contract.md +11 -11
  80. package/pack/generated/devin/skills/devrites-lib/reference/standards/afk-hitl.md +52 -56
  81. package/pack/generated/devin/skills/devrites-lib/reference/standards/agents.md +11 -1
  82. package/pack/generated/devin/skills/devrites-lib/reference/standards/core.md +41 -40
  83. package/pack/generated/devin/skills/rite-autocomplete/SKILL.md +12 -14
  84. package/pack/generated/devin/skills/rite-autocomplete/reference/loop.md +34 -38
  85. package/pack/generated/devin/skills/rite-autocomplete/reference/stop-conditions.md +38 -39
  86. package/pack/generated/devin/skills/rite-define/SKILL.md +28 -27
  87. package/pack/generated/devin/skills/rite-plan/SKILL.md +7 -2
  88. package/pack/generated/devin/skills/rite-plan/reference/replan-and-repair.md +5 -2
  89. package/pack/generated/devin/skills/rite-resolve/SKILL.md +17 -10
  90. package/pack/generated/devin/skills/rite-resolve/reference/answer-protocol.md +18 -6
  91. package/pack/generated/devin/skills/rite-review/SKILL.md +4 -4
  92. package/pack/generated/devin/skills/rite-review/reference/security-review.md +4 -2
  93. package/pack/generated/devin/skills/rite-seal/SKILL.md +28 -33
  94. package/pack/generated/devin/skills/rite-ship/SKILL.md +14 -7
  95. package/pack/generated/devin/skills/rite-temper/SKILL.md +18 -18
  96. package/pack/generated/devin/skills/rite-temper/reference/scope-modes.md +6 -7
  97. package/pack/generated/devin/skills/rite-upgrade/SKILL.md +7 -2
  98. package/pack/generated/devin/skills/rite-vet/SKILL.md +33 -34
  99. package/pack/generated/omp/agents/devrites-upgrade-planner.md +12 -4
  100. package/pack/generated/omp/skills/devrites-debug-recovery/SKILL.md +21 -4
  101. package/pack/generated/omp/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +10 -3
  102. package/pack/generated/omp/skills/devrites-debug-recovery/reference/regression-test.md +7 -4
  103. package/pack/generated/omp/skills/devrites-lib/reference/reply-contract.md +11 -11
  104. package/pack/generated/omp/skills/devrites-lib/reference/standards/afk-hitl.md +52 -56
  105. package/pack/generated/omp/skills/devrites-lib/reference/standards/agents.md +11 -1
  106. package/pack/generated/omp/skills/devrites-lib/reference/standards/core.md +41 -40
  107. package/pack/generated/omp/skills/rite-autocomplete/SKILL.md +12 -14
  108. package/pack/generated/omp/skills/rite-autocomplete/reference/loop.md +34 -38
  109. package/pack/generated/omp/skills/rite-autocomplete/reference/stop-conditions.md +38 -39
  110. package/pack/generated/omp/skills/rite-define/SKILL.md +28 -27
  111. package/pack/generated/omp/skills/rite-plan/SKILL.md +7 -2
  112. package/pack/generated/omp/skills/rite-plan/reference/replan-and-repair.md +5 -2
  113. package/pack/generated/omp/skills/rite-resolve/SKILL.md +17 -10
  114. package/pack/generated/omp/skills/rite-resolve/reference/answer-protocol.md +18 -6
  115. package/pack/generated/omp/skills/rite-review/SKILL.md +4 -4
  116. package/pack/generated/omp/skills/rite-review/reference/security-review.md +4 -2
  117. package/pack/generated/omp/skills/rite-seal/SKILL.md +28 -33
  118. package/pack/generated/omp/skills/rite-ship/SKILL.md +14 -7
  119. package/pack/generated/omp/skills/rite-temper/SKILL.md +18 -18
  120. package/pack/generated/omp/skills/rite-temper/reference/scope-modes.md +6 -7
  121. package/pack/generated/omp/skills/rite-upgrade/SKILL.md +7 -2
  122. package/pack/generated/omp/skills/rite-vet/SKILL.md +33 -34
  123. package/pack/generated/pi/agents/devrites-upgrade-planner.md +12 -4
  124. package/pack/generated/pi/skills/devrites-debug-recovery/SKILL.md +21 -4
  125. package/pack/generated/pi/skills/devrites-debug-recovery/reference/cleanup-and-classify.md +10 -3
  126. package/pack/generated/pi/skills/devrites-debug-recovery/reference/regression-test.md +7 -4
  127. package/pack/generated/pi/skills/devrites-lib/reference/reply-contract.md +11 -11
  128. package/pack/generated/pi/skills/devrites-lib/reference/standards/afk-hitl.md +52 -56
  129. package/pack/generated/pi/skills/devrites-lib/reference/standards/agents.md +11 -1
  130. package/pack/generated/pi/skills/devrites-lib/reference/standards/core.md +41 -40
  131. package/pack/generated/pi/skills/rite-autocomplete/SKILL.md +12 -14
  132. package/pack/generated/pi/skills/rite-autocomplete/reference/loop.md +34 -38
  133. package/pack/generated/pi/skills/rite-autocomplete/reference/stop-conditions.md +38 -39
  134. package/pack/generated/pi/skills/rite-define/SKILL.md +28 -27
  135. package/pack/generated/pi/skills/rite-plan/SKILL.md +7 -2
  136. package/pack/generated/pi/skills/rite-plan/reference/replan-and-repair.md +5 -2
  137. package/pack/generated/pi/skills/rite-resolve/SKILL.md +17 -10
  138. package/pack/generated/pi/skills/rite-resolve/reference/answer-protocol.md +18 -6
  139. package/pack/generated/pi/skills/rite-review/SKILL.md +4 -4
  140. package/pack/generated/pi/skills/rite-review/reference/security-review.md +4 -2
  141. package/pack/generated/pi/skills/rite-seal/SKILL.md +28 -33
  142. package/pack/generated/pi/skills/rite-ship/SKILL.md +14 -7
  143. package/pack/generated/pi/skills/rite-temper/SKILL.md +18 -18
  144. package/pack/generated/pi/skills/rite-temper/reference/scope-modes.md +6 -7
  145. package/pack/generated/pi/skills/rite-upgrade/SKILL.md +7 -2
  146. package/pack/generated/pi/skills/rite-vet/SKILL.md +33 -34
  147. package/package.json +1 -1
@@ -138,30 +138,28 @@ next sequence continuation through Vet in a second session, then stop.
138
138
  product scope is never auto-resolved by a recommended option; it stops for a human.
139
139
  A spent strategy escalates; parked recovery records
140
140
  `Next step: /rite-autocomplete`, never a routine phase command. **Completion:** no stop is active, or its cursor and reason are durable.
141
- 6. **Seal boundary.** Without a ship flag, leave the sealed workspace unshipped and
142
- open the next recorded continuation
141
+ 6. **Seal boundary.** With or without a ship flag, leave intermediate sealed
142
+ workspaces unshipped and open the next recorded continuation
143
143
  ([loop.md § Sequence continuation](reference/loop.md#sequence-continuation))
144
144
  unless `continue_sequence: false`, the sequence budget is spent, or no entry
145
- remains; then stop at Seal GO with `/rite-ship`. Report the sequence position on
146
- every stop.
147
- With a ship flag, perform Ship preflight, disclose the exact Git plan, and stop for
148
- fresh literal `GO` plus native approval. **Completion:** performed no Git action before fresh literal `GO` plus native approval.
145
+ remains. At that boundary without a ship flag, stop at Seal GO with `/rite-ship`.
146
+ Report sequence position at every stop. Only at that boundary, with a ship flag, perform Ship preflight,
147
+ disclose the exact Git plan, and stop for fresh literal `GO` plus native approval. **Completion:** performed no Git action before fresh literal `GO` plus native approval.
149
148
 
150
149
  ## Reply and resume
151
150
 
152
- HITL Build returns after one slice; Autocomplete ignores `--max-slices` and
153
- keeps chaining pending slices. One Autocomplete invocation owns all internal
154
- backtracking. Context pressure, compaction, or a nested completion footer does
151
+ HITL Build returns after one slice; Autocomplete ignores `--max-slices`, chaining
152
+ pending slices. Each Autocomplete invocation owns internal backtracking. Context pressure, compaction, or a nested completion footer does
155
153
  not create a stop; persist and resume the cursor.
156
154
 
157
- Reply only at a final state, never as mid-run progress: a text-only turn ends
158
- the run, so after a compaction or phase change keep calling tools. Use one terse line:
155
+ Reply only at final state: text-only turns end the run. Keep
156
+ calling tools after compaction or phase changes. Use one line:
159
157
 
160
158
  ```text
161
159
  Autocomplete: <slug>
162
160
  spec <done|stopped> · clarify <clear|stopped> · temper <done|stopped> · define <done|stopped> · vet <ready|stopped> · build <n/N|stopped> · prove <done|stopped> · polish <done|stopped> · review <done|stopped> · seal <GO|NO-GO|stopped>
163
161
  ```
164
162
 
165
- Final state is `Shipped`, `Stopped`, `Awaiting human`, `NO-GO`, or `GO`; do not
166
- write a narrative recap. Require a clean or accepted baseline, land a local
167
- unpushed checkpoint after each green check, and never auto-pass a red gate.
163
+ Final state: `Shipped`, `Stopped`, `Awaiting human`, `NO-GO`, or `GO`; no narrative
164
+ recap. Require clean or accepted baseline; land local unpushed checkpoints after
165
+ each green check; never auto-pass red gates.
@@ -1,7 +1,6 @@
1
1
  # The autocomplete loop: arm AFK, drive every phase
2
2
 
3
- Autocomplete sequences existing `/rite-*` workflows without pausing between
4
- routine phases. Acceptance-preserving Reslice authority is
3
+ Autocomplete chains existing `/rite-*` workflows without routine-phase pauses. Acceptance-preserving Reslice authority is
5
4
  `.claude/skills/devrites-lib/reference/standards/acceptance-preserving-reslice.md`.
6
5
 
7
6
  <!-- BEGIN RESLICE ROUTE-TO-ACTION -->
@@ -21,7 +20,7 @@ allow_gates: [advisory, validating]
21
20
  # notify: "<cmd>"
22
21
  ```
23
22
 
24
- Read an existing sentinel first. Preserve it byte-for-byte when valid, except
23
+ Read existing sentinel first. Preserve valid bytes, except
25
24
  when this invocation contains `--parallel N`: then write or replace only
26
25
  `max_parallel: N` and leave every other key unchanged. Stop if the sentinel is
27
26
  malformed. Do not stop because it names `max_slices` / `max_agents` /
@@ -39,10 +38,9 @@ remaining. AFK configuration itself stays unchanged.
39
38
 
40
39
  ### Admit each unattended cycle
41
40
 
42
- Before every phase, review fan-out, recovery, or writer dispatch: cheapest
41
+ Before each phase, review fan-out, recovery, or writer dispatch: cheapest
43
42
  readiness check first; reject overlap. Do not stop on `max_agents`,
44
- `max_minutes`, or `max_review_queue`. Count every leaf result. A new activation
45
- gets fresh activation-local counters but retains durable slice/recovery state.
43
+ `max_minutes`, or `max_review_queue`. Count every leaf result. New activations reset activation-local counters, retaining durable slice/recovery state.
46
44
 
47
45
  [Build return](../../rite-build/reference/output.md#caller-owned-continuation).
48
46
  Pass `--parallel N`; ignore leftover cap/headroom, remaining-0,
@@ -55,7 +53,7 @@ without recommendations, and Seal judgment (`slice: seal`) still pause.
55
53
 
56
54
  ## Phase arc
57
55
 
58
- Workspace files carry state; chat does not. Read and execute each phase skill:
56
+ Workspace files, not chat, carry state. Read/execute each phase skill:
59
57
 
60
58
  | Step | Phase | Completion / edge |
61
59
  | --- | --- | --- |
@@ -71,9 +69,8 @@ Workspace files carry state; chat does not. Read and execute each phase skill:
71
69
  | 10 | `/rite-seal` | GO/NO-GO; no Git |
72
70
  | 11 | `/rite-ship` | only after GO; `--ship` never authorizes Git; stop at literal-GO/native approval |
73
71
 
74
- Before advancing, check
75
- [stop-conditions.md](stop-conditions.md). After source edits, discard stale pass
76
- evidence. Re-read the active workspace before each phase. On a cold resume or
72
+ Check [stop-conditions.md](stop-conditions.md) before advancing. Discard stale
73
+ pass evidence after source edits. Re-read active workspace before each phase. On a cold resume or
77
74
  new activation, run `devrites-engine check regression <slug>`: `BLOCKED` names a
78
75
  durable fact lost since the last checkpoint — restore or route it through its
79
76
  owning phase before continuing; `unproven` does not block. After each phase's
@@ -90,37 +87,35 @@ step 10 does not end the run: leave the sealed workspace unshipped with its
90
87
  (`/rite-spec <parent>-<n> "<objective>"` from the parent's `decisions.md` sequence)
91
88
  and re-enter step 1. Spend one workspace per opened continuation.
92
89
 
93
- When that workspace already exists because a [lookahead](lookahead.md) session
94
- planned it, do not specify it again. Wait while `devrites-engine claim check
95
- --workspace <child>` exits 3 (a live lookahead holds it), then set
96
- `.devrites/ACTIVE` to the child and resume from its cursor at step 1. A
97
- predecessor replan since its Vet blocks the child's readiness with
98
- `DRV-GATE-READINESS-STALE`; route that to `/rite-vet` before Build.
99
-
100
- Spend accounting is durable in `state.md` cursors, not chat. Before invoking the
101
- continuation, ensure the current workspace's `sequence_workspaces_remaining` is
102
- set — absent, write `max_workspaces - 1` and `sequence_position: 1` first — and
103
- `> 0`. `/rite-spec` seeds the child's sequence cursor at creation per the
90
+ For a child already planned by [lookahead](lookahead.md), do not re-specify.
91
+ Wait while `devrites-engine claim check --workspace <child>` exits 3 (live
92
+ lookahead), then set `.devrites/ACTIVE` to the child and resume its cursor at
93
+ step 1. A predecessor replan since its Vet blocks child readiness with
94
+ `DRV-GATE-READINESS-STALE`; route to `/rite-vet` before Build.
95
+
96
+ Before invoking a continuation, require durable `state.md`
97
+ `sequence_workspaces_remaining > 0`; if absent, first write
98
+ `max_workspaces - 1` and `sequence_position: 1`. `/rite-spec` seeds the child's sequence cursor at creation per the
104
99
  [continuation contract](../../rite-plan/reference/slicing.md#continuation-workspaces);
105
- after the child's `state.md` exists, verify it — `sequence_parent` = the current
106
- slug, `sequence_position` = parent position + 1,
100
+ verify the created child's `state.md`: `sequence_parent` = current slug,
101
+ `sequence_position` = parent position + 1,
107
102
  `sequence_workspaces_remaining` = parent remaining − 1, and — when the recorded
108
103
  entry is the sequence's release milestone — `sequence_role: release` (gates then
109
- require the union manifest). On resume, a child whose
110
- fields are missing is re-seeded from its `brief.md` parent/position and the
111
- parent's counter (same values, never a second charge); a child with no recorded
112
- parent/position is not a sequence member and the chain stops.
113
-
114
- Stop instead when: no recorded next entry; the cap or review-queue bound is
115
- reached; a human-owned, safety, access, or parked-recovery stop fires; or Seal returns
116
- `NO-GO`. On stop, report the sequence position, the sealed-but-unshipped workspaces, and
117
- the single release command (`/rite-autocomplete <release milestone> --ship`, or
104
+ require the union manifest). On resume, re-seed missing child fields from its `brief.md` parent/position and
105
+ parent counter (same values, no second charge). No recorded parent/position
106
+ means no sequence membership: stop the chain.
107
+
108
+ Stop sequence continuation when: `continue_sequence: false`; no recorded next
109
+ entry (the final milestone); the `max_workspaces` cap is reached; or a genuine
110
+ human-owned, safety, access, or parked-recovery stop fires. `max_review_queue`
111
+ never stops Autocomplete; agent-owned Seal `NO-GO` enters recovery, not a handoff.
112
+ Intermediate sealed milestones continue without `--ship` and without Git mutation. On stop, report sequence position, sealed/unshipped workspaces, and
113
+ one release command (`/rite-autocomplete <release milestone> --ship`, or
118
114
  `/rite-ship` for the current sealed workspace when the sequence is complete).
119
115
 
120
116
  ## Backtrack without handing off
121
117
 
122
- The active Autocomplete root remains caller whenever a later phase exposes an
123
- agent-owned earlier-phase gap:
118
+ Autocomplete remains caller for agent-owned earlier-phase gaps:
124
119
 
125
120
  1. Save the originating phase/action unless a valid native return cursor exists.
126
121
  2. On cold resume, reconcile the terminal cursor against durable fingerprint
@@ -150,6 +145,8 @@ and park it after three escalations while independent work continues.
150
145
 
151
146
  ## Continuous caller obligation
152
147
 
148
+ Green slice/phase checkpoints consume their recorded `next_action` internally;
149
+ only the caller replies finally at completion or a genuine stop.
153
150
  No user-facing reply is permitted while durable state contains agent-owned
154
151
  `NEEDS_REPLAN`, an intermediate Plan/Vet action, a distinct retained
155
152
  Critical/Important fingerprint below its cap or with an escalation left, runnable
@@ -160,7 +157,6 @@ already names a ranked recommended option. Invoke the next internal repair or
160
157
  `state resolve` exits 1 on every call and the loop re-invokes it without end. A narrow reviewer closing one finding and exposing another
161
158
  Critical/Important invariant is progress, not exhaustion.
162
159
 
163
- The number of completed repair/Vet cycles is not a stop condition. Context
164
- pressure, compaction, session duration, and nested completion do not convert an
165
- internal checkpoint into a handoff. Persist it and resume until the requested
166
- rest point or a shared human/safety/access/parked-recovery condition.
160
+ The number of completed repair/Vet cycles, context pressure, compaction, session
161
+ duration, and nested completion never turn checkpoints into handoffs. Persist and
162
+ resume to the requested rest point or shared human/safety/access/parked-recovery stop.
@@ -1,9 +1,8 @@
1
1
  # Stop conditions: when autocomplete pauses
2
2
 
3
- On a real stop, write `state.md` as `awaiting_human` or `blocked`, persist the
4
- reason, and include one resume command. Agent-owned recovery never ends the run:
5
- a spent strategy escalates and a fully escalated fingerprint parks while other
6
- work continues ([retry contract](../../devrites-lib/reference/standards/afk-hitl.md#retry-cap-no-progress-loops-and-self-resolve)).
3
+ On real stops, persist `state.md` `awaiting_human` or `blocked`, reason, and one
4
+ resume command. Agent-owned recovery never ends the run: spent strategies
5
+ escalate; fully escalated fingerprints park while other work continues ([retry contract](../../devrites-lib/reference/standards/afk-hitl.md#retry-cap-no-progress-loops-and-self-resolve)).
7
6
  `--ship` never bypasses a stop.
8
7
 
9
8
  Authority: `.claude/skills/devrites-lib/reference/standards/acceptance-preserving-reslice.md`.
@@ -14,7 +13,7 @@ Authority: `.claude/skills/devrites-lib/reference/standards/acceptance-preservin
14
13
 
15
14
  ## Always stop
16
15
 
17
- Regardless of flags or AFK ceiling:
16
+ Flags/AFK ceiling never override:
18
17
 
19
18
  - destructive data migration;
20
19
  - auth/authz boundary change;
@@ -22,8 +21,8 @@ Regardless of flags or AFK ceiling:
22
21
  - external-service contract change; or
23
22
  - filesystem destruction outside the workspace.
24
23
 
25
- Red proof cannot advance. Run bounded Debug Recovery and escalate spent
26
- strategies; a fully escalated fingerprint parks unless the remaining owner is human.
24
+ Red proof cannot advance. Run bounded Debug Recovery; escalate spent strategies.
25
+ Fully escalated fingerprints park unless remaining owner is human.
27
26
 
28
27
  ## Not stops: internal technical routing
29
28
 
@@ -32,13 +31,12 @@ forward work, persists the return cursor, and invokes Plan repair plus Recovery
32
31
  Vet inline. The same applies to nested `STOP`/`Next step` when its decision is
33
32
  agent-owned.
34
33
 
35
- Agent-owned backtracking is not a stop condition while the exact causal
36
- fingerprint has budget. Invoke the earlier phase, affected Vet, remediation, and
37
- proof; then resume the origin. Three no-progress corrections of that exact
38
- fingerprint spend only its current strategy: escalate to the next correction
39
- class inline (shared root cause, diagnostic amplification, boundary redesign)
40
- with a fresh budget, never asking permission. After three escalations in this
41
- activation the fingerprint parks; finish all independent work, then stop once.
34
+ Agent-owned backtracking is not a stop condition while its exact causal
35
+ fingerprint has budget: invoke earlier phase, affected Vet, remediation, proof;
36
+ resume origin. Three no-progress corrections spend only that fingerprint's current
37
+ strategy: escalate inline to the next class (shared root cause, diagnostic
38
+ amplification, boundary redesign) with fresh budget, without permission. After
39
+ three escalations per activation it parks; finish independent work, then stop once.
42
40
  Preserve reproduction, attempts, and dead ends; never offer `/rite-plan unblock`
43
41
  or another routine phase command. A new user-issued `/rite-autocomplete`
44
42
  reopens parked fingerprints with fresh escalation; wakes and compaction do not.
@@ -50,11 +48,10 @@ It blocks another execution; retained new Critical/Important evidence still
50
48
  enters offline recovery. After affected Vet is READY, pause for fresh action
51
49
  authorization and never reuse old GO.
52
50
 
53
- Past evidence being irretrievable is not by itself terminal. If an in-scope
54
- trusted seam can uniquely discriminate the next failure, run diagnostic-
55
- amplification Plan repair and narrow Vet inline, then pause for fresh GO before
56
- one evidence-acquisition attempt. Without a safe seam, escalate to the next
57
- class or park; only a real human/risk/scope gate stops for a human.
51
+ Past evidence being irretrievable is not by itself terminal. If an in-scope trusted seam
52
+ uniquely discriminates the next failure, run diagnostic-amplification Plan repair
53
+ and narrow Vet inline; pause for fresh GO before one evidence-acquisition attempt.
54
+ Without a safe seam, escalate or park; only a real human/risk/scope gate stops for a human.
58
55
 
59
56
  <!-- workflow-artifact-adapter: {"module":"devrites-lib/reference/standards/workflow-artifacts.md","entry":"classifier returns owner-busy, exhausted, or existing hard gate","action":"escalate BLOCKED_EXHAUSTED; on WAIT_ACTIVE_OWNER run independent work and recheck; stop on exact BLOCKED_GATE result","return":"unchanged cursor plus fixed route-owned output"} -->
60
57
  ## Other stop classes
@@ -74,10 +71,9 @@ class or park; only a real human/risk/scope gate stops for a human.
74
71
  - **Clarify:** material `open`/unowned decision coverage or a
75
72
  low-confidence high-consequence assumption. Continue the initial interview;
76
73
  never arm AFK early.
77
- - **Seal:** remaining NO-GO after recommended-option questions are closed, with
78
- every remaining blocker and fix direction. Never round up to GO. An open
79
- recommended-option blocking question is not a Seal stop: resolve it, recover
80
- agent-owned findings, then re-enter Seal. A first NO-GO is not a stop either:
74
+ - **Seal:** report remaining NO-GO with every blocker/fix direction; never round
75
+ up to GO. Resolve recommended-option blocking questions internally; recover
76
+ agent-owned findings and re-enter Seal. A first NO-GO is not a stop:
81
77
  recover every agent-owned blocker (missing or unbound proof, a reviewer gap root
82
78
  can close, a finding with a fix direction, a missing `review.md` verdict), then
83
79
  re-enter Seal. The unattended `N` to accepting Important risks means repair, not
@@ -95,23 +91,26 @@ class or park; only a real human/risk/scope gate stops for a human.
95
91
  - **Resource envelope:** overlapping run or missing AFK after arm still stops.
96
92
  Do not stop on `--max-slices`, `max_agents`, `max_minutes`, or `max_review_queue`.
97
93
  - **Confidence:** intent still cannot become testable acceptance after interview.
98
- - **Repeated failure:** not a stop. Escalate; a fully escalated fingerprint parks,
99
- and the run stops only once no independent work remains.
100
- - **Resolver failure:** `devrites-engine state resolve` not found, or nonzero exit.
101
- Never hand-edit `questions.md`/`state.md` in its place. Not found stops at once;
102
- nonzero allows one identical re-run (the fingerprint is command + exit code +
103
- decisive stderr line; an unchanged re-run is not a correction, so no further
104
- attempts). Then stop `blocked` with the exact command, exit code, and stderr line,
105
- and resume action `/rite-doctor`.
94
+ - **Repeated failure:** not a stop. Escalate; fully escalated fingerprints park.
95
+ Stop only when no independent work remains.
96
+ - **Resolver failure:** `devrites-engine state resolve` missing or nonzero.
97
+ Never hand-edit `questions.md`/`state.md` instead. Missing stops immediately;
98
+ nonzero permits one identical re-run (fingerprint: command + exit code + decisive
99
+ stderr line; unchanged re-run is no correction, no further attempts). Then stop
100
+ `blocked`: exact command, exit code, stderr line; resume via `/rite-doctor`.
106
101
 
107
102
  ## Final GO and durable stop
108
103
 
109
- `--ship`/`--yolo` never authorizes Git. With a flag, complete Ship preflight,
110
- disclose the exact plan, and stop for literal `GO` plus native approval. Without
111
- one, stop at Seal GO with `/rite-ship`. Seal GO, AFK, prior approval, and flags
112
- never satisfy Ship approval.
104
+ With a recorded continuation, no opt-out, and workspace budget, Seal GO stays
105
+ internal: continue without `--ship`, leaving milestones sealed/unshipped. Only the
106
+ final milestone, explicit `continue_sequence: false`, or exhausted sequence cap
107
+ ends green sequence continuation.
113
108
 
114
- A cold-resumable stop records `state.md` status, exact reason, and one resume
115
- action: the human-owned action, or `/rite-autocomplete` to reopen parked
116
- fingerprints; the owning question/drift/seal entry explains it. The user-facing line says what stopped
117
- and, only when applicable, what human action resumes it.
109
+ There, `--ship`/`--yolo` requires [Ship preflight](../../rite-ship/reference/git-ship.md#before-type-go):
110
+ disclose exact plan; stop for fresh literal `GO` plus native approval.
111
+ Without flags, stop at Seal GO with `/rite-ship`. Seal GO never authorizes Git
112
+ or satisfies Ship approval; neither do AFK, prior approval, or flags.
113
+
114
+ Record cold-resumable `state.md` stops: status, exact reason, one resume action
115
+ (human-owned or `/rite-autocomplete` to reopen parked fingerprints). Explain in
116
+ owning question/drift/seal entry. Tell user what stopped and any required human action.
@@ -147,21 +147,18 @@ Pull these via `Read` when shaping the plan:
147
147
  cross-slice boundary names producer, consumer, invariant, integration step, and proof.
148
148
  Map each applicable topology/data/integration risk to a slice, failure/recovery path,
149
149
  and discriminating proof; a risk cannot live only in the architecture narrative.
150
- 4a. **Persist traceability natively.** The drafter proposes and root writes
150
+ 4a. **Persist traceability natively.** Drafter proposes; root writes
151
151
  `traceability.md` (`AC/REQ ID → slice → proof → evidence ID → files → status`).
152
- Re-read spec, tasks, and proof fields: every ID must exist and every mapping
153
- preserve meaning, not just labels. Reject orphans, inventions, and false mappings;
154
- `/rite-prove` and `/rite-seal` read this file directly. Reference the plan's
155
- `Shared contract proof` rows from existing slice/proof mappings; do not create a second
156
- traceability system.
157
- 5. **Complexity and deviations gate:** justify anything outside DevRites defaults (new dep,
158
- extra abstraction, second design system) in the plan; if you can't justify it, simplify.
159
- **Principles conformance:** read `.devrites/principles.md` (if present) and confirm the
160
- approach honors every declared invariant. A plan that conflicts with one is not "a deviation
161
- to justify away": either reshape the approach to conform, or, when the conflict is genuine and
162
- intended, route it through the Spec Drift Guard plus a recorded decision and a scoped principle
163
- exception a human approves. Never ready a plan that silently violates an invariant. (Re-scored
164
- as a blocking gate at `/rite-vet`; no file → none declared → nothing to check.)
152
+ Re-read spec/tasks/proof: require real IDs, meaning-preserving mappings, not
153
+ just labels. Reject orphans/inventions/false mappings. `/rite-prove` and
154
+ `/rite-seal` read it directly. Reference plan `Shared contract proof` rows from
155
+ existing slice/proof mappings; never create a second traceability system.
156
+ 5. **Complexity and deviations gate:** justify deviations from DevRites defaults
157
+ (new dep, extra abstraction, second design system) in plan; else simplify.
158
+ **Principles conformance:** honor all `.devrites/principles.md` invariants
159
+ (absent → none). Reshape conflicts; intended genuine conflicts need Spec Drift
160
+ Guard, a recorded decision, and a human-approved scoped principle exception.
161
+ Never ready silent violations; `/rite-vet` re-scores this blocking gate.
165
162
  6. **Write** `architecture.md`, `plan.md`, `tasks.md`, and `traceability.md` — save the
166
163
  accepted bundle under `packets/` and apply it with `devrites-engine state
167
164
  apply-bundle <slug> <bundle.json>` before root reconciliation edits; update
@@ -169,27 +166,31 @@ Pull these via `Read` when shaping the plan:
169
166
  `flows.md` (**Mermaid-first**). If a richer reviewable visual earns it, emit
170
167
  `visual/<flow>.html` + `visual/<flow>.outline.md` after loading matching playbooks from
171
168
  [`../devrites-lib/reference/visual-playbooks/index.md`](../devrites-lib/reference/visual-playbooks/index.md)
172
- (progressive; never preload all seven), link the pair from `flows.md`, treat outline as
173
- SSOT (outline wins), and never require Lavish or a new phase.
174
- 6a. **Cross-artifact gate.** Read spec, tasks, and traceability together: every
175
- buildable AC/REQ maps to an existing slice/proof, every slice maps to real
176
- acceptance, and names/prose agree. Missing, duplicate, contradictory, or
177
- meaning-changing mappings block. Then run
169
+ (progressive; never preload all seven), link both from `flows.md`; outline is
170
+ SSOT (wins). No Lavish or new phase required.
171
+ 6a. **Cross-artifact gate.** Read spec/tasks/traceability together: each buildable
172
+ AC/REQ maps to existing slice/proof; each slice maps to real acceptance;
173
+ names/prose agree. Missing, duplicate, contradictory, or meaning-changing
174
+ mappings block. Run
178
175
  `devrites-engine check task-graph <slug> --strict`; a malformed dependency graph, or a
179
176
  shared path written by `hubAdvisoryMin`+ slices with no `Serial rationale:`, blocks
180
- before Vet rather than spending a reviewer context on invalid tasks. Resolve each
177
+ before Vet; no reviewer context for invalid tasks. Resolve each
181
178
  `ADVISORY size:`/`hub:`/`chain:` line now (split or seam slice, or a rationale);
182
179
  `--strict` refuses the contended plan, the default run only advises.
183
180
  7. **Readiness gate** (`plan-template.md`): require CLEAR coverage; complete acceptance,
184
181
  wiring, shared-contract proof, applicable outputs, and rollback; risk-first acyclic order;
185
182
  justified deviations; and every horizon item present, with blockers resolved, planning
186
183
  items resolved/validly spiked, and local/action entries bounded and owned.
187
- **Stop and confirm** before code. Render the review-before-code
188
- digest first: `Intent` (one sentence from the spec), `Done means` (acceptance coverage x/y),
189
- `Plan sanity` (slice count + riskiest boundary/gate), `Expected build interruptions`
190
- (`none` or only justified action-time gates), and `Build exactly this?` (yes → approve;
191
- no → `/rite-plan revise`). When the human confirms the plan, write `Plan approved: <iso>` to
192
- `state.md` (see [state-workspace](../rite-spec/reference/state-workspace.md)).
184
+ **Standalone: stop and confirm** before code. Render digest: `Intent` (one
185
+ spec sentence), `Done means` (AC coverage x/y), `Plan sanity` (slice count +
186
+ riskiest boundary/gate), `Expected build interruptions` (`none` or justified
187
+ action-time gates), `Build exactly this?` (yes → approve; no → `/rite-plan revise`).
188
+ Human confirmation writes `Plan approved: <iso>` to `state.md`
189
+ ([state-workspace](../rite-spec/reference/state-workspace.md)).
190
+ Under active `/rite-autocomplete`, once this readiness gate is green and no
191
+ unresolved human-owned decision, irreversible-risk, scope, or access gate remains,
192
+ root writes autonomous approval to existing `Plan approved: <iso>` cursor and records Autocomplete provenance and rationale in `decisions.md`;
193
+ never claim human approval. Return internally for `/rite-vet`. Plan approval grants no protected-path, Git, or safety authority.
193
194
 
194
195
  ## tasks.md slice format
195
196
 
@@ -170,8 +170,13 @@ Before classifying any Reslice, read `.claude/skills/devrites-lib/reference/stan
170
170
  the previous vet verdict: set `Phase: plan`, `Next step: /rite-vet`, and, when
171
171
  `eng-review.md` exists, set `Implementation readiness: NEEDS REPLAN`. Never retain READY
172
172
  across changed planning inputs. Preserve `Plan approved` only for behavior/acceptance-neutral
173
- technical repair; clear it for a contract-changing or newly blocking horizon item and
174
- reconfirm only after Clarify and Vet close it. If you stopped for drift,
173
+ technical repair; clear it for a contract-changing or newly blocking horizon item.
174
+ Settle human decisions and restore current `CLEAR` coverage through Clarify,
175
+ then obtain renewed Plan approval BEFORE Vet using only
176
+ [`rite-define`'s readiness/approval rule](../rite-define/SKILL.md), not its initial
177
+ decomposition. Under active Autocomplete, retain that rule's explicit autonomous
178
+ provenance in `decisions.md` — never claim human approval. Approval grants no
179
+ protected-path, Git, or safety authority. If you stopped for drift,
175
180
  mark the `drift.md` entry resolved. Never remove or overwrite a valid caller
176
181
  return cursor while writing the Plan checkpoint.
177
182
  6. After editing `brief.md`, `spec.md`, `decisions.md`, `assumptions.md`, or `questions.md`,
@@ -17,8 +17,11 @@ First (or fresh) breakdown into vertical slices. Use `task-breakdown.md` +
17
17
 
18
18
  A slice proved too large (couldn't build+prove in one cycle, or its goal has multiple
19
19
  "and"s). Split into thinner end-to-end slices, preserving acceptance coverage: split
20
- **by the sizing rule, not to a target count**. Update `tasks.md`; renumber; fix
21
- dependency edges.
20
+ **by the sizing rule, not to a target count**. Update `tasks.md` under the canonical
21
+ [ID contract](../../devrites-lib/reference/workspace-artifact-schema.md#id-contract):
22
+ preserve unaffected IDs; never renumber or fill retired gaps. New meanings get the
23
+ next unused IDs; record relationships in `decisions.md` or `drift.md` before updating
24
+ downstream dependency edges and traceability.
22
25
 
23
26
  ## repair (after Spec Drift Guard)
24
27
 
@@ -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
 
@@ -32,7 +32,7 @@ Pull these via `Read` when the diff demands them:
32
32
  - [`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.
33
33
  - [`testing.md`](../devrites-lib/reference/standards/testing.md): confirm that passing tests actually prove the spec.
34
34
  - [`agents.md`](../devrites-lib/reference/standards/agents.md): when to fan out to which review subagent.
35
- - [`security.md`](../devrites-lib/reference/standards/security.md): when input / auth / data / integrations / secrets are in scope.
35
+ - [`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.
36
36
  - [`security-checklist.md`](../devrites-lib/reference/standards/security-checklist.md): for the same security-sensitive scope, the compact trust-boundary sweep.
37
37
  - [`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
38
38
  when the spec applicability map or final diff triggers their ownership/failure/proof checks.
@@ -139,9 +139,9 @@ Pull these via `Read` when the diff demands them:
139
139
  [performance-checklist](reference/performance-checklist.md)). No UI/route/style
140
140
  paths: record `Not-applicable: no relevant paths in diff`.
141
141
  5. **Security:** `devrites-security-auditor`
142
- ([security-review](reference/security-review.md)) joins the step-3 cohort when
143
- input, auth, data,
144
- secrets, or permissions are in the diff; else `Not-applicable: no relevant paths in diff`.
142
+ ([security-review](reference/security-review.md)) joins the step-3 cohort under the
143
+ canonical [parallel-dispatch roster trigger](../devrites-lib/reference/parallel-dispatch.md#roster),
144
+ including a dependency-only diff; else `Not-applicable: no relevant paths in diff`.
145
145
  6. **Performance:** `devrites-performance-reviewer`
146
146
  ([performance-review](reference/performance-review.md),
147
147
  [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