devrites 7.3.4 → 7.3.6

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 (75) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/README.md +1 -1
  3. package/docs/adr/0039-autocomplete-structural-admission.md +87 -0
  4. package/docs/adr/0040-early-preparation-admission.md +76 -0
  5. package/docs/adr/README.md +2 -0
  6. package/docs/cli.md +103 -5
  7. package/docs/engine/commands.md +88 -1
  8. package/engine/internal/lib/claims.go +65 -8
  9. package/engine/internal/lib/context.go +50 -2
  10. package/engine/internal/lib/continuation.go +8 -1
  11. package/engine/internal/lib/dispatch.go +147 -46
  12. package/engine/internal/lib/frontier.go +139 -59
  13. package/engine/internal/lib/frontier_controller.go +667 -0
  14. package/engine/internal/lib/frontier_preparation.go +210 -0
  15. package/engine/internal/lib/frontier_roadmap.go +168 -0
  16. package/engine/internal/lib/next.go +14 -2
  17. package/engine/internal/lib/triggers.go +9 -0
  18. package/engine/internal/parallel/repository.go +10 -0
  19. package/pack/.claude/skills/devrites-lib/SKILL.md +2 -0
  20. package/pack/.claude/skills/devrites-lib/reference/parallel-workspaces.md +108 -115
  21. package/pack/.claude/skills/devrites-lib/reference/standards/afk-hitl.md +18 -17
  22. package/pack/.claude/skills/devrites-lib/reference/workspace-artifact-schema.md +41 -38
  23. package/pack/.claude/skills/rite-autocomplete/SKILL.md +35 -38
  24. package/pack/.claude/skills/rite-autocomplete/reference/loop.md +66 -59
  25. package/pack/.claude/skills/rite-autocomplete/reference/stop-conditions.md +28 -28
  26. package/pack/.claude/skills/rite-build/reference/parallel-batch.md +17 -15
  27. package/pack/generated/claude/skills/devrites-lib/SKILL.md +2 -0
  28. package/pack/generated/claude/skills/devrites-lib/reference/parallel-workspaces.md +108 -115
  29. package/pack/generated/claude/skills/devrites-lib/reference/standards/afk-hitl.md +18 -17
  30. package/pack/generated/claude/skills/devrites-lib/reference/workspace-artifact-schema.md +41 -38
  31. package/pack/generated/claude/skills/rite-autocomplete/SKILL.md +35 -38
  32. package/pack/generated/claude/skills/rite-autocomplete/reference/loop.md +66 -59
  33. package/pack/generated/claude/skills/rite-autocomplete/reference/stop-conditions.md +28 -28
  34. package/pack/generated/claude/skills/rite-build/reference/parallel-batch.md +17 -15
  35. package/pack/generated/codex/skills/devrites-lib/SKILL.md +2 -0
  36. package/pack/generated/codex/skills/devrites-lib/reference/parallel-workspaces.md +108 -115
  37. package/pack/generated/codex/skills/devrites-lib/reference/standards/afk-hitl.md +18 -17
  38. package/pack/generated/codex/skills/devrites-lib/reference/workspace-artifact-schema.md +41 -38
  39. package/pack/generated/codex/skills/rite-autocomplete/SKILL.md +35 -38
  40. package/pack/generated/codex/skills/rite-autocomplete/reference/loop.md +66 -59
  41. package/pack/generated/codex/skills/rite-autocomplete/reference/stop-conditions.md +28 -28
  42. package/pack/generated/codex/skills/rite-build/reference/parallel-batch.md +17 -15
  43. package/pack/generated/devin/skills/devrites-lib/SKILL.md +2 -0
  44. package/pack/generated/devin/skills/devrites-lib/reference/parallel-workspaces.md +108 -115
  45. package/pack/generated/devin/skills/devrites-lib/reference/standards/afk-hitl.md +18 -17
  46. package/pack/generated/devin/skills/devrites-lib/reference/workspace-artifact-schema.md +41 -38
  47. package/pack/generated/devin/skills/rite-autocomplete/SKILL.md +35 -38
  48. package/pack/generated/devin/skills/rite-autocomplete/reference/loop.md +66 -59
  49. package/pack/generated/devin/skills/rite-autocomplete/reference/stop-conditions.md +28 -28
  50. package/pack/generated/devin/skills/rite-build/reference/parallel-batch.md +17 -15
  51. package/pack/generated/dsh/skills/devrites-lib/SKILL.md +2 -0
  52. package/pack/generated/dsh/skills/devrites-lib/reference/parallel-workspaces.md +108 -115
  53. package/pack/generated/dsh/skills/devrites-lib/reference/standards/afk-hitl.md +18 -17
  54. package/pack/generated/dsh/skills/devrites-lib/reference/workspace-artifact-schema.md +41 -38
  55. package/pack/generated/dsh/skills/rite-autocomplete/SKILL.md +35 -38
  56. package/pack/generated/dsh/skills/rite-autocomplete/reference/loop.md +66 -59
  57. package/pack/generated/dsh/skills/rite-autocomplete/reference/stop-conditions.md +28 -28
  58. package/pack/generated/dsh/skills/rite-build/reference/parallel-batch.md +17 -15
  59. package/pack/generated/omp/skills/devrites-lib/SKILL.md +2 -0
  60. package/pack/generated/omp/skills/devrites-lib/reference/parallel-workspaces.md +108 -115
  61. package/pack/generated/omp/skills/devrites-lib/reference/standards/afk-hitl.md +18 -17
  62. package/pack/generated/omp/skills/devrites-lib/reference/workspace-artifact-schema.md +41 -38
  63. package/pack/generated/omp/skills/rite-autocomplete/SKILL.md +35 -38
  64. package/pack/generated/omp/skills/rite-autocomplete/reference/loop.md +66 -59
  65. package/pack/generated/omp/skills/rite-autocomplete/reference/stop-conditions.md +28 -28
  66. package/pack/generated/omp/skills/rite-build/reference/parallel-batch.md +17 -15
  67. package/pack/generated/pi/skills/devrites-lib/SKILL.md +2 -0
  68. package/pack/generated/pi/skills/devrites-lib/reference/parallel-workspaces.md +108 -115
  69. package/pack/generated/pi/skills/devrites-lib/reference/standards/afk-hitl.md +18 -17
  70. package/pack/generated/pi/skills/devrites-lib/reference/workspace-artifact-schema.md +41 -38
  71. package/pack/generated/pi/skills/rite-autocomplete/SKILL.md +35 -38
  72. package/pack/generated/pi/skills/rite-autocomplete/reference/loop.md +66 -59
  73. package/pack/generated/pi/skills/rite-autocomplete/reference/stop-conditions.md +28 -28
  74. package/pack/generated/pi/skills/rite-build/reference/parallel-batch.md +17 -15
  75. package/package.json +1 -1
