devrites 5.7.1 → 5.7.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 +6 -0
- package/README.md +4 -4
- package/pack/.claude/skills/devrites-lib/reference/standards/afk-hitl.md +7 -9
- package/pack/.claude/skills/devrites-lib/reference/standards/loop-operations.md +3 -3
- package/pack/.claude/skills/rite-autocomplete/SKILL.md +1 -1
- package/pack/.claude/skills/rite-autocomplete/reference/loop.md +8 -9
- package/pack/.claude/skills/rite-autocomplete/reference/stop-conditions.md +2 -3
- package/pack/generated/claude/skills/devrites-lib/reference/standards/afk-hitl.md +7 -9
- package/pack/generated/claude/skills/devrites-lib/reference/standards/loop-operations.md +3 -3
- package/pack/generated/claude/skills/rite-autocomplete/SKILL.md +1 -1
- package/pack/generated/claude/skills/rite-autocomplete/reference/loop.md +8 -9
- package/pack/generated/claude/skills/rite-autocomplete/reference/stop-conditions.md +2 -3
- package/pack/generated/codex/skills/devrites-lib/reference/standards/afk-hitl.md +7 -9
- package/pack/generated/codex/skills/devrites-lib/reference/standards/loop-operations.md +3 -3
- package/pack/generated/codex/skills/rite-autocomplete/SKILL.md +1 -1
- package/pack/generated/codex/skills/rite-autocomplete/reference/loop.md +8 -9
- package/pack/generated/codex/skills/rite-autocomplete/reference/stop-conditions.md +2 -3
- package/pack/generated/omp/skills/devrites-lib/reference/standards/afk-hitl.md +7 -9
- package/pack/generated/omp/skills/devrites-lib/reference/standards/loop-operations.md +3 -3
- package/pack/generated/omp/skills/rite-autocomplete/SKILL.md +1 -1
- package/pack/generated/omp/skills/rite-autocomplete/reference/loop.md +8 -9
- package/pack/generated/omp/skills/rite-autocomplete/reference/stop-conditions.md +2 -3
- package/pack/generated/pi/skills/devrites-lib/reference/standards/afk-hitl.md +7 -9
- package/pack/generated/pi/skills/devrites-lib/reference/standards/loop-operations.md +3 -3
- package/pack/generated/pi/skills/rite-autocomplete/SKILL.md +1 -1
- package/pack/generated/pi/skills/rite-autocomplete/reference/loop.md +8 -9
- package/pack/generated/pi/skills/rite-autocomplete/reference/stop-conditions.md +2 -3
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to DevRites are documented here. The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and DevRites adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). Releases are generated automatically by [semantic-release](https://semantic-release.gitbook.io/) from Conventional Commits on `main`.
|
|
4
4
|
|
|
5
|
+
## [5.7.2](https://github.com/ViktorsBaikers/DevRites/compare/v5.7.1...v5.7.2) (2026-09-14)
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
|
|
9
|
+
* **skills:** drop absolute AFK sentinel expiry so unattended runs finish ([#72](https://github.com/ViktorsBaikers/DevRites/issues/72)) ([3f880cb](https://github.com/ViktorsBaikers/DevRites/commit/3f880cb0c0e3072a1512c87229c9c1c38ef12417))
|
|
10
|
+
|
|
5
11
|
## [5.7.1](https://github.com/ViktorsBaikers/DevRites/compare/v5.7.0...v5.7.1) (2026-09-13)
|
|
6
12
|
|
|
7
13
|
### Fixed
|
package/README.md
CHANGED
|
@@ -33,7 +33,7 @@ project-conventional push, tag, or PR action, and archive the workspace.
|
|
|
33
33
|
Unattended runs may create local WIP checkpoint commits along the way, but they
|
|
34
34
|
remain local unless Ship's disclosed plan includes an approved remote action.
|
|
35
35
|
|
|
36
|
-
**Status:** [`v5.7.
|
|
36
|
+
**Status:** [`v5.7.2`](https://github.com/ViktorsBaikers/DevRites/releases/tag/v5.7.2): see [`CHANGELOG.md`](CHANGELOG.md) for release notes.
|
|
37
37
|
|
|
38
38
|
This is the latest published release; `main` may contain unreleased work.
|
|
39
39
|
|
|
@@ -239,7 +239,6 @@ max_slices: 10
|
|
|
239
239
|
max_agents: 32
|
|
240
240
|
max_minutes: 120
|
|
241
241
|
max_review_queue: 8
|
|
242
|
-
expires_at: "<ISO-8601 UTC timestamp>"
|
|
243
242
|
allow_gates: [advisory]
|
|
244
243
|
```
|
|
245
244
|
|
|
@@ -247,8 +246,9 @@ The workflow treats this file as configuration and never rewrites it.
|
|
|
247
246
|
`max_slices` seeds the remaining budget in the active feature's `state.md`; the
|
|
248
247
|
root charges that state exactly once after each green built slice and stops
|
|
249
248
|
before another dispatch at zero. Unattended slice work additionally requires a
|
|
250
|
-
valid `max_agents`, `max_minutes`,
|
|
251
|
-
sentinels that miss or malform these fail closed.
|
|
249
|
+
valid `max_agents`, `max_minutes`, and `max_review_queue`;
|
|
250
|
+
sentinels that miss or malform these fail closed. Leftover `expires_at` is
|
|
251
|
+
ignored and never rewritten. Delete `.devrites/AFK` to
|
|
252
252
|
return to HITL.
|
|
253
253
|
|
|
254
254
|
AFK still pauses for product, scope, or policy choices, irreversible risk,
|
|
@@ -54,7 +54,6 @@ max_slices: 10 # whole-workspace writer budget; seeds stat
|
|
|
54
54
|
max_agents: 32 # native agent dispatches in one host activation
|
|
55
55
|
max_minutes: 120 # wall-clock minutes in one host activation
|
|
56
56
|
max_review_queue: 8 # unresolved review/gate items admitted before fan-out stops
|
|
57
|
-
expires_at: "<ISO-8601 UTC timestamp>" # absolute unattended-authority expiry
|
|
58
57
|
# max_tokens: 200000 # optional stricter host-observed token cap
|
|
59
58
|
# max_cost_usd: 10 # optional stricter host-observed cost cap
|
|
60
59
|
notify: "ntfy.sh/my-topic" # shell command; examples: rite-build/reference/afk-discipline.md
|
|
@@ -108,7 +107,7 @@ candidate manifest to cover the whole recorded chain — run
|
|
|
108
107
|
|
|
109
108
|
- Only continuations recorded in the parent's `decisions.md` sequence
|
|
110
109
|
([slicing.md § Continuation workspaces](../../../rite-plan/reference/slicing.md#continuation-workspaces))
|
|
111
|
-
qualify; no recorded next entry, or the cap/
|
|
110
|
+
qualify; no recorded next entry, or the cap/review-queue bound reached, stops
|
|
112
111
|
with the winning reason.
|
|
113
112
|
- Milestones are **not** shipped: they stay sealed and unarchived in `.devrites/work/`
|
|
114
113
|
with `Next step: /rite-ship` preserved. Per-slice `WIP(<slug>)` checkpoints still
|
|
@@ -128,27 +127,26 @@ an explicit `/rite-build --parallel N` cap wins for that invocation.
|
|
|
128
127
|
## Unattended resource envelope
|
|
129
128
|
|
|
130
129
|
AFK writer admission needs a bounded input queue, effective slice cap, and valid
|
|
131
|
-
`max_agents`, `max_minutes`,
|
|
130
|
+
`max_agents`, `max_minutes`, and `max_review_queue`. Existing sentinels
|
|
132
131
|
that declare writer admission but miss/malform these fail closed; cold resume keeps the
|
|
133
|
-
state-owned slice counter.
|
|
132
|
+
state-owned slice counter. A leftover `expires_at` is ignored and never rewritten.
|
|
134
133
|
Read-only watchers use equivalent native caps from [`loop-operations.md`](loop-operations.md).
|
|
135
134
|
|
|
136
135
|
`max_agents` counts every leaf in the native activation, including failures and
|
|
137
136
|
parallel branches; do not add dispatch telemetry to `.devrites/`. `max_review_queue`
|
|
138
137
|
counts open validating questions plus unresolved admitted Critical/Important findings.
|
|
139
|
-
Above it stop; at it run only reconciliation that reduces the queue.
|
|
140
|
-
|
|
141
|
-
native caps; if declared but unobservable, stop.
|
|
138
|
+
Above it stop; at it run only reconciliation that reduces the queue. Optional
|
|
139
|
+
`max_tokens`/`max_cost_usd` lower enforceable native caps; if declared but unobservable, stop.
|
|
142
140
|
|
|
143
141
|
Numeric limits are nonnegative decimals. Before costly checks, fan-out, or writing,
|
|
144
142
|
run cheap readiness, reject overlap, count queue, and confirm agent/time/token/cost
|
|
145
143
|
headroom; re-check after every result. Never start one call that can exceed remaining
|
|
146
144
|
headroom. Agent/time/token/cost counters are per native activation and start fresh only
|
|
147
|
-
for a genuinely new activation. Slices, recovery attempts,
|
|
145
|
+
for a genuinely new activation. Slices, recovery attempts, and current
|
|
148
146
|
review queue remain durable/recomputed across wakes. Persist each activation stop and
|
|
149
147
|
checkpoint before notification.
|
|
150
148
|
|
|
151
|
-
New sentinels
|
|
149
|
+
New sentinels write no `expires_at` and no notification/token/cost cap.
|
|
152
150
|
Post-Vet pending count may lower slices. Existing files
|
|
153
151
|
never receive missing defaults implicitly.
|
|
154
152
|
|
|
@@ -38,13 +38,13 @@ Every unattended loop must name:
|
|
|
38
38
|
4. **Evaluator:** the skill's existing readiness, proof, review, or watcher verdict.
|
|
39
39
|
5. **Budget:** every applicable `.devrites/AFK` resource cap.
|
|
40
40
|
6. **Checkpoint:** durable workspace/evidence update before the turn ends.
|
|
41
|
-
7. **Stop:** success, human/safety/access gate,
|
|
41
|
+
7. **Stop:** success, human/safety/access gate, budget exhaustion, unchanged
|
|
42
42
|
no-progress fingerprint, host failure, or terminal external state.
|
|
43
43
|
8. **Notification:** optional native-host notification after state is durable; never a
|
|
44
44
|
substitute for recording the stop.
|
|
45
45
|
|
|
46
46
|
A read-only scheduled/event loop that has no active AFK workspace must still configure
|
|
47
|
-
native maximum activations/iterations
|
|
47
|
+
native maximum activations/iterations and wall time. Add token/cost
|
|
48
48
|
caps when the host exposes them. One observation cycle per wake is the work unit; the
|
|
49
49
|
skill never starts its own timer or background poller.
|
|
50
50
|
|
|
@@ -76,7 +76,7 @@ armed AFK workspace whose exact scope, gates, and budgets permit it.
|
|
|
76
76
|
is `gap`/`cannot_verify`, never success.
|
|
77
77
|
- Do not retry unchanged work merely because a timer fired. Apply the exact
|
|
78
78
|
causal-fingerprint recovery cap ([`afk-hitl.md`](afk-hitl.md)).
|
|
79
|
-
- A cold resume continues durable slice/recovery state
|
|
79
|
+
- A cold resume continues durable slice/recovery state. Fresh
|
|
80
80
|
native activation counters follow `afk-hitl.md`; no durable bound is reinitialized.
|
|
81
81
|
- Native notifications fire only after evidence and stop state are written.
|
|
82
82
|
|
|
@@ -48,7 +48,7 @@ executable controller/harness/bundle bytes or a missing writer, read
|
|
|
48
48
|
- Every exact causal fingerprint gets at most three no-progress corrections.
|
|
49
49
|
Closing one is progress; a distinct Critical/Important invariant has its own
|
|
50
50
|
budget. Lower severity cannot prolong recovery.
|
|
51
|
-
- Enforce `--max-slices`, the AFK sentinel,
|
|
51
|
+
- Enforce `--max-slices`, the AFK sentinel, review queue, and native
|
|
52
52
|
agent/token/cost/time limits before every phase or dispatch. Count failed,
|
|
53
53
|
malformed, and unavailable leaf calls. At the review cap, permit only work
|
|
54
54
|
that reduces the queue.
|
|
@@ -18,7 +18,6 @@ max_slices: 10
|
|
|
18
18
|
max_agents: 32
|
|
19
19
|
max_minutes: 120
|
|
20
20
|
max_review_queue: 8
|
|
21
|
-
expires_at: "<now + 4 hours>"
|
|
22
21
|
# continue_sequence: true # opt-in: chain recorded continuations after Seal GO
|
|
23
22
|
# max_workspaces: 5 # sequence budget when chaining
|
|
24
23
|
# max_parallel: 10 # Build batch cap; 1 = serial (default: eligible, cap 10)
|
|
@@ -28,11 +27,11 @@ expires_at: "<now + 4 hours>"
|
|
|
28
27
|
```
|
|
29
28
|
|
|
30
29
|
Read an existing sentinel first. Preserve it byte-for-byte when valid; stop if
|
|
31
|
-
its gate ceiling exceeds advisory, required envelope is malformed
|
|
30
|
+
its gate ceiling exceeds advisory, required envelope is malformed, or
|
|
32
31
|
`max_slices` conflicts with the invocation. If absent, write it once after
|
|
33
|
-
clarity, replacing the safe slice default only for explicit `--max-slices N
|
|
34
|
-
|
|
35
|
-
|
|
32
|
+
clarity, replacing the safe slice default only for explicit `--max-slices N`.
|
|
33
|
+
It is read-only: never rewrite it after Vet or reset it on resume. Leftover
|
|
34
|
+
`expires_at` is ignored and never rewritten.
|
|
36
35
|
|
|
37
36
|
### Derive the mutable post-vet budget
|
|
38
37
|
|
|
@@ -45,12 +44,12 @@ or reinitialize it. AFK configuration itself stays unchanged.
|
|
|
45
44
|
|
|
46
45
|
Before every phase, review fan-out, recovery, or writer dispatch, apply
|
|
47
46
|
[`afk-hitl.md`](../../devrites-lib/reference/standards/afk-hitl.md#unattended-resource-envelope): cheapest current-state/readiness
|
|
48
|
-
check first; reject overlap; count unresolved review; check
|
|
47
|
+
check first; reject overlap; count unresolved review; check native
|
|
49
48
|
agent/token/cost/time headroom. Count every leaf result. At the review cap, only
|
|
50
49
|
reconciliation that reduces the queue may run. Any reached or unobservable
|
|
51
50
|
bound stops before more work and persists the winning reason. A new activation
|
|
52
|
-
gets fresh activation-local counters but retains durable slice/recovery state
|
|
53
|
-
|
|
51
|
+
gets fresh activation-local counters but retains durable slice/recovery state
|
|
52
|
+
and recomputed queue.
|
|
54
53
|
|
|
55
54
|
`allow_gates: [advisory]` means validating gates pause now rather than becoming
|
|
56
55
|
Seal NO-GO. Only explicit human configuration outside Autocomplete may widen it.
|
|
@@ -100,7 +99,7 @@ fields are missing is re-seeded from its `brief.md` parent/position and the
|
|
|
100
99
|
parent's counter (same values, never a second charge); a child with no recorded
|
|
101
100
|
parent/position is not a sequence member and the chain stops.
|
|
102
101
|
|
|
103
|
-
Stop instead when: no recorded next entry; the cap
|
|
102
|
+
Stop instead when: no recorded next entry; the cap or review-queue bound is
|
|
104
103
|
reached; a human-owned, safety, access, or exhaustion condition fires; or Seal returns
|
|
105
104
|
`NO-GO`. On stop, report the sequence position, the sealed-but-unshipped workspaces, and
|
|
106
105
|
the single release command (`/rite-autocomplete <release milestone> --ship`, or
|
|
@@ -71,11 +71,10 @@ exhausted.
|
|
|
71
71
|
when slices remain; malformed state also stops. Report whether the winning
|
|
72
72
|
bound was the pre-existing remaining value, explicit flag, sentinel cap, or post-vet pending count.
|
|
73
73
|
Zero with no pending slices is normal completion and proceeds to Prove.
|
|
74
|
-
- **Resource envelope:** missing/malformed
|
|
74
|
+
- **Resource envelope:** missing/malformed AFK, overlapping run,
|
|
75
75
|
exhausted/unobservable declared agent/token/cost/time headroom, or review queue
|
|
76
76
|
above cap. At cap, only queue-reducing reconciliation may run. Persist winning
|
|
77
|
-
bound and observed usage; a new activation does not reset durable budgets
|
|
78
|
-
expiry.
|
|
77
|
+
bound and observed usage; a new activation does not reset durable budgets.
|
|
79
78
|
- **Confidence:** intent still cannot become testable acceptance after interview.
|
|
80
79
|
- **Repeated failure:** the exact fingerprint's bounded recovery is exhausted.
|
|
81
80
|
|
|
@@ -54,7 +54,6 @@ max_slices: 10 # whole-workspace writer budget; seeds stat
|
|
|
54
54
|
max_agents: 32 # native agent dispatches in one host activation
|
|
55
55
|
max_minutes: 120 # wall-clock minutes in one host activation
|
|
56
56
|
max_review_queue: 8 # unresolved review/gate items admitted before fan-out stops
|
|
57
|
-
expires_at: "<ISO-8601 UTC timestamp>" # absolute unattended-authority expiry
|
|
58
57
|
# max_tokens: 200000 # optional stricter host-observed token cap
|
|
59
58
|
# max_cost_usd: 10 # optional stricter host-observed cost cap
|
|
60
59
|
notify: "ntfy.sh/my-topic" # shell command; examples: rite-build/reference/afk-discipline.md
|
|
@@ -108,7 +107,7 @@ candidate manifest to cover the whole recorded chain — run
|
|
|
108
107
|
|
|
109
108
|
- Only continuations recorded in the parent's `decisions.md` sequence
|
|
110
109
|
([slicing.md § Continuation workspaces](../../../rite-plan/reference/slicing.md#continuation-workspaces))
|
|
111
|
-
qualify; no recorded next entry, or the cap/
|
|
110
|
+
qualify; no recorded next entry, or the cap/review-queue bound reached, stops
|
|
112
111
|
with the winning reason.
|
|
113
112
|
- Milestones are **not** shipped: they stay sealed and unarchived in `.devrites/work/`
|
|
114
113
|
with `Next step: /rite-ship` preserved. Per-slice `WIP(<slug>)` checkpoints still
|
|
@@ -128,27 +127,26 @@ an explicit `/rite-build --parallel N` cap wins for that invocation.
|
|
|
128
127
|
## Unattended resource envelope
|
|
129
128
|
|
|
130
129
|
AFK writer admission needs a bounded input queue, effective slice cap, and valid
|
|
131
|
-
`max_agents`, `max_minutes`,
|
|
130
|
+
`max_agents`, `max_minutes`, and `max_review_queue`. Existing sentinels
|
|
132
131
|
that declare writer admission but miss/malform these fail closed; cold resume keeps the
|
|
133
|
-
state-owned slice counter.
|
|
132
|
+
state-owned slice counter. A leftover `expires_at` is ignored and never rewritten.
|
|
134
133
|
Read-only watchers use equivalent native caps from [`loop-operations.md`](loop-operations.md).
|
|
135
134
|
|
|
136
135
|
`max_agents` counts every leaf in the native activation, including failures and
|
|
137
136
|
parallel branches; do not add dispatch telemetry to `.devrites/`. `max_review_queue`
|
|
138
137
|
counts open validating questions plus unresolved admitted Critical/Important findings.
|
|
139
|
-
Above it stop; at it run only reconciliation that reduces the queue.
|
|
140
|
-
|
|
141
|
-
native caps; if declared but unobservable, stop.
|
|
138
|
+
Above it stop; at it run only reconciliation that reduces the queue. Optional
|
|
139
|
+
`max_tokens`/`max_cost_usd` lower enforceable native caps; if declared but unobservable, stop.
|
|
142
140
|
|
|
143
141
|
Numeric limits are nonnegative decimals. Before costly checks, fan-out, or writing,
|
|
144
142
|
run cheap readiness, reject overlap, count queue, and confirm agent/time/token/cost
|
|
145
143
|
headroom; re-check after every result. Never start one call that can exceed remaining
|
|
146
144
|
headroom. Agent/time/token/cost counters are per native activation and start fresh only
|
|
147
|
-
for a genuinely new activation. Slices, recovery attempts,
|
|
145
|
+
for a genuinely new activation. Slices, recovery attempts, and current
|
|
148
146
|
review queue remain durable/recomputed across wakes. Persist each activation stop and
|
|
149
147
|
checkpoint before notification.
|
|
150
148
|
|
|
151
|
-
New sentinels
|
|
149
|
+
New sentinels write no `expires_at` and no notification/token/cost cap.
|
|
152
150
|
Post-Vet pending count may lower slices. Existing files
|
|
153
151
|
never receive missing defaults implicitly.
|
|
154
152
|
|
|
@@ -38,13 +38,13 @@ Every unattended loop must name:
|
|
|
38
38
|
4. **Evaluator:** the skill's existing readiness, proof, review, or watcher verdict.
|
|
39
39
|
5. **Budget:** every applicable `.devrites/AFK` resource cap.
|
|
40
40
|
6. **Checkpoint:** durable workspace/evidence update before the turn ends.
|
|
41
|
-
7. **Stop:** success, human/safety/access gate,
|
|
41
|
+
7. **Stop:** success, human/safety/access gate, budget exhaustion, unchanged
|
|
42
42
|
no-progress fingerprint, host failure, or terminal external state.
|
|
43
43
|
8. **Notification:** optional native-host notification after state is durable; never a
|
|
44
44
|
substitute for recording the stop.
|
|
45
45
|
|
|
46
46
|
A read-only scheduled/event loop that has no active AFK workspace must still configure
|
|
47
|
-
native maximum activations/iterations
|
|
47
|
+
native maximum activations/iterations and wall time. Add token/cost
|
|
48
48
|
caps when the host exposes them. One observation cycle per wake is the work unit; the
|
|
49
49
|
skill never starts its own timer or background poller.
|
|
50
50
|
|
|
@@ -76,7 +76,7 @@ armed AFK workspace whose exact scope, gates, and budgets permit it.
|
|
|
76
76
|
is `gap`/`cannot_verify`, never success.
|
|
77
77
|
- Do not retry unchanged work merely because a timer fired. Apply the exact
|
|
78
78
|
causal-fingerprint recovery cap ([`afk-hitl.md`](afk-hitl.md)).
|
|
79
|
-
- A cold resume continues durable slice/recovery state
|
|
79
|
+
- A cold resume continues durable slice/recovery state. Fresh
|
|
80
80
|
native activation counters follow `afk-hitl.md`; no durable bound is reinitialized.
|
|
81
81
|
- Native notifications fire only after evidence and stop state are written.
|
|
82
82
|
|
|
@@ -48,7 +48,7 @@ executable controller/harness/bundle bytes or a missing writer, read
|
|
|
48
48
|
- Every exact causal fingerprint gets at most three no-progress corrections.
|
|
49
49
|
Closing one is progress; a distinct Critical/Important invariant has its own
|
|
50
50
|
budget. Lower severity cannot prolong recovery.
|
|
51
|
-
- Enforce `--max-slices`, the AFK sentinel,
|
|
51
|
+
- Enforce `--max-slices`, the AFK sentinel, review queue, and native
|
|
52
52
|
agent/token/cost/time limits before every phase or dispatch. Count failed,
|
|
53
53
|
malformed, and unavailable leaf calls. At the review cap, permit only work
|
|
54
54
|
that reduces the queue.
|
|
@@ -18,7 +18,6 @@ max_slices: 10
|
|
|
18
18
|
max_agents: 32
|
|
19
19
|
max_minutes: 120
|
|
20
20
|
max_review_queue: 8
|
|
21
|
-
expires_at: "<now + 4 hours>"
|
|
22
21
|
# continue_sequence: true # opt-in: chain recorded continuations after Seal GO
|
|
23
22
|
# max_workspaces: 5 # sequence budget when chaining
|
|
24
23
|
# max_parallel: 10 # Build batch cap; 1 = serial (default: eligible, cap 10)
|
|
@@ -28,11 +27,11 @@ expires_at: "<now + 4 hours>"
|
|
|
28
27
|
```
|
|
29
28
|
|
|
30
29
|
Read an existing sentinel first. Preserve it byte-for-byte when valid; stop if
|
|
31
|
-
its gate ceiling exceeds advisory, required envelope is malformed
|
|
30
|
+
its gate ceiling exceeds advisory, required envelope is malformed, or
|
|
32
31
|
`max_slices` conflicts with the invocation. If absent, write it once after
|
|
33
|
-
clarity, replacing the safe slice default only for explicit `--max-slices N
|
|
34
|
-
|
|
35
|
-
|
|
32
|
+
clarity, replacing the safe slice default only for explicit `--max-slices N`.
|
|
33
|
+
It is read-only: never rewrite it after Vet or reset it on resume. Leftover
|
|
34
|
+
`expires_at` is ignored and never rewritten.
|
|
36
35
|
|
|
37
36
|
### Derive the mutable post-vet budget
|
|
38
37
|
|
|
@@ -45,12 +44,12 @@ or reinitialize it. AFK configuration itself stays unchanged.
|
|
|
45
44
|
|
|
46
45
|
Before every phase, review fan-out, recovery, or writer dispatch, apply
|
|
47
46
|
[`afk-hitl.md`](../../devrites-lib/reference/standards/afk-hitl.md#unattended-resource-envelope): cheapest current-state/readiness
|
|
48
|
-
check first; reject overlap; count unresolved review; check
|
|
47
|
+
check first; reject overlap; count unresolved review; check native
|
|
49
48
|
agent/token/cost/time headroom. Count every leaf result. At the review cap, only
|
|
50
49
|
reconciliation that reduces the queue may run. Any reached or unobservable
|
|
51
50
|
bound stops before more work and persists the winning reason. A new activation
|
|
52
|
-
gets fresh activation-local counters but retains durable slice/recovery state
|
|
53
|
-
|
|
51
|
+
gets fresh activation-local counters but retains durable slice/recovery state
|
|
52
|
+
and recomputed queue.
|
|
54
53
|
|
|
55
54
|
`allow_gates: [advisory]` means validating gates pause now rather than becoming
|
|
56
55
|
Seal NO-GO. Only explicit human configuration outside Autocomplete may widen it.
|
|
@@ -100,7 +99,7 @@ fields are missing is re-seeded from its `brief.md` parent/position and the
|
|
|
100
99
|
parent's counter (same values, never a second charge); a child with no recorded
|
|
101
100
|
parent/position is not a sequence member and the chain stops.
|
|
102
101
|
|
|
103
|
-
Stop instead when: no recorded next entry; the cap
|
|
102
|
+
Stop instead when: no recorded next entry; the cap or review-queue bound is
|
|
104
103
|
reached; a human-owned, safety, access, or exhaustion condition fires; or Seal returns
|
|
105
104
|
`NO-GO`. On stop, report the sequence position, the sealed-but-unshipped workspaces, and
|
|
106
105
|
the single release command (`/rite-autocomplete <release milestone> --ship`, or
|
|
@@ -71,11 +71,10 @@ exhausted.
|
|
|
71
71
|
when slices remain; malformed state also stops. Report whether the winning
|
|
72
72
|
bound was the pre-existing remaining value, explicit flag, sentinel cap, or post-vet pending count.
|
|
73
73
|
Zero with no pending slices is normal completion and proceeds to Prove.
|
|
74
|
-
- **Resource envelope:** missing/malformed
|
|
74
|
+
- **Resource envelope:** missing/malformed AFK, overlapping run,
|
|
75
75
|
exhausted/unobservable declared agent/token/cost/time headroom, or review queue
|
|
76
76
|
above cap. At cap, only queue-reducing reconciliation may run. Persist winning
|
|
77
|
-
bound and observed usage; a new activation does not reset durable budgets
|
|
78
|
-
expiry.
|
|
77
|
+
bound and observed usage; a new activation does not reset durable budgets.
|
|
79
78
|
- **Confidence:** intent still cannot become testable acceptance after interview.
|
|
80
79
|
- **Repeated failure:** the exact fingerprint's bounded recovery is exhausted.
|
|
81
80
|
|
|
@@ -54,7 +54,6 @@ max_slices: 10 # whole-workspace writer budget; seeds stat
|
|
|
54
54
|
max_agents: 32 # native agent dispatches in one host activation
|
|
55
55
|
max_minutes: 120 # wall-clock minutes in one host activation
|
|
56
56
|
max_review_queue: 8 # unresolved review/gate items admitted before fan-out stops
|
|
57
|
-
expires_at: "<ISO-8601 UTC timestamp>" # absolute unattended-authority expiry
|
|
58
57
|
# max_tokens: 200000 # optional stricter host-observed token cap
|
|
59
58
|
# max_cost_usd: 10 # optional stricter host-observed cost cap
|
|
60
59
|
notify: "ntfy.sh/my-topic" # shell command; examples: rite-build/reference/afk-discipline.md
|
|
@@ -108,7 +107,7 @@ candidate manifest to cover the whole recorded chain — run
|
|
|
108
107
|
|
|
109
108
|
- Only continuations recorded in the parent's `decisions.md` sequence
|
|
110
109
|
([slicing.md § Continuation workspaces](../../../rite-plan/reference/slicing.md#continuation-workspaces))
|
|
111
|
-
qualify; no recorded next entry, or the cap/
|
|
110
|
+
qualify; no recorded next entry, or the cap/review-queue bound reached, stops
|
|
112
111
|
with the winning reason.
|
|
113
112
|
- Milestones are **not** shipped: they stay sealed and unarchived in `.devrites/work/`
|
|
114
113
|
with `Next step: $rite-ship` preserved. Per-slice `WIP(<slug>)` checkpoints still
|
|
@@ -128,27 +127,26 @@ an explicit `$rite-build --parallel N` cap wins for that invocation.
|
|
|
128
127
|
## Unattended resource envelope
|
|
129
128
|
|
|
130
129
|
AFK writer admission needs a bounded input queue, effective slice cap, and valid
|
|
131
|
-
`max_agents`, `max_minutes`,
|
|
130
|
+
`max_agents`, `max_minutes`, and `max_review_queue`. Existing sentinels
|
|
132
131
|
that declare writer admission but miss/malform these fail closed; cold resume keeps the
|
|
133
|
-
state-owned slice counter.
|
|
132
|
+
state-owned slice counter. A leftover `expires_at` is ignored and never rewritten.
|
|
134
133
|
Read-only watchers use equivalent native caps from [`loop-operations.md`](loop-operations.md).
|
|
135
134
|
|
|
136
135
|
`max_agents` counts every leaf in the native activation, including failures and
|
|
137
136
|
parallel branches; do not add dispatch telemetry to `.devrites/`. `max_review_queue`
|
|
138
137
|
counts open validating questions plus unresolved admitted Critical/Important findings.
|
|
139
|
-
Above it stop; at it run only reconciliation that reduces the queue.
|
|
140
|
-
|
|
141
|
-
native caps; if declared but unobservable, stop.
|
|
138
|
+
Above it stop; at it run only reconciliation that reduces the queue. Optional
|
|
139
|
+
`max_tokens`/`max_cost_usd` lower enforceable native caps; if declared but unobservable, stop.
|
|
142
140
|
|
|
143
141
|
Numeric limits are nonnegative decimals. Before costly checks, fan-out, or writing,
|
|
144
142
|
run cheap readiness, reject overlap, count queue, and confirm agent/time/token/cost
|
|
145
143
|
headroom; re-check after every result. Never start one call that can exceed remaining
|
|
146
144
|
headroom. Agent/time/token/cost counters are per native activation and start fresh only
|
|
147
|
-
for a genuinely new activation. Slices, recovery attempts,
|
|
145
|
+
for a genuinely new activation. Slices, recovery attempts, and current
|
|
148
146
|
review queue remain durable/recomputed across wakes. Persist each activation stop and
|
|
149
147
|
checkpoint before notification.
|
|
150
148
|
|
|
151
|
-
New sentinels
|
|
149
|
+
New sentinels write no `expires_at` and no notification/token/cost cap.
|
|
152
150
|
Post-Vet pending count may lower slices. Existing files
|
|
153
151
|
never receive missing defaults implicitly.
|
|
154
152
|
|
|
@@ -38,13 +38,13 @@ Every unattended loop must name:
|
|
|
38
38
|
4. **Evaluator:** the skill's existing readiness, proof, review, or watcher verdict.
|
|
39
39
|
5. **Budget:** every applicable `.devrites/AFK` resource cap.
|
|
40
40
|
6. **Checkpoint:** durable workspace/evidence update before the turn ends.
|
|
41
|
-
7. **Stop:** success, human/safety/access gate,
|
|
41
|
+
7. **Stop:** success, human/safety/access gate, budget exhaustion, unchanged
|
|
42
42
|
no-progress fingerprint, host failure, or terminal external state.
|
|
43
43
|
8. **Notification:** optional native-host notification after state is durable; never a
|
|
44
44
|
substitute for recording the stop.
|
|
45
45
|
|
|
46
46
|
A read-only scheduled/event loop that has no active AFK workspace must still configure
|
|
47
|
-
native maximum activations/iterations
|
|
47
|
+
native maximum activations/iterations and wall time. Add token/cost
|
|
48
48
|
caps when the host exposes them. One observation cycle per wake is the work unit; the
|
|
49
49
|
skill never starts its own timer or background poller.
|
|
50
50
|
|
|
@@ -76,7 +76,7 @@ armed AFK workspace whose exact scope, gates, and budgets permit it.
|
|
|
76
76
|
is `gap`/`cannot_verify`, never success.
|
|
77
77
|
- Do not retry unchanged work merely because a timer fired. Apply the exact
|
|
78
78
|
causal-fingerprint recovery cap ([`afk-hitl.md`](afk-hitl.md)).
|
|
79
|
-
- A cold resume continues durable slice/recovery state
|
|
79
|
+
- A cold resume continues durable slice/recovery state. Fresh
|
|
80
80
|
native activation counters follow `afk-hitl.md`; no durable bound is reinitialized.
|
|
81
81
|
- Native notifications fire only after evidence and stop state are written.
|
|
82
82
|
|
|
@@ -48,7 +48,7 @@ executable controller/harness/bundle bytes or a missing writer, read
|
|
|
48
48
|
- Every exact causal fingerprint gets at most three no-progress corrections.
|
|
49
49
|
Closing one is progress; a distinct Critical/Important invariant has its own
|
|
50
50
|
budget. Lower severity cannot prolong recovery.
|
|
51
|
-
- Enforce `--max-slices`, the AFK sentinel,
|
|
51
|
+
- Enforce `--max-slices`, the AFK sentinel, review queue, and native
|
|
52
52
|
agent/token/cost/time limits before every phase or dispatch. Count failed,
|
|
53
53
|
malformed, and unavailable leaf calls. At the review cap, permit only work
|
|
54
54
|
that reduces the queue.
|
|
@@ -18,7 +18,6 @@ max_slices: 10
|
|
|
18
18
|
max_agents: 32
|
|
19
19
|
max_minutes: 120
|
|
20
20
|
max_review_queue: 8
|
|
21
|
-
expires_at: "<now + 4 hours>"
|
|
22
21
|
# continue_sequence: true # opt-in: chain recorded continuations after Seal GO
|
|
23
22
|
# max_workspaces: 5 # sequence budget when chaining
|
|
24
23
|
# max_parallel: 10 # Build batch cap; 1 = serial (default: eligible, cap 10)
|
|
@@ -28,11 +27,11 @@ expires_at: "<now + 4 hours>"
|
|
|
28
27
|
```
|
|
29
28
|
|
|
30
29
|
Read an existing sentinel first. Preserve it byte-for-byte when valid; stop if
|
|
31
|
-
its gate ceiling exceeds advisory, required envelope is malformed
|
|
30
|
+
its gate ceiling exceeds advisory, required envelope is malformed, or
|
|
32
31
|
`max_slices` conflicts with the invocation. If absent, write it once after
|
|
33
|
-
clarity, replacing the safe slice default only for explicit `--max-slices N
|
|
34
|
-
|
|
35
|
-
|
|
32
|
+
clarity, replacing the safe slice default only for explicit `--max-slices N`.
|
|
33
|
+
It is read-only: never rewrite it after Vet or reset it on resume. Leftover
|
|
34
|
+
`expires_at` is ignored and never rewritten.
|
|
36
35
|
|
|
37
36
|
### Derive the mutable post-vet budget
|
|
38
37
|
|
|
@@ -45,12 +44,12 @@ or reinitialize it. AFK configuration itself stays unchanged.
|
|
|
45
44
|
|
|
46
45
|
Before every phase, review fan-out, recovery, or writer dispatch, apply
|
|
47
46
|
[`afk-hitl.md`](../../devrites-lib/reference/standards/afk-hitl.md#unattended-resource-envelope): cheapest current-state/readiness
|
|
48
|
-
check first; reject overlap; count unresolved review; check
|
|
47
|
+
check first; reject overlap; count unresolved review; check native
|
|
49
48
|
agent/token/cost/time headroom. Count every leaf result. At the review cap, only
|
|
50
49
|
reconciliation that reduces the queue may run. Any reached or unobservable
|
|
51
50
|
bound stops before more work and persists the winning reason. A new activation
|
|
52
|
-
gets fresh activation-local counters but retains durable slice/recovery state
|
|
53
|
-
|
|
51
|
+
gets fresh activation-local counters but retains durable slice/recovery state
|
|
52
|
+
and recomputed queue.
|
|
54
53
|
|
|
55
54
|
`allow_gates: [advisory]` means validating gates pause now rather than becoming
|
|
56
55
|
Seal NO-GO. Only explicit human configuration outside Autocomplete may widen it.
|
|
@@ -100,7 +99,7 @@ fields are missing is re-seeded from its `brief.md` parent/position and the
|
|
|
100
99
|
parent's counter (same values, never a second charge); a child with no recorded
|
|
101
100
|
parent/position is not a sequence member and the chain stops.
|
|
102
101
|
|
|
103
|
-
Stop instead when: no recorded next entry; the cap
|
|
102
|
+
Stop instead when: no recorded next entry; the cap or review-queue bound is
|
|
104
103
|
reached; a human-owned, safety, access, or exhaustion condition fires; or Seal returns
|
|
105
104
|
`NO-GO`. On stop, report the sequence position, the sealed-but-unshipped workspaces, and
|
|
106
105
|
the single release command (`$rite-autocomplete <release milestone> --ship`, or
|
|
@@ -71,11 +71,10 @@ exhausted.
|
|
|
71
71
|
when slices remain; malformed state also stops. Report whether the winning
|
|
72
72
|
bound was the pre-existing remaining value, explicit flag, sentinel cap, or post-vet pending count.
|
|
73
73
|
Zero with no pending slices is normal completion and proceeds to Prove.
|
|
74
|
-
- **Resource envelope:** missing/malformed
|
|
74
|
+
- **Resource envelope:** missing/malformed AFK, overlapping run,
|
|
75
75
|
exhausted/unobservable declared agent/token/cost/time headroom, or review queue
|
|
76
76
|
above cap. At cap, only queue-reducing reconciliation may run. Persist winning
|
|
77
|
-
bound and observed usage; a new activation does not reset durable budgets
|
|
78
|
-
expiry.
|
|
77
|
+
bound and observed usage; a new activation does not reset durable budgets.
|
|
79
78
|
- **Confidence:** intent still cannot become testable acceptance after interview.
|
|
80
79
|
- **Repeated failure:** the exact fingerprint's bounded recovery is exhausted.
|
|
81
80
|
|
|
@@ -54,7 +54,6 @@ max_slices: 10 # whole-workspace writer budget; seeds stat
|
|
|
54
54
|
max_agents: 32 # native agent dispatches in one host activation
|
|
55
55
|
max_minutes: 120 # wall-clock minutes in one host activation
|
|
56
56
|
max_review_queue: 8 # unresolved review/gate items admitted before fan-out stops
|
|
57
|
-
expires_at: "<ISO-8601 UTC timestamp>" # absolute unattended-authority expiry
|
|
58
57
|
# max_tokens: 200000 # optional stricter host-observed token cap
|
|
59
58
|
# max_cost_usd: 10 # optional stricter host-observed cost cap
|
|
60
59
|
notify: "ntfy.sh/my-topic" # shell command; examples: rite-build/reference/afk-discipline.md
|
|
@@ -108,7 +107,7 @@ candidate manifest to cover the whole recorded chain — run
|
|
|
108
107
|
|
|
109
108
|
- Only continuations recorded in the parent's `decisions.md` sequence
|
|
110
109
|
([slicing.md § Continuation workspaces](../../../rite-plan/reference/slicing.md#continuation-workspaces))
|
|
111
|
-
qualify; no recorded next entry, or the cap/
|
|
110
|
+
qualify; no recorded next entry, or the cap/review-queue bound reached, stops
|
|
112
111
|
with the winning reason.
|
|
113
112
|
- Milestones are **not** shipped: they stay sealed and unarchived in `.devrites/work/`
|
|
114
113
|
with `Next step: /rite-ship` preserved. Per-slice `WIP(<slug>)` checkpoints still
|
|
@@ -128,27 +127,26 @@ an explicit `/rite-build --parallel N` cap wins for that invocation.
|
|
|
128
127
|
## Unattended resource envelope
|
|
129
128
|
|
|
130
129
|
AFK writer admission needs a bounded input queue, effective slice cap, and valid
|
|
131
|
-
`max_agents`, `max_minutes`,
|
|
130
|
+
`max_agents`, `max_minutes`, and `max_review_queue`. Existing sentinels
|
|
132
131
|
that declare writer admission but miss/malform these fail closed; cold resume keeps the
|
|
133
|
-
state-owned slice counter.
|
|
132
|
+
state-owned slice counter. A leftover `expires_at` is ignored and never rewritten.
|
|
134
133
|
Read-only watchers use equivalent native caps from [`loop-operations.md`](loop-operations.md).
|
|
135
134
|
|
|
136
135
|
`max_agents` counts every leaf in the native activation, including failures and
|
|
137
136
|
parallel branches; do not add dispatch telemetry to `.devrites/`. `max_review_queue`
|
|
138
137
|
counts open validating questions plus unresolved admitted Critical/Important findings.
|
|
139
|
-
Above it stop; at it run only reconciliation that reduces the queue.
|
|
140
|
-
|
|
141
|
-
native caps; if declared but unobservable, stop.
|
|
138
|
+
Above it stop; at it run only reconciliation that reduces the queue. Optional
|
|
139
|
+
`max_tokens`/`max_cost_usd` lower enforceable native caps; if declared but unobservable, stop.
|
|
142
140
|
|
|
143
141
|
Numeric limits are nonnegative decimals. Before costly checks, fan-out, or writing,
|
|
144
142
|
run cheap readiness, reject overlap, count queue, and confirm agent/time/token/cost
|
|
145
143
|
headroom; re-check after every result. Never start one call that can exceed remaining
|
|
146
144
|
headroom. Agent/time/token/cost counters are per native activation and start fresh only
|
|
147
|
-
for a genuinely new activation. Slices, recovery attempts,
|
|
145
|
+
for a genuinely new activation. Slices, recovery attempts, and current
|
|
148
146
|
review queue remain durable/recomputed across wakes. Persist each activation stop and
|
|
149
147
|
checkpoint before notification.
|
|
150
148
|
|
|
151
|
-
New sentinels
|
|
149
|
+
New sentinels write no `expires_at` and no notification/token/cost cap.
|
|
152
150
|
Post-Vet pending count may lower slices. Existing files
|
|
153
151
|
never receive missing defaults implicitly.
|
|
154
152
|
|
|
@@ -38,13 +38,13 @@ Every unattended loop must name:
|
|
|
38
38
|
4. **Evaluator:** the skill's existing readiness, proof, review, or watcher verdict.
|
|
39
39
|
5. **Budget:** every applicable `.devrites/AFK` resource cap.
|
|
40
40
|
6. **Checkpoint:** durable workspace/evidence update before the turn ends.
|
|
41
|
-
7. **Stop:** success, human/safety/access gate,
|
|
41
|
+
7. **Stop:** success, human/safety/access gate, budget exhaustion, unchanged
|
|
42
42
|
no-progress fingerprint, host failure, or terminal external state.
|
|
43
43
|
8. **Notification:** optional native-host notification after state is durable; never a
|
|
44
44
|
substitute for recording the stop.
|
|
45
45
|
|
|
46
46
|
A read-only scheduled/event loop that has no active AFK workspace must still configure
|
|
47
|
-
native maximum activations/iterations
|
|
47
|
+
native maximum activations/iterations and wall time. Add token/cost
|
|
48
48
|
caps when the host exposes them. One observation cycle per wake is the work unit; the
|
|
49
49
|
skill never starts its own timer or background poller.
|
|
50
50
|
|
|
@@ -76,7 +76,7 @@ armed AFK workspace whose exact scope, gates, and budgets permit it.
|
|
|
76
76
|
is `gap`/`cannot_verify`, never success.
|
|
77
77
|
- Do not retry unchanged work merely because a timer fired. Apply the exact
|
|
78
78
|
causal-fingerprint recovery cap ([`afk-hitl.md`](afk-hitl.md)).
|
|
79
|
-
- A cold resume continues durable slice/recovery state
|
|
79
|
+
- A cold resume continues durable slice/recovery state. Fresh
|
|
80
80
|
native activation counters follow `afk-hitl.md`; no durable bound is reinitialized.
|
|
81
81
|
- Native notifications fire only after evidence and stop state are written.
|
|
82
82
|
|
|
@@ -48,7 +48,7 @@ executable controller/harness/bundle bytes or a missing writer, read
|
|
|
48
48
|
- Every exact causal fingerprint gets at most three no-progress corrections.
|
|
49
49
|
Closing one is progress; a distinct Critical/Important invariant has its own
|
|
50
50
|
budget. Lower severity cannot prolong recovery.
|
|
51
|
-
- Enforce `--max-slices`, the AFK sentinel,
|
|
51
|
+
- Enforce `--max-slices`, the AFK sentinel, review queue, and native
|
|
52
52
|
agent/token/cost/time limits before every phase or dispatch. Count failed,
|
|
53
53
|
malformed, and unavailable leaf calls. At the review cap, permit only work
|
|
54
54
|
that reduces the queue.
|
|
@@ -18,7 +18,6 @@ max_slices: 10
|
|
|
18
18
|
max_agents: 32
|
|
19
19
|
max_minutes: 120
|
|
20
20
|
max_review_queue: 8
|
|
21
|
-
expires_at: "<now + 4 hours>"
|
|
22
21
|
# continue_sequence: true # opt-in: chain recorded continuations after Seal GO
|
|
23
22
|
# max_workspaces: 5 # sequence budget when chaining
|
|
24
23
|
# max_parallel: 10 # Build batch cap; 1 = serial (default: eligible, cap 10)
|
|
@@ -28,11 +27,11 @@ expires_at: "<now + 4 hours>"
|
|
|
28
27
|
```
|
|
29
28
|
|
|
30
29
|
Read an existing sentinel first. Preserve it byte-for-byte when valid; stop if
|
|
31
|
-
its gate ceiling exceeds advisory, required envelope is malformed
|
|
30
|
+
its gate ceiling exceeds advisory, required envelope is malformed, or
|
|
32
31
|
`max_slices` conflicts with the invocation. If absent, write it once after
|
|
33
|
-
clarity, replacing the safe slice default only for explicit `--max-slices N
|
|
34
|
-
|
|
35
|
-
|
|
32
|
+
clarity, replacing the safe slice default only for explicit `--max-slices N`.
|
|
33
|
+
It is read-only: never rewrite it after Vet or reset it on resume. Leftover
|
|
34
|
+
`expires_at` is ignored and never rewritten.
|
|
36
35
|
|
|
37
36
|
### Derive the mutable post-vet budget
|
|
38
37
|
|
|
@@ -45,12 +44,12 @@ or reinitialize it. AFK configuration itself stays unchanged.
|
|
|
45
44
|
|
|
46
45
|
Before every phase, review fan-out, recovery, or writer dispatch, apply
|
|
47
46
|
[`afk-hitl.md`](../../devrites-lib/reference/standards/afk-hitl.md#unattended-resource-envelope): cheapest current-state/readiness
|
|
48
|
-
check first; reject overlap; count unresolved review; check
|
|
47
|
+
check first; reject overlap; count unresolved review; check native
|
|
49
48
|
agent/token/cost/time headroom. Count every leaf result. At the review cap, only
|
|
50
49
|
reconciliation that reduces the queue may run. Any reached or unobservable
|
|
51
50
|
bound stops before more work and persists the winning reason. A new activation
|
|
52
|
-
gets fresh activation-local counters but retains durable slice/recovery state
|
|
53
|
-
|
|
51
|
+
gets fresh activation-local counters but retains durable slice/recovery state
|
|
52
|
+
and recomputed queue.
|
|
54
53
|
|
|
55
54
|
`allow_gates: [advisory]` means validating gates pause now rather than becoming
|
|
56
55
|
Seal NO-GO. Only explicit human configuration outside Autocomplete may widen it.
|
|
@@ -100,7 +99,7 @@ fields are missing is re-seeded from its `brief.md` parent/position and the
|
|
|
100
99
|
parent's counter (same values, never a second charge); a child with no recorded
|
|
101
100
|
parent/position is not a sequence member and the chain stops.
|
|
102
101
|
|
|
103
|
-
Stop instead when: no recorded next entry; the cap
|
|
102
|
+
Stop instead when: no recorded next entry; the cap or review-queue bound is
|
|
104
103
|
reached; a human-owned, safety, access, or exhaustion condition fires; or Seal returns
|
|
105
104
|
`NO-GO`. On stop, report the sequence position, the sealed-but-unshipped workspaces, and
|
|
106
105
|
the single release command (`/rite-autocomplete <release milestone> --ship`, or
|
|
@@ -71,11 +71,10 @@ exhausted.
|
|
|
71
71
|
when slices remain; malformed state also stops. Report whether the winning
|
|
72
72
|
bound was the pre-existing remaining value, explicit flag, sentinel cap, or post-vet pending count.
|
|
73
73
|
Zero with no pending slices is normal completion and proceeds to Prove.
|
|
74
|
-
- **Resource envelope:** missing/malformed
|
|
74
|
+
- **Resource envelope:** missing/malformed AFK, overlapping run,
|
|
75
75
|
exhausted/unobservable declared agent/token/cost/time headroom, or review queue
|
|
76
76
|
above cap. At cap, only queue-reducing reconciliation may run. Persist winning
|
|
77
|
-
bound and observed usage; a new activation does not reset durable budgets
|
|
78
|
-
expiry.
|
|
77
|
+
bound and observed usage; a new activation does not reset durable budgets.
|
|
79
78
|
- **Confidence:** intent still cannot become testable acceptance after interview.
|
|
80
79
|
- **Repeated failure:** the exact fingerprint's bounded recovery is exhausted.
|
|
81
80
|
|
|
@@ -54,7 +54,6 @@ max_slices: 10 # whole-workspace writer budget; seeds stat
|
|
|
54
54
|
max_agents: 32 # native agent dispatches in one host activation
|
|
55
55
|
max_minutes: 120 # wall-clock minutes in one host activation
|
|
56
56
|
max_review_queue: 8 # unresolved review/gate items admitted before fan-out stops
|
|
57
|
-
expires_at: "<ISO-8601 UTC timestamp>" # absolute unattended-authority expiry
|
|
58
57
|
# max_tokens: 200000 # optional stricter host-observed token cap
|
|
59
58
|
# max_cost_usd: 10 # optional stricter host-observed cost cap
|
|
60
59
|
notify: "ntfy.sh/my-topic" # shell command; examples: rite-build/reference/afk-discipline.md
|
|
@@ -108,7 +107,7 @@ candidate manifest to cover the whole recorded chain — run
|
|
|
108
107
|
|
|
109
108
|
- Only continuations recorded in the parent's `decisions.md` sequence
|
|
110
109
|
([slicing.md § Continuation workspaces](../../../rite-plan/reference/slicing.md#continuation-workspaces))
|
|
111
|
-
qualify; no recorded next entry, or the cap/
|
|
110
|
+
qualify; no recorded next entry, or the cap/review-queue bound reached, stops
|
|
112
111
|
with the winning reason.
|
|
113
112
|
- Milestones are **not** shipped: they stay sealed and unarchived in `.devrites/work/`
|
|
114
113
|
with `Next step: /rite-ship` preserved. Per-slice `WIP(<slug>)` checkpoints still
|
|
@@ -128,27 +127,26 @@ an explicit `/rite-build --parallel N` cap wins for that invocation.
|
|
|
128
127
|
## Unattended resource envelope
|
|
129
128
|
|
|
130
129
|
AFK writer admission needs a bounded input queue, effective slice cap, and valid
|
|
131
|
-
`max_agents`, `max_minutes`,
|
|
130
|
+
`max_agents`, `max_minutes`, and `max_review_queue`. Existing sentinels
|
|
132
131
|
that declare writer admission but miss/malform these fail closed; cold resume keeps the
|
|
133
|
-
state-owned slice counter.
|
|
132
|
+
state-owned slice counter. A leftover `expires_at` is ignored and never rewritten.
|
|
134
133
|
Read-only watchers use equivalent native caps from [`loop-operations.md`](loop-operations.md).
|
|
135
134
|
|
|
136
135
|
`max_agents` counts every leaf in the native activation, including failures and
|
|
137
136
|
parallel branches; do not add dispatch telemetry to `.devrites/`. `max_review_queue`
|
|
138
137
|
counts open validating questions plus unresolved admitted Critical/Important findings.
|
|
139
|
-
Above it stop; at it run only reconciliation that reduces the queue.
|
|
140
|
-
|
|
141
|
-
native caps; if declared but unobservable, stop.
|
|
138
|
+
Above it stop; at it run only reconciliation that reduces the queue. Optional
|
|
139
|
+
`max_tokens`/`max_cost_usd` lower enforceable native caps; if declared but unobservable, stop.
|
|
142
140
|
|
|
143
141
|
Numeric limits are nonnegative decimals. Before costly checks, fan-out, or writing,
|
|
144
142
|
run cheap readiness, reject overlap, count queue, and confirm agent/time/token/cost
|
|
145
143
|
headroom; re-check after every result. Never start one call that can exceed remaining
|
|
146
144
|
headroom. Agent/time/token/cost counters are per native activation and start fresh only
|
|
147
|
-
for a genuinely new activation. Slices, recovery attempts,
|
|
145
|
+
for a genuinely new activation. Slices, recovery attempts, and current
|
|
148
146
|
review queue remain durable/recomputed across wakes. Persist each activation stop and
|
|
149
147
|
checkpoint before notification.
|
|
150
148
|
|
|
151
|
-
New sentinels
|
|
149
|
+
New sentinels write no `expires_at` and no notification/token/cost cap.
|
|
152
150
|
Post-Vet pending count may lower slices. Existing files
|
|
153
151
|
never receive missing defaults implicitly.
|
|
154
152
|
|
|
@@ -38,13 +38,13 @@ Every unattended loop must name:
|
|
|
38
38
|
4. **Evaluator:** the skill's existing readiness, proof, review, or watcher verdict.
|
|
39
39
|
5. **Budget:** every applicable `.devrites/AFK` resource cap.
|
|
40
40
|
6. **Checkpoint:** durable workspace/evidence update before the turn ends.
|
|
41
|
-
7. **Stop:** success, human/safety/access gate,
|
|
41
|
+
7. **Stop:** success, human/safety/access gate, budget exhaustion, unchanged
|
|
42
42
|
no-progress fingerprint, host failure, or terminal external state.
|
|
43
43
|
8. **Notification:** optional native-host notification after state is durable; never a
|
|
44
44
|
substitute for recording the stop.
|
|
45
45
|
|
|
46
46
|
A read-only scheduled/event loop that has no active AFK workspace must still configure
|
|
47
|
-
native maximum activations/iterations
|
|
47
|
+
native maximum activations/iterations and wall time. Add token/cost
|
|
48
48
|
caps when the host exposes them. One observation cycle per wake is the work unit; the
|
|
49
49
|
skill never starts its own timer or background poller.
|
|
50
50
|
|
|
@@ -76,7 +76,7 @@ armed AFK workspace whose exact scope, gates, and budgets permit it.
|
|
|
76
76
|
is `gap`/`cannot_verify`, never success.
|
|
77
77
|
- Do not retry unchanged work merely because a timer fired. Apply the exact
|
|
78
78
|
causal-fingerprint recovery cap ([`afk-hitl.md`](afk-hitl.md)).
|
|
79
|
-
- A cold resume continues durable slice/recovery state
|
|
79
|
+
- A cold resume continues durable slice/recovery state. Fresh
|
|
80
80
|
native activation counters follow `afk-hitl.md`; no durable bound is reinitialized.
|
|
81
81
|
- Native notifications fire only after evidence and stop state are written.
|
|
82
82
|
|
|
@@ -48,7 +48,7 @@ executable controller/harness/bundle bytes or a missing writer, read
|
|
|
48
48
|
- Every exact causal fingerprint gets at most three no-progress corrections.
|
|
49
49
|
Closing one is progress; a distinct Critical/Important invariant has its own
|
|
50
50
|
budget. Lower severity cannot prolong recovery.
|
|
51
|
-
- Enforce `--max-slices`, the AFK sentinel,
|
|
51
|
+
- Enforce `--max-slices`, the AFK sentinel, review queue, and native
|
|
52
52
|
agent/token/cost/time limits before every phase or dispatch. Count failed,
|
|
53
53
|
malformed, and unavailable leaf calls. At the review cap, permit only work
|
|
54
54
|
that reduces the queue.
|
|
@@ -18,7 +18,6 @@ max_slices: 10
|
|
|
18
18
|
max_agents: 32
|
|
19
19
|
max_minutes: 120
|
|
20
20
|
max_review_queue: 8
|
|
21
|
-
expires_at: "<now + 4 hours>"
|
|
22
21
|
# continue_sequence: true # opt-in: chain recorded continuations after Seal GO
|
|
23
22
|
# max_workspaces: 5 # sequence budget when chaining
|
|
24
23
|
# max_parallel: 10 # Build batch cap; 1 = serial (default: eligible, cap 10)
|
|
@@ -28,11 +27,11 @@ expires_at: "<now + 4 hours>"
|
|
|
28
27
|
```
|
|
29
28
|
|
|
30
29
|
Read an existing sentinel first. Preserve it byte-for-byte when valid; stop if
|
|
31
|
-
its gate ceiling exceeds advisory, required envelope is malformed
|
|
30
|
+
its gate ceiling exceeds advisory, required envelope is malformed, or
|
|
32
31
|
`max_slices` conflicts with the invocation. If absent, write it once after
|
|
33
|
-
clarity, replacing the safe slice default only for explicit `--max-slices N
|
|
34
|
-
|
|
35
|
-
|
|
32
|
+
clarity, replacing the safe slice default only for explicit `--max-slices N`.
|
|
33
|
+
It is read-only: never rewrite it after Vet or reset it on resume. Leftover
|
|
34
|
+
`expires_at` is ignored and never rewritten.
|
|
36
35
|
|
|
37
36
|
### Derive the mutable post-vet budget
|
|
38
37
|
|
|
@@ -45,12 +44,12 @@ or reinitialize it. AFK configuration itself stays unchanged.
|
|
|
45
44
|
|
|
46
45
|
Before every phase, review fan-out, recovery, or writer dispatch, apply
|
|
47
46
|
[`afk-hitl.md`](../../devrites-lib/reference/standards/afk-hitl.md#unattended-resource-envelope): cheapest current-state/readiness
|
|
48
|
-
check first; reject overlap; count unresolved review; check
|
|
47
|
+
check first; reject overlap; count unresolved review; check native
|
|
49
48
|
agent/token/cost/time headroom. Count every leaf result. At the review cap, only
|
|
50
49
|
reconciliation that reduces the queue may run. Any reached or unobservable
|
|
51
50
|
bound stops before more work and persists the winning reason. A new activation
|
|
52
|
-
gets fresh activation-local counters but retains durable slice/recovery state
|
|
53
|
-
|
|
51
|
+
gets fresh activation-local counters but retains durable slice/recovery state
|
|
52
|
+
and recomputed queue.
|
|
54
53
|
|
|
55
54
|
`allow_gates: [advisory]` means validating gates pause now rather than becoming
|
|
56
55
|
Seal NO-GO. Only explicit human configuration outside Autocomplete may widen it.
|
|
@@ -100,7 +99,7 @@ fields are missing is re-seeded from its `brief.md` parent/position and the
|
|
|
100
99
|
parent's counter (same values, never a second charge); a child with no recorded
|
|
101
100
|
parent/position is not a sequence member and the chain stops.
|
|
102
101
|
|
|
103
|
-
Stop instead when: no recorded next entry; the cap
|
|
102
|
+
Stop instead when: no recorded next entry; the cap or review-queue bound is
|
|
104
103
|
reached; a human-owned, safety, access, or exhaustion condition fires; or Seal returns
|
|
105
104
|
`NO-GO`. On stop, report the sequence position, the sealed-but-unshipped workspaces, and
|
|
106
105
|
the single release command (`/rite-autocomplete <release milestone> --ship`, or
|
|
@@ -71,11 +71,10 @@ exhausted.
|
|
|
71
71
|
when slices remain; malformed state also stops. Report whether the winning
|
|
72
72
|
bound was the pre-existing remaining value, explicit flag, sentinel cap, or post-vet pending count.
|
|
73
73
|
Zero with no pending slices is normal completion and proceeds to Prove.
|
|
74
|
-
- **Resource envelope:** missing/malformed
|
|
74
|
+
- **Resource envelope:** missing/malformed AFK, overlapping run,
|
|
75
75
|
exhausted/unobservable declared agent/token/cost/time headroom, or review queue
|
|
76
76
|
above cap. At cap, only queue-reducing reconciliation may run. Persist winning
|
|
77
|
-
bound and observed usage; a new activation does not reset durable budgets
|
|
78
|
-
expiry.
|
|
77
|
+
bound and observed usage; a new activation does not reset durable budgets.
|
|
79
78
|
- **Confidence:** intent still cannot become testable acceptance after interview.
|
|
80
79
|
- **Repeated failure:** the exact fingerprint's bounded recovery is exhausted.
|
|
81
80
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "devrites",
|
|
3
|
-
"version": "5.7.
|
|
3
|
+
"version": "5.7.2",
|
|
4
4
|
"description": "DevRites: a disciplined senior-engineer workflow pack for Claude Code, Codex, omp, and pi",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"homepage": "https://github.com/ViktorsBaikers/DevRites#readme",
|