axstack 0.20.31 → 0.22.0
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 +25 -23
- package/bin/axstack.js +17 -5
- package/docs/installation.md +104 -51
- package/docs/workflows.md +176 -131
- package/package.json +3 -3
- package/profiles/presets/claude-only.json +23 -23
- package/profiles/presets/codex-only.json +10 -10
- package/profiles/presets/mixed.json +24 -24
- package/skills/axstack/references/automations.md +136 -137
- package/skills/axstack/references/autopilot.md +30 -17
- package/skills/axstack/references/candidate-publication.md +13 -8
- package/skills/axstack/references/contracts.md +13 -12
- package/skills/axstack/references/design-lens.md +3 -3
- package/skills/axstack/references/diligence.md +3 -1
- package/skills/axstack/references/evidence-archive.md +38 -33
- package/skills/axstack/references/lifecycle.md +64 -50
- package/skills/axstack/references/review-manager-prompt.md +13 -11
- package/skills/axstack/references/role-roster.md +12 -2
- package/skills/axstack/references/routing.md +33 -25
- package/skills/axstack/references/run-record.md +35 -16
- package/skills/axstack/references/t3-runtime.md +237 -0
- package/skills/axstack/references/test-audit-weekly.md +62 -0
- package/skills/axstack/references/test-value.md +120 -0
- package/skills/axstack/references/ui-verification.md +5 -1
- package/skills/axstack/references/workspace-hygiene.md +102 -156
- package/skills/axstack/scripts/pr-digest.js +120 -0
- package/skills/axstack/scripts/resolve-models.js +102 -38
- package/skills/axstack-align/SKILL.md +19 -56
- package/skills/axstack-audit/SKILL.md +12 -3
- package/skills/axstack-audit/references/record.md +1 -1
- package/skills/axstack-brainstorm/SKILL.md +24 -0
- package/skills/axstack-brainstorm/references/arena.md +56 -0
- package/skills/axstack-cleanup/SKILL.md +69 -87
- package/skills/axstack-debug/SKILL.md +1 -1
- package/skills/axstack-explain/SKILL.md +1 -1
- package/skills/axstack-explain/references/visual-qa.md +2 -0
- package/skills/axstack-implement/SKILL.md +56 -20
- package/skills/axstack-improve/SKILL.md +24 -4
- package/skills/axstack-relay/SKILL.md +8 -6
- package/skills/axstack-research/SKILL.md +11 -4
- package/skills/axstack-review/SKILL.md +34 -30
- package/skills/axstack-spec/SKILL.md +18 -13
- package/skills/axstack-tickets/SKILL.md +7 -8
- package/skills/axstack-watch/SKILL.md +97 -27
- package/skills/axstack-watch/references/watch-runtime.md +51 -66
- package/src/capabilities.js +33 -69
- package/src/installer.js +1 -1
- package/src/instructions.js +9 -4
- package/skills/axstack/references/orca-runtime.md +0 -202
- package/skills/axstack/scripts/trust-path.js +0 -123
|
@@ -1,81 +1,70 @@
|
|
|
1
1
|
# Native peer-review manager
|
|
2
2
|
|
|
3
|
-
Read this for the optional native
|
|
3
|
+
Read this for the optional native T3 peer-review schedule. The historical
|
|
4
4
|
automation specs and plans describe retired designs and are not instructions.
|
|
5
5
|
|
|
6
|
+
For optional weekly test audits, use the separate packaged
|
|
7
|
+
[Weekly test-audit prompt](test-audit-weekly.md).
|
|
8
|
+
The native canary below is also required before weekly activation.
|
|
9
|
+
|
|
6
10
|
## Topology and schedules
|
|
7
11
|
|
|
8
|
-
The
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
dispatch depth for coordinator-launched leaves, and total process and memory
|
|
31
|
-
effects. A firing timestamp proves neither delivery nor useful completion.
|
|
32
|
-
|
|
33
|
-
Do not write `~/.claude.json` except through the packaged `trust-path.js`
|
|
34
|
-
preflight for an exact Orca-registered repository root or worktree before a
|
|
35
|
-
Claude launch. The helper changes only that path's trust flag; it does not
|
|
36
|
-
answer any dialog.
|
|
12
|
+
The T3 project `axstack-review-lane` uses the VPS's existing
|
|
13
|
+
`axatbhardwaj/axstack` clone with `origin` and `main`.
|
|
14
|
+
Unbound pass worktrees branch from `origin/main` and each pass fetches first.
|
|
15
|
+
Continuity stays at `~/.local/share/axstack/runs/review-manager/progress.md`,
|
|
16
|
+
outside every worktree.
|
|
17
|
+
A missing, non-durable or unreadable continuity path holds admission.
|
|
18
|
+
Follow the [Run record](run-record.md) and use the
|
|
19
|
+
[Review-manager continuity template](run-record.md#review-manager-continuity-template):
|
|
20
|
+
overwrite its four current-state sections and archive superseded history once
|
|
21
|
+
beside it. A no-change pass appends at most one history line.
|
|
22
|
+
|
|
23
|
+
Configure the lane thread via `t3_thread_configure` with the `axstack-owner`
|
|
24
|
+
binding and verify its read-back. Then `schedule_task` uses the packaged prompt,
|
|
25
|
+
`everyMs:900000`, `bindToCurrentThread:false`, and a stable `clientRequestId`.
|
|
26
|
+
Record the schedule ID, project, lane binding and pass thread/run identities.
|
|
27
|
+
Each pass compares its own `t3_thread_configuration` with the recorded binding.
|
|
28
|
+
A binding mismatch holds admission.
|
|
29
|
+
Read [T3 runtime](t3-runtime.md) for capability, provider/effort, prompt, dispatch,
|
|
30
|
+
completion and cleanup boundaries; a manager never checks out a PR branch in
|
|
31
|
+
its pass worktree. Missed slots do not replay a backlog.
|
|
32
|
+
|
|
33
|
+
T3 sessions are exempt from Claude trust preflight.
|
|
37
34
|
|
|
38
35
|
## Session admission
|
|
39
36
|
|
|
40
|
-
Perform
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
37
|
+
Perform guarded predecessor retirement in [Finite-session teardown](#finite-session-teardown).
|
|
38
|
+
Lane identity requires exact thread/run identity, never a title or directory-name
|
|
39
|
+
guess; never infer lane ownership from an empty local workspace.
|
|
40
|
+
Reconcile saved state, current GitHub state, and native T3 threads, runs,
|
|
41
|
+
delegated tasks and liveness across the whole lane before discovery or admission.
|
|
42
|
+
Discovery reads every page of PRs and native threads.
|
|
43
|
+
A truncated or failed inventory holds admission and cleanup.
|
|
44
|
+
A pass never admits a PR owned by a live or uncertain earlier pass.
|
|
47
45
|
A confirmed live manager for the same lane remains authoritative.
|
|
46
|
+
The earlier pass wins only when ordering evidence exists.
|
|
47
|
+
Missing ordering or ownership evidence holds admission and never guesses a winner.
|
|
48
|
+
|
|
48
49
|
Once identified as a duplicate, the new pass does no PR work, makes no further
|
|
49
|
-
shared-record write
|
|
50
|
-
manager
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
or not), as in [Per-PR jobs](#per-pr-jobs), record the stalled owner in its own
|
|
57
|
-
pass note and send one deduplicated notification under the recorded
|
|
58
|
-
`Notification policy`.
|
|
50
|
+
shared-record write and touches no live or unsettled resource owned by the
|
|
51
|
+
live manager. A duplicate pass admits nothing and runs read-only discovery
|
|
52
|
+
into its own pass note in its private evidence folder, recording new eligible
|
|
53
|
+
events and the unserved count. If a duplicate finds a stalled owner idle at its
|
|
54
|
+
prompt with a final turn lacking a completion receipt for more than five
|
|
55
|
+
minutes (nudged or not), record it in that private note and send one deduplicated
|
|
56
|
+
notification under the recorded `Notification policy`.
|
|
59
57
|
Unknown liveness blocks admission and shared-record writes; it does not
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
A prior manager does not retain the lane merely because its automation run
|
|
72
|
-
status says failed or dispatched. Reconcile a surviving prior terminal using
|
|
73
|
-
exact identity and proven completion from native state before treating it as
|
|
74
|
-
live or releasing ownership. Require confirmed process exit for its exact
|
|
75
|
-
terminal incarnation, saved continuity, and settlement of all owned jobs and
|
|
76
|
-
descendants before ownership release. A completed run row alone does not prove exit.
|
|
77
|
-
If these facts remain unknown, report the hold at the durable decision location;
|
|
78
|
-
do not silently stand down forever or replace a potentially live owner.
|
|
58
|
+
permit takeover or cleanup. Preserve user-taken-over threads.
|
|
59
|
+
This is prompt policy, not an atomic lock: the overlap canary must demonstrate
|
|
60
|
+
one admission owner before activation. Count all unsettled PR jobs and descendants.
|
|
61
|
+
|
|
62
|
+
A failed scheduled run alone proves neither predecessor exit nor release.
|
|
63
|
+
Predecessor exit requires exact thread/run identity and terminal run evidence;
|
|
64
|
+
a completed run row alone does not prove the work settled.
|
|
65
|
+
Require reconciled continuity and settlement of every descendant before releasing ownership.
|
|
66
|
+
Unknown facts hold at the durable decision location; never replace a
|
|
67
|
+
potentially live owner.
|
|
79
68
|
|
|
80
69
|
## Discovery and coverage
|
|
81
70
|
|
|
@@ -126,40 +115,41 @@ PRs cannot starve older unserved work.
|
|
|
126
115
|
|
|
127
116
|
## Per-PR jobs
|
|
128
117
|
|
|
129
|
-
At PR-job and reviewer dispatch, apply [Readable sidebar](workspace-hygiene.md#readable-sidebar).
|
|
130
118
|
Include [Safe deletion](workspace-hygiene.md#safe-deletion) in PR-job briefs.
|
|
131
119
|
|
|
132
120
|
The logical manager lane owns ongoing discovery and continuity across finite
|
|
133
121
|
sessions; the bounded PR coordinator owns only its admitted event. Do not create a second live owner or
|
|
134
122
|
writer for the same PR. Reuse an existing valid per-PR worktree, owner, and
|
|
135
|
-
unchanged receipts before creating anything. Otherwise create one separate
|
|
136
|
-
|
|
137
|
-
|
|
123
|
+
unchanged receipts before creating anything. Otherwise create one separate detached checkout
|
|
124
|
+
per PR job from its existing
|
|
125
|
+
host clone: `git -C <host clone> worktree add --detach <run>/checkouts/<key> <sha>`;
|
|
126
|
+
pin the observed head and base. A repository without a host clone is a held job. The bounded
|
|
127
|
+
PR coordinator loads the
|
|
138
128
|
review skill, launches only the reviewers that skill owns,
|
|
139
129
|
handles the current actionable event, returns exact receipts, then settles.
|
|
140
|
-
Check
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
130
|
+
Check admitted delegated jobs with persisted `task_status` before thread reads
|
|
131
|
+
under [T3 runtime](t3-runtime.md). For a worker's own brief question, confirm the
|
|
132
|
+
brief once.
|
|
133
|
+
A second brief ask follows the five-minute stop rule, never an open-ended hold.
|
|
134
|
+
An idle final turn without a valid completion
|
|
135
|
+
receipt is incomplete, not successful. A started coordinator waiting on its
|
|
136
|
+
reviewers (a live reviewer task or running wait) is not idle and is never
|
|
137
|
+
stopped for waiting. Reconcile terminal failure and all descendants before
|
|
138
|
+
recording an event unserved and re-admissible.
|
|
139
|
+
Steer an idle PR job once with `t3_thread_send`.
|
|
140
|
+
If it is still idle without a valid completion receipt five minutes after the steer,
|
|
141
|
+
stop the owned job with `t3_thread_interrupt` or `task_cancel` as applicable,
|
|
142
|
+
reconcile the coordinator and every descendant, and record the event unserved and re-admissible.
|
|
143
|
+
Uncertain liveness retains the slot only within that five-minute bound;
|
|
144
|
+
unverified settlement after the stop holds lane admission.
|
|
155
145
|
Settlement returns continuity to the manager rather than retaining an idle PR
|
|
156
|
-
coordinator.
|
|
157
|
-
|
|
158
|
-
its private per-Dispatch run folder, and reads back evidence before removal.
|
|
146
|
+
coordinator. Each reviewer uses a separate driver-made detached checkout and
|
|
147
|
+
private evidence folder, with evidence read-back before removal.
|
|
159
148
|
|
|
160
|
-
Set `TMPDIR` for manager and job commands to
|
|
161
|
-
|
|
162
|
-
[Workspace hygiene](workspace-hygiene.md).
|
|
149
|
+
Set `TMPDIR` for manager and job commands to an owned 0700 directory under the
|
|
150
|
+
system temp directory, named from the dispatch key and recorded in the receipt,
|
|
151
|
+
following [Workspace hygiene](workspace-hygiene.md).
|
|
152
|
+
Evidence files stay in the private `<run dir>/evidence/<dispatch>/` folder.
|
|
163
153
|
Never write temporary files under `/` or another shared root. Never delete
|
|
164
154
|
through a broad `TMPDIR` glob, sweep a shared temporary root, or wipe a general
|
|
165
155
|
cache. Preserve evidence and any temporary path with uncertain ownership or
|
|
@@ -169,7 +159,7 @@ An unchanged exact head and unchanged event identity creates no job; an
|
|
|
169
159
|
unchanged exact head with a new event identity remains actionable. Event
|
|
170
160
|
identity includes the applicable review ID and body digest, request identity, or other current GitHub event
|
|
171
161
|
receipt. Dedupe from current GitHub state,
|
|
172
|
-
native
|
|
162
|
+
native T3 task and thread/run state, and the existing compact run record; do
|
|
173
163
|
not create machine cursor files or a queue engine. Record enough to resume: PR,
|
|
174
164
|
head, base, event identity, mode, owner and worker receipts, verdict,
|
|
175
165
|
submission receipt, hold, and next action. GitHub remains authoritative for
|
|
@@ -178,16 +168,16 @@ open state, revisions, reviews, checks, and merge state.
|
|
|
178
168
|
## Held job settlement
|
|
179
169
|
|
|
180
170
|
Use native runtime inspection, not saved prose or silence, to identify an
|
|
181
|
-
actual hold and bind it to the exact
|
|
171
|
+
actual hold and bind it to the exact task, thread/run, event, and
|
|
182
172
|
evidence. Permission prompts and provider safety refusals are incomplete held
|
|
183
173
|
outcomes: do not answer or bypass them, retry their content through another
|
|
184
|
-
model, or claim completion. Do not forge `
|
|
174
|
+
model, or claim completion. Do not forge `AXSTACK-DONE`. Record the held event
|
|
185
175
|
identity and its resume condition in durable continuity. An unchanged hold creates no new job, no
|
|
186
176
|
retry, and no repeated notification; a changed event is reconsidered against
|
|
187
177
|
the original authority rather than assumed safe.
|
|
188
178
|
|
|
189
|
-
Preserve the prompt or refusal evidence, then follow the
|
|
190
|
-
|
|
179
|
+
Preserve the prompt or refusal evidence, then follow the [T3 runtime](t3-runtime.md)
|
|
180
|
+
recovery and cleanup guidance for every owned descendant. Use
|
|
191
181
|
only supported native lifecycle actions and receipt-supplied next actions;
|
|
192
182
|
saved status, contact loss, and a coordinator narrative do not settle a worker.
|
|
193
183
|
Unknown or user-owned work is never a kill target. Do not release the PR slot
|
|
@@ -196,7 +186,7 @@ Unrelated eligible PRs continue after the tree is verified settled, while the
|
|
|
196
186
|
held PR waits durably for its resume condition.
|
|
197
187
|
|
|
198
188
|
Execution settlement and cleanup retention are separate. Positive full-tree
|
|
199
|
-
process exit plus native
|
|
189
|
+
process exit plus native task and thread/run settlement frees the slot. Retained
|
|
200
190
|
metadata does not occupy an execution slot: preserve it and its evidence for
|
|
201
191
|
reconciliation without reviving the failed job. Likewise, an archive hold
|
|
202
192
|
blocks workspace removal, not settled execution capacity; record the cleanup
|
|
@@ -208,7 +198,7 @@ execution teardown pauses the lane before another pass can admit work rather
|
|
|
208
198
|
than claiming capacity from an uncertain process tree.
|
|
209
199
|
|
|
210
200
|
When the current event is handled, settle the PR job and descendants, then use
|
|
211
|
-
|
|
201
|
+
`t3_thread_organize` to settle their terminal threads after verifying terminal run evidence. For a completed non-author
|
|
212
202
|
PR-job worktree with dirty source or unpushed commits, use the
|
|
213
203
|
[Workspace hygiene](workspace-hygiene.md) salvage path before removal.
|
|
214
204
|
Preserve review evidence not yet durable, pending external results, and user-owned
|
|
@@ -270,48 +260,57 @@ or separate model gate.
|
|
|
270
260
|
|
|
271
261
|
## Finite-session teardown
|
|
272
262
|
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
run
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
263
|
+
Each pass retires settled predecessor passes and reports the retained worktree
|
|
264
|
+
count. Retirement requires terminal run evidence and settled descendants,
|
|
265
|
+
durable continuity, evidence read-back and verified salvage where needed;
|
|
266
|
+
follow [Workspace hygiene](workspace-hygiene.md) and [T3 runtime](t3-runtime.md).
|
|
267
|
+
Then run the driver-start orphan sweep under Workspace hygiene; the sweep is
|
|
268
|
+
silent when nothing was removed. Record sweep results and holds in continuity's
|
|
269
|
+
Open holds table.
|
|
270
|
+
The orphan sweep covers the run record's repositories plus registered repositories on this host.
|
|
271
|
+
`t3_thread_organize` settle/archive changes metadata only; exact guarded Git
|
|
272
|
+
worktree removal remains separate. Unknown, active or user-taken-over threads,
|
|
273
|
+
ambiguous publication and failed salvage stay preserved.
|
|
274
|
+
|
|
275
|
+
A review-manager pass may retire a predecessor pass's local `t3code/*` branch
|
|
276
|
+
with exact `git branch -D <branch>` only when ALL hold: the predecessor pass is
|
|
277
|
+
settled and proven run/lane-owned by recorded identity, its descendants and
|
|
278
|
+
evidence are settled, no worktree has the branch checked out, no remote
|
|
279
|
+
counterpart exists, its tip equals the recorded tip, and its tip is an ancestor
|
|
280
|
+
of the verified remote default branch. Otherwise hold; all other `git branch -d`
|
|
281
|
+
rules remain unchanged.
|
|
282
|
+
|
|
283
|
+
Past the authorized storage limit (default 20 retained lane worktrees), disable the schedule
|
|
284
|
+
with `update_scheduled_task` using `enabled:false` and hold.
|
|
285
|
+
Read back the disabled schedule with `list_scheduled_tasks`; uncertainty holds.
|
|
286
|
+
|
|
287
|
+
After admission closes, settle every owned PR job and all descendants before
|
|
288
|
+
the manager pass ends. Complete guarded evidence archival and worktree cleanup.
|
|
289
|
+
Save continuity, open decisions, and the last pass summary using the linked
|
|
290
|
+
template; read back all four sections and the save before ending the finite turn.
|
|
291
|
+
Waiting PRs occupy zero slots after their trees settle. Cleanup retention holds
|
|
292
|
+
removal, not settled execution capacity. The next pass retires this settled pass.
|
|
293
|
+
|
|
294
|
+
## Activation canary
|
|
295
|
+
|
|
296
|
+
The canary runs two overlapping `run_scheduled_task_now` passes and proves one
|
|
297
|
+
admission owner per PR. The canary reviews or correctly no-ops one real PR event.
|
|
298
|
+
The canary reconciles a killed predecessor.
|
|
299
|
+
With a temporary limit equal to the current count, the canary disables the
|
|
300
|
+
schedule and verifies that the following interval creates zero new pass worktrees.
|
|
301
|
+
The previous review-manager automation is disabled, never deleted, only after all four T3 canary checks pass.
|
|
302
|
+
A firing timestamp proves neither delivery nor useful completion.
|
|
303
|
+
Source checks alone do not prove launch, overlap, recovery, or growth behavior.
|
|
302
304
|
|
|
303
305
|
## Recovery and limits
|
|
304
306
|
|
|
305
|
-
On a lost manager session, native
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
unambiguous work may proceed.
|
|
307
|
+
On a lost manager session, reconcile native T3 workers, task status, thread/run
|
|
308
|
+
state, GitHub state, and the compact run record. Reuse valid unchanged receipts.
|
|
309
|
+
Unknown ownership blocks only the affected PR; unknown liveness, approval or
|
|
310
|
+
publication outcome preserves its hold. Recovery never replaces a live writer
|
|
311
|
+
or takes over user work. Other unambiguous work can proceed.
|
|
311
312
|
|
|
312
|
-
Use only native schedules and
|
|
313
|
+
Use only native T3 schedules and orchestration. Add no daemon, shell precheck,
|
|
313
314
|
watchdog script, custom scheduler, cursor or pending sidecar, runtime database,
|
|
314
315
|
workflow state machine, decision interpreter, or programmatic escalation gate.
|
|
315
|
-
|
|
316
|
-
nested dispatch depth for coordinator-launched leaves, and resource ceiling
|
|
317
|
-
remain unverified until the canary succeeds.
|
|
316
|
+
Live VPS activation and the four canary outcomes remain unverified until exercised.
|
|
@@ -11,38 +11,51 @@ not a mode change.
|
|
|
11
11
|
|
|
12
12
|
Advance only after the finishing phase returns its completed identity (a
|
|
13
13
|
small-change intent, approved spec, matching ticket map, merge-ready or merged
|
|
14
|
-
state) and
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
14
|
+
state) and no hold affects the next action. Record each hold's reason, owner,
|
|
15
|
+
scope, and resume condition. Run-wide holds for authority, scope, cancellation,
|
|
16
|
+
or run-spanning serious risk stop the run. A task, PR, resource, or operation hold
|
|
17
|
+
blocks only its dependants; continue independent authorized work. Unclear impact
|
|
18
|
+
holds the potentially affected work until its boundary is resolved. For example,
|
|
19
|
+
tracker access, adviser or arena-seat availability, CI-wait timeout, readiness
|
|
20
|
+
UNKNOWN, dismissed approval, wake or cleanup uncertainty, single-provider routing,
|
|
21
|
+
an existing tag or version, and failed publish hold the work that needs them.
|
|
22
|
+
Diligence FINDINGS during implement
|
|
20
23
|
follow its §6 repair route; at spec, tickets, or release preparation the driver
|
|
21
24
|
resolves them before advancing, and only a recorded hold pauses autopilot.
|
|
22
25
|
|
|
23
26
|
Record `Autopilot: on | paused (<hold>; resume: <condition>) | off (cancelled
|
|
24
|
-
<ts>)` and the next step in
|
|
25
|
-
|
|
27
|
+
<ts>)` and the next step in `Next:`. Keep `on` for scoped holds
|
|
28
|
+
while independent work proceeds; use `paused` when no authorized action can
|
|
29
|
+
advance. A user answer to the hold resumes affected work after reconciliation;
|
|
30
|
+
silence does not.
|
|
31
|
+
The driver records each verified `Autopilot:` transition in the private run
|
|
32
|
+
record, which remains authoritative.
|
|
26
33
|
Awaiting human spec approval records `Autopilot: paused (spec approval; resume:
|
|
27
34
|
human approval)` as a decision hold eligible under the Notification policy.
|
|
28
35
|
|
|
29
36
|
## Phase sequence
|
|
30
37
|
|
|
31
38
|
- Small: Align read-back, small-change intent, implement, watch in maintain
|
|
32
|
-
mode, human merge. An opted-in Align refinement is part
|
|
39
|
+
mode, human merge. An opted-in Align refinement is part
|
|
40
|
+
of read-back.
|
|
33
41
|
- Substantial: Align, spec draft with advisers and diligence, human spec
|
|
34
42
|
approval at gate 1, tickets with diligence, implement, watch in maintain mode,
|
|
35
|
-
merge-ready,
|
|
43
|
+
merge-ready, merge under the watch §5 predicate. An opted-in Align refinement
|
|
44
|
+
is part of gate 1.
|
|
36
45
|
|
|
37
46
|
Do not seek another phase-start instruction after a completed identity.
|
|
38
|
-
Spec approval is always the human's decision.
|
|
39
|
-
|
|
47
|
+
Spec approval is always the human's decision. Audit self-improvement PRs follow
|
|
48
|
+
the same merge predicate. Only the original chat-run driver with the approved
|
|
49
|
+
ticket map may auto-merge PRs satisfying `axstack-implement` §6's approved
|
|
50
|
+
ticket-map membership and `integration` base conditions. The user merges peer
|
|
51
|
+
PRs and PRs into `deploying` bases. Managers, workers, reviewers, automations,
|
|
52
|
+
and standalone watches never merge. A stack follows its guarded bottom-up rule.
|
|
40
53
|
|
|
41
54
|
## Implement into maintain watch
|
|
42
55
|
|
|
43
56
|
When implement publishes the run's first PR, arm exactly one `axstack-watch`
|
|
44
|
-
chat-run in authorized maintain mode.
|
|
45
|
-
|
|
57
|
+
chat-run in authorized maintain mode. Read the [T3 runtime boundary](t3-runtime.md) and use its bound
|
|
58
|
+
`schedule_task` wake (`everyMs:600000`), recording the scheduledTaskId. Later run PRs join after verified
|
|
46
59
|
publication readback; an explicitly adopted PR joins only with its maintenance
|
|
47
60
|
snapshot. The original driver alone routes work; one author writes each
|
|
48
61
|
candidate. Until a PR is merge-ready, wakes feed implement §6 step 4. After
|
|
@@ -91,13 +104,13 @@ mutation require the recorded per-run authority and their existing checks.
|
|
|
91
104
|
## Resume, cancel, and notify
|
|
92
105
|
|
|
93
106
|
At every entry (user message, wake, compaction, or new chat), reconcile the
|
|
94
|
-
owner, authoritative
|
|
107
|
+
owner, authoritative attempt, approved revision, PR membership, uncertain
|
|
95
108
|
tags, wakes, publications, and completed receipts under lifecycle and
|
|
96
109
|
run-record before advancing. Only the original driver advances. Wakes do not
|
|
97
110
|
reset attempt budgets and do not grant approvals. Cancel sets `Autopilot: off`,
|
|
98
111
|
stops new actions, and ends the watch under watch §6 with guarded settlement.
|
|
99
|
-
Cancellation does not cancel a running author
|
|
100
|
-
report, then settle that exact
|
|
112
|
+
Cancellation does not cancel a running author run by inference; let it
|
|
113
|
+
report, then settle that exact attempt under lifecycle guards without new
|
|
101
114
|
publication.
|
|
102
115
|
|
|
103
116
|
Use the run's recorded Notification policy through `axstack-relay`.
|
|
@@ -37,14 +37,19 @@ Any author repair creates a new revision and repeats this boundary.
|
|
|
37
37
|
|
|
38
38
|
## Immutable checkout shape
|
|
39
39
|
|
|
40
|
-
The immutable checkout
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
40
|
+
The driver creates the immutable review checkout with `git worktree add --detach <run>/checkouts/<key> <sha>` at the confirmed candidate SHA and pinned base.
|
|
41
|
+
Follow [T3 runtime](t3-runtime.md) for async `delegate_task` and exact attempt
|
|
42
|
+
identity. The checkout is disposable, made from the existing repository; never
|
|
43
|
+
register a duplicate repository or replace it with a movable branch checkout.
|
|
44
|
+
Delegated reviewers must `cd` into their separate detached checkout; tracked candidate files remain read-only and outputs go to their private evidence folder.
|
|
45
|
+
Snapshot driver HEAD and full status, including untracked entries, before dispatch.
|
|
46
|
+
After each delegated completion, compare the driver HEAD and `git status --porcelain` with their pre-dispatch values; any change holds advancement.
|
|
47
|
+
Each peer reviewer has a separate checkout and evidence folder with no first-pass
|
|
48
|
+
cross-read. Later review gets a fresh checkout.
|
|
49
|
+
Before removing a reviewer checkout, read back its report and supporting evidence, then use exact `git worktree remove <run>/checkouts/<key>` without force.
|
|
50
|
+
Verify Git worktree absence under [Workspace hygiene](workspace-hygiene.md);
|
|
51
|
+
reviewer retirement preserves the separate author candidate until merge or closure.
|
|
52
|
+
Release checks use the same driver-made SHA-pinned detached-checkout procedure.
|
|
48
53
|
|
|
49
54
|
For a release PR, dispatch `axstack-diligence` under
|
|
50
55
|
[Diligence](diligence.md) to check the release PR body
|
|
@@ -39,24 +39,25 @@ the revised scope and plan.
|
|
|
39
39
|
Validate the configured provider and model at actual launch. If it is
|
|
40
40
|
unavailable or exhausted, pause affected work, record the gap, and ask the
|
|
41
41
|
user. Never infer a route from quota state or subscription entitlement. Every
|
|
42
|
-
substitution requires the user's decision: configured alternatives
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
42
|
+
substitution requires the user's decision: configured alternatives are not
|
|
43
|
+
defaults. Rejection, timeout, quota and auth failures hold affected work.
|
|
44
|
+
Read the [T3 runtime boundary](t3-runtime.md) before dispatch, receipt consumption
|
|
45
|
+
or recovery; resolve models from the saved capabilities snapshot and verify
|
|
46
|
+
requested and effective settings separately.
|
|
47
|
+
Optional seats follow [Role roster](role-roster.md), while required seats,
|
|
48
|
+
including resolved `model: null` bindings, hold without substitution except that a base auditor
|
|
49
|
+
preflight rejection follows [Close-out](lifecycle.md#close-out).
|
|
48
50
|
|
|
49
51
|
## Driver and adviser split
|
|
50
52
|
|
|
51
|
-
The current
|
|
53
|
+
The current T3 thread is the driver, whatever model runs it; there is no driver
|
|
52
54
|
profile. Record the driver's provider and model in the run record.
|
|
53
55
|
|
|
54
56
|
For Align and Spec, the driver forms an independent assessment first, then
|
|
55
57
|
consults `axstack-advisor-astra` and `axstack-advisor-opus` independently with
|
|
56
|
-
the same bounded evidence and question. The
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
verdicts return. The driver synthesizes disagreements,
|
|
58
|
+
the same bounded evidence and question. The exception covers every brainstorm: the driver frames
|
|
59
|
+
its brief and rubric and assesses only after the candidates and required judge
|
|
60
|
+
rounds return. The driver synthesizes disagreements,
|
|
60
61
|
owns the decision, and the user still approves the spec. Reuse each valid
|
|
61
62
|
unchanged receipt; changed evidence, scope, or question requires a fresh
|
|
62
63
|
receipt. If either adviser is unavailable, Align and Spec hold without model or
|
|
@@ -102,7 +103,7 @@ gate.
|
|
|
102
103
|
|
|
103
104
|
- The driver owns run scope, cross-PR coordination, integration, and every
|
|
104
105
|
selected external-tracker mutation. The checker reports discrepancies only.
|
|
105
|
-
- One
|
|
106
|
+
- One T3 host/server owns a run. There is no fixed active-PR count;
|
|
106
107
|
fanout is dependency- and capacity-driven within configured host resource and
|
|
107
108
|
spending limits. The driver reduces fanout when the run record shows rework,
|
|
108
109
|
review backlog, or resource pressure, queues conflicting or dependent work,
|
|
@@ -15,15 +15,15 @@ sketch through the scope identity.
|
|
|
15
15
|
not reclassify work: Rung 1 can stay small. An unsettled material design
|
|
16
16
|
question still makes routing reassess size.
|
|
17
17
|
- **Rung 2 — arena.** A Rung 1 design that also meets the existing ADR test:
|
|
18
|
-
a meaningful, hard-to-reverse, non-obvious trade-off. Use
|
|
19
|
-
|
|
18
|
+
a meaningful, hard-to-reverse, non-obvious trade-off. Use [Brainstorm](../../axstack-brainstorm/SKILL.md)
|
|
19
|
+
with its Rung 2 judge rounds for that question.
|
|
20
20
|
|
|
21
21
|
There is no numeric threshold, file-count gate, or class-count gate.
|
|
22
22
|
|
|
23
23
|
## Questions in order
|
|
24
24
|
|
|
25
25
|
Ask only unresolved areas in numbered `Qn` rounds of one to three. Give each a
|
|
26
|
-
recommendation, reason, and trade-off; use Align's
|
|
26
|
+
recommendation, reason, and trade-off; use Align's inline brainstorm synthesis. Design and
|
|
27
27
|
arena questions share its unchanged budget: 20 normally, a justified extension
|
|
28
28
|
to 35, then opted-in refinement of at most five.
|
|
29
29
|
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
# Diligence
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Read the [T3 runtime boundary](t3-runtime.md) before dispatch.
|
|
4
|
+
Dispatch `axstack-diligence` with async `delegate_task` in the driver worktree,
|
|
5
|
+
using a pinned brief and private evidence paths.
|
|
4
6
|
It is read-only, never authors or edits, and returns `PASS` or `FINDINGS`
|
|
5
7
|
with locations, observed evidence, and limits. A stale or missing receipt is
|
|
6
8
|
not a pass. Keep its first pass independent of other reviewers and workers.
|