axstack 0.20.15 → 0.20.16
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/README.md +2 -2
- package/docs/workflows.md +17 -26
- package/package.json +1 -1
- package/skills/axstack/references/automations.md +55 -135
- package/skills/axstack/references/lifecycle.md +6 -7
- package/skills/axstack/references/review-manager-prompt.md +6 -7
- package/skills/axstack/references/run-record.md +5 -0
package/README.md
CHANGED
|
@@ -114,10 +114,10 @@ For recurring peer review, Axstack defines one optional native Orca review manag
|
|
|
114
114
|
Own-PR observation and authorized repair remain user-driven through `axstack-watch`. Its chat-run mode can use one optional same-host native Orca observer per Run, about every ten minutes, to report new PR events internally to the original chat. The chat alone directs repairs and publication. Activation needs a live host canary; source and install checks do not prove it is running.
|
|
115
115
|
|
|
116
116
|
The review manager uses a 15-minute schedule. Each pass uses a fresh finite
|
|
117
|
-
session in
|
|
117
|
+
session in one dedicated existing workspace and admits eligible actionable PR events within
|
|
118
118
|
measured host capacity. Waiting PRs remain tracked without consuming
|
|
119
119
|
execution slots, so a large open-PR backlog does not require an idle agent per PR.
|
|
120
|
-
Completed passes save continuity and
|
|
120
|
+
Completed passes save compact continuity and close only their own exact terminal.
|
|
121
121
|
Held jobs preserve evidence, use private worktree-local temporary paths, and
|
|
122
122
|
release capacity only after native descendant settlement. Uncertain execution
|
|
123
123
|
teardown pauses the lane; settled evidence cleanup does not occupy a slot.
|
package/docs/workflows.md
CHANGED
|
@@ -209,36 +209,27 @@ The watch lasts until all member PRs merge or close, or you cancel it. Stop requ
|
|
|
209
209
|
## Optional native peer-review automation
|
|
210
210
|
|
|
211
211
|
The optional native review manager runs at minutes `0,15,30,45`. Each
|
|
212
|
-
scheduled pass uses a fresh finite session in
|
|
212
|
+
scheduled pass uses a fresh finite session in one dedicated existing workspace, scans complete
|
|
213
213
|
discovery pages, and admits eligible actionable PR events within measured host
|
|
214
214
|
capacity. Waiting PRs stay covered and consume no slot after
|
|
215
215
|
owned descendants settle. Each job uses one repository-parented worktree; the
|
|
216
216
|
manager never checks out PR branches in its own workspace.
|
|
217
217
|
|
|
218
|
-
Every pass reconciles saved, GitHub, and native Orca state across
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
publication
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
the full process tree exited before ownership release or guarded worktree removal.
|
|
234
|
-
Age, status, or idle state alone never authorizes cleanup. Conflicting successors,
|
|
235
|
-
identity mismatch, unknown or protected state, `user_takeover`, unexpected
|
|
236
|
-
terminals, dirty or unpushed work, and unarchived evidence hold cleanup; an
|
|
237
|
-
unchanged failure is deduplicated. Native ordering is not an atomic lock, so the
|
|
238
|
-
overlap canary remains an activation requirement.
|
|
239
|
-
|
|
240
|
-
Each bounded job uses a private `0700` temporary directory inside its own
|
|
241
|
-
worktree. Cleanup targets only the validated owned path: no `TMPDIR` globs,
|
|
218
|
+
Every pass reconciles saved, GitHub, and native Orca state across the lane before
|
|
219
|
+
admission. A confirmed same-lane manager makes the new duplicate do no work or
|
|
220
|
+
shared-record write; it closes only its own exact terminal. The pass settles
|
|
221
|
+
descendants,
|
|
222
|
+
releases worker terminals, archives private evidence and reads it back, then
|
|
223
|
+
uses `axstack-cleanup` guards to remove reviewer and PR-job worktrees. A merged
|
|
224
|
+
or closed PR does not keep a clean job worktree waiting for a user decision.
|
|
225
|
+
Dirty source, unpushed commits, `user_takeover`, unknown liveness, and ambiguous
|
|
226
|
+
publication remain cleanup holds. The manager saves compact continuity, then
|
|
227
|
+
closes its own exact terminal as the final action. Manual review and user-driven
|
|
228
|
+
`axstack-watch` remain outside this scheduled lifecycle.
|
|
229
|
+
|
|
230
|
+
Manager and job commands set `TMPDIR` to a private directory inside their owning
|
|
231
|
+
workspace. Each bounded job uses a private `0700` directory. Cleanup targets
|
|
232
|
+
only the validated owned path: no `TMPDIR` globs,
|
|
242
233
|
shared-root sweeps, or general cache wipes, and uncertain files remain for
|
|
243
234
|
reconciliation. Permission prompts and provider safety refusals are incomplete
|
|
244
235
|
holds, never bypass or cross-model retry signals. The coordinator preserves the
|
|
@@ -259,7 +250,7 @@ relative contract and invokes `axstack-review`. Bounded jobs publish ordinary
|
|
|
259
250
|
exact-head review verdicts; the human merges. Manual adopted-PR maintenance
|
|
260
251
|
uses `axstack-watch` with local-SHA review before authorized publication.
|
|
261
252
|
Exceptional security, permanent-on-chain, or architectural decisions remain actionable in GitHub or a durable user-owned conversation
|
|
262
|
-
after manager
|
|
253
|
+
after the manager session ends, with an authorized deduplicated Telegram notification.
|
|
263
254
|
The current operational contract is
|
|
264
255
|
`skills/axstack/references/automations.md`.
|
|
265
256
|
|
package/package.json
CHANGED
|
@@ -8,21 +8,18 @@ automation specs and plans describe retired designs and are not instructions.
|
|
|
8
8
|
The review manager runs at minutes `0,15,30,45` and invokes
|
|
9
9
|
[axstack-review](../../axstack-review/SKILL.md) for eligible peer reviews.
|
|
10
10
|
|
|
11
|
-
Use
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
Keep lane continuity and evidence outside disposable manager workspaces at
|
|
17
|
-
the configured durable absolute paths. A manager never checks out a PR branch
|
|
18
|
-
in its pass workspace. Missed slots do not replay a backlog; the next ordinary pass
|
|
11
|
+
Use one dedicated existing Orca workspace owned by this automation. Configure
|
|
12
|
+
native existing-workspace mode with `--fresh-session`, never `--reuse-session`;
|
|
13
|
+
each pass gets a fresh finite manager session. Keep lane continuity and evidence
|
|
14
|
+
at configured durable absolute paths. A manager never checks out a PR branch
|
|
15
|
+
in its workspace. Missed slots do not replay a backlog; the next ordinary pass
|
|
19
16
|
discovers current state. The short packaged review prompt sits beside this file
|
|
20
17
|
and discovers these rules by relative link instead of copying them.
|
|
21
18
|
|
|
22
19
|
Provision one explicit absolute continuity path per automation ID in the
|
|
23
|
-
scheduled prompt.
|
|
24
|
-
|
|
25
|
-
|
|
20
|
+
scheduled prompt. The repository's absolute Git common directory is a valid
|
|
21
|
+
durable root; missing or non-durable configuration holds admission. Keep
|
|
22
|
+
continuity bounded and archive old pass history per [Run record](run-record.md).
|
|
26
23
|
|
|
27
24
|
This is prompt policy, not proof that Orca starts a fresh session or prevents
|
|
28
25
|
overlapping passes. Before activation a native canary must prove fresh-session
|
|
@@ -33,14 +30,14 @@ effects. A firing timestamp proves neither delivery nor useful completion.
|
|
|
33
30
|
## Session admission
|
|
34
31
|
|
|
35
32
|
Reconcile saved state, current GitHub state, and native Orca Tasks, Dispatches,
|
|
36
|
-
sessions, and liveness across all workspaces belonging to the
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
33
|
+
sessions, and liveness across all workspaces belonging to the lane before
|
|
34
|
+
discovery or admission; never infer lane ownership from an empty local workspace.
|
|
35
|
+
Bind the lane to the automation ID and pass to its native run ID, workspace ID,
|
|
36
|
+
and terminal identity, not a title or directory-name guess.
|
|
40
37
|
A confirmed live manager for the same lane remains authoritative.
|
|
41
38
|
The new duplicate does no PR work, makes no shared-record write, touches
|
|
42
|
-
nothing owned by the live manager, and closes only
|
|
43
|
-
|
|
39
|
+
nothing owned by the live manager, and closes only its own exact terminal as
|
|
40
|
+
its final action under the guard below.
|
|
44
41
|
Unknown liveness blocks admission and shared-record writes; it does not
|
|
45
42
|
authorize takeover, cleanup, or a duplicate manager. Preserve `user_takeover`
|
|
46
43
|
and other user-owned sessions.
|
|
@@ -54,66 +51,14 @@ Read every page of native runs, workers, and workspace inventory; truncated or
|
|
|
54
51
|
failed inventory holds admission and cleanup rather than implying absence.
|
|
55
52
|
|
|
56
53
|
A prior manager does not retain the lane merely because its automation run
|
|
57
|
-
status says failed or dispatched.
|
|
58
|
-
exact
|
|
59
|
-
|
|
60
|
-
|
|
54
|
+
status says failed or dispatched. Reconcile a surviving prior terminal using
|
|
55
|
+
exact identity and proven completion from native state before treating it as
|
|
56
|
+
live or releasing ownership. Require confirmed process exit for its exact
|
|
57
|
+
terminal incarnation, saved continuity, and settlement of all owned jobs and
|
|
58
|
+
descendants before ownership release. A completed run row alone does not prove exit.
|
|
61
59
|
If these facts remain unknown, report the hold at the durable decision location;
|
|
62
60
|
do not silently stand down forever or replace a potentially live owner.
|
|
63
61
|
|
|
64
|
-
### Guarded completed-predecessor recovery
|
|
65
|
-
|
|
66
|
-
A successor may retire a positively completed predecessor whose manager terminal
|
|
67
|
-
survived only through this narrow recovery path. Eligibility requires an exact
|
|
68
|
-
automation ID, run ID, workspace ID, and terminal incarnation match, a positive
|
|
69
|
-
completion receipt bound to that incarnation, zero active or unsettled descendants,
|
|
70
|
-
and every owned Task and Dispatch settled. A completed row or saved retirement
|
|
71
|
-
intent alone is not positive completion. Age, status, and idle state are never
|
|
72
|
-
cleanup authority. Active, unknown, protected, identity-mismatched,
|
|
73
|
-
`user_takeover`, unexpected-terminal, permission-held, or otherwise unverifiable
|
|
74
|
-
state preserves the predecessor and pauses admission; this path never takes over
|
|
75
|
-
its PR work.
|
|
76
|
-
|
|
77
|
-
Exactly one successor, selected by native run ordering, may write the cleanup
|
|
78
|
-
claim. Immediately before writing, re-read the complete lane inventory and
|
|
79
|
-
ordering; then save and read back claimant identity, predecessor identity,
|
|
80
|
-
completion, and zero-descendant continuity before the exact native workspace
|
|
81
|
-
close. A later successor reconciles that claim and performs no cleanup mutation.
|
|
82
|
-
Missing ordering or a conflicting claim holds both cleanup and admission. This
|
|
83
|
-
ordering is not an atomic lock; activation still depends on the overlap canary
|
|
84
|
-
proving that two successors cannot both mutate one predecessor.
|
|
85
|
-
|
|
86
|
-
Use the version-matched native workspace close against the receipt's complete
|
|
87
|
-
workspace ID, never an individually guessed terminal or broad selector. After
|
|
88
|
-
close, re-list native runs, workspaces, terminals, Tasks, and Dispatches and prove
|
|
89
|
-
the full predecessor process tree exited before ownership release. Save and read
|
|
90
|
-
back the exit and release receipts, then use native worktree cleanup only when the
|
|
91
|
-
workspace has no children, dirty or unknown files, unpushed commits, unarchived
|
|
92
|
-
evidence, or user-owned work. Preserve every failed or uncertain close, exit,
|
|
93
|
-
release, or removal with its exact resume condition and pause the lane. An
|
|
94
|
-
unchanged cleanup failure gets no destructive retry or duplicate notification.
|
|
95
|
-
|
|
96
|
-
Before PR admission, reconcile old pass resources and reclaim every safely
|
|
97
|
-
removable earlier pass workspace under the retirement guards below. This is
|
|
98
|
-
routine cleanup on every admitted pass; do not wait for the three-workspace
|
|
99
|
-
threshold to start cleanup. Save confirmed exit and ownership-release receipts
|
|
100
|
-
before removing each workspace. Preserve dirty, unpushed, evidence-bearing,
|
|
101
|
-
user-owned, active, or uncertain resources; the threshold never relaxes these guards.
|
|
102
|
-
Explicitly classified evidence may cease to block cleanup only after the
|
|
103
|
-
[private evidence archive](evidence-archive.md) is verified and its receipt is
|
|
104
|
-
read back from durable continuity. This never makes other dirt disposable.
|
|
105
|
-
After cleanup, re-list and count only the earlier pass workspaces still remaining.
|
|
106
|
-
If three or more unreclaimed
|
|
107
|
-
earlier pass workspaces remain, disable only this automation through the native
|
|
108
|
-
CLI, verify the disabled setting, save/report the cleanup hold, and admit no new
|
|
109
|
-
PR jobs. Also pause on a confirmed earlier-manager retirement failure or
|
|
110
|
-
unresolved lane ownership. A settled PR-job worktree retained for evidence is a
|
|
111
|
-
cleanup hold, not unsettled execution or lane ownership.
|
|
112
|
-
Already-dispatched passes still reconcile and retire only their own safe resources;
|
|
113
|
-
this threshold is a stop condition, not an atomic hard cap on in-flight creations.
|
|
114
|
-
An uncertain disable is a reported failure, not proof scheduling stopped. Resume
|
|
115
|
-
only after ownership/cleanup is verified and explicit activation authority exists.
|
|
116
|
-
|
|
117
62
|
## Discovery and coverage
|
|
118
63
|
|
|
119
64
|
Resolve self on every tick with `gh api user --jq .login`; never hardcode the
|
|
@@ -176,12 +121,13 @@ coordinator. Reviewers retain the isolation required by `axstack-review`:
|
|
|
176
121
|
each runs in a separate Orca child worktree, keeps its probes and evidence
|
|
177
122
|
inside that worktree, and preserves required evidence before removal.
|
|
178
123
|
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
[runtime boundary](orca-runtime.md#reviewer-workspaces-and-evidence).
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
124
|
+
Set `TMPDIR` for manager and job commands to a private directory inside each
|
|
125
|
+
command's owning workspace. Follow ownership, containment, and cleanup checks
|
|
126
|
+
in the [runtime boundary](orca-runtime.md#reviewer-workspaces-and-evidence).
|
|
127
|
+
Never write temporary files under `/` or another shared root. Never delete
|
|
128
|
+
through a broad `TMPDIR` glob, sweep a shared temporary root, or wipe a general
|
|
129
|
+
cache. Preserve evidence and any temporary path with uncertain ownership or
|
|
130
|
+
containment.
|
|
185
131
|
|
|
186
132
|
An unchanged exact head and unchanged event identity creates no job; an
|
|
187
133
|
unchanged exact head with a new event identity remains actionable. Event
|
|
@@ -222,12 +168,12 @@ hold, preserve the workspace, and let unrelated eligible PRs continue.
|
|
|
222
168
|
|
|
223
169
|
An active, unknown, protected, or unverifiable coordinator or descendant is
|
|
224
170
|
different: preserve its evidence and keep its slot occupied. Unresolved
|
|
225
|
-
execution teardown
|
|
226
|
-
|
|
227
|
-
or claiming capacity from an uncertain process tree.
|
|
171
|
+
execution teardown pauses the lane before another pass can admit work rather
|
|
172
|
+
than claiming capacity from an uncertain process tree.
|
|
228
173
|
|
|
229
|
-
When the current event is handled, settle and
|
|
230
|
-
|
|
174
|
+
When the current event is handled, settle the PR job and descendants, then use
|
|
175
|
+
native `worker-release` for their worker terminals. Preserve dirty source,
|
|
176
|
+
unpushed commits, unarchived review evidence, pending
|
|
231
177
|
external results, and user-owned work until durability and ownership are
|
|
232
178
|
proven. Unknown liveness, `user_takeover`, and ambiguous publication likewise
|
|
233
179
|
forbid cleanup. Here a pending external result means an unconfirmed review submission
|
|
@@ -235,12 +181,13 @@ or send outcome, not pending CI. Waiting state belongs in GitHub and the compact
|
|
|
235
181
|
record, never in an idle model, per-PR timer, or polling loop.
|
|
236
182
|
Follow the [private evidence archive](evidence-archive.md) when evidence is the
|
|
237
183
|
only local state to preserve; archive success does not relax any other guard.
|
|
238
|
-
For a
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
184
|
+
For a settled PR job, archive classified scratch through the
|
|
185
|
+
[private evidence archive](evidence-archive.md), read back its archive and
|
|
186
|
+
compact receipt, then use [axstack-cleanup](../../axstack-cleanup/SKILL.md)'s
|
|
187
|
+
exact-path guards to retire reviewer and PR-job worktrees in the same pass.
|
|
188
|
+
A merged or closed PR must never keep a job worktree waiting for a user decision;
|
|
189
|
+
resolve that hold by archive and cleanup. Preserve genuine protections: dirty
|
|
190
|
+
source, unpushed commits, `user_takeover`, unknown liveness, and ambiguous publication.
|
|
244
191
|
|
|
245
192
|
## Review authority
|
|
246
193
|
|
|
@@ -285,50 +232,23 @@ or separate model gate.
|
|
|
285
232
|
## Finite-session teardown
|
|
286
233
|
|
|
287
234
|
After admission closes, settle every owned PR job and all descendants before the
|
|
288
|
-
manager session
|
|
289
|
-
and must be reconciled
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
containing only this manager and its proven unused setup shells. No other pass
|
|
306
|
-
may target this workspace. If an unexpected terminal or user takeover is present,
|
|
307
|
-
do not bulk-close; preserve the workspace and report the hold at its durable
|
|
308
|
-
decision location. Never bulk-close a shared manager workspace or a PR-job worktree.
|
|
309
|
-
|
|
310
|
-
After saving continuity, use the version-matched native workspace retirement:
|
|
311
|
-
`terminal close --worktree id:<exact-native-workspace-id> --all --json`.
|
|
312
|
-
Copy the complete ID from the run/workspace receipt; never use a name, branch,
|
|
313
|
-
path-only selector, or `active` for this destructive operation.
|
|
314
|
-
Self-close is the final action; perform no record write or cleanup afterward.
|
|
315
|
-
A failed or uncertain close is not proof of retirement. The next admitted pass
|
|
316
|
-
reconciles prior retirement from native state before trusting saved intent.
|
|
317
|
-
Retire only positively identified completed pass resources; do not kill another
|
|
318
|
-
live or unknown manager. Remove an old pass worktree only with native cleanup
|
|
319
|
-
after terminal retirement is confirmed and it has no unpushed commits,
|
|
320
|
-
unarchived evidence, children, user-owned work, unknown files, or unexplained
|
|
321
|
-
dirty source. A verified evidence archive does not require otherwise clean Git
|
|
322
|
-
state, but every remaining change must still be positively classified and safe;
|
|
323
|
-
unknown dirt blocks removal. Never use recursive shell deletion. Failed cleanup
|
|
324
|
-
remains recorded, not silently forgotten. Failed PR-job workspace cleanup stays
|
|
325
|
-
a cleanup hold after execution settles; failed or unverifiable manager-pass
|
|
326
|
-
retirement pauses the lane instead of allowing active passes to accumulate.
|
|
327
|
-
|
|
328
|
-
The activation canary must additionally prove distinct workspace IDs per pass,
|
|
329
|
-
cross-workspace lane admission, self-retirement and absence after client reconnect,
|
|
330
|
-
and bounded retained worktrees over repeated passes. A shell-only close test does
|
|
331
|
-
not prove agent resume-record retirement. Do not activate on source checks alone.
|
|
235
|
+
manager session closes; active or unknown descendants keep their PR slot occupied
|
|
236
|
+
and must be reconciled from native state. Release settled worker terminals and
|
|
237
|
+
complete guarded evidence archival and worktree cleanup in this pass. Save
|
|
238
|
+
continuity, open decisions, and the last pass summary and read back the save.
|
|
239
|
+
Use the exact native terminal close for this pass's own terminal from its run
|
|
240
|
+
receipt: `orca terminal close --terminal <exact-handle> --json`. Terminal close
|
|
241
|
+
is the final action. Never use `--all`, a broad or name selector, or another
|
|
242
|
+
terminal in the dedicated workspace; uncertain identity or close outcome holds
|
|
243
|
+
the lane for native reconciliation, never a guessed retry.
|
|
244
|
+
Waiting PRs still occupy zero slots once their owned trees settle. A failed
|
|
245
|
+
cleanup remains a recorded hold with its exact resume condition, but does not
|
|
246
|
+
keep settled execution active.
|
|
247
|
+
|
|
248
|
+
The activation canary must prove fresh sessions in the dedicated workspace,
|
|
249
|
+
same-lane overlap admission, recovery after session loss, nested dispatch depth,
|
|
250
|
+
process and memory effects, and terminals in the dedicated workspace bounded
|
|
251
|
+
over repeated passes. Do not activate on source checks alone.
|
|
332
252
|
|
|
333
253
|
## Recovery and limits
|
|
334
254
|
|
|
@@ -113,13 +113,12 @@ differs from merged; human merges.
|
|
|
113
113
|
|
|
114
114
|
## Review automation health
|
|
115
115
|
|
|
116
|
-
The native review manager uses fresh finite sessions in
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
[Watch runtime](../../axstack-watch/references/watch-runtime.md).
|
|
116
|
+
The native review manager uses fresh finite sessions in one dedicated existing
|
|
117
|
+
Orca workspace on a 15-minute schedule. It admits actionable PR events within
|
|
118
|
+
measured host capacity; waiting PRs remain covered without reserving slots.
|
|
119
|
+
Bounded PR jobs use per-PR worktrees and settle after descendants. Build no
|
|
120
|
+
custom scheduler, state engine, or legacy fallback. See
|
|
121
|
+
[Review manager](automations.md).
|
|
123
122
|
|
|
124
123
|
## Audit hook (close-out and meaningful checkpoints)
|
|
125
124
|
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
# Review manager prompt
|
|
2
2
|
|
|
3
|
-
You are a fresh finite review-manager session in
|
|
4
|
-
through the installed `axstack-review` skill; that skill loads its packaged
|
|
3
|
+
You are a fresh finite review-manager session in the automation's dedicated
|
|
4
|
+
existing Orca workspace. Enter through the installed `axstack-review` skill; that skill loads its packaged
|
|
5
5
|
`../axstack/references/automations.md` contract by relative reference. Discover
|
|
6
6
|
every eligible peer-review event and invoke the skill through Orca for each
|
|
7
7
|
admitted bounded PR job. Keep complete coverage and admit actionable events
|
|
8
8
|
within measured host capacity, preserve exact ownership and receipts, settle
|
|
9
|
-
completed trees,
|
|
10
|
-
and
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
not just this workspace. Never check out a PR branch here.
|
|
9
|
+
completed trees, and stay quiet when nothing changed. Reconcile before admission,
|
|
10
|
+
save durable continuity and the last pass summary, then exact close of your own terminal as
|
|
11
|
+
the final action under the contract. Reconcile the whole lane, not just this
|
|
12
|
+
workspace. Never check out a PR branch here.
|
|
@@ -49,6 +49,11 @@ forge/PR state, and the approved spec remain sources of truth. The driver
|
|
|
49
49
|
verifies exact SHAs and receipts before recording a transition; a worker claim
|
|
50
50
|
alone is not verification.
|
|
51
51
|
|
|
52
|
+
For the scheduled review manager, keep only current lane state, open holds,
|
|
53
|
+
watermarks, and the last pass summary in its durable continuity record (a few
|
|
54
|
+
dozen lines). Append older pass history to an archive file beside that record;
|
|
55
|
+
never re-read it by default. Read it only for a specific recovery question.
|
|
56
|
+
|
|
52
57
|
Before changing `Driver` or a task `Owner`, verify that the prior driver is
|
|
53
58
|
inactive against actual Orca session and Dispatch state, or that an explicit accepted transfer
|
|
54
59
|
permits reassignment. Idle alone never reassigns ownership.
|