devrites 7.1.0 → 7.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.
- package/CHANGELOG.md +6 -0
- package/README.md +1 -1
- package/pack/.claude/skills/rite-autocomplete/reference/loop.md +9 -10
- package/pack/.claude/skills/rite-build/SKILL.md +5 -6
- package/pack/.claude/skills/rite-build/reference/afk-discipline.md +9 -11
- package/pack/.claude/skills/rite-build/reference/anti-patterns.md +2 -2
- package/pack/.claude/skills/rite-build/reference/checkpoint.md +10 -5
- package/pack/.claude/skills/rite-build/reference/one-slice-cycle.md +6 -4
- package/pack/.claude/skills/rite-build/reference/output.md +15 -21
- package/pack/generated/claude/skills/rite-autocomplete/reference/loop.md +9 -10
- package/pack/generated/claude/skills/rite-build/SKILL.md +5 -6
- package/pack/generated/claude/skills/rite-build/reference/afk-discipline.md +9 -11
- package/pack/generated/claude/skills/rite-build/reference/anti-patterns.md +2 -2
- package/pack/generated/claude/skills/rite-build/reference/checkpoint.md +10 -5
- package/pack/generated/claude/skills/rite-build/reference/one-slice-cycle.md +6 -4
- package/pack/generated/claude/skills/rite-build/reference/output.md +15 -21
- package/pack/generated/codex/skills/rite-autocomplete/reference/loop.md +9 -10
- package/pack/generated/codex/skills/rite-build/SKILL.md +5 -6
- package/pack/generated/codex/skills/rite-build/reference/afk-discipline.md +9 -11
- package/pack/generated/codex/skills/rite-build/reference/anti-patterns.md +2 -2
- package/pack/generated/codex/skills/rite-build/reference/checkpoint.md +10 -5
- package/pack/generated/codex/skills/rite-build/reference/one-slice-cycle.md +6 -4
- package/pack/generated/codex/skills/rite-build/reference/output.md +15 -21
- package/pack/generated/devin/skills/rite-autocomplete/reference/loop.md +9 -10
- package/pack/generated/devin/skills/rite-build/SKILL.md +5 -6
- package/pack/generated/devin/skills/rite-build/reference/afk-discipline.md +9 -11
- package/pack/generated/devin/skills/rite-build/reference/anti-patterns.md +2 -2
- package/pack/generated/devin/skills/rite-build/reference/checkpoint.md +10 -5
- package/pack/generated/devin/skills/rite-build/reference/one-slice-cycle.md +6 -4
- package/pack/generated/devin/skills/rite-build/reference/output.md +15 -21
- package/pack/generated/omp/skills/rite-autocomplete/reference/loop.md +9 -10
- package/pack/generated/omp/skills/rite-build/SKILL.md +5 -6
- package/pack/generated/omp/skills/rite-build/reference/afk-discipline.md +9 -11
- package/pack/generated/omp/skills/rite-build/reference/anti-patterns.md +2 -2
- package/pack/generated/omp/skills/rite-build/reference/checkpoint.md +10 -5
- package/pack/generated/omp/skills/rite-build/reference/one-slice-cycle.md +6 -4
- package/pack/generated/omp/skills/rite-build/reference/output.md +15 -21
- package/pack/generated/pi/skills/rite-autocomplete/reference/loop.md +9 -10
- package/pack/generated/pi/skills/rite-build/SKILL.md +5 -6
- package/pack/generated/pi/skills/rite-build/reference/afk-discipline.md +9 -11
- package/pack/generated/pi/skills/rite-build/reference/anti-patterns.md +2 -2
- package/pack/generated/pi/skills/rite-build/reference/checkpoint.md +10 -5
- package/pack/generated/pi/skills/rite-build/reference/one-slice-cycle.md +6 -4
- package/pack/generated/pi/skills/rite-build/reference/output.md +15 -21
- package/package.json +1 -1
|
@@ -2,34 +2,28 @@
|
|
|
2
2
|
|
|
3
3
|
> Root-only: not inlined in --role bundles.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## Caller-owned continuation
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
```
|
|
7
|
+
Before standalone replies, return internally to active `$rite-autocomplete` or
|
|
8
|
+
another controlling rite after green proof, checkpoint, and accounting:
|
|
9
|
+
- Slices remain: re-read durable state and reselect/refill; no user-facing reply.
|
|
10
|
+
- All built: return internally to the caller to invoke `$rite-prove` under its own contract.
|
|
11
|
+
|
|
12
|
+
Human/safety/access/Git stops still use the shared reply contract.
|
|
13
|
+
|
|
14
|
+
## Standalone response
|
|
16
15
|
|
|
17
|
-
|
|
16
|
+
HITL returns after one green slice; AFK chains per `afk-discipline.md`.
|
|
17
|
+
Every wright returns after one slice. Build alone never invokes Prove.
|
|
18
18
|
|
|
19
19
|
```text
|
|
20
|
-
Done: built slice <n> — <name
|
|
20
|
+
Done: built slice <n> — <name>[; all slices built].
|
|
21
21
|
Changed: <files>; state.md, touched-files.md, evidence.md
|
|
22
22
|
Evidence: acceptance met; tests <cmd> → pass; browser <summary|n/a>; drift <none|handled>
|
|
23
23
|
Open: <none|blockers|questions>
|
|
24
|
-
Next: $rite-prove
|
|
24
|
+
Next: $rite-build [all built: $rite-prove]
|
|
25
25
|
Record: .devrites/work/<slug>/evidence.md
|
|
26
|
-
↻ Hygiene: /clear
|
|
26
|
+
↻ Hygiene: /clear between slices (none in `orient` `inflight_waves`); $rite-handoff if away > a few hours
|
|
27
27
|
```
|
|
28
28
|
|
|
29
|
-
|
|
30
|
-
controlling root chain another pending slice after green-proof, cap, and pause
|
|
31
|
-
gates. Every `devrites-slice-wright` returns after exactly one slice.
|
|
32
|
-
|
|
33
|
-
At all built, Build never enters `$rite-prove` automatically; a higher-level
|
|
34
|
-
orchestrator may invoke it only under its own contract. Awaiting-human or
|
|
35
|
-
stopped states use the shared reply contract.
|
|
29
|
+
Awaiting-human or stopped states use the shared reply contract.
|
|
@@ -46,15 +46,14 @@ readiness check first; reject overlap. Do not stop on `max_agents`,
|
|
|
46
46
|
`max_minutes`, or `max_review_queue`. Count every leaf result. A new activation
|
|
47
47
|
gets fresh activation-local counters but retains durable slice/recovery state.
|
|
48
48
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
`--
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
`devrites-engine state resolve
|
|
55
|
-
`/rite-resolve` to the user. Escalating, irreversible-risk, access,
|
|
56
|
-
|
|
57
|
-
validating question (`slice: seal`).
|
|
49
|
+
[Build return](../../rite-build/reference/output.md#caller-owned-continuation).
|
|
50
|
+
Pass `--parallel N`; ignore leftover cap/headroom, remaining-0,
|
|
51
|
+
and `--max-slices` stops. Agent-invented dispatch, wait, tool-call, or turn budgets are not stop conditions.
|
|
52
|
+
An explicit human request to pause or run only a bounded subset still wins.
|
|
53
|
+
Path collisions serialize work; they do not end the run.
|
|
54
|
+
Resolve ranked validating/blocking picks via `devrites-engine state resolve`;
|
|
55
|
+
never hand `/rite-resolve` to the user. Escalating, irreversible-risk, access, blocking
|
|
56
|
+
without recommendations, and Seal judgment (`slice: seal`) still pause.
|
|
58
57
|
|
|
59
58
|
## Phase arc
|
|
60
59
|
|
|
@@ -67,7 +66,7 @@ Workspace files carry state; chat does not. Read and execute each phase skill:
|
|
|
67
66
|
| 3 | `/rite-temper` | harden or reduce; `expand` and extra acceptance stop for a human; irreversible risk still pauses |
|
|
68
67
|
| 4 | `/rite-define` | approved plan/tasks/traceability |
|
|
69
68
|
| 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;
|
|
69
|
+
| 6 | `/rite-build` batch loop | largest eligible path-disjoint set (cap: this invocation's `--parallel N`, else sentinel `max_parallel`, else 10; serial if <2 eligible); refill per landing; charge once per landed slice |
|
|
71
70
|
| 7 | `/rite-prove` | all slices built except deferred (`Satisfies: none`); approved proof; recovery on red |
|
|
72
71
|
| 8 | `/rite-polish` | re-prove after code edits |
|
|
73
72
|
| 9 | `/rite-review` | in-scope correction then fresh proof |
|
|
@@ -10,9 +10,9 @@ argument-hint: "[--parallel N] [slice number or name]"
|
|
|
10
10
|
|
|
11
11
|
# /rite-build: one verified slice
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
Active caller takes precedence per [output.md](reference/output.md#caller-owned-continuation).
|
|
14
|
+
Standalone HITL stops; standalone AFK chains under green proof, caps and pause
|
|
15
|
+
rules. Every wright returns after one slice.
|
|
16
16
|
**HITL:** `/rite-build --parallel N` (2≤N≤10; N=1≡serial) follows
|
|
17
17
|
[`reference/parallel-batch.md`](reference/parallel-batch.md)
|
|
18
18
|
([`one-slice-cycle.md`](reference/one-slice-cycle.md)).
|
|
@@ -108,10 +108,9 @@ AFK charges per landed sibling only. Running lease blocks another
|
|
|
108
108
|
|
|
109
109
|
Run every step in `reference/phase-contract.md`: readiness, one target, dispatch
|
|
110
110
|
or canonical transaction, return inspection, independent code/doubt/test analysis,
|
|
111
|
-
approved fail-on-red proof, record,
|
|
111
|
+
approved fail-on-red proof, record, and applicable accounting. Continue/reply via
|
|
112
112
|
[`reference/output.md`](reference/output.md) plus the shared
|
|
113
|
-
[`reply contract`](../devrites-lib/reference/reply-contract.md).
|
|
114
|
-
the next slice automatically; AFK obeys remaining budget; Prove requires every slice built except a
|
|
113
|
+
[`reply contract`](../devrites-lib/reference/reply-contract.md). Standalone AFK obeys remaining budget; Prove requires every slice built except a
|
|
115
114
|
[deferred slice](../rite-plan/reference/slicing.md#deferred-slice).
|
|
116
115
|
|
|
117
116
|
## Phase exit
|
|
@@ -2,22 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
> Root-only: not inlined in --role bundles.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
without per-slice user input. The rules below limit that unattended work.
|
|
7
|
-
|
|
8
|
-
Load the shared
|
|
5
|
+
`.devrites/AFK` enables unattended slice chaining. Load the shared
|
|
9
6
|
[`afk-hitl.md`](../../devrites-lib/reference/standards/afk-hitl.md#the-sentinel-devritesafk)
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
for sentinel schema, defaults, gate ceiling, and mutable-counter ownership.
|
|
8
|
+
This file owns Build dispatch, charging, and red paths.
|
|
12
9
|
|
|
13
|
-
Rules: green before `built`;
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
`dispatch abandon --reason`.
|
|
10
|
+
Rules: green before `built`; gates before their action; irreversible work
|
|
11
|
+
(destructive/auth/public API) pauses; no tick ends with an open/sealed wave —
|
|
12
|
+
wait for returns or `dispatch abandon --reason`.
|
|
17
13
|
|
|
18
14
|
## Iteration cap
|
|
19
15
|
|
|
20
|
-
|
|
16
|
+
Under active `/rite-autocomplete`, skip the slice-cap checks, charges, and cap-stop message below;
|
|
17
|
+
use its [admission rules](../../rite-autocomplete/reference/loop.md#admit-each-unattended-cycle).
|
|
18
|
+
Otherwise root owns cap:
|
|
21
19
|
|
|
22
20
|
1. **Before every dispatch**, re-read `.devrites/AFK`, `state.md`, and the
|
|
23
21
|
selected slice. This invocation's `--parallel N` is the cap when present;
|
|
@@ -10,12 +10,12 @@ Pack-wide rationalizations and red flags live in
|
|
|
10
10
|
|
|
11
11
|
| Excuse | Rebuttal |
|
|
12
12
|
|---|---|
|
|
13
|
-
| "Slices 1 and 2 are related; let me do both." |
|
|
13
|
+
| "Slices 1 and 2 are related; let me do both." | Caller first: [output.md](output.md#caller-owned-continuation). Standalone HITL stops; standalone AFK chains after green proof and cap/pause gates; each wright returns after one. |
|
|
14
14
|
| "It's faster to skip `devrites-doubt` for this small change." | Doubt is cheapest *before* the decision is standing. After is debugging. |
|
|
15
15
|
|
|
16
16
|
## Red Flags
|
|
17
17
|
|
|
18
|
-
-
|
|
18
|
+
- Next slice violates caller/standalone routing or proof/cap/pause gates.
|
|
19
19
|
- Skipping `devrites-doubt` on a branching, boundary, data-model, auth, public-API, or migration decision.
|
|
20
20
|
- Adding a dependency or a second design system without recording rationale in `decisions.md`.
|
|
21
21
|
- Writing a `try/catch` block wider than what you handle.
|
|
@@ -54,11 +54,16 @@ BODY
|
|
|
54
54
|
|
|
55
55
|
**Local-only:** never push or let scratch work trigger CI.
|
|
56
56
|
|
|
57
|
-
After
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
57
|
+
After green landing (parallel: successful integrate), check `state.md`
|
|
58
|
+
outside fences before reselecting:
|
|
59
|
+
|
|
60
|
+
```text
|
|
61
|
+
- [x] SLICE-004 built — <proof/checkpoint reference>
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
A cursor `built_slices` value or a tasks.md `Status: built` field is not a substitute.
|
|
65
|
+
After landing: `devrites-engine check regression <slug> --update`. Before landing,
|
|
66
|
+
restore or route `BLOCKED` lost facts.
|
|
62
67
|
|
|
63
68
|
## Restore
|
|
64
69
|
After a crash, a fresh session may read the last `WIP(<slug>)` body as crash context.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# One-slice cycle
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
Each wright returns after one proven slice. Root follows
|
|
4
|
+
[`output.md`](output.md#caller-owned-continuation); standalone AFK uses
|
|
5
|
+
`afk-discipline.md`.
|
|
6
6
|
This serial cycle is the default `/rite-build`. Opt-in fan-out: [`parallel-batch.md`](parallel-batch.md) (`--parallel N`).
|
|
7
7
|
|
|
8
8
|
## The cycle
|
|
@@ -31,7 +31,9 @@ RECORD → orchestrator: after green verification, update state.md/evidence.m
|
|
|
31
31
|
upsert the authoritative candidate manifest from the actual scoped diff
|
|
32
32
|
(CHECKPOINT) → only now, with review+proof green: local WIP(<slug>): <imperative summary>
|
|
33
33
|
on the control branch (no slice id) → checkpoint.md
|
|
34
|
-
NEXT
|
|
34
|
+
NEXT → controlling caller first: return internally via output.md; no user-facing reply.
|
|
35
|
+
HITL stops. Standalone AFK with parallel cap>1:
|
|
36
|
+
return to parallel-batch selection to refill; otherwise repeat under afk-discipline.md
|
|
35
37
|
```
|
|
36
38
|
|
|
37
39
|
## Why the boundary matters
|
|
@@ -2,34 +2,28 @@
|
|
|
2
2
|
|
|
3
3
|
> Root-only: not inlined in --role bundles.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## Caller-owned continuation
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
```
|
|
7
|
+
Before standalone replies, return internally to active `/rite-autocomplete` or
|
|
8
|
+
another controlling rite after green proof, checkpoint, and accounting:
|
|
9
|
+
- Slices remain: re-read durable state and reselect/refill; no user-facing reply.
|
|
10
|
+
- All built: return internally to the caller to invoke `/rite-prove` under its own contract.
|
|
11
|
+
|
|
12
|
+
Human/safety/access/Git stops still use the shared reply contract.
|
|
13
|
+
|
|
14
|
+
## Standalone response
|
|
16
15
|
|
|
17
|
-
|
|
16
|
+
HITL returns after one green slice; AFK chains per `afk-discipline.md`.
|
|
17
|
+
Every wright returns after one slice. Build alone never invokes Prove.
|
|
18
18
|
|
|
19
19
|
```text
|
|
20
|
-
Done: built slice <n> — <name
|
|
20
|
+
Done: built slice <n> — <name>[; all slices built].
|
|
21
21
|
Changed: <files>; state.md, touched-files.md, evidence.md
|
|
22
22
|
Evidence: acceptance met; tests <cmd> → pass; browser <summary|n/a>; drift <none|handled>
|
|
23
23
|
Open: <none|blockers|questions>
|
|
24
|
-
Next: /rite-prove
|
|
24
|
+
Next: /rite-build [all built: /rite-prove]
|
|
25
25
|
Record: .devrites/work/<slug>/evidence.md
|
|
26
|
-
↻ Hygiene: /clear
|
|
26
|
+
↻ Hygiene: /clear between slices (none in `orient` `inflight_waves`); /rite-handoff if away > a few hours
|
|
27
27
|
```
|
|
28
28
|
|
|
29
|
-
|
|
30
|
-
controlling root chain another pending slice after green-proof, cap, and pause
|
|
31
|
-
gates. Every `devrites-slice-wright` returns after exactly one slice.
|
|
32
|
-
|
|
33
|
-
At all built, Build never enters `/rite-prove` automatically; a higher-level
|
|
34
|
-
orchestrator may invoke it only under its own contract. Awaiting-human or
|
|
35
|
-
stopped states use the shared reply contract.
|
|
29
|
+
Awaiting-human or stopped states use the shared reply contract.
|
|
@@ -46,15 +46,14 @@ readiness check first; reject overlap. Do not stop on `max_agents`,
|
|
|
46
46
|
`max_minutes`, or `max_review_queue`. Count every leaf result. A new activation
|
|
47
47
|
gets fresh activation-local counters but retains durable slice/recovery state.
|
|
48
48
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
`--
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
`devrites-engine state resolve
|
|
55
|
-
`/rite-resolve` to the user. Escalating, irreversible-risk, access,
|
|
56
|
-
|
|
57
|
-
validating question (`slice: seal`).
|
|
49
|
+
[Build return](skill://rite-build/reference/output.md#caller-owned-continuation).
|
|
50
|
+
Pass `--parallel N`; ignore leftover cap/headroom, remaining-0,
|
|
51
|
+
and `--max-slices` stops. Agent-invented dispatch, wait, tool-call, or turn budgets are not stop conditions.
|
|
52
|
+
An explicit human request to pause or run only a bounded subset still wins.
|
|
53
|
+
Path collisions serialize work; they do not end the run.
|
|
54
|
+
Resolve ranked validating/blocking picks via `devrites-engine state resolve`;
|
|
55
|
+
never hand `/rite-resolve` to the user. Escalating, irreversible-risk, access, blocking
|
|
56
|
+
without recommendations, and Seal judgment (`slice: seal`) still pause.
|
|
58
57
|
|
|
59
58
|
## Phase arc
|
|
60
59
|
|
|
@@ -67,7 +66,7 @@ Workspace files carry state; chat does not. Read and execute each phase skill:
|
|
|
67
66
|
| 3 | `/rite-temper` | harden or reduce; `expand` and extra acceptance stop for a human; irreversible risk still pauses |
|
|
68
67
|
| 4 | `/rite-define` | approved plan/tasks/traceability |
|
|
69
68
|
| 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;
|
|
69
|
+
| 6 | `/rite-build` batch loop | largest eligible path-disjoint set (cap: this invocation's `--parallel N`, else sentinel `max_parallel`, else 10; serial if <2 eligible); refill per landing; charge once per landed slice |
|
|
71
70
|
| 7 | `/rite-prove` | all slices built except deferred (`Satisfies: none`); approved proof; recovery on red |
|
|
72
71
|
| 8 | `/rite-polish` | re-prove after code edits |
|
|
73
72
|
| 9 | `/rite-review` | in-scope correction then fresh proof |
|
|
@@ -11,9 +11,9 @@ user-invocable: true
|
|
|
11
11
|
|
|
12
12
|
# /rite-build: one verified slice
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
Active caller takes precedence per [output.md](reference/output.md#caller-owned-continuation).
|
|
15
|
+
Standalone HITL stops; standalone AFK chains under green proof, caps and pause
|
|
16
|
+
rules. Every wright returns after one slice.
|
|
17
17
|
**HITL:** `/rite-build --parallel N` (2≤N≤10; N=1≡serial) follows
|
|
18
18
|
[`reference/parallel-batch.md`](reference/parallel-batch.md)
|
|
19
19
|
([`one-slice-cycle.md`](reference/one-slice-cycle.md)).
|
|
@@ -109,10 +109,9 @@ AFK charges per landed sibling only. Running lease blocks another
|
|
|
109
109
|
|
|
110
110
|
Run every step in `reference/phase-contract.md`: readiness, one target, dispatch
|
|
111
111
|
or canonical transaction, return inspection, independent code/doubt/test analysis,
|
|
112
|
-
approved fail-on-red proof, record,
|
|
112
|
+
approved fail-on-red proof, record, and applicable accounting. Continue/reply via
|
|
113
113
|
[`reference/output.md`](reference/output.md) plus the shared
|
|
114
|
-
[`reply contract`](skill://devrites-lib/reference/reply-contract.md).
|
|
115
|
-
the next slice automatically; AFK obeys remaining budget; Prove requires every slice built except a
|
|
114
|
+
[`reply contract`](skill://devrites-lib/reference/reply-contract.md). Standalone AFK obeys remaining budget; Prove requires every slice built except a
|
|
116
115
|
[deferred slice](skill://rite-plan/reference/slicing.md#deferred-slice).
|
|
117
116
|
|
|
118
117
|
## Phase exit
|
|
@@ -2,22 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
> Root-only: not inlined in --role bundles.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
without per-slice user input. The rules below limit that unattended work.
|
|
7
|
-
|
|
8
|
-
Load the shared
|
|
5
|
+
`.devrites/AFK` enables unattended slice chaining. Load the shared
|
|
9
6
|
[`afk-hitl.md`](skill://devrites-lib/reference/standards/afk-hitl.md#the-sentinel-devritesafk)
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
for sentinel schema, defaults, gate ceiling, and mutable-counter ownership.
|
|
8
|
+
This file owns Build dispatch, charging, and red paths.
|
|
12
9
|
|
|
13
|
-
Rules: green before `built`;
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
`dispatch abandon --reason`.
|
|
10
|
+
Rules: green before `built`; gates before their action; irreversible work
|
|
11
|
+
(destructive/auth/public API) pauses; no tick ends with an open/sealed wave —
|
|
12
|
+
wait for returns or `dispatch abandon --reason`.
|
|
17
13
|
|
|
18
14
|
## Iteration cap
|
|
19
15
|
|
|
20
|
-
|
|
16
|
+
Under active `/rite-autocomplete`, skip the slice-cap checks, charges, and cap-stop message below;
|
|
17
|
+
use its [admission rules](skill://rite-autocomplete/reference/loop.md#admit-each-unattended-cycle).
|
|
18
|
+
Otherwise root owns cap:
|
|
21
19
|
|
|
22
20
|
1. **Before every dispatch**, re-read `.devrites/AFK`, `state.md`, and the
|
|
23
21
|
selected slice. This invocation's `--parallel N` is the cap when present;
|
|
@@ -10,12 +10,12 @@ Pack-wide rationalizations and red flags live in
|
|
|
10
10
|
|
|
11
11
|
| Excuse | Rebuttal |
|
|
12
12
|
|---|---|
|
|
13
|
-
| "Slices 1 and 2 are related; let me do both." |
|
|
13
|
+
| "Slices 1 and 2 are related; let me do both." | Caller first: [output.md](output.md#caller-owned-continuation). Standalone HITL stops; standalone AFK chains after green proof and cap/pause gates; each wright returns after one. |
|
|
14
14
|
| "It's faster to skip `devrites-doubt` for this small change." | Doubt is cheapest *before* the decision is standing. After is debugging. |
|
|
15
15
|
|
|
16
16
|
## Red Flags
|
|
17
17
|
|
|
18
|
-
-
|
|
18
|
+
- Next slice violates caller/standalone routing or proof/cap/pause gates.
|
|
19
19
|
- Skipping `devrites-doubt` on a branching, boundary, data-model, auth, public-API, or migration decision.
|
|
20
20
|
- Adding a dependency or a second design system without recording rationale in `decisions.md`.
|
|
21
21
|
- Writing a `try/catch` block wider than what you handle.
|
|
@@ -54,11 +54,16 @@ BODY
|
|
|
54
54
|
|
|
55
55
|
**Local-only:** never push or let scratch work trigger CI.
|
|
56
56
|
|
|
57
|
-
After
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
57
|
+
After green landing (parallel: successful integrate), check `state.md`
|
|
58
|
+
outside fences before reselecting:
|
|
59
|
+
|
|
60
|
+
```text
|
|
61
|
+
- [x] SLICE-004 built — <proof/checkpoint reference>
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
A cursor `built_slices` value or a tasks.md `Status: built` field is not a substitute.
|
|
65
|
+
After landing: `devrites-engine check regression <slug> --update`. Before landing,
|
|
66
|
+
restore or route `BLOCKED` lost facts.
|
|
62
67
|
|
|
63
68
|
## Restore
|
|
64
69
|
After a crash, a fresh session may read the last `WIP(<slug>)` body as crash context.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# One-slice cycle
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
Each wright returns after one proven slice. Root follows
|
|
4
|
+
[`output.md`](output.md#caller-owned-continuation); standalone AFK uses
|
|
5
|
+
`afk-discipline.md`.
|
|
6
6
|
This serial cycle is the default `/rite-build`. Opt-in fan-out: [`parallel-batch.md`](parallel-batch.md) (`--parallel N`).
|
|
7
7
|
|
|
8
8
|
## The cycle
|
|
@@ -31,7 +31,9 @@ RECORD → orchestrator: after green verification, update state.md/evidence.m
|
|
|
31
31
|
upsert the authoritative candidate manifest from the actual scoped diff
|
|
32
32
|
(CHECKPOINT) → only now, with review+proof green: local WIP(<slug>): <imperative summary>
|
|
33
33
|
on the control branch (no slice id) → checkpoint.md
|
|
34
|
-
NEXT
|
|
34
|
+
NEXT → controlling caller first: return internally via output.md; no user-facing reply.
|
|
35
|
+
HITL stops. Standalone AFK with parallel cap>1:
|
|
36
|
+
return to parallel-batch selection to refill; otherwise repeat under afk-discipline.md
|
|
35
37
|
```
|
|
36
38
|
|
|
37
39
|
## Why the boundary matters
|
|
@@ -2,34 +2,28 @@
|
|
|
2
2
|
|
|
3
3
|
> Root-only: not inlined in --role bundles.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## Caller-owned continuation
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
```
|
|
7
|
+
Before standalone replies, return internally to active `/rite-autocomplete` or
|
|
8
|
+
another controlling rite after green proof, checkpoint, and accounting:
|
|
9
|
+
- Slices remain: re-read durable state and reselect/refill; no user-facing reply.
|
|
10
|
+
- All built: return internally to the caller to invoke `/rite-prove` under its own contract.
|
|
11
|
+
|
|
12
|
+
Human/safety/access/Git stops still use the shared reply contract.
|
|
13
|
+
|
|
14
|
+
## Standalone response
|
|
16
15
|
|
|
17
|
-
|
|
16
|
+
HITL returns after one green slice; AFK chains per `afk-discipline.md`.
|
|
17
|
+
Every wright returns after one slice. Build alone never invokes Prove.
|
|
18
18
|
|
|
19
19
|
```text
|
|
20
|
-
Done: built slice <n> — <name
|
|
20
|
+
Done: built slice <n> — <name>[; all slices built].
|
|
21
21
|
Changed: <files>; state.md, touched-files.md, evidence.md
|
|
22
22
|
Evidence: acceptance met; tests <cmd> → pass; browser <summary|n/a>; drift <none|handled>
|
|
23
23
|
Open: <none|blockers|questions>
|
|
24
|
-
Next: /rite-prove
|
|
24
|
+
Next: /rite-build [all built: /rite-prove]
|
|
25
25
|
Record: .devrites/work/<slug>/evidence.md
|
|
26
|
-
↻ Hygiene: /clear
|
|
26
|
+
↻ Hygiene: /clear between slices (none in `orient` `inflight_waves`); /rite-handoff if away > a few hours
|
|
27
27
|
```
|
|
28
28
|
|
|
29
|
-
|
|
30
|
-
controlling root chain another pending slice after green-proof, cap, and pause
|
|
31
|
-
gates. Every `devrites-slice-wright` returns after exactly one slice.
|
|
32
|
-
|
|
33
|
-
At all built, Build never enters `/rite-prove` automatically; a higher-level
|
|
34
|
-
orchestrator may invoke it only under its own contract. Awaiting-human or
|
|
35
|
-
stopped states use the shared reply contract.
|
|
29
|
+
Awaiting-human or stopped states use the shared reply contract.
|
|
@@ -46,15 +46,14 @@ readiness check first; reject overlap. Do not stop on `max_agents`,
|
|
|
46
46
|
`max_minutes`, or `max_review_queue`. Count every leaf result. A new activation
|
|
47
47
|
gets fresh activation-local counters but retains durable slice/recovery state.
|
|
48
48
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
`--
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
`devrites-engine state resolve
|
|
55
|
-
`/rite-resolve` to the user. Escalating, irreversible-risk, access,
|
|
56
|
-
|
|
57
|
-
validating question (`slice: seal`).
|
|
49
|
+
[Build return](../../rite-build/reference/output.md#caller-owned-continuation).
|
|
50
|
+
Pass `--parallel N`; ignore leftover cap/headroom, remaining-0,
|
|
51
|
+
and `--max-slices` stops. Agent-invented dispatch, wait, tool-call, or turn budgets are not stop conditions.
|
|
52
|
+
An explicit human request to pause or run only a bounded subset still wins.
|
|
53
|
+
Path collisions serialize work; they do not end the run.
|
|
54
|
+
Resolve ranked validating/blocking picks via `devrites-engine state resolve`;
|
|
55
|
+
never hand `/rite-resolve` to the user. Escalating, irreversible-risk, access, blocking
|
|
56
|
+
without recommendations, and Seal judgment (`slice: seal`) still pause.
|
|
58
57
|
|
|
59
58
|
## Phase arc
|
|
60
59
|
|
|
@@ -67,7 +66,7 @@ Workspace files carry state; chat does not. Read and execute each phase skill:
|
|
|
67
66
|
| 3 | `/rite-temper` | harden or reduce; `expand` and extra acceptance stop for a human; irreversible risk still pauses |
|
|
68
67
|
| 4 | `/rite-define` | approved plan/tasks/traceability |
|
|
69
68
|
| 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;
|
|
69
|
+
| 6 | `/rite-build` batch loop | largest eligible path-disjoint set (cap: this invocation's `--parallel N`, else sentinel `max_parallel`, else 10; serial if <2 eligible); refill per landing; charge once per landed slice |
|
|
71
70
|
| 7 | `/rite-prove` | all slices built except deferred (`Satisfies: none`); approved proof; recovery on red |
|
|
72
71
|
| 8 | `/rite-polish` | re-prove after code edits |
|
|
73
72
|
| 9 | `/rite-review` | in-scope correction then fresh proof |
|
|
@@ -11,9 +11,9 @@ user-invocable: true
|
|
|
11
11
|
|
|
12
12
|
# /rite-build: one verified slice
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
Active caller takes precedence per [output.md](reference/output.md#caller-owned-continuation).
|
|
15
|
+
Standalone HITL stops; standalone AFK chains under green proof, caps and pause
|
|
16
|
+
rules. Every wright returns after one slice.
|
|
17
17
|
**HITL:** `/rite-build --parallel N` (2≤N≤10; N=1≡serial) follows
|
|
18
18
|
[`reference/parallel-batch.md`](reference/parallel-batch.md)
|
|
19
19
|
([`one-slice-cycle.md`](reference/one-slice-cycle.md)).
|
|
@@ -109,10 +109,9 @@ AFK charges per landed sibling only. Running lease blocks another
|
|
|
109
109
|
|
|
110
110
|
Run every step in `reference/phase-contract.md`: readiness, one target, dispatch
|
|
111
111
|
or canonical transaction, return inspection, independent code/doubt/test analysis,
|
|
112
|
-
approved fail-on-red proof, record,
|
|
112
|
+
approved fail-on-red proof, record, and applicable accounting. Continue/reply via
|
|
113
113
|
[`reference/output.md`](reference/output.md) plus the shared
|
|
114
|
-
[`reply contract`](../devrites-lib/reference/reply-contract.md).
|
|
115
|
-
the next slice automatically; AFK obeys remaining budget; Prove requires every slice built except a
|
|
114
|
+
[`reply contract`](../devrites-lib/reference/reply-contract.md). Standalone AFK obeys remaining budget; Prove requires every slice built except a
|
|
116
115
|
[deferred slice](../rite-plan/reference/slicing.md#deferred-slice).
|
|
117
116
|
|
|
118
117
|
## Phase exit
|
|
@@ -2,22 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
> Root-only: not inlined in --role bundles.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
without per-slice user input. The rules below limit that unattended work.
|
|
7
|
-
|
|
8
|
-
Load the shared
|
|
5
|
+
`.devrites/AFK` enables unattended slice chaining. Load the shared
|
|
9
6
|
[`afk-hitl.md`](../../devrites-lib/reference/standards/afk-hitl.md#the-sentinel-devritesafk)
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
for sentinel schema, defaults, gate ceiling, and mutable-counter ownership.
|
|
8
|
+
This file owns Build dispatch, charging, and red paths.
|
|
12
9
|
|
|
13
|
-
Rules: green before `built`;
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
`dispatch abandon --reason`.
|
|
10
|
+
Rules: green before `built`; gates before their action; irreversible work
|
|
11
|
+
(destructive/auth/public API) pauses; no tick ends with an open/sealed wave —
|
|
12
|
+
wait for returns or `dispatch abandon --reason`.
|
|
17
13
|
|
|
18
14
|
## Iteration cap
|
|
19
15
|
|
|
20
|
-
|
|
16
|
+
Under active `/rite-autocomplete`, skip the slice-cap checks, charges, and cap-stop message below;
|
|
17
|
+
use its [admission rules](../../rite-autocomplete/reference/loop.md#admit-each-unattended-cycle).
|
|
18
|
+
Otherwise root owns cap:
|
|
21
19
|
|
|
22
20
|
1. **Before every dispatch**, re-read `.devrites/AFK`, `state.md`, and the
|
|
23
21
|
selected slice. This invocation's `--parallel N` is the cap when present;
|
|
@@ -10,12 +10,12 @@ Pack-wide rationalizations and red flags live in
|
|
|
10
10
|
|
|
11
11
|
| Excuse | Rebuttal |
|
|
12
12
|
|---|---|
|
|
13
|
-
| "Slices 1 and 2 are related; let me do both." |
|
|
13
|
+
| "Slices 1 and 2 are related; let me do both." | Caller first: [output.md](output.md#caller-owned-continuation). Standalone HITL stops; standalone AFK chains after green proof and cap/pause gates; each wright returns after one. |
|
|
14
14
|
| "It's faster to skip `devrites-doubt` for this small change." | Doubt is cheapest *before* the decision is standing. After is debugging. |
|
|
15
15
|
|
|
16
16
|
## Red Flags
|
|
17
17
|
|
|
18
|
-
-
|
|
18
|
+
- Next slice violates caller/standalone routing or proof/cap/pause gates.
|
|
19
19
|
- Skipping `devrites-doubt` on a branching, boundary, data-model, auth, public-API, or migration decision.
|
|
20
20
|
- Adding a dependency or a second design system without recording rationale in `decisions.md`.
|
|
21
21
|
- Writing a `try/catch` block wider than what you handle.
|
|
@@ -54,11 +54,16 @@ BODY
|
|
|
54
54
|
|
|
55
55
|
**Local-only:** never push or let scratch work trigger CI.
|
|
56
56
|
|
|
57
|
-
After
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
57
|
+
After green landing (parallel: successful integrate), check `state.md`
|
|
58
|
+
outside fences before reselecting:
|
|
59
|
+
|
|
60
|
+
```text
|
|
61
|
+
- [x] SLICE-004 built — <proof/checkpoint reference>
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
A cursor `built_slices` value or a tasks.md `Status: built` field is not a substitute.
|
|
65
|
+
After landing: `devrites-engine check regression <slug> --update`. Before landing,
|
|
66
|
+
restore or route `BLOCKED` lost facts.
|
|
62
67
|
|
|
63
68
|
## Restore
|
|
64
69
|
After a crash, a fresh session may read the last `WIP(<slug>)` body as crash context.
|