devrites 5.2.0 → 5.2.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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,18 @@
2
2
 
3
3
  All notable changes to DevRites are documented here. The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and DevRites adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). Releases are generated automatically by [semantic-release](https://semantic-release.gitbook.io/) from Conventional Commits on `main`.
4
4
 
5
+ ## [5.2.2](https://github.com/ViktorsBaikers/DevRites/compare/v5.2.1...v5.2.2) (2026-09-11)
6
+
7
+ ### Fixed
8
+
9
+ * **skills:** make self-chaining save the caller return cursor ([#63](https://github.com/ViktorsBaikers/DevRites/issues/63)) ([4038577](https://github.com/ViktorsBaikers/DevRites/commit/4038577d5d8d1bbd7fe6e05fb9a0375a3bc07f5e))
10
+
11
+ ## [5.2.1](https://github.com/ViktorsBaikers/DevRites/compare/v5.2.0...v5.2.1) (2026-09-11)
12
+
13
+ ### Fixed
14
+
15
+ * **skills:** scope drafter self-check to patched invariants ([#62](https://github.com/ViktorsBaikers/DevRites/issues/62)) ([d32bbf9](https://github.com/ViktorsBaikers/DevRites/commit/d32bbf9f81e255dae6e66622ab8b0e1fd1017a2c))
16
+
5
17
  ## [5.2.0](https://github.com/ViktorsBaikers/DevRites/compare/v5.1.0...v5.2.0) (2026-09-11)
6
18
 
7
19
  ### Added
package/README.md CHANGED
@@ -33,7 +33,7 @@ project-conventional push, tag, or PR action, and archive the workspace.
33
33
  Unattended runs may create local WIP checkpoint commits along the way, but they
34
34
  remain local unless Ship's disclosed plan includes an approved remote action.
35
35
 
36
- **Status:** [`v5.2.0`](https://github.com/ViktorsBaikers/DevRites/releases/tag/v5.2.0): see [`CHANGELOG.md`](CHANGELOG.md) for release notes.
36
+ **Status:** [`v5.2.2`](https://github.com/ViktorsBaikers/DevRites/releases/tag/v5.2.2): see [`CHANGELOG.md`](CHANGELOG.md) for release notes.
37
37
 
38
38
  This is the latest published release; `main` may contain unreleased work.
39
39
 
@@ -53,6 +53,13 @@ principle-exception questions. List them for the root.
53
53
  - Do not invoke another agent.
54
54
  - Return candidate content only for requested paths. If unfinished, name the exact
55
55
  remaining path instead of compressing away a contract.
56
+ - In `repair`, if the full bundle would exceed reliable output, return
57
+ `Outcome: partial` with complete hunks for a whole-finding prefix in packet
58
+ order plus `remaining_findings` — a finding is all its sites or none; never
59
+ split one across returns. The root materializes the partial bundle and
60
+ re-dispatches the rest. A finding blocked on human-owned information goes in
61
+ `blocked_findings` with the needed input named — never `remaining_findings`,
62
+ which is reserved for what another dispatch can complete.
56
63
 
57
64
  ## Output format
58
65
 
@@ -79,9 +79,11 @@ Before classifying any Reslice, read `.claude/skills/devrites-lib/reference/stan
79
79
  require the drafter to apply `one-shot-actions.md` and return the bounded
80
80
  diagnostic-amplification design, injective boundary map, per-seam fixtures, and
81
81
  collision mutant. Past evidence loss is not terminal. The drafter supplies no bodies.
82
- A repair candidate carries a delta self-check: touched invariants re-verified
83
- (acyclic deps, bidirectional traceability, shared contract proof, sizing), no
84
- correction-created regression.
82
+ A repair candidate carries a delta self-check scoped to what the patch
83
+ touches: which intersected invariants it re-verified, with evidence of no
84
+ correction-created regression. Global re-derivation (ID/edge/HZN counts,
85
+ acyclicity) runs on materialized artifacts at the step-7 gate — the drafter
86
+ never re-derives them by exhaustive search.
85
87
  Bind exact active `.devrites/work/<slug>/` targets and executable contract; after Vet READY, root
86
88
  materializes the exact vetted workflow-artifact paths under
87
89
  [`workflow-artifacts.md`](../devrites-lib/reference/standards/workflow-artifacts.md)
@@ -104,7 +106,16 @@ Before classifying any Reslice, read `.claude/skills/devrites-lib/reference/stan
104
106
  [task-breakdown](reference/task-breakdown.md). Prefer thin, shippable, verifiable.
105
107
  **Completion:** every slice is independently shippable/provable or carries an irreducibility reason.
106
108
  5. Reconcile the candidate against steps 3 and 4, then the root updates `plan.md`, `tasks.md`,
107
- `state.md`, and appends rationale to `decisions.md`.
109
+ `state.md`, and appends rationale to `decisions.md`. A rejected candidate
110
+ (malformed bundle, stale or non-unique anchor) or a drafter `Outcome: gap`
111
+ is one no-progress outcome on every open fingerprint in the fold; the
112
+ re-dispatch packet must name the rejection so the same hunks don't recur.
113
+ A gap naming genuinely human-owned information routes to `/rite-clarify`.
114
+ A drafter `Outcome: partial` is progress: materialize its complete findings,
115
+ then re-dispatch a narrowed packet for `remaining_findings` with anchors
116
+ re-derived from the just-updated files — same repair pass, fresh context.
117
+ A partial covering zero findings counts as no-progress. Findings in
118
+ `blocked_findings` route to `/rite-clarify`, never the re-dispatch.
108
119
  Any change to `architecture.md`, `plan.md`, `tasks.md`, or `traceability.md` invalidates
109
120
  the previous vet verdict: set `Phase: plan`, `Next step: /rite-vet`, and, when
110
121
  `eng-review.md` exists, set `Implementation readiness: NEEDS REPLAN`. Never retain READY
@@ -133,12 +144,15 @@ user-facing stop unless a genuine HITL, safety/access, or exhausted-recovery
133
144
  condition was recorded.
134
145
 
135
146
  When invoked directly with no controlling caller and a planning artifact
136
- changed, become the caller for the mandated next step: record the return
137
- cursor, invoke `/rite-vet` inline, and consume its results `NEEDS REPLAN`
138
- re-enters repair internally under the fingerprint caps; `NEEDS CLARIFICATION`
139
- and human-owned gates still reach the user. Stop only at Vet's boundary (READY
140
- readback; next step `/rite-build`). An unchanged plan keeps its recorded next
141
- step.
147
+ changed, become the caller for the mandated next step: save a return cursor
148
+ (`return_phase`/`return_next_action`) naming this Plan pass as the caller
149
+ a direct Plan has no caller above it, so without the saved cursor Vet reads
150
+ itself as top-level and its verdict becomes a user-facing command. Invoke
151
+ `/rite-vet` inline and consume its results — `NEEDS REPLAN` re-enters repair
152
+ internally under the fingerprint caps and is never emitted as a user-facing
153
+ command; `NEEDS CLARIFICATION` and human-owned gates still reach the user.
154
+ Stop only at Vet's boundary (READY readback; next step `/rite-build`). An
155
+ unchanged plan keeps its recorded next step.
142
156
 
143
157
  > **Mid-flight discipline.** Do not change product behavior without confirmation or
144
158
  > absorb drift silently. See [`anti-patterns`](reference/anti-patterns.md).
@@ -53,8 +53,10 @@ plan declares a root-authored executable workflow file, read
53
53
  asking and resolve reversible technical choices. Ask only human-owned choices.
54
54
  - Preserve a valid technical return cursor. Agent-owned `NEEDS REPLAN` returns
55
55
  internally to its caller, not to the human; on a direct invocation there is
56
- no caller, so Vet becomes it — record the cursor and invoke `/rite-plan`
57
- repair inline under the same fingerprint caps.
56
+ no caller, so Vet becomes it — save a return cursor
57
+ (`return_phase`/`return_next_action`) naming this Vet pass as the caller and
58
+ invoke `/rite-plan` repair inline under the same fingerprint caps. An
59
+ agent-owned verdict with budget remaining is never a user-facing command.
58
60
  - **Recovery recheck is bounded and batched.** A valid cursor plus open
59
61
  fingerprints enters Recovery recheck; it does not start another Full Vet or
60
62
  repeat unaffected axes/reviewers. One dispatch covers every open fingerprint
@@ -83,7 +85,9 @@ plan declares a root-authored executable workflow file, read
83
85
  Do not rerun broad inventory or unaffected reviewers. Close the prior
84
86
  fingerprint only with discriminating evidence plus an explicit
85
87
  correction-created regression verdict on the touched invariants (acyclic
86
- deps, traceability, contract proof, sizing). Otherwise record one no-progress outcome. A
88
+ deps, traceability, contract proof, sizing) and every region depending on a
89
+ changed clause — enumerate dependents via the dep graph and traceability
90
+ refs, not only patched sites. Otherwise record one no-progress outcome. A
87
91
  different Critical/Important invariant needs exact evidence and a new
88
92
  fingerprint; a Suggestion, Nit, or FYI cannot keep recovery open. Reconcile
89
93
  shared artifact/readiness gates and return to caller or next repair.
@@ -131,7 +135,8 @@ plan declares a root-authored executable workflow file, read
131
135
  per correction/fingerprint accounting (each checked individually with its
132
136
  accepted findings, changed paths/criteria, new identity, and recorded delta
133
137
  self-check); it must return an explicit correction-created regression
134
- verdict, not only fingerprint closure. Within one correction, no broad
138
+ verdict over touched invariants plus every dependent of each changed clause
139
+ (dep-graph and traceability lookup), not only fingerprint closure. Within one correction, no broad
135
140
  third loop. If it changes plan, fold again. A closed input plus a distinct Critical/Important invariant returns
136
141
  that new fingerprint as progress. Then close matrix and rerun ID/meaning audit.
137
142
  8. **Build readback and readiness.** Add a cited five-line readback to
@@ -53,6 +53,13 @@ principle-exception questions. List them for the root.
53
53
  - Do not invoke another agent.
54
54
  - Return candidate content only for requested paths. If unfinished, name the exact
55
55
  remaining path instead of compressing away a contract.
56
+ - In `repair`, if the full bundle would exceed reliable output, return
57
+ `Outcome: partial` with complete hunks for a whole-finding prefix in packet
58
+ order plus `remaining_findings` — a finding is all its sites or none; never
59
+ split one across returns. The root materializes the partial bundle and
60
+ re-dispatches the rest. A finding blocked on human-owned information goes in
61
+ `blocked_findings` with the needed input named — never `remaining_findings`,
62
+ which is reserved for what another dispatch can complete.
56
63
 
57
64
  ## Output format
58
65
 
@@ -79,9 +79,11 @@ Before classifying any Reslice, read `.claude/skills/devrites-lib/reference/stan
79
79
  require the drafter to apply `one-shot-actions.md` and return the bounded
80
80
  diagnostic-amplification design, injective boundary map, per-seam fixtures, and
81
81
  collision mutant. Past evidence loss is not terminal. The drafter supplies no bodies.
82
- A repair candidate carries a delta self-check: touched invariants re-verified
83
- (acyclic deps, bidirectional traceability, shared contract proof, sizing), no
84
- correction-created regression.
82
+ A repair candidate carries a delta self-check scoped to what the patch
83
+ touches: which intersected invariants it re-verified, with evidence of no
84
+ correction-created regression. Global re-derivation (ID/edge/HZN counts,
85
+ acyclicity) runs on materialized artifacts at the step-7 gate — the drafter
86
+ never re-derives them by exhaustive search.
85
87
  Bind exact active `.devrites/work/<slug>/` targets and executable contract; after Vet READY, root
86
88
  materializes the exact vetted workflow-artifact paths under
87
89
  [`workflow-artifacts.md`](../devrites-lib/reference/standards/workflow-artifacts.md)
@@ -104,7 +106,16 @@ Before classifying any Reslice, read `.claude/skills/devrites-lib/reference/stan
104
106
  [task-breakdown](reference/task-breakdown.md). Prefer thin, shippable, verifiable.
105
107
  **Completion:** every slice is independently shippable/provable or carries an irreducibility reason.
106
108
  5. Reconcile the candidate against steps 3 and 4, then the root updates `plan.md`, `tasks.md`,
107
- `state.md`, and appends rationale to `decisions.md`.
109
+ `state.md`, and appends rationale to `decisions.md`. A rejected candidate
110
+ (malformed bundle, stale or non-unique anchor) or a drafter `Outcome: gap`
111
+ is one no-progress outcome on every open fingerprint in the fold; the
112
+ re-dispatch packet must name the rejection so the same hunks don't recur.
113
+ A gap naming genuinely human-owned information routes to `/rite-clarify`.
114
+ A drafter `Outcome: partial` is progress: materialize its complete findings,
115
+ then re-dispatch a narrowed packet for `remaining_findings` with anchors
116
+ re-derived from the just-updated files — same repair pass, fresh context.
117
+ A partial covering zero findings counts as no-progress. Findings in
118
+ `blocked_findings` route to `/rite-clarify`, never the re-dispatch.
108
119
  Any change to `architecture.md`, `plan.md`, `tasks.md`, or `traceability.md` invalidates
109
120
  the previous vet verdict: set `Phase: plan`, `Next step: /rite-vet`, and, when
110
121
  `eng-review.md` exists, set `Implementation readiness: NEEDS REPLAN`. Never retain READY
@@ -133,12 +144,15 @@ user-facing stop unless a genuine HITL, safety/access, or exhausted-recovery
133
144
  condition was recorded.
134
145
 
135
146
  When invoked directly with no controlling caller and a planning artifact
136
- changed, become the caller for the mandated next step: record the return
137
- cursor, invoke `/rite-vet` inline, and consume its results `NEEDS REPLAN`
138
- re-enters repair internally under the fingerprint caps; `NEEDS CLARIFICATION`
139
- and human-owned gates still reach the user. Stop only at Vet's boundary (READY
140
- readback; next step `/rite-build`). An unchanged plan keeps its recorded next
141
- step.
147
+ changed, become the caller for the mandated next step: save a return cursor
148
+ (`return_phase`/`return_next_action`) naming this Plan pass as the caller
149
+ a direct Plan has no caller above it, so without the saved cursor Vet reads
150
+ itself as top-level and its verdict becomes a user-facing command. Invoke
151
+ `/rite-vet` inline and consume its results — `NEEDS REPLAN` re-enters repair
152
+ internally under the fingerprint caps and is never emitted as a user-facing
153
+ command; `NEEDS CLARIFICATION` and human-owned gates still reach the user.
154
+ Stop only at Vet's boundary (READY readback; next step `/rite-build`). An
155
+ unchanged plan keeps its recorded next step.
142
156
 
143
157
  > **Mid-flight discipline.** Do not change product behavior without confirmation or
144
158
  > absorb drift silently. See [`anti-patterns`](reference/anti-patterns.md).
@@ -53,8 +53,10 @@ plan declares a root-authored executable workflow file, read
53
53
  asking and resolve reversible technical choices. Ask only human-owned choices.
54
54
  - Preserve a valid technical return cursor. Agent-owned `NEEDS REPLAN` returns
55
55
  internally to its caller, not to the human; on a direct invocation there is
56
- no caller, so Vet becomes it — record the cursor and invoke `/rite-plan`
57
- repair inline under the same fingerprint caps.
56
+ no caller, so Vet becomes it — save a return cursor
57
+ (`return_phase`/`return_next_action`) naming this Vet pass as the caller and
58
+ invoke `/rite-plan` repair inline under the same fingerprint caps. An
59
+ agent-owned verdict with budget remaining is never a user-facing command.
58
60
  - **Recovery recheck is bounded and batched.** A valid cursor plus open
59
61
  fingerprints enters Recovery recheck; it does not start another Full Vet or
60
62
  repeat unaffected axes/reviewers. One dispatch covers every open fingerprint
@@ -83,7 +85,9 @@ plan declares a root-authored executable workflow file, read
83
85
  Do not rerun broad inventory or unaffected reviewers. Close the prior
84
86
  fingerprint only with discriminating evidence plus an explicit
85
87
  correction-created regression verdict on the touched invariants (acyclic
86
- deps, traceability, contract proof, sizing). Otherwise record one no-progress outcome. A
88
+ deps, traceability, contract proof, sizing) and every region depending on a
89
+ changed clause — enumerate dependents via the dep graph and traceability
90
+ refs, not only patched sites. Otherwise record one no-progress outcome. A
87
91
  different Critical/Important invariant needs exact evidence and a new
88
92
  fingerprint; a Suggestion, Nit, or FYI cannot keep recovery open. Reconcile
89
93
  shared artifact/readiness gates and return to caller or next repair.
@@ -131,7 +135,8 @@ plan declares a root-authored executable workflow file, read
131
135
  per correction/fingerprint accounting (each checked individually with its
132
136
  accepted findings, changed paths/criteria, new identity, and recorded delta
133
137
  self-check); it must return an explicit correction-created regression
134
- verdict, not only fingerprint closure. Within one correction, no broad
138
+ verdict over touched invariants plus every dependent of each changed clause
139
+ (dep-graph and traceability lookup), not only fingerprint closure. Within one correction, no broad
135
140
  third loop. If it changes plan, fold again. A closed input plus a distinct Critical/Important invariant returns
136
141
  that new fingerprint as progress. Then close matrix and rerun ID/meaning audit.
137
142
  8. **Build readback and readiness.** Add a cited five-line readback to
@@ -51,6 +51,13 @@ principle-exception questions. List them for the root.
51
51
  - Do not invoke another agent.
52
52
  - Return candidate content only for requested paths. If unfinished, name the exact
53
53
  remaining path instead of compressing away a contract.
54
+ - In `repair`, if the full bundle would exceed reliable output, return
55
+ `Outcome: partial` with complete hunks for a whole-finding prefix in packet
56
+ order plus `remaining_findings` — a finding is all its sites or none; never
57
+ split one across returns. The root materializes the partial bundle and
58
+ re-dispatches the rest. A finding blocked on human-owned information goes in
59
+ `blocked_findings` with the needed input named — never `remaining_findings`,
60
+ which is reserved for what another dispatch can complete.
54
61
 
55
62
  ## Output format
56
63
 
@@ -79,9 +79,11 @@ Before classifying any Reslice, read `.agents/skills/devrites-lib/reference/stan
79
79
  require the drafter to apply `one-shot-actions.md` and return the bounded
80
80
  diagnostic-amplification design, injective boundary map, per-seam fixtures, and
81
81
  collision mutant. Past evidence loss is not terminal. The drafter supplies no bodies.
82
- A repair candidate carries a delta self-check: touched invariants re-verified
83
- (acyclic deps, bidirectional traceability, shared contract proof, sizing), no
84
- correction-created regression.
82
+ A repair candidate carries a delta self-check scoped to what the patch
83
+ touches: which intersected invariants it re-verified, with evidence of no
84
+ correction-created regression. Global re-derivation (ID/edge/HZN counts,
85
+ acyclicity) runs on materialized artifacts at the step-7 gate — the drafter
86
+ never re-derives them by exhaustive search.
85
87
  Bind exact active `.devrites/work/<slug>/` targets and executable contract; after Vet READY, root
86
88
  materializes the exact vetted workflow-artifact paths under
87
89
  [`workflow-artifacts.md`](../devrites-lib/reference/standards/workflow-artifacts.md)
@@ -104,7 +106,16 @@ Before classifying any Reslice, read `.agents/skills/devrites-lib/reference/stan
104
106
  [task-breakdown](reference/task-breakdown.md). Prefer thin, shippable, verifiable.
105
107
  **Completion:** every slice is independently shippable/provable or carries an irreducibility reason.
106
108
  5. Reconcile the candidate against steps 3 and 4, then the root updates `plan.md`, `tasks.md`,
107
- `state.md`, and appends rationale to `decisions.md`.
109
+ `state.md`, and appends rationale to `decisions.md`. A rejected candidate
110
+ (malformed bundle, stale or non-unique anchor) or a drafter `Outcome: gap`
111
+ is one no-progress outcome on every open fingerprint in the fold; the
112
+ re-dispatch packet must name the rejection so the same hunks don't recur.
113
+ A gap naming genuinely human-owned information routes to `$rite-clarify`.
114
+ A drafter `Outcome: partial` is progress: materialize its complete findings,
115
+ then re-dispatch a narrowed packet for `remaining_findings` with anchors
116
+ re-derived from the just-updated files — same repair pass, fresh context.
117
+ A partial covering zero findings counts as no-progress. Findings in
118
+ `blocked_findings` route to `$rite-clarify`, never the re-dispatch.
108
119
  Any change to `architecture.md`, `plan.md`, `tasks.md`, or `traceability.md` invalidates
109
120
  the previous vet verdict: set `Phase: plan`, `Next step: $rite-vet`, and, when
110
121
  `eng-review.md` exists, set `Implementation readiness: NEEDS REPLAN`. Never retain READY
@@ -133,12 +144,15 @@ user-facing stop unless a genuine HITL, safety/access, or exhausted-recovery
133
144
  condition was recorded.
134
145
 
135
146
  When invoked directly with no controlling caller and a planning artifact
136
- changed, become the caller for the mandated next step: record the return
137
- cursor, invoke `$rite-vet` inline, and consume its results `NEEDS REPLAN`
138
- re-enters repair internally under the fingerprint caps; `NEEDS CLARIFICATION`
139
- and human-owned gates still reach the user. Stop only at Vet's boundary (READY
140
- readback; next step `$rite-build`). An unchanged plan keeps its recorded next
141
- step.
147
+ changed, become the caller for the mandated next step: save a return cursor
148
+ (`return_phase`/`return_next_action`) naming this Plan pass as the caller
149
+ a direct Plan has no caller above it, so without the saved cursor Vet reads
150
+ itself as top-level and its verdict becomes a user-facing command. Invoke
151
+ `$rite-vet` inline and consume its results — `NEEDS REPLAN` re-enters repair
152
+ internally under the fingerprint caps and is never emitted as a user-facing
153
+ command; `NEEDS CLARIFICATION` and human-owned gates still reach the user.
154
+ Stop only at Vet's boundary (READY readback; next step `$rite-build`). An
155
+ unchanged plan keeps its recorded next step.
142
156
 
143
157
  > **Mid-flight discipline.** Do not change product behavior without confirmation or
144
158
  > absorb drift silently. See [`anti-patterns`](reference/anti-patterns.md).
@@ -53,8 +53,10 @@ plan declares a root-authored executable workflow file, read
53
53
  asking and resolve reversible technical choices. Ask only human-owned choices.
54
54
  - Preserve a valid technical return cursor. Agent-owned `NEEDS REPLAN` returns
55
55
  internally to its caller, not to the human; on a direct invocation there is
56
- no caller, so Vet becomes it — record the cursor and invoke `$rite-plan`
57
- repair inline under the same fingerprint caps.
56
+ no caller, so Vet becomes it — save a return cursor
57
+ (`return_phase`/`return_next_action`) naming this Vet pass as the caller and
58
+ invoke `$rite-plan` repair inline under the same fingerprint caps. An
59
+ agent-owned verdict with budget remaining is never a user-facing command.
58
60
  - **Recovery recheck is bounded and batched.** A valid cursor plus open
59
61
  fingerprints enters Recovery recheck; it does not start another Full Vet or
60
62
  repeat unaffected axes/reviewers. One dispatch covers every open fingerprint
@@ -83,7 +85,9 @@ plan declares a root-authored executable workflow file, read
83
85
  Do not rerun broad inventory or unaffected reviewers. Close the prior
84
86
  fingerprint only with discriminating evidence plus an explicit
85
87
  correction-created regression verdict on the touched invariants (acyclic
86
- deps, traceability, contract proof, sizing). Otherwise record one no-progress outcome. A
88
+ deps, traceability, contract proof, sizing) and every region depending on a
89
+ changed clause — enumerate dependents via the dep graph and traceability
90
+ refs, not only patched sites. Otherwise record one no-progress outcome. A
87
91
  different Critical/Important invariant needs exact evidence and a new
88
92
  fingerprint; a Suggestion, Nit, or FYI cannot keep recovery open. Reconcile
89
93
  shared artifact/readiness gates and return to caller or next repair.
@@ -131,7 +135,8 @@ plan declares a root-authored executable workflow file, read
131
135
  per correction/fingerprint accounting (each checked individually with its
132
136
  accepted findings, changed paths/criteria, new identity, and recorded delta
133
137
  self-check); it must return an explicit correction-created regression
134
- verdict, not only fingerprint closure. Within one correction, no broad
138
+ verdict over touched invariants plus every dependent of each changed clause
139
+ (dep-graph and traceability lookup), not only fingerprint closure. Within one correction, no broad
135
140
  third loop. If it changes plan, fold again. A closed input plus a distinct Critical/Important invariant returns
136
141
  that new fingerprint as progress. Then close matrix and rerun ID/meaning audit.
137
142
  8. **Build readback and readiness.** Add a cited five-line readback to
@@ -52,6 +52,13 @@ principle-exception questions. List them for the root.
52
52
  - Do not invoke another agent.
53
53
  - Return candidate content only for requested paths. If unfinished, name the exact
54
54
  remaining path instead of compressing away a contract.
55
+ - In `repair`, if the full bundle would exceed reliable output, return
56
+ `Outcome: partial` with complete hunks for a whole-finding prefix in packet
57
+ order plus `remaining_findings` — a finding is all its sites or none; never
58
+ split one across returns. The root materializes the partial bundle and
59
+ re-dispatches the rest. A finding blocked on human-owned information goes in
60
+ `blocked_findings` with the needed input named — never `remaining_findings`,
61
+ which is reserved for what another dispatch can complete.
55
62
 
56
63
  ## Output format
57
64
 
@@ -79,9 +79,11 @@ Before classifying any Reslice, read `.omp/skills/devrites-lib/reference/standar
79
79
  require the drafter to apply `one-shot-actions.md` and return the bounded
80
80
  diagnostic-amplification design, injective boundary map, per-seam fixtures, and
81
81
  collision mutant. Past evidence loss is not terminal. The drafter supplies no bodies.
82
- A repair candidate carries a delta self-check: touched invariants re-verified
83
- (acyclic deps, bidirectional traceability, shared contract proof, sizing), no
84
- correction-created regression.
82
+ A repair candidate carries a delta self-check scoped to what the patch
83
+ touches: which intersected invariants it re-verified, with evidence of no
84
+ correction-created regression. Global re-derivation (ID/edge/HZN counts,
85
+ acyclicity) runs on materialized artifacts at the step-7 gate — the drafter
86
+ never re-derives them by exhaustive search.
85
87
  Bind exact active `.devrites/work/<slug>/` targets and executable contract; after Vet READY, root
86
88
  materializes the exact vetted workflow-artifact paths under
87
89
  [`workflow-artifacts.md`](../devrites-lib/reference/standards/workflow-artifacts.md)
@@ -104,7 +106,16 @@ Before classifying any Reslice, read `.omp/skills/devrites-lib/reference/standar
104
106
  [task-breakdown](reference/task-breakdown.md). Prefer thin, shippable, verifiable.
105
107
  **Completion:** every slice is independently shippable/provable or carries an irreducibility reason.
106
108
  5. Reconcile the candidate against steps 3 and 4, then the root updates `plan.md`, `tasks.md`,
107
- `state.md`, and appends rationale to `decisions.md`.
109
+ `state.md`, and appends rationale to `decisions.md`. A rejected candidate
110
+ (malformed bundle, stale or non-unique anchor) or a drafter `Outcome: gap`
111
+ is one no-progress outcome on every open fingerprint in the fold; the
112
+ re-dispatch packet must name the rejection so the same hunks don't recur.
113
+ A gap naming genuinely human-owned information routes to `/rite-clarify`.
114
+ A drafter `Outcome: partial` is progress: materialize its complete findings,
115
+ then re-dispatch a narrowed packet for `remaining_findings` with anchors
116
+ re-derived from the just-updated files — same repair pass, fresh context.
117
+ A partial covering zero findings counts as no-progress. Findings in
118
+ `blocked_findings` route to `/rite-clarify`, never the re-dispatch.
108
119
  Any change to `architecture.md`, `plan.md`, `tasks.md`, or `traceability.md` invalidates
109
120
  the previous vet verdict: set `Phase: plan`, `Next step: /rite-vet`, and, when
110
121
  `eng-review.md` exists, set `Implementation readiness: NEEDS REPLAN`. Never retain READY
@@ -133,12 +144,15 @@ user-facing stop unless a genuine HITL, safety/access, or exhausted-recovery
133
144
  condition was recorded.
134
145
 
135
146
  When invoked directly with no controlling caller and a planning artifact
136
- changed, become the caller for the mandated next step: record the return
137
- cursor, invoke `/rite-vet` inline, and consume its results `NEEDS REPLAN`
138
- re-enters repair internally under the fingerprint caps; `NEEDS CLARIFICATION`
139
- and human-owned gates still reach the user. Stop only at Vet's boundary (READY
140
- readback; next step `/rite-build`). An unchanged plan keeps its recorded next
141
- step.
147
+ changed, become the caller for the mandated next step: save a return cursor
148
+ (`return_phase`/`return_next_action`) naming this Plan pass as the caller
149
+ a direct Plan has no caller above it, so without the saved cursor Vet reads
150
+ itself as top-level and its verdict becomes a user-facing command. Invoke
151
+ `/rite-vet` inline and consume its results — `NEEDS REPLAN` re-enters repair
152
+ internally under the fingerprint caps and is never emitted as a user-facing
153
+ command; `NEEDS CLARIFICATION` and human-owned gates still reach the user.
154
+ Stop only at Vet's boundary (READY readback; next step `/rite-build`). An
155
+ unchanged plan keeps its recorded next step.
142
156
 
