devrites 6.1.0 → 6.1.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.
Files changed (88) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +1 -1
  3. package/docs/architecture.md +3 -1
  4. package/pack/.claude/skills/devrites-debug-recovery/SKILL.md +5 -4
  5. package/pack/.claude/skills/devrites-lib/reference/reply-contract.md +12 -15
  6. package/pack/.claude/skills/devrites-lib/reference/standards/afk-hitl.md +25 -6
  7. package/pack/.claude/skills/devrites-lib/reference/standards/core.md +1 -1
  8. package/pack/.claude/skills/devrites-lib/reference/standards/one-shot-actions.md +7 -6
  9. package/pack/.claude/skills/rite-autocomplete/SKILL.md +11 -9
  10. package/pack/.claude/skills/rite-autocomplete/reference/loop.md +7 -5
  11. package/pack/.claude/skills/rite-autocomplete/reference/stop-conditions.md +23 -20
  12. package/pack/.claude/skills/rite-build/reference/afk-discipline.md +6 -3
  13. package/pack/.claude/skills/rite-build/reference/parallel-batch.md +5 -5
  14. package/pack/.claude/skills/rite-plan/SKILL.md +1 -1
  15. package/pack/.claude/skills/rite-prove/SKILL.md +4 -2
  16. package/pack/.claude/skills/rite-prove/reference/failure-triage.md +2 -1
  17. package/pack/.claude/skills/rite-spec/reference/state-workspace.md +2 -2
  18. package/pack/generated/claude/skills/devrites-debug-recovery/SKILL.md +5 -4
  19. package/pack/generated/claude/skills/devrites-lib/reference/reply-contract.md +12 -15
  20. package/pack/generated/claude/skills/devrites-lib/reference/standards/afk-hitl.md +25 -6
  21. package/pack/generated/claude/skills/devrites-lib/reference/standards/core.md +1 -1
  22. package/pack/generated/claude/skills/devrites-lib/reference/standards/one-shot-actions.md +7 -6
  23. package/pack/generated/claude/skills/rite-autocomplete/SKILL.md +11 -9
  24. package/pack/generated/claude/skills/rite-autocomplete/reference/loop.md +7 -5
  25. package/pack/generated/claude/skills/rite-autocomplete/reference/stop-conditions.md +23 -20
  26. package/pack/generated/claude/skills/rite-build/reference/afk-discipline.md +6 -3
  27. package/pack/generated/claude/skills/rite-build/reference/parallel-batch.md +5 -5
  28. package/pack/generated/claude/skills/rite-plan/SKILL.md +1 -1
  29. package/pack/generated/claude/skills/rite-prove/SKILL.md +4 -2
  30. package/pack/generated/claude/skills/rite-prove/reference/failure-triage.md +2 -1
  31. package/pack/generated/claude/skills/rite-spec/reference/state-workspace.md +2 -2
  32. package/pack/generated/codex/skills/devrites-debug-recovery/SKILL.md +5 -4
  33. package/pack/generated/codex/skills/devrites-lib/reference/reply-contract.md +12 -15
  34. package/pack/generated/codex/skills/devrites-lib/reference/standards/afk-hitl.md +25 -6
  35. package/pack/generated/codex/skills/devrites-lib/reference/standards/core.md +1 -1
  36. package/pack/generated/codex/skills/devrites-lib/reference/standards/one-shot-actions.md +7 -6
  37. package/pack/generated/codex/skills/rite-autocomplete/SKILL.md +11 -9
  38. package/pack/generated/codex/skills/rite-autocomplete/reference/loop.md +7 -5
  39. package/pack/generated/codex/skills/rite-autocomplete/reference/stop-conditions.md +23 -20
  40. package/pack/generated/codex/skills/rite-build/reference/afk-discipline.md +6 -3
  41. package/pack/generated/codex/skills/rite-build/reference/parallel-batch.md +5 -5
  42. package/pack/generated/codex/skills/rite-plan/SKILL.md +1 -1
  43. package/pack/generated/codex/skills/rite-prove/SKILL.md +4 -2
  44. package/pack/generated/codex/skills/rite-prove/reference/failure-triage.md +2 -1
  45. package/pack/generated/codex/skills/rite-spec/reference/state-workspace.md +2 -2
  46. package/pack/generated/devin/skills/devrites-debug-recovery/SKILL.md +5 -4
  47. package/pack/generated/devin/skills/devrites-lib/reference/reply-contract.md +12 -15
  48. package/pack/generated/devin/skills/devrites-lib/reference/standards/afk-hitl.md +25 -6
  49. package/pack/generated/devin/skills/devrites-lib/reference/standards/core.md +1 -1
  50. package/pack/generated/devin/skills/devrites-lib/reference/standards/one-shot-actions.md +7 -6
  51. package/pack/generated/devin/skills/rite-autocomplete/SKILL.md +11 -9
  52. package/pack/generated/devin/skills/rite-autocomplete/reference/loop.md +7 -5
  53. package/pack/generated/devin/skills/rite-autocomplete/reference/stop-conditions.md +23 -20
  54. package/pack/generated/devin/skills/rite-build/reference/afk-discipline.md +6 -3
  55. package/pack/generated/devin/skills/rite-build/reference/parallel-batch.md +5 -5
  56. package/pack/generated/devin/skills/rite-plan/SKILL.md +1 -1
  57. package/pack/generated/devin/skills/rite-prove/SKILL.md +4 -2
  58. package/pack/generated/devin/skills/rite-prove/reference/failure-triage.md +2 -1
  59. package/pack/generated/devin/skills/rite-spec/reference/state-workspace.md +2 -2
  60. package/pack/generated/omp/skills/devrites-debug-recovery/SKILL.md +5 -4
  61. package/pack/generated/omp/skills/devrites-lib/reference/reply-contract.md +12 -15
  62. package/pack/generated/omp/skills/devrites-lib/reference/standards/afk-hitl.md +25 -6
  63. package/pack/generated/omp/skills/devrites-lib/reference/standards/core.md +1 -1
  64. package/pack/generated/omp/skills/devrites-lib/reference/standards/one-shot-actions.md +7 -6
  65. package/pack/generated/omp/skills/rite-autocomplete/SKILL.md +11 -9
  66. package/pack/generated/omp/skills/rite-autocomplete/reference/loop.md +7 -5
  67. package/pack/generated/omp/skills/rite-autocomplete/reference/stop-conditions.md +23 -20
  68. package/pack/generated/omp/skills/rite-build/reference/afk-discipline.md +6 -3
  69. package/pack/generated/omp/skills/rite-build/reference/parallel-batch.md +5 -5
  70. package/pack/generated/omp/skills/rite-plan/SKILL.md +1 -1
  71. package/pack/generated/omp/skills/rite-prove/SKILL.md +4 -2
  72. package/pack/generated/omp/skills/rite-prove/reference/failure-triage.md +2 -1
  73. package/pack/generated/omp/skills/rite-spec/reference/state-workspace.md +2 -2
  74. package/pack/generated/pi/skills/devrites-debug-recovery/SKILL.md +5 -4
  75. package/pack/generated/pi/skills/devrites-lib/reference/reply-contract.md +12 -15
  76. package/pack/generated/pi/skills/devrites-lib/reference/standards/afk-hitl.md +25 -6
  77. package/pack/generated/pi/skills/devrites-lib/reference/standards/core.md +1 -1
  78. package/pack/generated/pi/skills/devrites-lib/reference/standards/one-shot-actions.md +7 -6
  79. package/pack/generated/pi/skills/rite-autocomplete/SKILL.md +11 -9
  80. package/pack/generated/pi/skills/rite-autocomplete/reference/loop.md +7 -5
  81. package/pack/generated/pi/skills/rite-autocomplete/reference/stop-conditions.md +23 -20
  82. package/pack/generated/pi/skills/rite-build/reference/afk-discipline.md +6 -3
  83. package/pack/generated/pi/skills/rite-build/reference/parallel-batch.md +5 -5
  84. package/pack/generated/pi/skills/rite-plan/SKILL.md +1 -1
  85. package/pack/generated/pi/skills/rite-prove/SKILL.md +4 -2
  86. package/pack/generated/pi/skills/rite-prove/reference/failure-triage.md +2 -1
  87. package/pack/generated/pi/skills/rite-spec/reference/state-workspace.md +2 -2
  88. package/package.json +1 -1
