devrites 4.0.9 → 4.0.10

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
+ ## [4.0.10](https://github.com/ViktorsBaikers/DevRites/compare/v4.0.9...v4.0.10) (2026-08-08)
6
+
7
+ ### Fixed
8
+
9
+ * **rite:** reopen stale writer stops ([aebb7fb](https://github.com/ViktorsBaikers/DevRites/commit/aebb7fb5b3510d068172aa1ec9f654063f39d545))
10
+
5
11
  ## [4.0.9](https://github.com/ViktorsBaikers/DevRites/compare/v4.0.8...v4.0.9) (2026-08-08)
6
12
 
7
13
  ### Fixed
package/README.md CHANGED
@@ -28,7 +28,7 @@ project-conventional push, tag, or PR action, and archive the workspace.
28
28
  Unattended runs may create local WIP checkpoint commits along the way, but they
29
29
  remain local unless Ship's disclosed plan includes an approved remote action.
30
30
 
31
- **Status:** [`v4.0.9`](https://github.com/ViktorsBaikers/DevRites/releases/tag/v4.0.9): see [`CHANGELOG.md`](CHANGELOG.md) for release notes.
31
+ **Status:** [`v4.0.10`](https://github.com/ViktorsBaikers/DevRites/releases/tag/v4.0.10): see [`CHANGELOG.md`](CHANGELOG.md) for release notes.
32
32
 
33
33
  This is the latest published release; `main` may contain unreleased work.
34
34
 
@@ -103,7 +103,9 @@ Some work needs a different route:
103
103
  consumptive proof action never retries blindly: retained evidence drives
104
104
  offline repair and re-vetting. Ambiguous retained evidence first drives a vetted
105
105
  boundary-discriminating diagnostic design; only its next real acquisition attempt
106
- needs a new GO.
106
+ needs a new GO. After an upgrade introduces a supported workflow-artifact writer,
107
+ Autocomplete reopens a stale missing-writer stop once instead of preserving the
108
+ obsolete recovery count.
107
109
  - [`/rite-upgrade [slug]`](pack/.claude/skills/rite-upgrade/SKILL.md) is a
108
110
  compatibility route for an older active workspace that cannot resume. Age or
109
111
  cursor form alone never triggers repair; it is not a lifecycle phase.
package/docs/skills.md CHANGED
@@ -222,7 +222,7 @@ and `Shipped`. Utility commands keep the same compact labels and one-next-action
222
222
 
223
223
  | Skill | What It Does | Use When |
224
224
  |---|---|---|
225
- | [`rite-autocomplete`](../pack/.claude/skills/rite-autocomplete/SKILL.md) | Runs the whole lifecycle unattended (spec → clarify → … → seal → ship), choosing the recommended option at each soft gate and recording the rationale in `decisions.md`. A vague prompt triggers one up-front spec/clarify window; after decision coverage is CLEAR it runs without per-phase iteration, pausing only for genuine product/scope/policy decisions, irreversible risk, human-only access/actions, NO-GO, or budget exhaustion. Objective red checks use bounded technical recovery, including cold-resume recovery from retained one-shot evidence; spending an action authorization blocks only another real execution, not offline repair. Default stops at Seal GO; `--ship` (alias `--yolo`) reaches Ship preflight but still requires a fresh literal `GO` and native approval. | "Autocomplete", "do the whole thing", "run the full cycle", "one-shot this feature". |
225
+ | [`rite-autocomplete`](../pack/.claude/skills/rite-autocomplete/SKILL.md) | Runs the whole lifecycle unattended (spec → clarify → … → seal → ship), choosing the recommended option at each soft gate and recording the rationale in `decisions.md`. A vague prompt triggers one up-front spec/clarify window; after decision coverage is CLEAR it runs without per-phase iteration, pausing only for genuine product/scope/policy decisions, irreversible risk, human-only access/actions, NO-GO, or budget exhaustion. Objective red checks use bounded technical recovery, including cold-resume recovery from retained one-shot evidence and one-time migration of stale missing-writer stops when an upgraded contract supplies the first supported workflow-artifact writer. Spending an action authorization blocks only another real execution, not offline repair. Default stops at Seal GO; `--ship` (alias `--yolo`) reaches Ship preflight but still requires a fresh literal `GO` and native approval. | "Autocomplete", "do the whole thing", "run the full cycle", "one-shot this feature". |
226
226
  | [`rite-zoom-out`](../pack/.claude/skills/rite-zoom-out/SKILL.md) | Map the modules, callers, callees, and decisions in an unfamiliar area using the project's domain glossary. | Explicit-only: `/rite-zoom-out` / `/rite zoom-out`. |
227
227
  | [`rite-prototype`](../pack/.claude/skills/rite-prototype/SKILL.md) | Throwaway code answering ONE design question: logic harness OR 2 to 4 UI variations on one route. | Explicit-only: `/rite-prototype` / `/rite prototype`. |
228
228
  | [`rite-handoff`](../pack/.claude/skills/rite-handoff/SKILL.md) | Compact chat session → handoff doc. References existing `.devrites/work/<slug>/` artifacts by path. | Explicit-only: `/rite-handoff` / `/rite handoff`. |
@@ -259,6 +259,12 @@ changes, not a request for permission to retry.
259
259
  recorded no-progress corrections still has recovery budget, even when an older
260
260
  `state.md` says `Next step: none`. Resume it; do not treat session age or the
261
261
  prior action's spent authorization as exhaustion.
262
+ - **Treat a newly supported writer route as progress once.** For exact Vet-ready
263
+ workflow artifacts, apply `workflow-artifacts.md` when prior attempts only asked
264
+ a read-only role or product wright for implementation and evidence records
265
+ **no controlling-root materialization attempt**. Preserve the old attempts, but
266
+ do not count them against the new root-materialization fingerprint. Record the
267
+ migration; after a root attempt exists, normal fingerprint accounting applies.
262
268
  - **Classify exhaustion:** human-owned contract/risk/access gaps open their gate. Otherwise
263
269
  preserve reproduction/dead ends, set `Status: blocked` and `Next step: none — technical recovery exhausted for <causal fingerprint>; requires new evidence or changed failure conditions`.
264
270
  Do not emit `/rite-plan unblock`, another phase command, a question, or
@@ -20,6 +20,25 @@ technical-recovery exhaustion, while the vetted behavior and exact paths are
20
20
  complete. The root may not invent unresolved protocol choices; those return to
21
21
  Plan/Vet.
22
22
 
23
+ ## Cold-resume migration
24
+
25
+ A **stale writer-exhaustion cursor** must reopen when all of these are durable:
26
+
27
+ - Vet accepted the exact workflow-artifact paths and complete executable contract;
28
+ - the recorded blocker is only missing implementation bodies or a writable actor;
29
+ - prior no-progress attempts asked a read-only drafter/reviewer for bodies or sent
30
+ `.devrites/**` paths toward the product wright; and
31
+ - evidence records **no controlling-root materialization attempt** for that exact set.
32
+
33
+ This is a changed routing condition, not another correction attempt against the
34
+ old unsupported-writer fingerprint. Preserve that history, close or supersede its
35
+ terminal claim, record one new root-materialization fingerprint, and materialize
36
+ directly even when all product slices are built or the AFK slice budget is zero.
37
+ Do not consume product-slice budget, reopen an answered human gate, or require GO
38
+ for this offline work. After any controlling-root attempt is recorded, this
39
+ migration cannot apply again; route its observed atomic/proof failure under the
40
+ new fingerprint instead.
41
+
23
42
  ## Admission
24
43
 
25
44
  Before writing:
@@ -18,6 +18,10 @@ default and **Full** for high-risk scope or explicit `--full`; profiles are defi
18
18
  When the cursor or approved plan contains a consumptive action, also read
19
19
  `.claude/skills/devrites-lib/reference/standards/one-shot-actions.md` before any
20
20
  stop/continue or execution decision.
21
+ When a blocked cursor names missing executable controller/harness/bundle bytes or
22
+ a missing writer under the active feature workspace, read
23
+ `.claude/skills/devrites-lib/reference/standards/workflow-artifacts.md` before honoring
24
+ the terminal cursor or its recovery count.
21
25
 
22
26
  ## Operating rules
23
27
  - **Use one initial human window.** Run spec and topology-first clarify; arm AFK
@@ -67,6 +71,11 @@ stop/continue or execution decision.
67
71
  terminal `next_action`, reconcile retained consumptive-action artifacts and
68
72
  per-fingerprint attempts from `drift.md` / `evidence.md`. A distinct retained
69
73
  fingerprint below its no-progress cap reopens caller-owned offline recovery;
74
+ a stale pre-ownership workflow-artifact writer stop reopens under
75
+ `workflow-artifacts.md` when no controlling-root materialization attempt exists.
76
+ That materialization runs directly as non-consumptive prerequisite recovery,
77
+ even with no pending product slice or AFK budget; it does not re-ask an answered
78
+ human gate.
70
79
  reconstruct any missing return cursor only from the current phase plus the
71
80
  exact approved action in `test-plan.md` / evidence, never from chat or guesswork.
72
81
  The idea + flags: `--ship` / `--yolo` (continue through ship preflight, then stop
@@ -64,6 +64,17 @@ Restore `return_phase` from the current phase and `return_next_action` only from
64
64
  the exact approved action recorded in `test-plan.md` / evidence; ambiguity returns
65
65
  to the applicable Vet contract and never licenses execution.
66
66
 
67
+ Also reconcile a **stale writer-exhaustion cursor** against
68
+ `workflow-artifacts.md`. When exact Vet-ready workflow-artifact paths and behavior
69
+ exist, the old attempts only targeted the read-only drafter/reviewer or product
70
+ wright, and there is **no controlling-root materialization attempt**, supported
71
+ root ownership is a changed routing condition. Preserve the old fingerprint,
72
+ record the new materialization fingerprint, and run that offline branch directly;
73
+ do not charge or require product-slice/AFK budget, re-ask a resolved question, or
74
+ request GO. Once a root materialization attempt exists, never apply this migration
75
+ again—route its observed failure normally. This reconciliation runs even when all
76
+ product slices are already built, before selecting the next forward phase.
77
+
67
78
  1. Save the originating phase/action in the native return cursor unless a valid
68
79
  one already exists.
69
80
  2. Invoke the required repair, Vet, remediation, and proof skills inline. After
@@ -46,6 +46,14 @@ no-progress corrections. A retained fingerprint with remaining offline budget is
46
46
  not terminal merely because `state.md` was written by the failed action or a prior
47
47
  session ended.
48
48
 
49
+ A pre-ownership workflow-artifact writer stop is not unchanged evidence when the
50
+ current contract supplies controlling-root materialization. Prior drafter/wright refusals do not count
51
+ as root materialization attempts. Reopen only when exact paths and executable
52
+ behavior passed Vet and there is **no controlling-root materialization attempt**;
53
+ record the routing migration so it cannot reset again. Missing product slices,
54
+ unresolved protocol choices, or a recorded root attempt remain under their normal
55
+ gate/fingerprint rules.
56
+
49
57
  Past evidence being irretrievable is not by itself terminal. When an in-scope
50
58
  trusted diagnostic seam can make the next retained fingerprint uniquely
51
59
  actionable, Autocomplete must run diagnostic-amplification Plan repair and narrow
@@ -259,6 +259,12 @@ changes, not a request for permission to retry.
259
259
  recorded no-progress corrections still has recovery budget, even when an older
260
260
  `state.md` says `Next step: none`. Resume it; do not treat session age or the
261
261
  prior action's spent authorization as exhaustion.
262
+ - **Treat a newly supported writer route as progress once.** For exact Vet-ready
263
+ workflow artifacts, apply `workflow-artifacts.md` when prior attempts only asked
264
+ a read-only role or product wright for implementation and evidence records
265
+ **no controlling-root materialization attempt**. Preserve the old attempts, but
266
+ do not count them against the new root-materialization fingerprint. Record the
267
+ migration; after a root attempt exists, normal fingerprint accounting applies.
262
268
  - **Classify exhaustion:** human-owned contract/risk/access gaps open their gate. Otherwise
263
269
  preserve reproduction/dead ends, set `Status: blocked` and `Next step: none — technical recovery exhausted for <causal fingerprint>; requires new evidence or changed failure conditions`.
264
270
  Do not emit `/rite-plan unblock`, another phase command, a question, or
@@ -20,6 +20,25 @@ technical-recovery exhaustion, while the vetted behavior and exact paths are
20
20
  complete. The root may not invent unresolved protocol choices; those return to
21
21
  Plan/Vet.
22
22
 
23
+ ## Cold-resume migration
24
+
25
+ A **stale writer-exhaustion cursor** must reopen when all of these are durable:
26
+
27
+ - Vet accepted the exact workflow-artifact paths and complete executable contract;
28
+ - the recorded blocker is only missing implementation bodies or a writable actor;
29
+ - prior no-progress attempts asked a read-only drafter/reviewer for bodies or sent
30
+ `.devrites/**` paths toward the product wright; and
31
+ - evidence records **no controlling-root materialization attempt** for that exact set.
32
+
33
+ This is a changed routing condition, not another correction attempt against the
34
+ old unsupported-writer fingerprint. Preserve that history, close or supersede its
35
+ terminal claim, record one new root-materialization fingerprint, and materialize
36
+ directly even when all product slices are built or the AFK slice budget is zero.
37
+ Do not consume product-slice budget, reopen an answered human gate, or require GO
38
+ for this offline work. After any controlling-root attempt is recorded, this
39
+ migration cannot apply again; route its observed atomic/proof failure under the
40
+ new fingerprint instead.
41
+
23
42
  ## Admission
24
43
 
25
44
  Before writing:
@@ -18,6 +18,10 @@ default and **Full** for high-risk scope or explicit `--full`; profiles are defi
18
18
  When the cursor or approved plan contains a consumptive action, also read
19
19
  `.claude/skills/devrites-lib/reference/standards/one-shot-actions.md` before any
20
20
  stop/continue or execution decision.
21
+ When a blocked cursor names missing executable controller/harness/bundle bytes or
22
+ a missing writer under the active feature workspace, read
23
+ `.claude/skills/devrites-lib/reference/standards/workflow-artifacts.md` before honoring
24
+ the terminal cursor or its recovery count.
21
25
 
22
26
  ## Operating rules
23
27
  - **Use one initial human window.** Run spec and topology-first clarify; arm AFK
@@ -67,6 +71,11 @@ stop/continue or execution decision.
67
71
  terminal `next_action`, reconcile retained consumptive-action artifacts and
68
72
  per-fingerprint attempts from `drift.md` / `evidence.md`. A distinct retained
69
73
  fingerprint below its no-progress cap reopens caller-owned offline recovery;
74
+ a stale pre-ownership workflow-artifact writer stop reopens under
75
+ `workflow-artifacts.md` when no controlling-root materialization attempt exists.
76
+ That materialization runs directly as non-consumptive prerequisite recovery,
77
+ even with no pending product slice or AFK budget; it does not re-ask an answered
78
+ human gate.
70
79
  reconstruct any missing return cursor only from the current phase plus the
71
80
  exact approved action in `test-plan.md` / evidence, never from chat or guesswork.
72
81
  The idea + flags: `--ship` / `--yolo` (continue through ship preflight, then stop
@@ -64,6 +64,17 @@ Restore `return_phase` from the current phase and `return_next_action` only from
64
64
  the exact approved action recorded in `test-plan.md` / evidence; ambiguity returns
65
65
  to the applicable Vet contract and never licenses execution.
66
66
 
67
+ Also reconcile a **stale writer-exhaustion cursor** against
68
+ `workflow-artifacts.md`. When exact Vet-ready workflow-artifact paths and behavior
69
+ exist, the old attempts only targeted the read-only drafter/reviewer or product
70
+ wright, and there is **no controlling-root materialization attempt**, supported
71
+ root ownership is a changed routing condition. Preserve the old fingerprint,
72
+ record the new materialization fingerprint, and run that offline branch directly;
73
+ do not charge or require product-slice/AFK budget, re-ask a resolved question, or
74
+ request GO. Once a root materialization attempt exists, never apply this migration
75
+ again—route its observed failure normally. This reconciliation runs even when all
76
+ product slices are already built, before selecting the next forward phase.
77
+
67
78
  1. Save the originating phase/action in the native return cursor unless a valid
68
79
  one already exists.
69
80
  2. Invoke the required repair, Vet, remediation, and proof skills inline. After
@@ -46,6 +46,14 @@ no-progress corrections. A retained fingerprint with remaining offline budget is
46
46
  not terminal merely because `state.md` was written by the failed action or a prior
47
47
  session ended.
48
48
 
49
+ A pre-ownership workflow-artifact writer stop is not unchanged evidence when the
50
+ current contract supplies controlling-root materialization. Prior drafter/wright refusals do not count
51
+ as root materialization attempts. Reopen only when exact paths and executable
52
+ behavior passed Vet and there is **no controlling-root materialization attempt**;
53
+ record the routing migration so it cannot reset again. Missing product slices,
54
+ unresolved protocol choices, or a recorded root attempt remain under their normal
55
+ gate/fingerprint rules.
56
+
49
57
  Past evidence being irretrievable is not by itself terminal. When an in-scope
50
58
  trusted diagnostic seam can make the next retained fingerprint uniquely
51
59
  actionable, Autocomplete must run diagnostic-amplification Plan repair and narrow
@@ -259,6 +259,12 @@ changes, not a request for permission to retry.
259
259
  recorded no-progress corrections still has recovery budget, even when an older
260
260
  `state.md` says `Next step: none`. Resume it; do not treat session age or the
261
261
  prior action's spent authorization as exhaustion.
262
+ - **Treat a newly supported writer route as progress once.** For exact Vet-ready
263
+ workflow artifacts, apply `workflow-artifacts.md` when prior attempts only asked
264
+ a read-only role or product wright for implementation and evidence records
265
+ **no controlling-root materialization attempt**. Preserve the old attempts, but
266
+ do not count them against the new root-materialization fingerprint. Record the
267
+ migration; after a root attempt exists, normal fingerprint accounting applies.
262
268
  - **Classify exhaustion:** human-owned contract/risk/access gaps open their gate. Otherwise
263
269
  preserve reproduction/dead ends, set `Status: blocked` and `Next step: none — technical recovery exhausted for <causal fingerprint>; requires new evidence or changed failure conditions`.
264
270
  Do not emit `$rite-plan unblock`, another phase command, a question, or
@@ -20,6 +20,25 @@ technical-recovery exhaustion, while the vetted behavior and exact paths are
20
20
  complete. The root may not invent unresolved protocol choices; those return to
21
21
  Plan/Vet.
22
22
 
23
+ ## Cold-resume migration
24
+
25
+ A **stale writer-exhaustion cursor** must reopen when all of these are durable:
26
+
27
+ - Vet accepted the exact workflow-artifact paths and complete executable contract;
28
+ - the recorded blocker is only missing implementation bodies or a writable actor;
29
+ - prior no-progress attempts asked a read-only drafter/reviewer for bodies or sent
30
+ `.devrites/**` paths toward the product wright; and
31
+ - evidence records **no controlling-root materialization attempt** for that exact set.
32
+
33
+ This is a changed routing condition, not another correction attempt against the
34
+ old unsupported-writer fingerprint. Preserve that history, close or supersede its
35
+ terminal claim, record one new root-materialization fingerprint, and materialize
36
+ directly even when all product slices are built or the AFK slice budget is zero.
37
+ Do not consume product-slice budget, reopen an answered human gate, or require GO
38
+ for this offline work. After any controlling-root attempt is recorded, this
39
+ migration cannot apply again; route its observed atomic/proof failure under the
40
+ new fingerprint instead.
41
+
23
42
  ## Admission
24
43
 
25
44
  Before writing:
@@ -18,6 +18,10 @@ default and **Full** for high-risk scope or explicit `--full`; profiles are defi
18
18
  When the cursor or approved plan contains a consumptive action, also read
19
19
  `.agents/skills/devrites-lib/reference/standards/one-shot-actions.md` before any
20
20
  stop/continue or execution decision.
21
+ When a blocked cursor names missing executable controller/harness/bundle bytes or
22
+ a missing writer under the active feature workspace, read
23
+ `.agents/skills/devrites-lib/reference/standards/workflow-artifacts.md` before honoring
24
+ the terminal cursor or its recovery count.
21
25
 
22
26
  ## Operating rules
23
27
  - **Use one initial human window.** Run spec and topology-first clarify; arm AFK
@@ -67,6 +71,11 @@ stop/continue or execution decision.
67
71
  terminal `next_action`, reconcile retained consumptive-action artifacts and
68
72
  per-fingerprint attempts from `drift.md` / `evidence.md`. A distinct retained
69
73
  fingerprint below its no-progress cap reopens caller-owned offline recovery;
74
+ a stale pre-ownership workflow-artifact writer stop reopens under
75
+ `workflow-artifacts.md` when no controlling-root materialization attempt exists.
76
+ That materialization runs directly as non-consumptive prerequisite recovery,
77
+ even with no pending product slice or AFK budget; it does not re-ask an answered
78
+ human gate.
70
79
  reconstruct any missing return cursor only from the current phase plus the
71
80
  exact approved action in `test-plan.md` / evidence, never from chat or guesswork.
72
81
  The idea + flags: `--ship` / `--yolo` (continue through ship preflight, then stop
@@ -64,6 +64,17 @@ Restore `return_phase` from the current phase and `return_next_action` only from
64
64
  the exact approved action recorded in `test-plan.md` / evidence; ambiguity returns
65
65
  to the applicable Vet contract and never licenses execution.
66
66
 
67
+ Also reconcile a **stale writer-exhaustion cursor** against
68
+ `workflow-artifacts.md`. When exact Vet-ready workflow-artifact paths and behavior
69
+ exist, the old attempts only targeted the read-only drafter/reviewer or product
70
+ wright, and there is **no controlling-root materialization attempt**, supported
71
+ root ownership is a changed routing condition. Preserve the old fingerprint,
72
+ record the new materialization fingerprint, and run that offline branch directly;
73
+ do not charge or require product-slice/AFK budget, re-ask a resolved question, or
74
+ request GO. Once a root materialization attempt exists, never apply this migration
75
+ again—route its observed failure normally. This reconciliation runs even when all
76
+ product slices are already built, before selecting the next forward phase.
77
+
67
78
  1. Save the originating phase/action in the native return cursor unless a valid
68
79
  one already exists.
69
80
  2. Invoke the required repair, Vet, remediation, and proof skills inline. After
@@ -46,6 +46,14 @@ no-progress corrections. A retained fingerprint with remaining offline budget is
46
46
  not terminal merely because `state.md` was written by the failed action or a prior
47
47
  session ended.
48
48
 
49
+ A pre-ownership workflow-artifact writer stop is not unchanged evidence when the
50
+ current contract supplies controlling-root materialization. Prior drafter/wright refusals do not count
51
+ as root materialization attempts. Reopen only when exact paths and executable
52
+ behavior passed Vet and there is **no controlling-root materialization attempt**;
53
+ record the routing migration so it cannot reset again. Missing product slices,
54
+ unresolved protocol choices, or a recorded root attempt remain under their normal
55
+ gate/fingerprint rules.
56
+
49
57
  Past evidence being irretrievable is not by itself terminal. When an in-scope
50
58
  trusted diagnostic seam can make the next retained fingerprint uniquely
51
59
  actionable, Autocomplete must run diagnostic-amplification Plan repair and narrow
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "devrites",
3
- "version": "4.0.9",
3
+ "version": "4.0.10",
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",