143
157
  > **Mid-flight discipline.** Do not change product behavior without confirmation or
144
158
  > absorb drift silently. See [`anti-patterns`](reference/anti-patterns.md).
@@ -53,8 +53,10 @@ plan declares a root-authored executable workflow file, read
53
53
  asking and resolve reversible technical choices. Ask only human-owned choices.
54
54
  - Preserve a valid technical return cursor. Agent-owned `NEEDS REPLAN` returns
55
55
  internally to its caller, not to the human; on a direct invocation there is
56
- no caller, so Vet becomes it — record the cursor and invoke `/rite-plan`
57
- repair inline under the same fingerprint caps.
56
+ no caller, so Vet becomes it — save a return cursor
57
+ (`return_phase`/`return_next_action`) naming this Vet pass as the caller and
58
+ invoke `/rite-plan` repair inline under the same fingerprint caps. An
59
+ agent-owned verdict with budget remaining is never a user-facing command.
58
60
  - **Recovery recheck is bounded and batched.** A valid cursor plus open
59
61
  fingerprints enters Recovery recheck; it does not start another Full Vet or
60
62
  repeat unaffected axes/reviewers. One dispatch covers every open fingerprint
@@ -83,7 +85,9 @@ plan declares a root-authored executable workflow file, read
83
85
  Do not rerun broad inventory or unaffected reviewers. Close the prior
