devrites 6.1.0 → 6.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/README.md +1 -1
- package/docs/architecture.md +3 -1
- package/docs/cli.md +4 -1
- package/docs/engine/commands.md +4 -4
- package/docs/orchestration.md +4 -3
- package/docs/usage.md +1 -1
- package/engine/internal/lib/claims.go +12 -2
- package/engine/internal/lib/claims_holder.go +124 -0
- package/engine/internal/lib/cli_observe.go +14 -0
- package/engine/internal/lib/taskgraph.go +124 -0
- package/engine/internal/parallel/cli.go +111 -9
- package/engine/internal/parallel/lease.go +58 -4
- package/engine/internal/parallel/ops.go +244 -75
- package/engine/internal/parallel/select.go +31 -6
- package/pack/.claude/agents/devrites-plan-drafter.md +2 -1
- package/pack/.claude/agents/devrites-slice-wright.md +2 -1
- package/pack/.claude/skills/devrites-debug-recovery/SKILL.md +5 -4
- package/pack/.claude/skills/devrites-lib/reference/parallel-dispatch.md +7 -2
- package/pack/.claude/skills/devrites-lib/reference/reply-contract.md +12 -15
- package/pack/.claude/skills/devrites-lib/reference/standards/afk-hitl.md +28 -8
- package/pack/.claude/skills/devrites-lib/reference/standards/agents.md +6 -2
- package/pack/.claude/skills/devrites-lib/reference/standards/core.md +1 -1
- package/pack/.claude/skills/devrites-lib/reference/standards/one-shot-actions.md +7 -6
- package/pack/.claude/skills/devrites-lib/reference/standards/workflow-artifacts.md +10 -6
- package/pack/.claude/skills/devrites-lib/reference/workspace-artifact-schema.md +1 -1
- package/pack/.claude/skills/rite-autocomplete/SKILL.md +13 -11
- package/pack/.claude/skills/rite-autocomplete/reference/loop.md +8 -6
- package/pack/.claude/skills/rite-autocomplete/reference/stop-conditions.md +28 -21
- package/pack/.claude/skills/rite-build/SKILL.md +7 -7
- package/pack/.claude/skills/rite-build/reference/afk-discipline.md +8 -5
- package/pack/.claude/skills/rite-build/reference/checkpoint.md +1 -1
- package/pack/.claude/skills/rite-build/reference/one-slice-cycle.md +1 -1
- package/pack/.claude/skills/rite-build/reference/parallel-batch.md +33 -26
- package/pack/.claude/skills/rite-build/reference/phase-contract.md +10 -1
- package/pack/.claude/skills/rite-build/reference/spec-drift-guard.md +3 -2
- package/pack/.claude/skills/rite-build/reference/wright-dispatch.md +2 -2
- package/pack/.claude/skills/rite-define/SKILL.md +1 -1
- package/pack/.claude/skills/rite-handoff/SKILL.md +1 -1
- package/pack/.claude/skills/rite-plan/SKILL.md +1 -1
- package/pack/.claude/skills/rite-plan/reference/slicing.md +5 -0
- package/pack/.claude/skills/rite-prove/SKILL.md +4 -2
- package/pack/.claude/skills/rite-prove/reference/failure-triage.md +2 -1
- package/pack/.claude/skills/rite-spec/reference/state-workspace.md +2 -2
- package/pack/.claude/skills/rite-vet/reference/artifacts.md +8 -0
- package/pack/.claude/skills/rite-vet/reference/review-axes.md +1 -1
- package/pack/generated/claude/agents/devrites-plan-drafter.md +2 -1
- package/pack/generated/claude/agents/devrites-slice-wright.md +2 -1
- package/pack/generated/claude/skills/devrites-debug-recovery/SKILL.md +5 -4
- package/pack/generated/claude/skills/devrites-lib/reference/parallel-dispatch.md +7 -2
- package/pack/generated/claude/skills/devrites-lib/reference/reply-contract.md +12 -15
- package/pack/generated/claude/skills/devrites-lib/reference/standards/afk-hitl.md +28 -8
- package/pack/generated/claude/skills/devrites-lib/reference/standards/agents.md +6 -2
- package/pack/generated/claude/skills/devrites-lib/reference/standards/core.md +1 -1
- package/pack/generated/claude/skills/devrites-lib/reference/standards/one-shot-actions.md +7 -6
- package/pack/generated/claude/skills/devrites-lib/reference/standards/workflow-artifacts.md +10 -6
- package/pack/generated/claude/skills/devrites-lib/reference/workspace-artifact-schema.md +1 -1
- package/pack/generated/claude/skills/rite-autocomplete/SKILL.md +13 -11
- package/pack/generated/claude/skills/rite-autocomplete/reference/loop.md +8 -6
- package/pack/generated/claude/skills/rite-autocomplete/reference/stop-conditions.md +28 -21
- package/pack/generated/claude/skills/rite-build/SKILL.md +7 -7
- package/pack/generated/claude/skills/rite-build/reference/afk-discipline.md +8 -5
- package/pack/generated/claude/skills/rite-build/reference/checkpoint.md +1 -1
- package/pack/generated/claude/skills/rite-build/reference/one-slice-cycle.md +1 -1
- package/pack/generated/claude/skills/rite-build/reference/parallel-batch.md +33 -26
- package/pack/generated/claude/skills/rite-build/reference/phase-contract.md +10 -1
- package/pack/generated/claude/skills/rite-build/reference/spec-drift-guard.md +3 -2
- package/pack/generated/claude/skills/rite-build/reference/wright-dispatch.md +2 -2
- package/pack/generated/claude/skills/rite-define/SKILL.md +1 -1
- package/pack/generated/claude/skills/rite-handoff/SKILL.md +1 -1
- package/pack/generated/claude/skills/rite-plan/SKILL.md +1 -1
- package/pack/generated/claude/skills/rite-plan/reference/slicing.md +5 -0
- package/pack/generated/claude/skills/rite-prove/SKILL.md +4 -2
- package/pack/generated/claude/skills/rite-prove/reference/failure-triage.md +2 -1
- package/pack/generated/claude/skills/rite-spec/reference/state-workspace.md +2 -2
- package/pack/generated/claude/skills/rite-vet/reference/artifacts.md +8 -0
- package/pack/generated/claude/skills/rite-vet/reference/review-axes.md +1 -1
- package/pack/generated/codex/agents/devrites-plan-drafter.toml +2 -1
- package/pack/generated/codex/agents/devrites-slice-wright.toml +2 -1
- package/pack/generated/codex/skills/devrites-debug-recovery/SKILL.md +5 -4
- package/pack/generated/codex/skills/devrites-lib/reference/parallel-dispatch.md +7 -2
- package/pack/generated/codex/skills/devrites-lib/reference/reply-contract.md +12 -15
- package/pack/generated/codex/skills/devrites-lib/reference/standards/afk-hitl.md +28 -8
- package/pack/generated/codex/skills/devrites-lib/reference/standards/agents.md +6 -2
- package/pack/generated/codex/skills/devrites-lib/reference/standards/core.md +1 -1
- package/pack/generated/codex/skills/devrites-lib/reference/standards/one-shot-actions.md +7 -6
- package/pack/generated/codex/skills/devrites-lib/reference/standards/workflow-artifacts.md +10 -6
- package/pack/generated/codex/skills/devrites-lib/reference/workspace-artifact-schema.md +1 -1
- package/pack/generated/codex/skills/rite-autocomplete/SKILL.md +13 -11
- package/pack/generated/codex/skills/rite-autocomplete/reference/loop.md +8 -6
- package/pack/generated/codex/skills/rite-autocomplete/reference/stop-conditions.md +28 -21
- package/pack/generated/codex/skills/rite-build/SKILL.md +7 -7
- package/pack/generated/codex/skills/rite-build/reference/afk-discipline.md +8 -5
- package/pack/generated/codex/skills/rite-build/reference/checkpoint.md +1 -1
- package/pack/generated/codex/skills/rite-build/reference/one-slice-cycle.md +1 -1
- package/pack/generated/codex/skills/rite-build/reference/parallel-batch.md +33 -26
- package/pack/generated/codex/skills/rite-build/reference/phase-contract.md +10 -1
- package/pack/generated/codex/skills/rite-build/reference/spec-drift-guard.md +3 -2
- package/pack/generated/codex/skills/rite-build/reference/wright-dispatch.md +2 -2
- package/pack/generated/codex/skills/rite-define/SKILL.md +1 -1
- package/pack/generated/codex/skills/rite-handoff/SKILL.md +1 -1
- package/pack/generated/codex/skills/rite-plan/SKILL.md +1 -1
- package/pack/generated/codex/skills/rite-plan/reference/slicing.md +5 -0
- package/pack/generated/codex/skills/rite-prove/SKILL.md +4 -2
- package/pack/generated/codex/skills/rite-prove/reference/failure-triage.md +2 -1
- package/pack/generated/codex/skills/rite-spec/reference/state-workspace.md +2 -2
- package/pack/generated/codex/skills/rite-vet/reference/artifacts.md +8 -0
- package/pack/generated/codex/skills/rite-vet/reference/review-axes.md +1 -1
- package/pack/generated/devin/agents/devrites-plan-drafter.md +2 -1
- package/pack/generated/devin/agents/devrites-slice-wright.md +2 -1
- package/pack/generated/devin/skills/devrites-debug-recovery/SKILL.md +5 -4
- package/pack/generated/devin/skills/devrites-lib/reference/parallel-dispatch.md +7 -2
- package/pack/generated/devin/skills/devrites-lib/reference/reply-contract.md +12 -15
- package/pack/generated/devin/skills/devrites-lib/reference/standards/afk-hitl.md +28 -8
- package/pack/generated/devin/skills/devrites-lib/reference/standards/agents.md +6 -2
- package/pack/generated/devin/skills/devrites-lib/reference/standards/core.md +1 -1
- package/pack/generated/devin/skills/devrites-lib/reference/standards/one-shot-actions.md +7 -6
- package/pack/generated/devin/skills/devrites-lib/reference/standards/workflow-artifacts.md +10 -6
- package/pack/generated/devin/skills/devrites-lib/reference/workspace-artifact-schema.md +1 -1
- package/pack/generated/devin/skills/rite-autocomplete/SKILL.md +13 -11
- package/pack/generated/devin/skills/rite-autocomplete/reference/loop.md +8 -6
- package/pack/generated/devin/skills/rite-autocomplete/reference/stop-conditions.md +28 -21
- package/pack/generated/devin/skills/rite-build/SKILL.md +7 -7
- package/pack/generated/devin/skills/rite-build/reference/afk-discipline.md +8 -5
- package/pack/generated/devin/skills/rite-build/reference/checkpoint.md +1 -1
- package/pack/generated/devin/skills/rite-build/reference/one-slice-cycle.md +1 -1
- package/pack/generated/devin/skills/rite-build/reference/parallel-batch.md +33 -26
- package/pack/generated/devin/skills/rite-build/reference/phase-contract.md +10 -1
- package/pack/generated/devin/skills/rite-build/reference/spec-drift-guard.md +3 -2
- package/pack/generated/devin/skills/rite-build/reference/wright-dispatch.md +2 -2
- package/pack/generated/devin/skills/rite-define/SKILL.md +1 -1
- package/pack/generated/devin/skills/rite-handoff/SKILL.md +1 -1
- package/pack/generated/devin/skills/rite-plan/SKILL.md +1 -1
- package/pack/generated/devin/skills/rite-plan/reference/slicing.md +5 -0
- package/pack/generated/devin/skills/rite-prove/SKILL.md +4 -2
- package/pack/generated/devin/skills/rite-prove/reference/failure-triage.md +2 -1
- package/pack/generated/devin/skills/rite-spec/reference/state-workspace.md +2 -2
- package/pack/generated/devin/skills/rite-vet/reference/artifacts.md +8 -0
- package/pack/generated/devin/skills/rite-vet/reference/review-axes.md +1 -1
- package/pack/generated/omp/agents/devrites-plan-drafter.md +2 -1
- package/pack/generated/omp/agents/devrites-slice-wright.md +2 -1
- package/pack/generated/omp/skills/devrites-debug-recovery/SKILL.md +5 -4
- package/pack/generated/omp/skills/devrites-lib/reference/parallel-dispatch.md +7 -2
- package/pack/generated/omp/skills/devrites-lib/reference/reply-contract.md +12 -15
- package/pack/generated/omp/skills/devrites-lib/reference/standards/afk-hitl.md +28 -8
- package/pack/generated/omp/skills/devrites-lib/reference/standards/agents.md +6 -2
- package/pack/generated/omp/skills/devrites-lib/reference/standards/core.md +1 -1
- package/pack/generated/omp/skills/devrites-lib/reference/standards/one-shot-actions.md +7 -6
- package/pack/generated/omp/skills/devrites-lib/reference/standards/workflow-artifacts.md +10 -6
- package/pack/generated/omp/skills/devrites-lib/reference/workspace-artifact-schema.md +1 -1
- package/pack/generated/omp/skills/rite-autocomplete/SKILL.md +13 -11
- package/pack/generated/omp/skills/rite-autocomplete/reference/loop.md +8 -6
- package/pack/generated/omp/skills/rite-autocomplete/reference/stop-conditions.md +28 -21
- package/pack/generated/omp/skills/rite-build/SKILL.md +7 -7
- package/pack/generated/omp/skills/rite-build/reference/afk-discipline.md +8 -5
- package/pack/generated/omp/skills/rite-build/reference/checkpoint.md +1 -1
- package/pack/generated/omp/skills/rite-build/reference/one-slice-cycle.md +1 -1
- package/pack/generated/omp/skills/rite-build/reference/parallel-batch.md +33 -26
- package/pack/generated/omp/skills/rite-build/reference/phase-contract.md +10 -1
- package/pack/generated/omp/skills/rite-build/reference/spec-drift-guard.md +3 -2
- package/pack/generated/omp/skills/rite-build/reference/wright-dispatch.md +2 -2
- package/pack/generated/omp/skills/rite-define/SKILL.md +1 -1
- package/pack/generated/omp/skills/rite-handoff/SKILL.md +1 -1
- package/pack/generated/omp/skills/rite-plan/SKILL.md +1 -1
- package/pack/generated/omp/skills/rite-plan/reference/slicing.md +5 -0
- package/pack/generated/omp/skills/rite-prove/SKILL.md +4 -2
- package/pack/generated/omp/skills/rite-prove/reference/failure-triage.md +2 -1
- package/pack/generated/omp/skills/rite-spec/reference/state-workspace.md +2 -2
- package/pack/generated/omp/skills/rite-vet/reference/artifacts.md +8 -0
- package/pack/generated/omp/skills/rite-vet/reference/review-axes.md +1 -1
- package/pack/generated/pi/agents/devrites-plan-drafter.md +2 -1
- package/pack/generated/pi/agents/devrites-slice-wright.md +2 -1
- package/pack/generated/pi/skills/devrites-debug-recovery/SKILL.md +5 -4
- package/pack/generated/pi/skills/devrites-lib/reference/parallel-dispatch.md +7 -2
- package/pack/generated/pi/skills/devrites-lib/reference/reply-contract.md +12 -15
- package/pack/generated/pi/skills/devrites-lib/reference/standards/afk-hitl.md +28 -8
- package/pack/generated/pi/skills/devrites-lib/reference/standards/agents.md +6 -2
- package/pack/generated/pi/skills/devrites-lib/reference/standards/core.md +1 -1
- package/pack/generated/pi/skills/devrites-lib/reference/standards/one-shot-actions.md +7 -6
- package/pack/generated/pi/skills/devrites-lib/reference/standards/workflow-artifacts.md +10 -6
- package/pack/generated/pi/skills/devrites-lib/reference/workspace-artifact-schema.md +1 -1
- package/pack/generated/pi/skills/rite-autocomplete/SKILL.md +13 -11
- package/pack/generated/pi/skills/rite-autocomplete/reference/loop.md +8 -6
- package/pack/generated/pi/skills/rite-autocomplete/reference/stop-conditions.md +28 -21
- package/pack/generated/pi/skills/rite-build/SKILL.md +7 -7
- package/pack/generated/pi/skills/rite-build/reference/afk-discipline.md +8 -5
- package/pack/generated/pi/skills/rite-build/reference/checkpoint.md +1 -1
- package/pack/generated/pi/skills/rite-build/reference/one-slice-cycle.md +1 -1
- package/pack/generated/pi/skills/rite-build/reference/parallel-batch.md +33 -26
- package/pack/generated/pi/skills/rite-build/reference/phase-contract.md +10 -1
- package/pack/generated/pi/skills/rite-build/reference/spec-drift-guard.md +3 -2
- package/pack/generated/pi/skills/rite-build/reference/wright-dispatch.md +2 -2
- package/pack/generated/pi/skills/rite-define/SKILL.md +1 -1
- package/pack/generated/pi/skills/rite-handoff/SKILL.md +1 -1
- package/pack/generated/pi/skills/rite-plan/SKILL.md +1 -1
- package/pack/generated/pi/skills/rite-plan/reference/slicing.md +5 -0
- package/pack/generated/pi/skills/rite-prove/SKILL.md +4 -2
- package/pack/generated/pi/skills/rite-prove/reference/failure-triage.md +2 -1
- package/pack/generated/pi/skills/rite-spec/reference/state-workspace.md +2 -2
- package/pack/generated/pi/skills/rite-vet/reference/artifacts.md +8 -0
- package/pack/generated/pi/skills/rite-vet/reference/review-axes.md +1 -1
- package/package.json +1 -1
|
@@ -144,8 +144,8 @@ TTL is crash recovery, not normal cleanup.
|
|
|
144
144
|
**Do not land on control until review and proof are both green.** Isolated
|
|
145
145
|
`transfer_commit` stays on the worker branch; same-worktree diffs stay
|
|
146
146
|
uncommitted. Serial: [`checkpoint.md`](checkpoint.md), then host may remove the
|
|
147
|
-
worktree. Parallel: `record-green
|
|
148
|
-
--apply-to-control
|
|
147
|
+
worktree. Parallel: `record-green`, then `parallel integrate
|
|
148
|
+
--slice <id> --apply-to-control`; `parallel cleanup` removes worktrees.
|
|
149
149
|
5. Reconcile returned reuse, conventions, principles, sources, assumptions,
|
|
150
150
|
decisions, dead ends, follow-ups, gates, and touched files. Persist the
|
|
151
151
|
relevant facts in canonical artifacts, not the wholesale report. A plan-gap
|
|
@@ -161,7 +161,7 @@ Pull these via `Read` when shaping the plan:
|
|
|
161
161
|
meaning-changing mappings block. Then run
|
|
162
162
|
`devrites-engine check task-graph <slug>`; a malformed dependency graph blocks
|
|
163
163
|
before Vet rather than spending a reviewer context on invalid tasks. Resolve each
|
|
164
|
-
`ADVISORY size:` line now (split, or
|
|
164
|
+
`ADVISORY size:`/`hub:` line now (split or seam slice, or a rationale); never blocking.
|
|
165
165
|
7. **Readiness gate** (`plan-template.md`): require CLEAR coverage; complete acceptance,
|
|
166
166
|
wiring, shared-contract proof, applicable outputs, and rollback; risk-first acyclic order;
|
|
167
167
|
justified deviations; and every horizon item present, with blockers resolved, planning
|
|
@@ -74,7 +74,7 @@ themselves. The workspace is the canonical store; the handoff is the chat-only d
|
|
|
74
74
|
6. **In-flight work.** Every dispatch wave opened or sealed without a return (`devrites-engine
|
|
75
75
|
dispatch <slug> status`), running writer handle, held claim id plus paths (`devrites-engine
|
|
76
76
|
claim list --all`), and consumptive action started, each `terminal: yes|unknown` (`yes` only with
|
|
77
|
-
an admitted return, release, or proof of stop). The live handle exists only in chat. Any
|
|
77
|
+
an admitted return, release, `dead` claim, or proof of stop). The live handle exists only in chat. Any
|
|
78
78
|
`unknown` row makes item 1 a reconcile step (`dispatch <slug> status`, `parallel status`,
|
|
79
79
|
`claim list --all`), never a writer command: otherwise the next session dispatches a second writer.
|
|
80
80
|
7. **How to resume:** fixed boilerplate (see template below).
|
|
@@ -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
|
|
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
|
|
@@ -168,3 +168,8 @@ Order by dependency, but minimize coupling. A slice that needs three other slice
|
|
|
168
168
|
is a smell: look for a thinner cut that stands alone. An edge exists only when this slice
|
|
169
169
|
reads something the other produces: write it as `SLICE-001 (via <interface>)`. If you
|
|
170
170
|
cannot name what crosses, drop the edge; a shallow, wide graph runs in parallel.
|
|
171
|
+
|
|
172
|
+
Slices sharing a file never build side by side: put a hub file's shared edit
|
|
173
|
+
(registry, command table, test harness) in one seam slice the others depend on.
|
|
174
|
+
`check task-graph` prints the `schedule:` and `ADVISORY hub:` lines; inseparable
|
|
175
|
+
writes get `Serial rationale: <why>`. Never merge slices or drop acceptance to widen it.
|
|
@@ -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.
|
|
41
|
-
three no-progress attempts on the exact same fingerprint
|
|
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
|
|
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
|
|
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
|
|
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
|
|
|
@@ -103,6 +103,14 @@ From $rite-vet on <iso>. Runner + conventions: <detected framework + command>.
|
|
|
103
103
|
Link any disposable parser fixture. Preflight values are planning evidence, not post-build proof;
|
|
104
104
|
Prove recaptures the observed command, candidate identity, and result.
|
|
105
105
|
|
|
106
|
+
## Feature gates
|
|
107
|
+
| Gate | Command | Cwd | Expected |
|
|
108
|
+
|---|---|---|---|
|
|
109
|
+
| <full suite / workspace lint / audit> | <exact command> | <path> | <exit/output> |
|
|
110
|
+
|
|
111
|
+
Whole-repository rows only: Build runs them per landing
|
|
112
|
+
([tiers](../../rite-build/reference/phase-contract.md#proof-tiers)), Prove on the final candidate.
|
|
113
|
+
|
|
106
114
|
Commands in this durable artifact are portable repository commands: no RTK or local shell
|
|
107
115
|
aliases, user-specific absolute paths, or temporary proof trees. Evidence records
|
|
108
116
|
the command actually executed.
|
|
@@ -30,7 +30,7 @@ Before implementation review, check for work beyond the settled spec.
|
|
|
30
30
|
(over-budget `tasks.md`/`plan.md` from slice or AC count) is a scope finding, not a
|
|
31
31
|
`Budget override`: route to `$rite-plan course-correct` (`MVP cut`) with the
|
|
32
32
|
continuation sequence named; do not vet the whole epic. An `ADVISORY size:`
|
|
33
|
-
|
|
33
|
+
or `hub:` line without its rationale is a non-blocking Suggestion to split or seam it.
|
|
34
34
|
4. **Built-in check.** For each new pattern/infra/concurrency approach, invoke
|
|
35
35
|
`devrites-source-driven` inline to verify current framework/runtime support and cite it. Custom
|
|
36
36
|
work where a built-in suffices is a scope-reduction finding.
|
|
@@ -24,7 +24,8 @@ seams supplied by the orchestrator.
|
|
|
24
24
|
planning artifacts while preserving settled intent.
|
|
25
25
|
|
|
26
26
|
Reuse existing seams and dependencies before proposing new ones. Build vertical
|
|
27
|
-
slices in dependency order
|
|
27
|
+
slices in dependency order; put a hub file's shared edit in one seam slice
|
|
28
|
+
([slicing.md](../skills/rite-plan/reference/slicing.md#slice-independence)). Map every REQ and AC to a slice and executable proof,
|
|
28
29
|
name rollback and failure paths; keep acceptance-changing proposals separate. Durable
|
|
29
30
|
proof commands must be portable repository commands, never host-local wrappers,
|
|
30
31
|
user-specific absolute paths, or temporary proof trees.
|
|
@@ -108,7 +108,8 @@ unclear boundary is underspecified: return `Escalation` without proceeding.
|
|
|
108
108
|
that source in the result. Never invent an API.
|
|
109
109
|
- **No process residue.** Do not put `SLICE-###`, slice numbers, or "this slice"
|
|
110
110
|
in product source, tests, comments, or filenames.
|
|
111
|
-
4. **VERIFY (fail-on-red).** Run writer-safe tests/types/lint
|
|
111
|
+
4. **VERIFY (fail-on-red).** Run writer-safe tests/types/lint: `Tests/proof` plus
|
|
112
|
+
tests of changed code; `## Feature gates` rows are root-owned. Report required
|
|
112
113
|
build/browser/E2E as `not-run` (root-owned, artifact-producing gates), and only
|
|
113
114
|
when the exact command, cwd, and prerequisites already appear in the unchanged
|
|
114
115
|
vetted `test-plan.md`; never synthesize or rewrite a root command. Root runs
|
|
@@ -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
|
|
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
|
|
98
|
-
|
|
99
|
-
|
|
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.
|
|
@@ -127,7 +127,8 @@ child's handle, path/resource ownership and capacity reservation until the
|
|
|
127
127
|
native host confirms a terminal state and returned work has been reconciled.
|
|
128
128
|
Query or wait on that handle; do not replace the child, release its slot, or
|
|
129
129
|
reuse its resources while it may still run. If terminal state cannot be
|
|
130
|
-
established, record a gap and retain ownership
|
|
130
|
+
established, record a gap and retain ownership; for a child launched by an earlier
|
|
131
|
+
session, the claim proof below settles it. A result classification alone
|
|
131
132
|
does not prove host termination.
|
|
132
133
|
|
|
133
134
|
On resume (compaction or a new session), run `devrites-engine dispatch <slug>
|
|
@@ -135,7 +136,11 @@ status`, `parallel status`, and `claim list --all` before any dispatch. A read-o
|
|
|
135
136
|
wave whose handles this session cannot query: `abandon` it, record each unreturned
|
|
136
137
|
role `gap`, and re-dispatch fresh on the current digest; its late returns are
|
|
137
138
|
`stale`. A writer keeps its claim and lease — no relaunch on those paths until the
|
|
138
|
-
claim is released or its holder is proven terminal.
|
|
139
|
+
claim is released or its holder is proven terminal. For an unqueryable writer,
|
|
140
|
+
`claim list --all` showing its claim `released` or `dead` (the engine proved the
|
|
141
|
+
holding session exited on this host) is that proof: `abandon` the wave, record the
|
|
142
|
+
role `gap`, claim the paths, and re-dispatch without waiting on the launching
|
|
143
|
+
session. `live` or `expired` stays held. A wright that never returned an
|
|
139
144
|
admitted result leaves unadmitted bytes: task-path changes since its pre-dispatch
|
|
140
145
|
`git diff --name-only` baseline are never cited as built nor discarded, and are
|
|
141
146
|
named in the re-dispatch contract; changes outside task paths stop for the human
|
|
@@ -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/
|
|
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
|
|
108
|
-
terminal agent-owned technical exhaustion, which has no runnable action.
|
|
107
|
+
Use exactly one recommended next action.
|
|
109
108
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
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
|
|
117
|
+
Stopped: Technical recovery parked
|
|
118
118
|
Blocking: <causal fingerprint and invariant>
|
|
119
|
-
Attempts: <
|
|
120
|
-
|
|
121
|
-
Next:
|
|
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.
|
|
@@ -223,8 +223,9 @@ project/decision docs, and authoritative dependency sources; make and record rev
|
|
|
223
223
|
implementation/test choices. Ask only about product, scope, acceptance, architecture policy,
|
|
224
224
|
irreversible risk, or human-only access/action.
|
|
225
225
|
|
|
226
|
-
Objective test/build/tool failure runs bounded `devrites-debug-recovery`; fix it or
|
|
227
|
-
|
|
226
|
+
Objective test/build/tool failure runs bounded `devrites-debug-recovery`; fix it, or escalate and
|
|
227
|
+
park it under the [retry contract](#retry-cap-no-progress-loops-and-self-resolve). Never ask
|
|
228
|
+
permission for another attempt, test, parser repair, or probe.
|
|
228
229
|
Close decisions at the earliest informed phase: product in spec, coverage in clarify,
|
|
229
230
|
scope/risk in temper, architecture/dependencies in define, and proof/toolchain in vet. Build
|
|
230
231
|
keeps only unavailable-pre-code or mandatory action-time checkpoints.
|
|
@@ -350,7 +351,7 @@ access, safety and irreversible-action boundaries independently stop work.
|
|
|
350
351
|
invariant + defect mechanism + minimal reproduction/decisive failure signal.
|
|
351
352
|
DEC/DRIFT IDs, line numbers, wording and splitting one cause create no new budget.
|
|
352
353
|
- **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
|
|
354
|
+
and strategy across wright/recovery. Only a correction whose narrow recheck leaves that cause
|
|
354
355
|
open or reproduces its failure consumes an attempt.
|
|
355
356
|
Closing a prior finding with discriminating evidence is progress: resolve it,
|
|
356
357
|
do not charge. A new Critical or Important finding gets its own budget only for
|
|
@@ -384,11 +385,30 @@ access, safety and irreversible-action boundaries independently stop work.
|
|
|
384
385
|
- **Reconcile terminal cursors.** Retained distinct Critical/Important evidence below
|
|
385
386
|
cap resumes despite stale `Next step: none`; age/spent action authority is not exhaustion.
|
|
386
387
|
<!-- 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
|
-
- **
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
388
|
+
- **Escalate a spent strategy; never stop on it.** Three no-progress attempts spend
|
|
389
|
+
the fingerprint's current *strategy*, not the work. Record that strategy and its
|
|
390
|
+
attempts under `## Dead ends`, then the controlling caller escalates inline in the
|
|
391
|
+
same invocation: re-diagnose from the reproduction and dead ends, take the first
|
|
392
|
+
class below that still has an untried strategy, run `/rite-plan repair` plus
|
|
393
|
+
narrow Vet for it, and resume with a fresh three-attempt budget. Classes, in order:
|
|
394
|
+
(1) **shared root cause**: fix the owner every failing path routes through and
|
|
395
|
+
enforce it across all callers instead of another local guard; (2) **boundary
|
|
396
|
+
redesign**: acceptance-preserving reslice or redesign of the failing seam;
|
|
397
|
+
(3) **diagnostic amplification**: add discriminating probes or fixtures, then
|
|
398
|
+
correct from that evidence. A recorded strategy, or a rewording of one, never
|
|
399
|
+
repeats. Escalation never weakens tests, validators or acceptance. Each
|
|
400
|
+
fingerprint gets at most three escalations per activation; record each in
|
|
401
|
+
`drift.md` with its class and strategy.
|
|
402
|
+
- **Park, finish the rest, then stop once.** Human-owned contract/risk/access gaps
|
|
403
|
+
open their gate. Otherwise, with every escalation spent, mark the fingerprint
|
|
404
|
+
`parked` in `drift.md`, keep its reproduction and dead ends, and continue every
|
|
405
|
+
step that does not depend on it. Only when nothing runnable remains, set
|
|
406
|
+
`Status: blocked` and
|
|
407
|
+
`Next step: <invoking command> — technical recovery parked; reinvoke to reopen with fresh escalation`.
|
|
408
|
+
Emit no retry-permission question or `/rite-resolve`. A genuinely new
|
|
409
|
+
user-issued activation appends `reopened: <date>` to each parked fingerprint and
|
|
410
|
+
grants it three fresh escalations, counted from that line; wakes, compaction and
|
|
411
|
+
nested re-entry of the same run never reset counts.
|
|
392
412
|
- **Resolve agent-owned questions first** from code/docs/decisions. Human communication
|
|
393
413
|
is for blocked environment, handover, inaccessible critical information or missing
|
|
394
414
|
credentials/permission—not writing, testing or review. Blocking/escalating/
|
|
@@ -62,7 +62,9 @@ a human plus an agent) can share one working tree. Before a same-tree writer
|
|
|
62
62
|
starts, it records an advisory claim — `devrites-engine claim add --session
|
|
63
63
|
<id> <paths>` — retains the returned `<claim-id>`, then checks the same paths
|
|
64
64
|
with `devrites-engine claim check --session <id> <paths>`; a held claim from a
|
|
65
|
-
live foreign session is
|
|
65
|
+
live foreign session is never merged later or overridden. Unattended, skip only
|
|
66
|
+
work that needs those paths, run independent work, and re-check `claim list --all`
|
|
67
|
+
before stopping; stop and report the holder only when nothing independent remains. On every
|
|
66
68
|
host-confirmed terminal path after `add` ([unknown outcomes keep it](../parallel-dispatch.md#cancellation-and-terminal-reconciliation)) — return,
|
|
67
69
|
rejected result, stop, or a launch refused with no handle — run
|
|
68
70
|
`devrites-engine claim release --session <id> --id <claim-id>`. Claims expire
|
|
@@ -73,7 +75,9 @@ Claims cover product paths only; root-authored `.devrites/**` files use
|
|
|
73
75
|
Expiry is not proof the holder stopped: size `claim add --ttl <minutes>` to the
|
|
74
76
|
expected write (engine max 240) and re-add before it lapses; before writing, also
|
|
75
77
|
read `claim list --all` — a foreign `expired` claim on overlapping paths whose
|
|
76
|
-
session is not proven terminal counts as held (stop and report).
|
|
78
|
+
session is not proven terminal counts as held (stop and report). `dead` (engine-proven
|
|
79
|
+
exited holder) or `released` is terminal: reconcile per
|
|
80
|
+
[§ Cancellation](../parallel-dispatch.md#cancellation-and-terminal-reconciliation). **Failing case:**
|
|
77
81
|
session B's `claim check` passes at minute 35 over session A's still-running wright.
|
|
78
82
|
|
|
79
83
|
## Independence
|
|
@@ -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
|
|
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
|
-
|
|
77
|
-
|
|
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
|
-
|
|
102
|
-
|
|
103
|
-
|
|
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.
|
|
@@ -326,12 +326,16 @@ Epoch starts 1. `FAILED` records preimages/cleanup/epoch/fingerprint/reason/
|
|
|
326
326
|
boundary/route/no-progress count. Resolved fingerprints close; a different
|
|
327
327
|
invariant gets a distinct fingerprint. Handoff death resumes its retry epoch with
|
|
328
328
|
prior rows immutable. `WA-OP-011/012` enforce independent fingerprint/epoch caps
|
|
329
|
-
and terminal source cleanup. Exhaustion
|
|
329
|
+
and terminal source cleanup. Exhaustion closes this admission, not the work:
|
|
330
|
+
the controlling caller escalates it under the
|
|
331
|
+
[retry contract](afk-hitl.md#retry-cap-no-progress-loops-and-self-resolve)
|
|
332
|
+
through `PLAN_VET_REPAIR`, and a re-vetted changed design re-admits under a new
|
|
333
|
+
identity with fresh epochs. A fully escalated fingerprint parks. Exhaustion records:
|
|
330
334
|
|
|
331
335
|
```text
|
|
332
|
-
status=
|
|
336
|
+
status=running
|
|
333
337
|
exhaustion_cause=<same-fingerprint-count|total-epoch-limit>
|
|
334
|
-
next_action
|
|
338
|
+
next_action=/rite-plan repair <slug> — escalate exhausted workflow attempt
|
|
335
339
|
```
|
|
336
340
|
|
|
337
341
|
The journal, evidence section, and observer retain that cause; epoch exhaustion
|
|
@@ -343,7 +347,7 @@ Precedence: busy owner; safety/access/approval gate; completed historical; activ
|
|
|
343
347
|
journal; `CLEANED`; missing/stale authority; stale writer evidence; current
|
|
344
348
|
admission. `PROVED|CLEANING` resumes cleanup; install-through-`PROVING`, rollback,
|
|
345
349
|
or failure cleanup routes offline; retryable `FAILED` routes correction/retry;
|
|
346
|
-
`EXHAUSTED`
|
|
350
|
+
`EXHAUSTED` escalates; `PREPARING|PREPARED` resumes only with current authority.
|
|
347
351
|
There is no actor-history migration or backfill.
|
|
348
352
|
|
|
349
353
|
|Route|Owner|Exact action|Durable state/status/next action|Cursor/output|
|
|
@@ -356,7 +360,7 @@ There is no actor-history migration or backfill.
|
|
|
356
360
|
| `VERIFY_EXISTING`|controlling root|verify `CLEANED`, targets, proof, and product separation; do not reinstall|restore saved return phase/action|no retry/slice/action budget|
|
|
357
361
|
| `NO_BACKFILL`|controlling root|no action|completed state unchanged|no new output|
|
|
358
362
|
| `WAIT_ACTIVE_OWNER`|non-owner|no write; stop invocation|shared state unchanged|fixed owner-busy diagnostic|
|
|
359
|
-
| `BLOCKED_EXHAUSTED`|controlling root|no attempt 4
|
|
363
|
+
| `BLOCKED_EXHAUSTED`|controlling root|no attempt 4 on this admission; escalate through `PLAN_VET_REPAIR` or park per retry contract|`status=running`, exact exhausted `next_action`; parked keeps the parked-recovery action|fixed exhausted diagnostic; no intermediate reply|
|
|
360
364
|
| `BLOCKED_GATE`|controlling root|follow existing safety/access/approval gate|gate-owned state|gate output; never reinterpret as retry|
|
|
361
365
|
|
|
362
366
|
|Scenario ID|Trigger|Exact route / action|Durable consequence|Forbidden behavior|
|
|
@@ -422,7 +426,7 @@ pairs remain injective for actionable seams.
|
|
|
422
426
|
| `devrites-debug-recovery/SKILL.md`|durable active failure or ambiguous admitted state|`OFFLINE_RECOVERY`; correct offline, re-preflight, narrow Vet, retry only under cap|saved caller or exact Plan/Vet route|
|
|
423
427
|
| `rite-autocomplete/SKILL.md`|lifecycle cursor encounters admitted set or resumable journal|invoke classifier; execute returned route internally|saved phase/action; zero intermediate reply|
|
|
424
428
|
| `rite-autocomplete/reference/loop.md`|loop tick sees Workflow Artifact trigger/state|invoke classifier once under owner lock; no actor-history migration|same loop cursor; no budget charge for verify/rerun|
|
|
425
|
-
| `rite-autocomplete/reference/stop-conditions.md`|classifier returns owner-busy, exhausted, or existing hard gate|
|
|
429
|
+
| `rite-autocomplete/reference/stop-conditions.md`|classifier returns owner-busy, exhausted, or existing hard gate|escalate `BLOCKED_EXHAUSTED`; on `WAIT_ACTIVE_OWNER` run independent work and recheck; stop on exact `BLOCKED_GATE` result|unchanged cursor plus fixed route-owned output|
|
|
426
430
|
| `rite-build/SKILL.md`|Vet-ready admitted bytes require root authorship outside product wright|`ROOT_TRANSACTION`; root writes only admitted `.devrites/**` targets|saved Build slice cursor; wright product allowlist unchanged|
|
|
427
431
|
| `rite-build/reference/phase-contract.md`|Build gate enters or resumes transaction|invoke canonical operation table; reconcile exact result|same slice/checkpoint cursor or Plan/Vet route|
|
|
428
432
|
| `rite-prove/SKILL.md`|Prove consumes installed Workflow Artifact or `CLEANED` rerun|`VERIFY_EXISTING` or admitted proof path ending `PROVE_AND_RETURN`|saved Prove cursor; stop before real action|
|
|
@@ -237,7 +237,7 @@ slices; use `none` when they do not apply. Complexity above 3 triggers reslicing
|
|
|
237
237
|
unless the stated reason makes the boundary irreducible. A Writer allowlist of 12+
|
|
238
238
|
files prints an engine `ADVISORY size:` line (`check task-graph`, `check slice`;
|
|
239
239
|
never blocking): split it acceptance-preserving, or add `Size rationale:` naming
|
|
240
|
-
the inseparable capability
|
|
240
|
+
the inseparable capability; `ADVISORY hub:` takes a seam slice or `Serial rationale:`.
|
|
241
241
|
|
|
242
242
|
## Read next by phase
|
|
243
243
|
|
|
@@ -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
|
|
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
|
|
57
|
-
|
|
58
|
-
|
|
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
|
|
@@ -105,8 +107,8 @@ executable controller/harness/bundle bytes or a missing writer, read
|
|
|
105
107
|
`/rite-review` → `/rite-seal`. Read and execute each skill; durable files, not
|
|
106
108
|
chat, carry state. Apply the mutable post-vet budget before first Build.
|
|
107
109
|
Build runs the largest eligible path-disjoint batch (cap: this invocation's
|
|
108
|
-
`--parallel N`, else sentinel `max_parallel`, else 10) and
|
|
109
|
-
|
|
110
|
+
`--parallel N`, else sentinel `max_parallel`, else 10) and refills a slot
|
|
111
|
+
per landing until no pending slice remains; a one-slice round is serial for that round only, then
|
|
110
112
|
selection runs again (host isolation still forces serial when concurrent writers
|
|
111
113
|
cannot be separated). When `--parallel N`
|
|
112
114
|
is present, pass it into `/rite-build` and do not consult leftover sentinel
|
|
@@ -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
|
|
121
|
-
|
|
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
|
-
|
|
128
|
-
`Next step:
|
|
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))
|
|
@@ -67,7 +67,7 @@ Workspace files carry state; chat does not. Read and execute each phase skill:
|
|
|
67
67
|
| 3 | `/rite-temper` | harden or reduce; `expand` and extra acceptance stop for a human; irreversible risk still pauses |
|
|
68
68
|
| 4 | `/rite-define` | approved plan/tasks/traceability |
|
|
69
69
|
| 5 | `/rite-vet` | every plan; derive mutable budget after READY |
|
|
70
|
-
| 6 | `/rite-build` batch loop | largest eligible path-disjoint set (cap: this invocation's `--parallel N`, else sentinel `max_parallel`, else 10; one-slice round when <2 eligible);
|
|
70
|
+
| 6 | `/rite-build` batch loop | largest eligible path-disjoint set (cap: this invocation's `--parallel N`, else sentinel `max_parallel`, else 10; one-slice round when <2 eligible); refill per landing; charge once per landed slice |
|
|
71
71
|
| 7 | `/rite-prove` | all slices built; approved proof; recovery on red |
|
|
72
72
|
| 8 | `/rite-polish` | re-prove after code edits |
|
|
73
73
|
| 9 | `/rite-review` | in-scope correction then fresh proof |
|
|
@@ -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
|
|
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
|
|
144
|
-
|
|
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
|
|
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/
|
|
162
|
+
rest point or a shared human/safety/access/parked-recovery condition.
|