@@ -12,6 +12,7 @@ Autocomplete chains existing `/rite-*` workflows without routine-phase pauses. A
12
12
  ## Arm AFK once
13
13
 
14
14
  ```yaml
15
+ mode: autocomplete
15
16
  allow_gates: [advisory, validating]
16
17
  # max_slices / max_agents / max_minutes / max_review_queue omitted: unlimited
17
18
  # continue_sequence: false # opt out; default chains after Seal GO
@@ -22,18 +23,15 @@ allow_gates: [advisory, validating]
22
23
  # notify: "<cmd>"
23
24
  ```
24
25
 
25
- Read existing sentinel first. Preserve valid bytes, except
26
- when this invocation contains `--parallel N`: then write or replace only
27
- `max_parallel: N` and leave every other key unchanged. Stop if the sentinel is
28
- malformed. Do not stop because it names `max_slices` / `max_agents` /
29
- `max_minutes` / `max_review_queue` or only `[advisory]`. If absent, write it
30
- once after clarity, and include `max_parallel: N` when that flag is present.
31
- Without the flag, seed a newly created sentinel from retained global lease capacity
32
- when present; otherwise use fresh-run default 10. Never replace a valid existing
33
- sentinel's capacity from lease/default. Never write `max_slices` from `--max-slices`.
34
- It is otherwise read-only: never rewrite it after Vet or reset it on resume. Leftover `expires_at` is ignored
35
- and never rewritten. **Failing case:** leftover `max_parallel: 1` keeps the run
36
- serial after `--parallel 5`.
26
+ Read existing AFK first. On each explicit Autocomplete invocation, upsert only
27
+ `mode: autocomplete` and, if supplied, `max_parallel: N`; preserve other fields.
28
+ Missing mode retains standalone AFK behavior until that explicit entry. Invalid
29
+ or duplicate mode fails closed; mode grants neither phase nor action authority.
30
+ If absent, create AFK after clarity with the mode above; capacity is explicit N,
31
+ else retained global lease capacity, else 10. Preserve existing capacity without
32
+ the flag. Nested phases/wakes leave AFK unchanged: no `max_slices` flag seeding,
33
+ expiry rewrite or reset. Legacy slice/agent/time/review limits do not stop this
34
+ controller. **Failing case:** `--parallel 5` retains `max_parallel: 1`.
37
35
 