@@ -1,10 +1,10 @@
1
1
  # Stop conditions: when autocomplete pauses
2
2
 
3
3
  On a real stop, write `state.md` as `awaiting_human` or `blocked`, persist the
4
- reason, and include one resume command only when an actual human/safety/access
5
- action can change it. Exhausted agent-owned recovery records terminal
6
- `Next step: none` and no runnable recovery command. `--ship` never bypasses a
7
- stop.
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)).
7
+ `--ship` never bypasses a stop.
8
8
 
9
9
  Authority: `.agents/skills/devrites-lib/reference/standards/acceptance-preserving-reslice.md`.
10
10
 
@@ -24,8 +24,8 @@ Regardless of flags or AFK ceiling:
24
24
  - external-service contract change; or
25
25
  - filesystem destruction outside the workspace.
26
26
 
27
- Red proof cannot advance. Run bounded Debug Recovery; stop after proven
28
- exhaustion unless the remaining owner is human.
27
+ Red proof cannot advance. Run bounded Debug Recovery and escalate spent
28
+ strategies; a fully escalated fingerprint parks unless the remaining owner is human.
29
29
 
30
30
  ## Not stops: internal technical routing
31
31
 
@@ -36,13 +36,16 @@ agent-owned.
36
36
 
37
37
  Agent-owned backtracking is not a stop condition while the exact causal
38
38
  fingerprint has budget. Invoke the earlier phase, affected Vet, remediation, and
39
- proof; then resume the origin. Stop only after three no-progress corrections of
40
- that exact fingerprint or a real human/safety/access gate. Preserve reproduction,
41
- attempts, and dead ends; never offer `$rite-plan unblock` or another routine
42
- phase command. Reinvocation with unchanged evidence does not reset the cap.
43
- `unchanged` means the same fingerprint already has three recorded no-progress
44
- corrections. Closure is progress; a separately evidenced Critical/Important
45
- invariant starts its own cap and cannot extend the closed one.
39
+ proof; then resume the origin. Three no-progress corrections of that exact
40
+ fingerprint spend only its current strategy: escalate to the next correction
41
+ class inline (shared root cause, boundary redesign, diagnostic amplification)
42
+ with a fresh budget, never asking permission. After three escalations in this
43
+ activation the fingerprint parks; finish all independent work, then stop once.
44
+ Preserve reproduction, attempts, and dead ends; never offer `$rite-plan unblock`
45
+ or another routine phase command. A new user-issued `$rite-autocomplete`
46
+ reopens parked fingerprints with fresh escalation; wakes and compaction do not.
47
+ Closure is progress; a separately evidenced Critical/Important invariant starts
48
+ its own cap and cannot extend the closed one.
46
49
 
47
50
  Spent consumptive-action authorization is not technical-recovery exhaustion.
48
51
  It blocks another execution; retained new Critical/Important evidence still
@@ -52,9 +55,8 @@ authorization and never reuse old GO.
52
55
  Past evidence being irretrievable is not by itself terminal. If an in-scope
53
56
  trusted seam can uniquely discriminate the next failure, run diagnostic-
54
57
  amplification Plan repair and narrow Vet inline, then pause for fresh GO before
55
- one evidence-acquisition attempt. Use terminal none only when no safe in-scope
56
- seam exists, a real human/risk/scope gate owns it, or bounded recovery is
57
- exhausted.
58
+ one evidence-acquisition attempt. Without a safe seam, escalate to the next
59
+ class or park; only a real human/risk/scope gate stops for a human.
58
60
 
59
61
  <!-- workflow-artifact-adapter: {"module":"devrites-lib/reference/standards/workflow-artifacts.md","entry":"classifier returns owner-busy, exhausted, or existing hard gate","action":"stop on exact WAIT_ACTIVE_OWNER, BLOCKED_EXHAUSTED, or BLOCKED_GATE result","return":"unchanged cursor plus fixed route-owned output"} -->
60
62
  ## Other stop classes
@@ -86,7 +88,8 @@ exhausted.
86
88
  - **Resource envelope:** overlapping run or missing AFK after arm still stops.
87
89
  Do not stop on `--max-slices`, `max_agents`, `max_minutes`, or `max_review_queue`.
88
90
  - **Confidence:** intent still cannot become testable acceptance after interview.