84
86
  fingerprint only with discriminating evidence plus an explicit
85
87
  correction-created regression verdict on the touched invariants (acyclic
86
- deps, traceability, contract proof, sizing). Otherwise record one no-progress outcome. A
88
+ deps, traceability, contract proof, sizing) and every region depending on a
89
+ changed clause — enumerate dependents via the dep graph and traceability
90
+ refs, not only patched sites. Otherwise record one no-progress outcome. A
87
91
  different Critical/Important invariant needs exact evidence and a new
88
92
  fingerprint; a Suggestion, Nit, or FYI cannot keep recovery open. Reconcile
89
93
  shared artifact/readiness gates and return to caller or next repair.
@@ -131,7 +135,8 @@ plan declares a root-authored executable workflow file, read
131
135
  per correction/fingerprint accounting (each checked individually with its
132
136
  accepted findings, changed paths/criteria, new identity, and recorded delta
133
137
  self-check); it must return an explicit correction-created regression
134
- verdict, not only fingerprint closure. Within one correction, no broad
138
+ verdict over touched invariants plus every dependent of each changed clause
139
+ (dep-graph and traceability lookup), not only fingerprint closure. Within one correction, no broad
135
140
  third loop. If it changes plan, fold again. A closed input plus a distinct Critical/Important invariant returns
136
141
  that new fingerprint as progress. Then close matrix and rerun ID/meaning audit.
137
142
  8. **Build readback and readiness.** Add a cited five-line readback to
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "devrites",
3
- "version": "5.2.0",
3
+ "version": "5.2.2",
4
4
  "description": "DevRites: a disciplined senior-engineer workflow pack for Claude Code and Codex",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "homepage": "https://github.com/ViktorsBaikers/DevRites#readme",