38
36
  ### Derive the mutable post-vet budget
39
37
 
@@ -43,18 +41,41 @@ remaining. AFK configuration itself stays unchanged.
43
41
 
44
42
  ### Admit each unattended cycle
45
43
 
46
- Before each phase, review fan-out, recovery, or writer dispatch: cheapest
47
- readiness check first; reject overlap. Do not stop on `max_agents`,
48
- `max_minutes`, or `max_review_queue`. Count every leaf result. New activations reset activation-local counters, retaining durable slice/recovery state.
49
-
50
- [Build return](../../rite-build/reference/output.md#caller-owned-continuation).
51
- Pass `--parallel N`; ignore leftover cap/headroom, remaining-0,
52
- and `--max-slices` stops. Agent-invented dispatch, wait, tool-call, or turn budgets are not stop conditions.
53
- An explicit human request to pause or run only a bounded subset still wins.
54
- Path collisions serialize work; they do not end the run.
55
- Resolve ranked validating/blocking picks via `devrites-engine state resolve`;
56
- never hand `/rite-resolve` to the user. Escalating, irreversible-risk, access, blocking
57
- without recommendations, and Seal judgment (`slice: seal`) still pause.
44
+ Before each phase/fan-out/recovery/writer, check readiness/overlap and apply early
45
+ admission and the global pass below; local readiness is insufficient. Count every leaf.
46
+ Explicit activation resets only activation-local counters, not durable recovery.
47
+ Pass resolved `--parallel N` to [Build](../../rite-build/reference/output.md#caller-owned-continuation).
48
+ Legacy or invented execution ceilings never stop this controller; human limits bind.
49
+ Resolve ranked validating/blocking picks via `devrites-engine state resolve`, not
50
+ a user handoff. Escalating, irreversible-risk, access, unrecommended blocking picks
51
+ and Seal judgment (`slice: seal`) still pause.
52
+
53
+ ## Early preparation admission
54
+
55
+ Internal exclusive `context`/`dispatch open` flags:
56
+ - `--prepare-for <parent-source>`: permitted native non-Build preparation roles
57
+ (only controlling-root context may be roleless), exact existing immediate
58
+ successor/parent agreeing on canonical identity, binding, adjacency and chain.
59
+ Exempts the child's successor gate, never product writes.
60
+ - `--sequence-research`: only canonical `evidence-scout`, Spec/Clarify/Temper/Define/
61
+ Plan/Vet, exact existing source and normal path/role/ledger constraints. Exempts
62
+ authority/successor admission solely to investigate broken authority read-only:
63
+ no acceptance, scope/approval/phase advance, successor creation, writers,
64
+ readiness or preparation credit.
65
+
66
+ Context (`--skill rite-<phase>` too) checks before writes; no account required.
67
+ Use context → packet → open → native launch → `dispatch start` actual handles
68
+ before parent admission; openings alone do not count.
69
+
70
+ Derive preparatory-only B before any marked wave from nonterminal parent A:
71
+ until ordinary unmarked B Temper/Define/Plan/Vet or Build-wright admission
72
+ (checking C first), A becoming terminal or ordered handoff to B, C waits—even
73
+ explicit C `next`/`check continuation`. No C creation/rerouting before A's eligible
74
+ phase. Completed B history retains this bound; Spec/Clarify/research/read-only
75
+ Build do not release it. Independent work stays visible; all global-pass gates bind.
76
+
77
+ Shared registry edits alone do not serialize disjoint modules. Isolate their
78
+ writer; refusal-only tests never replace positive requirements or defer their band.
58
79
 
59
80
  ## Phase arc
60
81
 
@@ -74,12 +95,10 @@ Workspace files, not chat, carry state. Read/execute each phase skill:
74
95
  | 10 | `/rite-seal` | GO/NO-GO; no Git |
75
96
  | 11 | `/rite-ship` | only after GO; `--ship` never authorizes Git; stop at literal-GO/native approval |
76
97
 
77
- At phase entry, before cold/local recovery, on landing/reviewer/planning returns
78
- and before native waits, run `devrites-engine frontier <source>` and execute the
79
- shared [global frontier pass](../../devrites-lib/reference/parallel-workspaces.md#continuous-global-frontier).
80
- Its report requires authorized preparation/Vet and mixed selection, not a pause.
81
- Preserve local cursors, pending handles and protected validation windows;
82
- scheduling precedes owner Seal without changing ordered handoff below.
98
+ At phase entry, before recovery/waits, execute the
99
+ [global pass](../../devrites-lib/reference/parallel-workspaces.md#continuous-global-frontier).
100
+ Consume persisted return frontiers; rerun after landing/artifact/capacity changes.
101
+ Execute authorized routes, retaining handles, cursors and protected proof windows.
83
102
 
84
103
  Check [stop-conditions.md](stop-conditions.md) before advancing. Discard stale
85
104
  pass evidence after source edits. Re-read the selected source before each phase per [phase target binding](../../devrites-lib/reference/parallel-workspaces.md#phase-target-binding). On a cold resume or
@@ -92,19 +111,12 @@ floor; `--update` never excuses an unreconciled regression.
92
111
 
93
112
  ## Sequence continuation
94
113
 
95
- Unless `continue_sequence: false`, while sequence budget remains
96
- ([sentinel](../../devrites-lib/reference/standards/afk-hitl.md#sequence-continuation-continue_sequence-max_workspaces)),
97
- step 10 does not end the run: leave the sealed workspace unshipped with its
98
- `Next step: /rite-ship`, then invoke the next recorded continuation
99
- (`/rite-spec <parent>-<n> "<objective>"` from the parent's `decisions.md` sequence)
100
- and re-enter step 1. Spend one workspace per opened continuation.
101
-
102
- For an already prepared child, do not re-specify. Follow
103
- [`parallel-workspaces.md`](../../devrites-lib/reference/parallel-workspaces.md)
104
- while the owner is still running: honor claims, repair/re-Vet stale readiness,
105
- and admit only explicitly independent/dependency-satisfied isolated work.
106
- ACTIVE changes to the child only at normal ordered handoff after the owner Seal;
107
- resume its durable cursor without a second controller or another opening charge.
114
+ With a recorded successor, budget and no opt-out, Seal GO stays internal:
115
+ leave the owner sealed/unshipped with `/rite-ship`; resume the child's cursor/
116
+ controller or authorized native Spec. Use the
117
+ [shared grammar](../../devrites-lib/reference/workspace-artifact-schema.md#what-each-file-owns).
118
+ Charge once; pipeline only immediate successors. ACTIVE changes at ordered handoff,
119
+ not early planning or isolated independent Build.
108
120
 
109
121
  Before invoking a continuation, require durable `state.md`
110
122
  `sequence_workspaces_remaining > 0`; if absent, first write
@@ -158,19 +170,14 @@ and park it after three escalations while independent work continues.
158
170
 
159
171
  ## Continuous caller obligation
160
172
 
161
- Green slice/phase checkpoints consume their recorded `next_action` internally;
162
- only the caller replies finally at completion or a genuine stop.
163
- Before a reply, `devrites-engine check continuation` must print `continuation: clear`; `required` means invoke `invoke:` now.
164
- No user-facing reply is permitted while durable state contains agent-owned
165
- `NEEDS_REPLAN`, an intermediate Plan/Vet action, a distinct retained
166
- Critical/Important fingerprint below its cap or with an escalation left, runnable
167
- work independent of a parked fingerprint, or an open blocking question that
168
- already names a ranked recommended option. Invoke the next internal repair or
169
- `devrites-engine state resolve` immediately, unless that writer already hit the
170
- [resolver-failure stop](stop-conditions.md#other-stop-classes). **Failing case:**
171
- `state resolve` exits 1 on every call and the loop re-invokes it without end. A narrow reviewer closing one finding and exposing another
172
- Critical/Important invariant is progress, not exhaustion.
173
-
174
- The number of completed repair/Vet cycles, context pressure, compaction, session
175
- duration, and nested completion never turn checkpoints into handoffs. Persist and
176
- resume to the requested rest point or shared human/safety/access/parked-recovery stop.
173
+ Execute each green slice/phase's `next_action` internally. Before replying, run
174
+ `devrites-engine check continuation`: consume `required`'s `invoke:`; only `clear`
175
+ permits reply. Controller normalization/preparation/foreign work precedes local
176
+ Build; local repair/picks/reconciliation/discharged deferrals keep their phase,
177
+ not recursive Autocomplete. Route agent-owned NEEDS_REPLAN, budgeted Critical/Important recovery,
178
+ independent work and recommended blocking answers internally; invoke repair or
179
+ `state resolve` unless the [resolver-failure stop](stop-conditions.md#other-stop-classes)
180
+ applies. Distinct invariants are progress; unchanged resolver retries are not.
181
+ Cycles, context pressure, compaction, duration and nested completion never create
182
+ handoffs. Persist/resume until requested completion or a shared human/safety/
183
+ access/parked-recovery stop.
@@ -28,24 +28,27 @@ Fully escalated fingerprints park unless remaining owner is human.
28
28
 
29
29
  ## Not stops: internal technical routing
30
30
 
31
- AFK + `status=running` + an internal phase `next_action` is not a stop. `devrites-engine check continuation` prints `required` for that cursor and `clear` for `/rite-ship`, `awaiting_human`, a question cursor, or an open blocking or escalating question.
32
-
33
- `NEEDS_REPLAN` is not a stop condition under active Autocomplete. It blocks
34
- forward work, persists the return cursor, and invokes Plan repair plus Recovery
35
- Vet inline. The same applies to nested `STOP`/`Next step` when its decision is
36
- agent-owned.
37
-
38
- Agent-owned backtracking is not a stop condition while its exact causal
39
- fingerprint has budget: invoke earlier phase, affected Vet, remediation, proof;
40
- resume origin. Three no-progress corrections spend only that fingerprint's current
41
- strategy: escalate inline to the next class (shared root cause, diagnostic
42
- amplification, boundary redesign) with fresh budget, without permission. After
43
- three escalations per activation it parks; finish 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.
31
+ For AFK `status=running`, consume an internal phase edge. In
32
+ `mode: autocomplete`, actionable global normalization, preparation or foreign
33
+ work takes priority over local Build; local-only picks do not recurse through
34
+ Autocomplete. Source human/Ship holds remain binding, while independent
35
+ authorized planning can continue. `clear` is reply permission, not Ship approval.
36
+
37
+ A preparation refusal routes native work or a narrow disclosed scheduling
38
+ deferral under the [global pass](../../devrites-lib/reference/parallel-workspaces.md#continuous-global-frontier).
39
+ Deferral removes only its named scheduling obligation from repeated continuation:
40
+ it neither makes a placeholder prepared nor waives readiness, malformed authority,
41
+ claims, isolation, proof or human gates. Qualified foreign serial handoff is a
42
+ separate rule. Revisit deferrals when their constraint changes.
43
+
44
+ Agent-owned NEEDS_REPLAN or nested STOP persists the return cursor and invokes
45
+ Plan repair, affected Recovery Vet, remediation and proof inline. Three
46
+ no-progress corrections spend that fingerprint's strategy; escalate through
47
+ shared root cause, diagnostic amplification and boundary redesign without asking.
48
+ After three escalations, park it and finish independent work. Preserve attempts;
49
+ resume through `/rite-autocomplete`, not a routine phase command. A new explicit
50
+ invocation reopens parked fingerprints; wakes/compaction do not. Closure is
51
+ progress; a distinct Critical/Important invariant gets its own cap.
49
52
 
50
53
  Spent consumptive-action authorization is not technical-recovery exhaustion.
51
54
  It blocks another execution; retained new Critical/Important evidence still
@@ -74,14 +77,10 @@ Without a safe seam, escalate or park; only a real human/risk/scope gate stops f
74
77
  - **Clarify:** material `open`/unowned decision coverage or a
75
78
  low-confidence high-consequence assumption. Continue the initial interview;
76
79
  never arm AFK early.
77
- - **Seal:** report remaining NO-GO with every blocker/fix direction; never round
78
- up to GO. Resolve recommended-option blocking questions internally; recover
79
- agent-owned findings and re-enter Seal. A first NO-GO is not a stop:
80
- recover every agent-owned blocker (missing or unbound proof, a reviewer gap root
81
- can close, a finding with a fix direction, a missing `review.md` verdict), then
82
- re-enter Seal. The unattended `N` to accepting Important risks means repair, not
83
- stop. Stop only for blockers that need a human: accepting a risk, changing scope
84
- or an acceptance criterion, or access. Record each one as a question.
80
+ - **Seal:** NO-GO never rounds up to GO. Recover agent-owned missing/unbound proof,
81
+ reviewer gaps and findings, then re-enter Seal; declining Important-risk
82
+ acceptance means repair. A human-owned risk, scope/acceptance change or access
83
+ blocker remains a question. A first repairable NO-GO is not a handoff.
85
84
  - **Reslice:** execute its marked action before deciding continue/stop.
86
85
  - **Slice budget:** do not stop on `--max-slices`. Leftover
87
86
  pre-existing remaining value, explicit flag, sentinel cap, or post-vet pending count
@@ -91,8 +90,9 @@ Without a safe seam, escalate or park; only a real human/risk/scope gate stops f
91
90
  another session blocks only work on those paths; run independent work, re-check,
92
91
  and stop only when nothing independent remains. `released`/`dead` claims are
93
92
  reconciled per [§ Cancellation](../../devrites-lib/reference/parallel-dispatch.md#cancellation-and-terminal-reconciliation).
94
- - **Resource envelope:** overlapping run or missing AFK after arm still stops.
95
- Do not stop on `--max-slices`, `max_agents`, `max_minutes`, or `max_review_queue`.
93
+ - **Resource envelope:** overlapping controllers, missing AFK after arm or invalid/
94
+ duplicate mode fail closed. Ignored slice/agent/time/review ceilings do not stop
95
+ Autocomplete; mode itself grants no authority.
96
96
  - **Confidence:** intent still cannot become testable acceptance after interview.
97
97
  - **Repeated failure:** not a stop. Escalate; fully escalated fingerprints park.
98
98
  Stop only when no independent work remains.
@@ -4,11 +4,11 @@
4
4
 
5
5
  Opt-in only. Default `/rite-build` stays [`one-slice-cycle.md`](one-slice-cycle.md).
6
6
 
7
- Autocomplete runs `devrites-engine frontier <source>` and executes shared
8
- [`parallel-workspaces.md`](../../devrites-lib/reference/parallel-workspaces.md#continuous-global-frontier):
9
- it owns preparation, global admission and controller routing. Standalone Build
10
- stays source-local; frontier notices from `parallel select --from-plan` do not
11
- expand its picks. Autocomplete consumes `frontier-select-command`, then this lifecycle.
7
+ Autocomplete executes the shared [global pass](../../devrites-lib/reference/parallel-workspaces.md#continuous-global-frontier)
8
+ before local writers: actual immediate-successor preparation or narrow disclosed
9
+ deferral, then global cohort admission. Consume fresh dispatch-return scheduling.
10
+ Standalone Build stays local; select notices never broaden its picks. A placeholder
11
+ is not preparation; one successor pipelines safely without preparing the whole roadmap.
12
12
 
13
13
  ## Entry
14
14
 
@@ -17,13 +17,15 @@ expand its picks. Autocomplete consumes `frontier-select-command`, then this lif
17
17
  | omitted / `--parallel 1` | Serial one-slice |
18
18
  | `--parallel N` (**2≤N≤10**) | N is a **cap**, not a quota: run the largest eligible set ≤ N |
19
19
  | non-integer / `N≤0` / `N>10` | Hard refuse (no silent clamp) |
20
- | Autocomplete `--parallel N` | N is the cap for this run; leftover sentinel `max_parallel` is ignored, then `/rite-autocomplete` writes or replaces only `max_parallel: N` |
20
+ | Autocomplete `--parallel N` | Global cap for this run; controller entry upserts mode and explicit capacity, preserving other AFK fields |
21
21
  | Autocomplete, no flag | Same path, cap from sentinel `max_parallel` else 10; serial only when ineligible |
22
22
 
23
23
  AFK caps `N`. Charge each green sibling once after its successful landing;
24
24
  rejected/unlanded work charges zero, without undoing prior landed accounting.
25
25
  `parallel create` refuses another retained repository controller.
26
- Reconcile retained repair-round artifacts by exact causal fingerprint before honoring a stored blocked status/verdict. Blocked status, round count, or distinct finding alone cannot stop cold resume: establish missing or stale review coverage under step 4; repair unless a stop condition remains evidenced.
26
+ Cold resume reconciles retained repair artifacts by exact fingerprint. A blocked
27
+ label, round count or distinct finding alone does not stop: establish current
28
+ review coverage under step 4 and repair unless a genuine stop remains.
27
29
 
28
30
  ## Dynamic selection and re-batching
29
31
 
@@ -89,14 +91,14 @@ Before `parallel select`, add each slice's hidden write surfaces (list owner:
89
91
  snapshot directory, formatter sweep — and compare paths case-folded
90
92
  (`src/Api.ts` = `src/api.ts`); `--from-plan` adds the manifest/lockfile for a package.
91
93
  Slices colliding on either run serially; the rest
92
- stay eligible. Record `serial: <ids> — <surface>` in `evidence.md`. Under AFK
93
- with `max_parallel ≥ 2`, `dispatch open` refuses a build wright wave narrower
94
- than the from-plan batch until that wave holds the other picks or `serial:`
95
- names each skipped one. Repairing a slice, or a slice already in the lease,
96
- does not waive them. A `serial:` reason that only says the skipped slice is
97
- repairing, already started, or in a wave does not count. HITL is never refused. **Failing
98
- case:** two slices each add a dependency, run in parallel, and integrate fails or
99
- lands a broken lockfile.
94
+ stay eligible. Record `serial: <ids> — <surface>` in `evidence.md`. AFK cap≥2
95
+ refuses narrower Build-wright waves until other picks are started/reserved or
96
+ each skipped pick has a substantive serial reason. Repairing/already-started/in-wave
97
+ alone is not a reason. Controller admission also includes ready foreign picks:
98
+ only exact `serial: child/SLICE-001 — <reason>` can defer that foreign lane; bare
99
+ `SLICE-001` is local. Preparation `frontier-blocked:` cannot waive ready Build
100
+ picks or safety gates. Qualified unsupported-isolation deferral preserves truthful
101
+ owner dispatch/ordered handoff, never early same-tree foreign Build. HITL stays unchanged.
100
102
 
101
103
  ## Control vs workers
102
104
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "devrites",
3
- "version": "7.3.4",
3
+ "version": "7.3.6",
4
4
  "description": "DevRites: a disciplined senior-engineer workflow pack for Claude Code, Codex, omp, pi, and Devin CLI",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "homepage": "https://github.com/ViktorsBaikers/DevRites#readme",