devrites 5.2.0 → 5.2.1

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,12 @@
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.1](https://github.com/ViktorsBaikers/DevRites/compare/v5.2.0...v5.2.1) (2026-09-11)
6
+
7
+ ### Fixed
8
+
9
+ * **skills:** scope drafter self-check to patched invariants ([#62](https://github.com/ViktorsBaikers/DevRites/issues/62)) ([d32bbf9](https://github.com/ViktorsBaikers/DevRites/commit/d32bbf9f81e255dae6e66622ab8b0e1fd1017a2c))
10
+
5
11
  ## [5.2.0](https://github.com/ViktorsBaikers/DevRites/compare/v5.1.0...v5.2.0) (2026-09-11)
6
12
 
7
13
  ### 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.1`](https://github.com/ViktorsBaikers/DevRites/releases/tag/v5.2.1): 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
@@ -83,7 +83,9 @@ plan declares a root-authored executable workflow file, read
83
83
  Do not rerun broad inventory or unaffected reviewers. Close the prior
84
84
  fingerprint only with discriminating evidence plus an explicit
85
85
  correction-created regression verdict on the touched invariants (acyclic
86
- deps, traceability, contract proof, sizing). Otherwise record one no-progress outcome. A
86
+ deps, traceability, contract proof, sizing) and every region depending on a
87
+ changed clause — enumerate dependents via the dep graph and traceability
88
+ refs, not only patched sites. Otherwise record one no-progress outcome. A
87
89
  different Critical/Important invariant needs exact evidence and a new
88
90
  fingerprint; a Suggestion, Nit, or FYI cannot keep recovery open. Reconcile
89
91
  shared artifact/readiness gates and return to caller or next repair.
@@ -131,7 +133,8 @@ plan declares a root-authored executable workflow file, read
131
133
  per correction/fingerprint accounting (each checked individually with its
132
134
  accepted findings, changed paths/criteria, new identity, and recorded delta
133
135
  self-check); it must return an explicit correction-created regression
134
- verdict, not only fingerprint closure. Within one correction, no broad
136
+ verdict over touched invariants plus every dependent of each changed clause
137
+ (dep-graph and traceability lookup), not only fingerprint closure. Within one correction, no broad
135
138
  third loop. If it changes plan, fold again. A closed input plus a distinct Critical/Important invariant returns
136
139
  that new fingerprint as progress. Then close matrix and rerun ID/meaning audit.
137
140
  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
@@ -83,7 +83,9 @@ plan declares a root-authored executable workflow file, read
83
83
  Do not rerun broad inventory or unaffected reviewers. Close the prior
84
84
  fingerprint only with discriminating evidence plus an explicit
85
85
  correction-created regression verdict on the touched invariants (acyclic
86
- deps, traceability, contract proof, sizing). Otherwise record one no-progress outcome. A
86
+ deps, traceability, contract proof, sizing) and every region depending on a
87
+ changed clause — enumerate dependents via the dep graph and traceability
88
+ refs, not only patched sites. Otherwise record one no-progress outcome. A
87
89
  different Critical/Important invariant needs exact evidence and a new
88
90
  fingerprint; a Suggestion, Nit, or FYI cannot keep recovery open. Reconcile
89
91
  shared artifact/readiness gates and return to caller or next repair.
@@ -131,7 +133,8 @@ plan declares a root-authored executable workflow file, read
131
133
  per correction/fingerprint accounting (each checked individually with its
132
134
  accepted findings, changed paths/criteria, new identity, and recorded delta
133
135
  self-check); it must return an explicit correction-created regression
134
- verdict, not only fingerprint closure. Within one correction, no broad
136
+ verdict over touched invariants plus every dependent of each changed clause
137
+ (dep-graph and traceability lookup), not only fingerprint closure. Within one correction, no broad
135
138
  third loop. If it changes plan, fold again. A closed input plus a distinct Critical/Important invariant returns
136
139
  that new fingerprint as progress. Then close matrix and rerun ID/meaning audit.
137
140
  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
@@ -83,7 +83,9 @@ plan declares a root-authored executable workflow file, read
83
83
  Do not rerun broad inventory or unaffected reviewers. Close the prior
84
84
  fingerprint only with discriminating evidence plus an explicit
85
85
  correction-created regression verdict on the touched invariants (acyclic
86
- deps, traceability, contract proof, sizing). Otherwise record one no-progress outcome. A
86
+ deps, traceability, contract proof, sizing) and every region depending on a
87
+ changed clause — enumerate dependents via the dep graph and traceability
88
+ refs, not only patched sites. Otherwise record one no-progress outcome. A
87
89
  different Critical/Important invariant needs exact evidence and a new
88
90
  fingerprint; a Suggestion, Nit, or FYI cannot keep recovery open. Reconcile
89
91
  shared artifact/readiness gates and return to caller or next repair.
@@ -131,7 +133,8 @@ plan declares a root-authored executable workflow file, read
131
133
  per correction/fingerprint accounting (each checked individually with its
132
134
  accepted findings, changed paths/criteria, new identity, and recorded delta
133
135
  self-check); it must return an explicit correction-created regression
134
- verdict, not only fingerprint closure. Within one correction, no broad
136
+ verdict over touched invariants plus every dependent of each changed clause
137
+ (dep-graph and traceability lookup), not only fingerprint closure. Within one correction, no broad
135
138
  third loop. If it changes plan, fold again. A closed input plus a distinct Critical/Important invariant returns
136
139
  that new fingerprint as progress. Then close matrix and rerun ID/meaning audit.
137
140
  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
@@ -83,7 +83,9 @@ plan declares a root-authored executable workflow file, read
83
83
  Do not rerun broad inventory or unaffected reviewers. Close the prior
84
84
  fingerprint only with discriminating evidence plus an explicit
85
85
  correction-created regression verdict on the touched invariants (acyclic
86
- deps, traceability, contract proof, sizing). Otherwise record one no-progress outcome. A
86
+ deps, traceability, contract proof, sizing) and every region depending on a
87
+ changed clause — enumerate dependents via the dep graph and traceability
88
+ refs, not only patched sites. Otherwise record one no-progress outcome. A
87
89
  different Critical/Important invariant needs exact evidence and a new
88
90
  fingerprint; a Suggestion, Nit, or FYI cannot keep recovery open. Reconcile
89
91
  shared artifact/readiness gates and return to caller or next repair.
@@ -131,7 +133,8 @@ plan declares a root-authored executable workflow file, read
131
133
  per correction/fingerprint accounting (each checked individually with its
132
134
  accepted findings, changed paths/criteria, new identity, and recorded delta
133
135
  self-check); it must return an explicit correction-created regression
134
- verdict, not only fingerprint closure. Within one correction, no broad
136
+ verdict over touched invariants plus every dependent of each changed clause
137
+ (dep-graph and traceability lookup), not only fingerprint closure. Within one correction, no broad
135
138
  third loop. If it changes plan, fold again. A closed input plus a distinct Critical/Important invariant returns
136
139
  that new fingerprint as progress. Then close matrix and rerun ID/meaning audit.
137
140
  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.1",
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",