89
- - **Repeated failure:** the exact fingerprint's bounded recovery is exhausted.
91
+ - **Repeated failure:** not a stop. Escalate; a fully escalated fingerprint parks,
92
+ and the run stops only once no independent work remains.
90
93
  - **Resolver failure:** `devrites-engine state resolve` not found, or nonzero exit.
91
94
  Never hand-edit `questions.md`/`state.md` in its place. Not found stops at once;
92
95
  nonzero allows one identical re-run (the fingerprint is command + exit code +
@@ -101,7 +104,7 @@ disclose the exact plan, and stop for literal `GO` plus native approval. Without
101
104
  one, stop at Seal GO with `$rite-ship`. Seal GO, AFK, prior approval, and flags
102
105
  never satisfy Ship approval.
103
106
 
104
- A cold-resumable stop records `state.md` status, exact reason, and either one
105
- human-owned resume action or `none — technical recovery exhausted`; the owning
106
- question/drift/seal entry explains it. The user-facing line says what stopped
107
+ A cold-resumable stop records `state.md` status, exact reason, and one resume
108
+ action: the human-owned action, or `$rite-autocomplete` to reopen parked
109
+ fingerprints; the owning question/drift/seal entry explains it. The user-facing line says what stopped
107
110
  and, only when applicable, what human action resumes it.
@@ -69,13 +69,16 @@ wrong contract or proof path — agent-owned recovery; never advance on broken s
69
69
  The fail-on-red path:
70
70
 
71
71
  1. Continue the same wright under `devrites-debug-recovery`, carrying exact output and dead
72
- ends; cap writer + recovery at three no-progress attempts per exact causal fingerprint.
72
+ ends; cap writer + recovery at three no-progress attempts per exact causal fingerprint
73
+ and strategy.
73
74
  A correction that closes the reproduction is progress; a different evidenced
74
75
  Critical/Important invariant starts a separate fingerprint.
75
76
  2. Green → record the slice. Product-contract/irreversible ambiguity → write the genuine
76
77
  human gate. Missing human-only credential/permission → write a human-intervention gate.
77
- 3. Any other exhausted objective failure → set `Status: blocked`, preserve the reproduction,
78
- set `Next step: none — technical recovery exhausted for <causal fingerprint>; requires new evidence or changed failure conditions`, and STOP without a qid or runnable phase command. Reinvocation with the unchanged fingerprint remains blocked and does not reset the cap.
78
+ 3. Any other spent strategy → escalate inline to the next correction class; after three
79
+ escalations park the fingerprint and build every slice that does not depend on it,
80
+ per the [retry contract](../../devrites-lib/reference/standards/afk-hitl.md#retry-cap-no-progress-loops-and-self-resolve).
81
+ Never ask a qid or permission to retry; never hand back a routine phase command.
79
82
  4. Fire `notify:` only for an actual `awaiting_human` transition.
80
83
 
81
84
  AFK never starts the next slice while checks are red and never asks the human to approve
@@ -182,11 +182,11 @@ Repair rejected work in place; never discard/rebuild while budget remains.
182
182
  exhaustion. Use plan path only if inventory proves the approach unsound.
183
183
  - Stop under the canonical retry/authority/resource conditions, or when evidence
184
184
  proves the approach unsound and no in-scope corrected decomposition exists.
185
- - Exhaustion is not abort: record one technical blocker (`Status: blocked`;
186
- `Next step: none — technical recovery exhausted; requires new evidence or changed failure conditions`), preserve
187
- lease/worktrees/branches, STOP — same fingerprint stays blocked on
188
- reinvoke; new evidence resumes repair in place. Human-owned decisions use
189
- the drift-guard question and wait.
185
+ - A spent strategy is not abort: escalate per the canonical retry contract,
186
+ preserving lease/worktrees/branches; a fully escalated fingerprint parks and
187
+ the batch keeps its independent members. Repair resumes in place on
188
+ escalation or reinvocation. Human-owned decisions use the drift-guard
189
+ question and wait.
190
190
 
191
191
  ## Engine verbs
192
192
 
@@ -177,7 +177,7 @@ Before classifying any Reslice, read `.agents/skills/devrites-lib/reference/stan
177
177
 
178
178
  When invoked inline by a controlling rite, return the completed Plan checkpoint
179
179
  to that caller so it can invoke Vet immediately. The phase boundary is not a
180
- user-facing stop unless a genuine HITL, safety/access, or exhausted-recovery
180
+ user-facing stop unless a genuine HITL, safety/access, or parked-recovery
181
181
  condition was recorded.
182
182
 
183
183
  When invoked directly with no controlling caller and a planning artifact
@@ -37,8 +37,10 @@ TTHW, and exact signal-bearing errors; never assert DX (trigger `devex`).
37
37
  validates it. Only the bounded wright fixes product source/tests.
38
38
  - **Prove remains the controlling caller** during technical backtracking. Save
39
39
  its cursor; run Plan repair, Recovery Vet, remediation, and re-proof inline;
40
- consume nested boundaries; resume the failed rung. Recovery exhausts after
41
- three no-progress attempts on the exact same fingerprint. Closing one or exposing a distinct
40
+ consume nested boundaries; resume the failed rung. A strategy is spent after
41
+ three no-progress attempts on the exact same fingerprint; escalate it per the
42
+ [retry contract](../devrites-lib/reference/standards/afk-hitl.md#retry-cap-no-progress-loops-and-self-resolve)
43
+ instead of stopping. Closing one or exposing a distinct
42
44
  Critical/Important invariant is progress, not a reason to hand work off.
43
45
  <!-- workflow-artifact-adapter: {"module":"devrites-lib/reference/standards/workflow-artifacts.md","entry":"Prove consumes installed Workflow Artifact or CLEANED rerun","action":"VERIFY_EXISTING or admitted proof path ending PROVE_AND_RETURN","return":"saved Prove cursor; stop before real action"} -->
44
46
  ## Released-workspace refresh
@@ -47,6 +47,7 @@ loop to `devrites-debug-recovery`.
47
47
  - Three no-progress attempts on the exact same causal fingerprint consume the
48
48
  shared recovery cap. A recheck that closes the reproduction is progress; a
49
49
  different evidenced Critical/Important invariant gets its own fingerprint.
50
- Preserve the reproduction and dead ends, then stop once as a technical blocker.
50
+ Preserve the reproduction and dead ends, then escalate or park per the
51
+ [retry contract](../../devrites-lib/reference/standards/afk-hitl.md#retry-cap-no-progress-loops-and-self-resolve).
51
52
  Ask only when the remaining decision is human-owned.
52
53
  - A failure you can't fix in scope is a recorded **blocker**, not a silent skip.
@@ -131,7 +131,7 @@ None.
131
131
  | slice_mode | none |
132
132
  | risk | none |
133
133
  | spec_gate | <passed <iso>; marker sweep: <n> files, <k> hits, <d> discarded — absent until $rite-spec passes> |
134
- | next_action | <single command + reason, or terminal: none — technical recovery exhausted for an unchanged causal fingerprint> |
134
+ | next_action | <single command + reason; parked recovery names the invoking command> |
135
135
  | return_phase | <originating later phase; clarification or agent-owned technical backtracking only> |
136
136
  | return_next_action | <saved originating command> |
137
137
  | schema | 4 |
@@ -154,7 +154,7 @@ Before an active caller moves backward, it copies its current phase and
154
154
  non-empty action into the two return rows. Nested Plan, Vet, Build, and proof
155
155
  work preserves that valid cursor. Once the prerequisite chain is green, the
156
156
  controlling caller restores the saved phase/action and removes both rows in one
157
- rewrite. A real HITL or exhausted-recovery stop retains the cursor for cold
157
+ rewrite. A real HITL or parked-recovery stop retains the cursor for cold
158
158
  resume. Never overwrite an existing valid return cursor, and preserve every
159
159
  unrelated Markdown byte. `$rite-clarify` applies its stricter native cursor protocol in `$rite-clarify`.
160
160
 
@@ -88,13 +88,14 @@ has no clear next move. Optional slug selects the active workspace; defaults to
88
88
  with that fingerprint. Reclassify only on new causal evidence. On cold resume,
89
89
  a retained fingerprint with fewer than three such attempts remains runnable
90
90
  even if the previous action wrote a terminal cursor.
91
- - **A maximum of three no-progress attempts per exact causal fingerprint stops the loop.**
91
+ - **A strategy is spent after three no-progress attempts per exact causal fingerprint.**
92
92
  Count an attempt only when its recheck preserves the same decisive failure.
93
93
  Record attempt number, exact failure, hypothesis, probe, and failed idea after
94
94
  each; closure is progress and a different Critical/Important invariant is a new
95
95
  fingerprint. There is no JSONL ledger,
96
96
  counter command, or reset-on-green operation. Product/acceptance ambiguity, irreversible risk, or
97
- human-only access becomes a human gate; otherwise return reproducible `blocked` with
98
- `Next: none — technical recovery exhausted for <causal fingerprint>`, never request
99
- attempt four. While budget remains, coupled failure requiring behavior change routes
97
+ human-only access becomes a human gate; otherwise return the spent strategy and
98
+ reproduction to the caller, which escalates or parks per the
99
+ [retry contract](../devrites-lib/reference/standards/afk-hitl.md#retry-cap-no-progress-loops-and-self-resolve);
100
+ never request attempt four of the same strategy. While budget remains, coupled failure requiring behavior change routes
100
101
  `/rite-plan repair` inline; behavior-neutral rerouting uses `unblock` inline.
@@ -10,7 +10,7 @@ When an active rite is the controlling caller, Intermediate `NEEDS_REPLAN` (the
10
10
  token for the workspace's `NEEDS REPLAN` readiness value), a nested phase `STOP`, and a
11
11
  routine Plan/Vet `Next step` are not eligible completion states. Autocomplete may
12
12
  use the shapes below only after its requested rest point or a shared genuine
13
- human/safety/access/exhausted-recovery stop is reached.
13
+ human/safety/access/parked-recovery stop is reached.
14
14
 
15
15
  ```text
16
16
  Done: <result in one sentence>
@@ -104,23 +104,20 @@ Record: .devrites/archive/<slug>/ship.md
104
104
  Claims such as proved, reviewed, sealed, shipped, or complete must point to real
105
105
  output or an artifact. A NOT-RUN verification keeps its marker in `Evidence:` or `Open:`
106
106
  per [`core.md`](standards/core.md#gate-contract) § Gate contract.
107
- Use exactly one recommended next action except for
108
- terminal agent-owned technical exhaustion, which has no runnable action.
107
+ Use exactly one recommended next action.
109
108
 
110
- Use that terminal case only per [`one-shot-actions.md`](standards/one-shot-actions.md):
111
- three recorded no-progress corrections of the exact fingerprint, or required evidence
112
- irretrievably absent with **no safe in-scope diagnostic-amplification seam**. A spent
113
- consumptive-action authorization plus a retained new fingerprint is not terminal. For a
114
- true terminal case use:
109
+ Agent-owned recovery never ends with `Next: none`. Per the
110
+ [retry contract](standards/afk-hitl.md#retry-cap-no-progress-loops-and-self-resolve),
111
+ a spent strategy escalates inline and a fully escalated fingerprint parks while
112
+ independent work continues; with **no safe in-scope diagnostic-amplification seam**,
113
+ escalate or park instead of stopping. A spent consumptive-action authorization plus a
114
+ retained new fingerprint keeps recovering. Once nothing runnable remains, use:
115
115
 
116
116
  ```text
117
- Stopped: Technical recovery exhausted
117
+ Stopped: Technical recovery parked
118
118
  Blocking: <causal fingerprint and invariant>
119
- Attempts: <three failed approaches and decisive reproduction>
120
- No runnable recovery command: unchanged reinvocation remains blocked
121
- Next: none — requires new evidence or changed failure conditions
119
+ Attempts: <each strategy, its class, and decisive reproduction>
120
+ Completed: <independent work finished after parking>
121
+ Next: <invoking command> — reopens parked fingerprints with fresh escalation
122
122
  Record: <artifact path>
123
123
  ```
124
-
125
- The terminal cursor marker is `Next: none` exactly as shown; a stored `Next step: none`
126
- names the same exhausted state.
@@ -350,7 +350,7 @@ access, safety and irreversible-action boundaries independently stop work.
350
350
  invariant + defect mechanism + minimal reproduction/decisive failure signal.
351
351
  DEC/DRIFT IDs, line numbers, wording and splitting one cause create no new budget.
352
352
  - **Cap no-progress retries:** three no-progress attempts per exact causal fingerprint
353
- across wright/recovery. Only a correction whose narrow recheck leaves that cause
353
+ and strategy across wright/recovery. Only a correction whose narrow recheck leaves that cause
354
354
  open or reproduces its failure consumes an attempt.
355
355
  Closing a prior finding with discriminating evidence is progress: resolve it,
356
356
  do not charge. A new Critical or Important finding gets its own budget only for
@@ -384,11 +384,30 @@ access, safety and irreversible-action boundaries independently stop work.
384
384
  - **Reconcile terminal cursors.** Retained distinct Critical/Important evidence below
385
385
  cap resumes despite stale `Next step: none`; age/spent action authority is not exhaustion.
386
386
  <!-- workflow-artifact-adapter: {"module":"devrites-lib/reference/standards/workflow-artifacts.md","entry":"unattended root reaches current admitted Workflow Artifact work","action":"invoke classifier; execute returned route without wright/slice charge","return":"saved lifecycle phase/action; no intermediate reply"} -->
387
- - **Classify exhaustion:** human-owned contract/risk/access gaps open their gate.
388
- Otherwise preserve reproduction/dead ends, set `Status: blocked` and
389
- `Next step: none — technical recovery exhausted; requires new evidence or changed failure conditions`.
390
- Emit no phase command, retry-permission question or `/rite-resolve`.
391
- Reinvocation with unchanged cause stays blocked; it never resets the cap.
387
+ - **Escalate a spent strategy; never stop on it.** Three no-progress attempts spend
388
+ the fingerprint's current *strategy*, not the work. Record that strategy and its
389
+ attempts under `## Dead ends`, then the controlling caller escalates inline in the
390
+ same invocation: re-diagnose from the reproduction and dead ends, take the first
391
+ class below that still has an untried strategy, run `/rite-plan repair` plus
392
+ narrow Vet for it, and resume with a fresh three-attempt budget. Classes, in order:
393
+ (1) **shared root cause**: fix the owner every failing path routes through and
394
+ enforce it across all callers instead of another local guard; (2) **boundary
395
+ redesign**: acceptance-preserving reslice or redesign of the failing seam;
396
+ (3) **diagnostic amplification**: add discriminating probes or fixtures, then
397
+ correct from that evidence. A recorded strategy, or a rewording of one, never
398
+ repeats. Escalation never weakens tests, validators or acceptance. Each
399
+ fingerprint gets at most three escalations per activation; record each in
400
+ `drift.md` with its class and strategy.
401
+ - **Park, finish the rest, then stop once.** Human-owned contract/risk/access gaps
402
+ open their gate. Otherwise, with every escalation spent, mark the fingerprint
403
+ `parked` in `drift.md`, keep its reproduction and dead ends, and continue every
404
+ step that does not depend on it. Only when nothing runnable remains, set
405
+ `Status: blocked` and
406
+ `Next step: <invoking command> — technical recovery parked; reinvoke to reopen with fresh escalation`.
407
+ Emit no retry-permission question or `/rite-resolve`. A genuinely new
408
+ user-issued activation appends `reopened: <date>` to each parked fingerprint and
409
+ grants it three fresh escalations, counted from that line; wakes, compaction and
410
+ nested re-entry of the same run never reset counts.
392
411
  - **Resolve agent-owned questions first** from code/docs/decisions. Human communication
393
412
  is for blocked environment, handover, inaccessible critical information or missing
394
413
  credentials/permission—not writing, testing or review. Blocking/escalating/
@@ -87,7 +87,7 @@ Verdict discipline — no vacuous verdicts:
87
87
 
88
88
  ## Caller-owned technical backtracking
89
89
 
90
- When a rite invokes an earlier rite inline to repair an agent-owned technical gap, the original rite stays the controlling caller: a nested `STOP` is a phase boundary, not user-facing. The caller re-reads `state.md`, follows the return cursor/`next_action`, and resumes unless a human-owned, safety, access, budget, or exhausted-recovery stop is active ([Persistence before stopping](#persistence-before-stopping-handoff-discipline)). Derive `exhausted-recovery` from the fingerprint's recorded no-progress attempts, not from a stale `state.md` label; one consumed authorization doesn't exhaust offline recovery from retained new evidence.
90
+ When a rite invokes an earlier rite inline to repair an agent-owned technical gap, the original rite stays the controlling caller: a nested `STOP` is a phase boundary, not user-facing. The caller re-reads `state.md`, follows the return cursor/`next_action`, and resumes unless a human-owned, safety, access, budget, or parked-recovery stop is active ([Persistence before stopping](#persistence-before-stopping-handoff-discipline)). Derive `parked-recovery` from the fingerprint's recorded no-progress attempts and escalations, not from a stale `state.md` label; one consumed authorization doesn't exhaust offline recovery from retained new evidence.
91
91
 
92
92
  An intermediate `Next step` is cold-resume metadata. Do not ask the human to
93
93
  copy routine `/rite-plan repair`, `/rite-vet`, `/rite-build`, or proof-rerun
@@ -73,8 +73,9 @@ Keep two budgets separate:
73
73
  Cold resume does not make that fingerprint old or exhausted. Derive its offline
74
74
  no-progress count from `drift.md` and `evidence.md`; while the count is below the
75
75
  cap, resume recovery even if a prior writer stored `blocked` / `Next step: none`.
76
- That terminal cursor is valid only for a human/safety gate, an actually exhausted
77
- fingerprint, or a proven absence of any safe retention/amplification design.
76
+ A blocked cursor is valid only for a human/safety gate or a parked fingerprint
77
+ with no independent work left; a missing safe retention/amplification design
78
+ escalates to the next correction class.
78
79
 
79
80
  A new real attempt is normally admissible only after the affected plan and fixtures
80
81
  are re-vetted, the failure condition is shown changed, and any required fresh
@@ -98,7 +99,7 @@ claim the runtime failure condition changed: the independently proven change is
98
99
  evidence-acquisition invariant, and the attempt's acceptance signal is the promised
99
100
  unique retained boundary (or action success).
100
101
 
101
- Terminal `Next: none` is valid only when no safe in-scope diagnostic-amplification
102
- seam exists, the required change is human/risk/scope owned, or the exact evidence-gap
103
- fingerprint exhausts bounded recovery. A missing old artifact alone is not terminal,
104
- and an amplification attempt never inherits authorization from the failed action.
102
+ When no safe in-scope diagnostic-amplification seam exists, escalate or park per
103
+ [`afk-hitl.md`](afk-hitl.md#retry-cap-no-progress-loops-and-self-resolve); only a
104
+ human/risk/scope-owned change stops for a human. A missing old artifact alone is not
105
+ terminal, and an amplification attempt never inherits authorization from the failed action.
@@ -48,14 +48,16 @@ executable controller/harness/bundle bytes or a missing writer, read
48
48
  likewise internal when current authority resolves it.
49
49
  - Always follow agent-owned backward edges through repair, affected Vet,
50
50
  correction, and proof. A nested `STOP`/`Next step` is not a user handoff.
51
- Pause only for a shared human/safety/access/exhaustion condition.
51
+ Pause only for a shared human/safety/access condition.
52
52
  - **Do not confuse an action budget with recovery exhaustion.** Spent action
53
53
  authority blocks another real execution, not offline correction of retained
54
54
  Critical/Important evidence. Stop for fresh GO only after changed conditions
55
55
  and READY Vet.
56
- - Every exact causal fingerprint gets at most three no-progress corrections.
57
- Closing one is progress; a distinct Critical/Important invariant has its own
58
- budget. Lower severity cannot prolong recovery.
56
+ - Every exact causal fingerprint gets three no-progress corrections per strategy.
57
+ A spent strategy escalates to a new correction class inline; after three
58
+ escalations it parks while independent work continues. Never ask permission to
59
+ retry. Closing one is progress; a distinct Critical/Important invariant has its
60
+ own budget. Lower severity cannot prolong recovery.
59
61
  - Do not stop on `--max-slices`, sentinel `max_slices`, `max_agents`,
60
62
  `max_minutes`, or `max_review_queue`. Count failed, malformed, and
61
63
  unavailable leaf calls.
@@ -78,7 +80,7 @@ executable controller/harness/bundle bytes or a missing writer, read
78
80
  Before honoring `blocked` with terminal `next_action`,
79
81
  reconcile retained consumptive evidence and fingerprint attempts from
80
82
  `drift.md`/`evidence.md`; a retained fingerprint below its cap resumes offline
81
- recovery.
83
+ recovery, and this new invocation reopens each parked fingerprint.
82
84
  <!-- workflow-artifact-adapter: {"module":"devrites-lib/reference/standards/workflow-artifacts.md","entry":"lifecycle cursor encounters admitted set or resumable journal","action":"invoke classifier; execute returned route internally","return":"saved phase/action; zero intermediate reply"} -->
83
85
  Reconstruct a missing return cursor only from
84
86
  the current phase and exact approved action in `test-plan.md`/evidence, never
@@ -117,15 +119,15 @@ executable controller/harness/bundle bytes or a missing writer, read
117
119
  route agent-owned red results through bounded recovery.
118
120
  Red gates block forward advancement and enter caller-owned recovery. Stop on
119
121
  hard risk, escalating, irreversible-risk, access, blocking with no
120
- recommended option, remaining NO-GO, or the exact fingerprint's proven
121
- exhaustion. An open blocking question that already names a ranked recommended
122
+ recommended option, remaining NO-GO, or parked fingerprints with no
123
+ independent work left. An open blocking question that already names a ranked recommended
122
124
  option (`proposed` or option 1 labelled Recommended) auto-resolves through
123
125
  `devrites-engine state resolve` and continues (a missing or failing resolver is
124
126
  the bounded resolver-failure stop); do not emit `/rite-resolve` as
125
127
  a user handoff. Exception: a question whose answer would add acceptance or
126
128
  product scope is never auto-resolved by a recommended option; it stops for a human.
127
- Technical exhaustion records terminal
128
- `Next step: none`, never a routine phase command. **Completion:** no stop is active, or its cursor and reason are durable.
129
+ A spent strategy escalates; parked recovery records
130
+ `Next step: /rite-autocomplete`, never a routine phase command. **Completion:** no stop is active, or its cursor and reason are durable.
129
131
  6. **Seal boundary.** Without a ship flag, leave the sealed workspace unshipped and
130
132
  open the next recorded continuation
131
133
  ([loop.md § Sequence continuation](reference/loop.md#sequence-continuation))
@@ -108,7 +108,7 @@ parent's counter (same values, never a second charge); a child with no recorded
108
108
  parent/position is not a sequence member and the chain stops.
109
109
 
110
110
  Stop instead when: no recorded next entry; the cap or review-queue bound is
111
- reached; a human-owned, safety, access, or exhaustion condition fires; or Seal returns
111
+ reached; a human-owned, safety, access, or parked-recovery stop fires; or Seal returns
112
112
  `NO-GO`. On stop, report the sequence position, the sealed-but-unshipped workspaces, and
113
113
  the single release command (`/rite-autocomplete <release milestone> --ship`, or
114
114
  `/rite-ship` for the current sealed workspace when the sequence is complete).
@@ -140,14 +140,16 @@ agent-owned earlier-phase gap:
140
140
  Ask only for a human-owned decision or mandatory safety/access action. An open
141
141
  blocking question with `proposed` or option 1 labelled Recommended is not that
142
142
  decision: resolve it and continue. Three no-progress corrections of one exact
143
- fingerprint exhaust; preserve its reproduction and dead ends without another
144
- Plan/Vet command.
143
+ fingerprint spend only its strategy: escalate inline per the
144
+ [retry contract](../../devrites-lib/reference/standards/afk-hitl.md#retry-cap-no-progress-loops-and-self-resolve),
145
+ and park it after three escalations while independent work continues.
145
146
 
146
147
  ## Continuous caller obligation
147
148
 
148
149
  No user-facing reply is permitted while durable state contains agent-owned
149
150
  `NEEDS_REPLAN`, an intermediate Plan/Vet action, a distinct retained
150
- Critical/Important fingerprint below its cap, or an open blocking question that
151
+ Critical/Important fingerprint below its cap or with an escalation left, runnable
152
+ work independent of a parked fingerprint, or an open blocking question that
151
153
  already names a ranked recommended option. Invoke the next internal repair or
152
154
  `devrites-engine state resolve` immediately, unless that writer already hit the
153
155
  [resolver-failure stop](stop-conditions.md#other-stop-classes). **Failing case:**
@@ -157,4 +159,4 @@ Critical/Important invariant is progress, not exhaustion.
157
159
  The number of completed repair/Vet cycles is not a stop condition. Context
158
160
  pressure, compaction, session duration, and nested completion do not convert an
159
161
  internal checkpoint into a handoff. Persist it and resume until the requested
160
- rest point or a shared human/safety/access/exhaustion condition.
162
+ rest point or a shared human/safety/access/parked-recovery condition.
@@ -1,10 +1,10 @@
1
1
  # Stop conditions: when autocomplete pauses
2
2
 
3
3
  On a real stop, write `state.md` as `awaiting_human` or `blocked`, persist the
4
- reason, and include one resume command only when an actual human/safety/access
5
- action can change it. Exhausted agent-owned recovery records terminal
6
- `Next step: none` and no runnable recovery command. `--ship` never bypasses a
7
- stop.
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)).
7
+ `--ship` never bypasses a stop.
8
8
 
9
9
  Authority: `.devin/skills/devrites-lib/reference/standards/acceptance-preserving-reslice.md`.
10
10
 
@@ -24,8 +24,8 @@ Regardless of flags or AFK ceiling:
24
24
  - external-service contract change; or
25
25
  - filesystem destruction outside the workspace.
26
26
 
27
- Red proof cannot advance. Run bounded Debug Recovery; stop after proven
28
- exhaustion unless the remaining owner is human.
27
+ Red proof cannot advance. Run bounded Debug Recovery and escalate spent
28
+ strategies; a fully escalated fingerprint parks unless the remaining owner is human.
29
29
 
30
30
  ## Not stops: internal technical routing
31
31
 
@@ -36,13 +36,16 @@ agent-owned.
36
36
 
37
37
  Agent-owned backtracking is not a stop condition while the exact causal
38
38
  fingerprint has budget. Invoke the earlier phase, affected Vet, remediation, and
39
- proof; then resume the origin. Stop only after three no-progress corrections of
40
- that exact fingerprint or a real human/safety/access gate. Preserve reproduction,
41
- attempts, and dead ends; never offer `/rite-plan unblock` or another routine
42
- phase command. Reinvocation with unchanged evidence does not reset the cap.
43
- `unchanged` means the same fingerprint already has three recorded no-progress
44
- corrections. Closure is progress; a separately evidenced Critical/Important
45
- invariant starts its own cap and cannot extend the closed one.
39
+ proof; then resume the origin. Three no-progress corrections of that exact
40
+ fingerprint spend only its current strategy: escalate to the next correction
41
+ class inline (shared root cause, boundary redesign, diagnostic amplification)
42
+ with a fresh budget, never asking permission. After three escalations in this
43
+ activation the fingerprint parks; finish all independent work, then stop once.
44
+ Preserve reproduction, attempts, and dead ends; never offer `/rite-plan unblock`
45
+ or another routine phase command. A new user-issued `/rite-autocomplete`
46
+ reopens parked fingerprints with fresh escalation; wakes and compaction do not.
47
+ Closure is progress; a separately evidenced Critical/Important invariant starts
48
+ its own cap and cannot extend the closed one.
46
49
 
47
50
  Spent consumptive-action authorization is not technical-recovery exhaustion.
48
51
  It blocks another execution; retained new Critical/Important evidence still
@@ -52,9 +55,8 @@ authorization and never reuse old GO.
52
55
  Past evidence being irretrievable is not by itself terminal. If an in-scope
53
56
  trusted seam can uniquely discriminate the next failure, run diagnostic-
54
57
  amplification Plan repair and narrow Vet inline, then pause for fresh GO before
55
- one evidence-acquisition attempt. Use terminal none only when no safe in-scope
56
- seam exists, a real human/risk/scope gate owns it, or bounded recovery is
57
- exhausted.
58
+ one evidence-acquisition attempt. Without a safe seam, escalate to the next
59
+ class or park; only a real human/risk/scope gate stops for a human.
58
60
 
59
61
  <!-- workflow-artifact-adapter: {"module":"devrites-lib/reference/standards/workflow-artifacts.md","entry":"classifier returns owner-busy, exhausted, or existing hard gate","action":"stop on exact WAIT_ACTIVE_OWNER, BLOCKED_EXHAUSTED, or BLOCKED_GATE result","return":"unchanged cursor plus fixed route-owned output"} -->
60
62
  ## Other stop classes
@@ -86,7 +88,8 @@ exhausted.
86
88
  - **Resource envelope:** overlapping run or missing AFK after arm still stops.
87
89
  Do not stop on `--max-slices`, `max_agents`, `max_minutes`, or `max_review_queue`.
88
90
  - **Confidence:** intent still cannot become testable acceptance after interview.
89
- - **Repeated failure:** the exact fingerprint's bounded recovery is exhausted.
91
+ - **Repeated failure:** not a stop. Escalate; a fully escalated fingerprint parks,
92
+ and the run stops only once no independent work remains.
90
93
  - **Resolver failure:** `devrites-engine state resolve` not found, or nonzero exit.
91
94
  Never hand-edit `questions.md`/`state.md` in its place. Not found stops at once;
92
95
  nonzero allows one identical re-run (the fingerprint is command + exit code +
@@ -101,7 +104,7 @@ disclose the exact plan, and stop for literal `GO` plus native approval. Without
101
104
  one, stop at Seal GO with `/rite-ship`. Seal GO, AFK, prior approval, and flags
102
105
  never satisfy Ship approval.
103
106
 
104
- A cold-resumable stop records `state.md` status, exact reason, and either one
105
- human-owned resume action or `none — technical recovery exhausted`; the owning
106
- question/drift/seal entry explains it. The user-facing line says what stopped
107
+ A cold-resumable stop records `state.md` status, exact reason, and one resume
108
+ action: the human-owned action, or `/rite-autocomplete` to reopen parked
109
+ fingerprints; the owning question/drift/seal entry explains it. The user-facing line says what stopped
107
110
  and, only when applicable, what human action resumes it.
@@ -69,13 +69,16 @@ wrong contract or proof path — agent-owned recovery; never advance on broken s
69
69
  The fail-on-red path:
70
70
 
71
71
  1. Continue the same wright under `devrites-debug-recovery`, carrying exact output and dead
72
- ends; cap writer + recovery at three no-progress attempts per exact causal fingerprint.
72
+ ends; cap writer + recovery at three no-progress attempts per exact causal fingerprint
73
+ and strategy.
73
74
  A correction that closes the reproduction is progress; a different evidenced
74
75
  Critical/Important invariant starts a separate fingerprint.
75
76
  2. Green → record the slice. Product-contract/irreversible ambiguity → write the genuine
76
77
  human gate. Missing human-only credential/permission → write a human-intervention gate.
77
- 3. Any other exhausted objective failure → set `Status: blocked`, preserve the reproduction,
78
- set `Next step: none — technical recovery exhausted for <causal fingerprint>; requires new evidence or changed failure conditions`, and STOP without a qid or runnable phase command. Reinvocation with the unchanged fingerprint remains blocked and does not reset the cap.
78
+ 3. Any other spent strategy → escalate inline to the next correction class; after three
79
+ escalations park the fingerprint and build every slice that does not depend on it,
80
+ per the [retry contract](../../devrites-lib/reference/standards/afk-hitl.md#retry-cap-no-progress-loops-and-self-resolve).
81
+ Never ask a qid or permission to retry; never hand back a routine phase command.
79
82
  4. Fire `notify:` only for an actual `awaiting_human` transition.
80
83
 
81
84
  AFK never starts the next slice while checks are red and never asks the human to approve
@@ -182,11 +182,11 @@ Repair rejected work in place; never discard/rebuild while budget remains.
182
182
  exhaustion. Use plan path only if inventory proves the approach unsound.
183
183
  - Stop under the canonical retry/authority/resource conditions, or when evidence
184
184
  proves the approach unsound and no in-scope corrected decomposition exists.
185
- - Exhaustion is not abort: record one technical blocker (`Status: blocked`;
186
- `Next step: none — technical recovery exhausted; requires new evidence or changed failure conditions`), preserve
187
- lease/worktrees/branches, STOP — same fingerprint stays blocked on
188
- reinvoke; new evidence resumes repair in place. Human-owned decisions use
189
- the drift-guard question and wait.
185
+ - A spent strategy is not abort: escalate per the canonical retry contract,
186
+ preserving lease/worktrees/branches; a fully escalated fingerprint parks and
187
+ the batch keeps its independent members. Repair resumes in place on
188
+ escalation or reinvocation. Human-owned decisions use the drift-guard
189
+ question and wait.
190
190
 
191
191
  ## Engine verbs
192
192
 
@@ -176,7 +176,7 @@ Before classifying any Reslice, read `.devin/skills/devrites-lib/reference/stand
176
176
 
177
177
  When invoked inline by a controlling rite, return the completed Plan checkpoint
178
178
  to that caller so it can invoke Vet immediately. The phase boundary is not a
179
- user-facing stop unless a genuine HITL, safety/access, or exhausted-recovery
179
+ user-facing stop unless a genuine HITL, safety/access, or parked-recovery
180
180
  condition was recorded.
181
181
 
182
182
  When invoked directly with no controlling caller and a planning artifact
@@ -36,8 +36,10 @@ TTHW, and exact signal-bearing errors; never assert DX (trigger `devex`).
36
36
  validates it. Only the bounded wright fixes product source/tests.
37
37
  - **Prove remains the controlling caller** during technical backtracking. Save
38
38
  its cursor; run Plan repair, Recovery Vet, remediation, and re-proof inline;
39
- consume nested boundaries; resume the failed rung. Recovery exhausts after
40
- three no-progress attempts on the exact same fingerprint. Closing one or exposing a distinct
39
+ consume nested boundaries; resume the failed rung. A strategy is spent after
40
+ three no-progress attempts on the exact same fingerprint; escalate it per the
41
+ [retry contract](../devrites-lib/reference/standards/afk-hitl.md#retry-cap-no-progress-loops-and-self-resolve)
42
+ instead of stopping. Closing one or exposing a distinct
41
43
  Critical/Important invariant is progress, not a reason to hand work off.
42
44
  <!-- workflow-artifact-adapter: {"module":"devrites-lib/reference/standards/workflow-artifacts.md","entry":"Prove consumes installed Workflow Artifact or CLEANED rerun","action":"VERIFY_EXISTING or admitted proof path ending PROVE_AND_RETURN","return":"saved Prove cursor; stop before real action"} -->
43
45
  ## Released-workspace refresh
@@ -47,6 +47,7 @@ loop to `devrites-debug-recovery`.
47
47
  - Three no-progress attempts on the exact same causal fingerprint consume the
48
48
  shared recovery cap. A recheck that closes the reproduction is progress; a
49
49
  different evidenced Critical/Important invariant gets its own fingerprint.
50
- Preserve the reproduction and dead ends, then stop once as a technical blocker.
50
+ Preserve the reproduction and dead ends, then escalate or park per the
51
+ [retry contract](../../devrites-lib/reference/standards/afk-hitl.md#retry-cap-no-progress-loops-and-self-resolve).
51
52
  Ask only when the remaining decision is human-owned.
52
53
  - A failure you can't fix in scope is a recorded **blocker**, not a silent skip.
@@ -131,7 +131,7 @@ None.
131
131
  | slice_mode | none |
132
132
  | risk | none |
133
133
  | spec_gate | <passed <iso>; marker sweep: <n> files, <k> hits, <d> discarded — absent until /rite-spec passes> |
134
- | next_action | <single command + reason, or terminal: none — technical recovery exhausted for an unchanged causal fingerprint> |
134
+ | next_action | <single command + reason; parked recovery names the invoking command> |
135
135
  | return_phase | <originating later phase; clarification or agent-owned technical backtracking only> |
136
136
  | return_next_action | <saved originating command> |
137
137
  | schema | 4 |
@@ -154,7 +154,7 @@ Before an active caller moves backward, it copies its current phase and
154
154
  non-empty action into the two return rows. Nested Plan, Vet, Build, and proof
155
155
  work preserves that valid cursor. Once the prerequisite chain is green, the
156
156
  controlling caller restores the saved phase/action and removes both rows in one
157
- rewrite. A real HITL or exhausted-recovery stop retains the cursor for cold
157
+ rewrite. A real HITL or parked-recovery stop retains the cursor for cold
158
158
  resume. Never overwrite an existing valid return cursor, and preserve every
159
159
  unrelated Markdown byte. `/rite-clarify` applies its stricter native cursor protocol in `/rite-clarify`.
160
160