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.
Files changed (50) hide show
  1. package/README.md +25 -23
  2. package/bin/axstack.js +17 -5
  3. package/docs/installation.md +104 -51
  4. package/docs/workflows.md +176 -131
  5. package/package.json +3 -3
  6. package/profiles/presets/claude-only.json +23 -23
  7. package/profiles/presets/codex-only.json +10 -10
  8. package/profiles/presets/mixed.json +24 -24
  9. package/skills/axstack/references/automations.md +136 -137
  10. package/skills/axstack/references/autopilot.md +30 -17
  11. package/skills/axstack/references/candidate-publication.md +13 -8
  12. package/skills/axstack/references/contracts.md +13 -12
  13. package/skills/axstack/references/design-lens.md +3 -3
  14. package/skills/axstack/references/diligence.md +3 -1
  15. package/skills/axstack/references/evidence-archive.md +38 -33
  16. package/skills/axstack/references/lifecycle.md +64 -50
  17. package/skills/axstack/references/review-manager-prompt.md +13 -11
  18. package/skills/axstack/references/role-roster.md +12 -2
  19. package/skills/axstack/references/routing.md +33 -25
  20. package/skills/axstack/references/run-record.md +35 -16
  21. package/skills/axstack/references/t3-runtime.md +237 -0
  22. package/skills/axstack/references/test-audit-weekly.md +62 -0
  23. package/skills/axstack/references/test-value.md +120 -0
  24. package/skills/axstack/references/ui-verification.md +5 -1
  25. package/skills/axstack/references/workspace-hygiene.md +102 -156
  26. package/skills/axstack/scripts/pr-digest.js +120 -0
  27. package/skills/axstack/scripts/resolve-models.js +102 -38
  28. package/skills/axstack-align/SKILL.md +19 -56
  29. package/skills/axstack-audit/SKILL.md +12 -3
  30. package/skills/axstack-audit/references/record.md +1 -1
  31. package/skills/axstack-brainstorm/SKILL.md +24 -0
  32. package/skills/axstack-brainstorm/references/arena.md +56 -0
  33. package/skills/axstack-cleanup/SKILL.md +69 -87
  34. package/skills/axstack-debug/SKILL.md +1 -1
  35. package/skills/axstack-explain/SKILL.md +1 -1
  36. package/skills/axstack-explain/references/visual-qa.md +2 -0
  37. package/skills/axstack-implement/SKILL.md +56 -20
  38. package/skills/axstack-improve/SKILL.md +24 -4
  39. package/skills/axstack-relay/SKILL.md +8 -6
  40. package/skills/axstack-research/SKILL.md +11 -4
  41. package/skills/axstack-review/SKILL.md +34 -30
  42. package/skills/axstack-spec/SKILL.md +18 -13
  43. package/skills/axstack-tickets/SKILL.md +7 -8
  44. package/skills/axstack-watch/SKILL.md +97 -27
  45. package/skills/axstack-watch/references/watch-runtime.md +51 -66
  46. package/src/capabilities.js +33 -69
  47. package/src/installer.js +1 -1
  48. package/src/instructions.js +9 -4
  49. package/skills/axstack/references/orca-runtime.md +0 -202
  50. package/skills/axstack/scripts/trust-path.js +0 -123
package/docs/workflows.md CHANGED
@@ -1,7 +1,8 @@
1
1
  # Axstack workflows
2
2
 
3
- Chat drives execution. Orca is the only supported active runtime and owns
4
- worktrees, sessions, supervised dispatch, messaging, settlement, and handoff.
3
+ The current T3 thread drives execution. T3 Code is the only supported active
4
+ runtime and owns worktrees, threads, runs, delegated tasks, messaging, and
5
+ native schedules.
5
6
  Axstack owns workflow policy, role data, evidence, and the private derived run
6
7
  record. It adds no daemon, scheduler, runtime database, or escalation engine.
7
8
 
@@ -11,7 +12,7 @@ Axstack implements that skill's specialist capability.
11
12
  ## Routing and scope identity
12
13
 
13
14
  The directly invoked phase loads the applicable shared references for routing,
14
- lifecycle, Orca runtime boundaries, role/model/risk contracts, the run record,
15
+ lifecycle, T3 runtime boundaries, role/model/risk contracts, the run record,
15
16
  and PR shape.
16
17
 
17
18
  Direct routes need no spec ceremony:
@@ -20,7 +21,10 @@ Direct routes need no spec ceremony:
20
21
  - `axstack-explain` separates implemented, intended, tested, live, and unknown
21
22
  behavior; complex visuals receive exact-artifact QA where applicable.
22
23
  - `axstack-improve` returns a small ranked set of evidenced improvement
23
- candidates without editing code.
24
+ candidates without editing code. Its test-audit lens marks every declaration
25
+ in one owner boundary R/F/C/D, reports reviewed and eligible counts, and routes
26
+ authorized, proven cleanup to Implement as structure-preserving work through
27
+ independent review.
24
28
  - Manual `axstack-review` can inspect existing code at an exact revision within
25
29
  a named scope. Both configured peer reviewers inspect six lenses independently;
26
30
  the driver reports validated defects and risks, improvement opportunities,
@@ -44,11 +48,36 @@ multi-PR or stacked work. Unclear work is clarified, then classified. A deeper p
44
48
  the same identity before action; missing preparation names the gap and holds
45
49
  only affected work.
46
50
 
51
+ ## Weekly test-audit activation
52
+
53
+ The packaged [weekly prompt](../skills/axstack/references/test-audit-weekly.md)
54
+ is repo-agnostic policy. No automation is created by this delivery; scheduling
55
+ starts later for each repository the user names.
56
+
57
+ 1. Record the repository and test-path allowlist, a finite pass budget, and
58
+ standing edit and PR-open authority. Zero deletions is normal; proven F
59
+ repairs are eligible.
60
+ 2. Configure that repository's dedicated T3 project and lane thread under the
61
+ [T3 runtime boundary](../skills/axstack/references/t3-runtime.md). Set and
62
+ read back its role binding, then use `schedule_task` with the packaged prompt
63
+ and activation values, `bindToCurrentThread:false`, and a stable
64
+ `clientRequestId`. Do not add a scheduler or cursor.
65
+ 3. Before enabling the schedule, pass the
66
+ [native activation canary](../skills/axstack/references/automations.md): fresh
67
+ pass threads, overlap admission, killed-predecessor recovery, capacity and
68
+ bounded retained worktrees. Preserve runtime receipts; source checks alone
69
+ do not establish these facts.
70
+ 4. Missing authority, or no passing native canary, holds activation. Each pass
71
+ derives one boundary from test-audit PR history, skips open PRs, overlap with
72
+ live T3 thread/run and worktree ownership, unsafe baselines or empty candidate sets,
73
+ and opens at most one independently reviewed test-only PR per week through
74
+ the driver. Workers never push; the human merges.
75
+
47
76
  ## Role presets
48
77
 
49
78
  Installation requires one explicit canonical preset. The three bundle files
50
79
  under `profiles/presets/` each contain exactly
51
- `{ "version": 1, "roles": [...] }` and the same 32 stable IDs.
80
+ `{ "version": 1, "roles": [...] }` and list all role IDs in the same order.
52
81
 
53
82
  The current chat drives on whatever model runs it; no preset carries a driver
54
83
  role.
@@ -72,12 +101,11 @@ their findings per claim without averaging.
72
101
  The installed `<skills-dir>/axstack/roles.json` adds the selected preset name:
73
102
  `{ "version": 1, "preset": "<name>", "roles": [...] }`. The runtime reads it
74
103
  from the installed shared root `skills/axstack/` and records the whole table for
75
- a new run. Per role it records class, exact ID, source, and time. Codex classes
76
- resolve from a passed catalog path using `skills/axstack/scripts/resolve-models.js`;
77
- missing or malformed catalogs hold. Claude's first class launch passes the alias,
78
- then the first assistant transcript turn supplies the exact ID for later launches.
79
- Unknown Claude IDs hold provenance-dependent work. Active runs and resume reuse
80
- their snapshot after later installation changes.
104
+ a new run. Per role it records class, exact ID, source, and time. Codex and
105
+ Claude classes resolve to the newest matching ID from the saved T3 capabilities
106
+ catalog using `skills/axstack/scripts/resolve-models.js --provider`; missing or
107
+ malformed catalogs hold. Active runs and resume reuse their snapshot after
108
+ later installation changes without re-resolution.
81
109
 
82
110
  Peer roles keep the stable IDs `axstack-reviewer-primary` and
83
111
  `axstack-reviewer-secondary`; their provider/class mappings come only from the
@@ -87,89 +115,88 @@ The unavailable adviser in each single-provider preset stays explicitly
87
115
  `model: null` within that provider's bounds. Installer readiness accepts that
88
116
  intentional absence, but Align and Spec hold because both independent receipts
89
117
  are required. The mixed checker and Google web-research route use provider
90
- `antigravity`; the X route uses `grok`. Launch-by-agent-id routes for which Orca
91
- exposes no model override (today: `grok`, `antigravity`) record `model: null` with an explicit note and are
92
- launchable; the run record snapshots the model the TUI reports. Missing or unavailable roles hold only affected
93
- work. Model, effort, and permission values express requested intent until real
94
- Orca receipts establish the effective session. Stored `modeId` is not permission
95
- parity or a sandbox. No route is inferred from subscription, quota, harness,
96
- provider defaults, or installed tools. Only explicit model rejection before the
97
- first turn permits a recorded Codex retry with `--retry-of` to the next eligible
98
- model in the same class, provider, and effort. Claude rejection, timeout, quota,
99
- and auth failures hold.
100
-
101
- ## Orca runtime boundary
102
-
103
- Immediately before dispatch, delivery processing, settlement, recovery, or
104
- handoff, load the shared `skills/axstack/references/orca-runtime.md`. It resolves
105
- one Orca executable, then loads only the version-matched guide needed by the
106
- operation: `orchestration` for Run/Task/Dispatch supervision, `orca-cli` for
107
- worktrees, automations, handoff, and publication, and `orca-linear` for Linear
108
- issues. Axstack follows current command help and named conditional references;
109
- guide availability is not exercised runtime support. It does not vendor the
110
- guides or restate a competing command protocol.
111
-
112
- All subagent, delegated-worker, reviewer, and cross-harness work goes through Orca
113
- orchestration via the `orca` CLI (`orca-cli` / `orchestration` guides). Do not use a
114
- harness-native subagent tool (e.g. Claude/Codex native subagents) for delegated work;
115
- use Orca runs, tasks, and dispatches instead so the work stays visible. OpenCode
116
- and Antigravity subagents run as Orca-supervised workers.
117
-
118
- Supervised work uses native Run, Task, and Dispatch identity. Preserve actual
119
- terminal, agent, worktree, requested/effective role, and revision receipts.
120
- `input_accepted` proves only terminal input; `turn_started` and session
121
- inspection are separate. Trust, permission, hook-review, authentication, and
122
- model prompts are visible holds. Never answer trust or permission prompts for a
123
- worker. Reconcile the existing attempt through the runtime guide before retry,
124
- so one candidate never gains a duplicate writer.
125
-
126
- Process each whole delivery before acknowledgment. A `worker_done` belongs only
127
- to its expected active Task and Dispatch, and its revision evidence still needs
128
- verification. `consumer_fenced` stops consumption under the stale identity;
129
- never forge, borrow, or bypass a coordinator identity. Runtime settlement owns
130
- reuse, retention, and release. A `user_takeover` terminal remains retained and
131
- is not reused or closed as cleanup.
132
-
133
- Ordinary restart reconciles the same owner, author, Task, Dispatch, worktree,
134
- revisions, and pending receipts. Idle, silence, contact loss, or missing status
135
- never proves exit. Authorized fixes return to the same original author when its
136
- session and evidence remain valid.
118
+ `antigravity`; the X route uses `grok`. Those agent-ID routes retain
119
+ `model: null` notes and resolve the exact model from the first provider entry
120
+ in saved T3 capabilities. Empty Antigravity catalogs hold. Missing or
121
+ unavailable roles hold only affected work. Requested model, effort, and
122
+ permission values need actual T3 configuration read-back; stored `modeId` is
123
+ neither permission parity nor a sandbox. Rejection, timeout, quota, and auth
124
+ failures hold; no subscription inference, quota routing, or alternative retry
125
+ applies.
126
+
127
+ ## T3 runtime boundary
128
+
129
+ Immediately before dispatch, receipt consumption, or recovery, load the shared
130
+ [T3 runtime reference](../skills/axstack/references/t3-runtime.md). The driver
131
+ saves `orchestrator_capabilities` JSON and follows the advertised tool schema.
132
+ The reference owns role dispatch, provider options, receipts, questions,
133
+ launch recovery, run-watch waits, ownership transfer, and cleanup.
134
+ Capability discovery alone is not execution proof.
135
+
136
+ All subagent, delegated-worker, reviewer, and cross-harness work uses T3
137
+ orchestration through the `t3-code` MCP. Do not use harness-native subagent
138
+ tools. Read-only roles use async `delegate_task`; reviewers and investigators
139
+ receive driver-made disposable detached checkouts pinned to candidate and base.
140
+ Authors use `t3_thread_launch` in their own SHA-pinned worktrees. Repairs return
141
+ to the same author and worktree. The current T3 driver owns coordination and
142
+ forge mutations and never writes an author's tracked files.
143
+
144
+ Preserve native `taskId/childThreadId/childRunId` or
145
+ `threadId/runId/worktree/branch/base SHA`, dispatch key, requested/effective
146
+ configuration, and private evidence. Persist `task_status` before
147
+ `t3_thread_read`; delegated completion needs terminal success, available result,
148
+ settled child runs, and the current `AXSTACK-DONE` marker. Launched writers
149
+ send their marker to the driver, which also verifies terminal `t3_thread_wait`,
150
+ a clean tree, non-empty diff, and red/green logs. An older attempt never
151
+ completes a newer one. Questions remain incomplete until the resumed run settles.
152
+
153
+ Trust, permission, authentication, and provider safety prompts are holds;
154
+ never answer trust or permission prompts for a worker. Unknown liveness,
155
+ silence, or a missing status never proves exit or authorizes a second writer.
156
+ Ordinary resume keeps the owner, author, attempt, worktree, and pending receipts.
157
+ The runtime reference defines exact-title recovery and recipient acceptance
158
+ for explicit ownership transfer.
137
159
 
138
160
  ## Phases
139
161
 
140
162
  - `axstack-align` maps facts and dependencies, asks prioritized questions, and
141
163
  consults Astra and Opus independently with the same bounded evidence and
142
164
  question. It synthesizes disagreements and reuses unchanged receipts. For a
143
- hard-to-reverse design choice it runs an arena instead: Astra, Opus, Grok,
144
- and Antigravity each author a candidate. `axstack-arena-judge-opus` scores
145
- them in round 1; the driver compares its own pick with that verdict. If they
146
- disagree on the base or the user rejects the round-1 synthesis,
147
- `axstack-escalation-fable` and `axstack-arena-judge-astra` independently
148
- score the same anonymized candidates and rubric in round 2. The driver
149
- picks a base, grafts strong ideas, and records judge verdicts per round in
150
- the `Decisions` rows without averaging. Fable escalation uses a fresh
151
- session for round 2, high-stakes agreement, or the bounded trigger in
165
+ Rung 1 or 2 design question it loads `axstack-brainstorm` inline and reuses
166
+ its receipt instead of consulting twice; Align owns the interview.
167
+ - `axstack-brainstorm` validates an approach standalone or inline in the driver,
168
+ report-only. Every invocation compares independent Astra, Opus, Grok and
169
+ Antigravity candidates, including premise and smallest-change/do-nothing
170
+ checks. The driver scores, picks and grafts; Rung 1 uses no judges. At Rung 2,
171
+ `axstack-arena-judge-opus` judges round 1; disagreement on the base or caller
172
+ re-invocation with the user's rejection triggers fresh Fable/Astra round 2.
173
+ It returns a verdict, sketch and proposed questions, with no interview,
174
+ prototype or execution approval. Required seats hold; optional dropouts are
175
+ fenced. Fable also serves the bounded triggers in
152
176
  [Standing contracts](../skills/axstack/references/contracts.md).
153
177
  - `axstack-spec` writes observable acceptance, exclusions, decisions, and one
154
- user-approved revision baseline. Linear is the default authoritative store;
155
- GitHub Issues and repository Markdown are explicit alternatives. A GitHub
156
- baseline pins the issue URL and approved body digest. Linear document
157
- operations preflight the current `orca-linear` guide and command help; a
158
- missing native operation holds only that operation without MCP fallback or a
159
- store switch.
178
+ user-approved revision baseline. Linear through the executor MCP is the
179
+ default only for `defi-com` repositories; GitHub Issues and repository
180
+ Markdown are explicit alternatives and the stores for other repositories.
181
+ A GitHub baseline pins the issue URL and approved body digest. Preflight
182
+ Linear document access separately through executor; a missing operation
183
+ holds only that operation without mutation or a store switch. Notion also
184
+ uses executor, including both accounts.
160
185
  - `axstack-tickets` maps user-visible capabilities to dependency-aware internal
161
- tasks. Linear is the default selected store with access preflight; GitHub
162
- Issues is an explicit external-tracker alternative and repository Markdown
163
- is an explicit local alternative. Only the driver mutates lifecycle state.
186
+ tasks in the selected Markdown, GitHub Issues, or Linear store under the same
187
+ organization boundary. Only the driver mutates lifecycle state.
164
188
  - `axstack-implement` uses strict behavioral RED, GREEN, then refactor. The
165
189
  narrow accepted structure-preserving route uses old-green and the same check
166
190
  new-green. One author writes and returns a local receipt without pushing. The
167
191
  owner reconciles it, publishes the unchanged commits through `gh stack`, and
168
192
  confirms the remote SHA before review. Local green and CI green remain
169
- separate evidence.
193
+ separate evidence. Authors apply the shared
194
+ [test-value gate](../skills/axstack/references/test-value.md) to each new or
195
+ changed test; reviewers check added, changed, and removed test hunks, including
196
+ the named keepers or vacuity/obsolescence evidence for removals.
170
197
  - `axstack-review` gives peer PRs two isolated same-brief reviewers and authored
171
198
  PRs one eligible cross-family/preset-mapped reviewer. Every reviewer runs in
172
- a separate candidate-child worktree, with private evidence preserved before
199
+ a separate detached checkout, with private evidence preserved before
173
200
  removal. All cover security,
174
201
  correctness, integration, requirements, design, and simplicity. Report-only
175
202
  never publishes; authorized submission binds the exact commit.
@@ -181,12 +208,14 @@ session and evidence remain valid.
181
208
  and remote readback.
182
209
  - `axstack-audit` separates execution outcome, procedure, and measurement
183
210
  coverage with evidenced denominators; it proposes but never self-edits.
184
- - `axstack-cleanup` distinguishes settled-Dispatch release, exact unused-shell
185
- close, evidence-safe native worktree removal and branch effects, and separate
186
- chat archival when the discovered runtime actually supports it. Process exit
187
- alone never promises that visible chat history disappeared.
188
-
189
- One Orca execution host owns a run, one persistent owner owns each PR, and one
211
+ - `axstack-cleanup` settles inline in the driver. Confirm descendants settled,
212
+ read back private evidence, salvage dirty or ignored non-cache content,
213
+ archive the exact eligible thread, then remove its exact worktree without
214
+ force and delete only eligible local branches. T3 metadata actions do not
215
+ remove worktrees. Authors remain until their PR merges or closes; the current
216
+ pass, unsettled descendants, and user-taken-over threads remain protected.
217
+
218
+ One T3 host/server owns a run, one persistent owner owns each PR, and one
190
219
  writer owns each candidate. Fanout has no fixed PR count; it follows real
191
220
  dependencies, writer isolation, host capacity, and spending limits. Each PR has
192
221
  one theme and a measured size under the shared
@@ -200,8 +229,8 @@ autonomous driver choices; size alone never requires user approval.
200
229
 
201
230
  Only an explicit user request transfers ownership. Record the intended
202
231
  recipient, exact scope, revisions, authority, and pending request, then follow
203
- the runtime-owned `orca-cli` handoff guide. Input acceptance and turn start do
204
- not transfer ownership. The recipient must explicitly accept the exact handoff;
232
+ the [T3 runtime transfer contract](../skills/axstack/references/t3-runtime.md).
233
+ Input acceptance and turn start do not transfer ownership. The recipient must explicitly accept the exact handoff;
205
234
  only then does the prior owner stop. Missing capability or ambiguous acceptance
206
235
  keeps the current owner and a resumable record.
207
236
 
@@ -212,8 +241,8 @@ prompt immediately and hold dependent dangerous work. This is not a runtime
212
241
  gate. An applicable `Notification policy` may use `axstack-relay` only for a
213
242
  user-decision hold (including spec or npm approval and a genuine blocker after
214
243
  bounded safe recovery), a serious-risk hold immediately, or at most two merge-ready/merged milestones per run.
215
- Routine questions stay in Orca. Progress, CI pending, and completion always stay
216
- in Orca.
244
+ Routine questions stay in the T3 driver thread. Progress, CI pending, and
245
+ completion always stay in the T3 driver thread.
217
246
  Only the bounded categories—user-decision holds (including spec approval),
218
247
  serious-risk holds, and at most two merge-ready/merged milestones per run—may
219
248
  be relayed under the recorded Notification policy. The relay normally delivers
@@ -230,51 +259,66 @@ read-only observer for standalone watches and never sends.
230
259
 
231
260
  For authorized engineering delivery, [Autopilot](../skills/axstack/references/autopilot.md)
232
261
  continues from Align through the eligible phase sequence in the same chat.
233
- The human approves substantial specs, every merge including release PRs, and
234
- the npm stage. An open hold pauses the run. Implement arms maintain-mode watch
262
+ The human approves substantial specs, release PRs, peer and deploying-base
263
+ merges, and the npm stage. Only the chat-run driver holding the approved ticket
264
+ map may merge its own eligible integration-base PRs under the full
265
+ [watch merge predicate](../skills/axstack-watch/SKILL.md#5-state-readiness-precisely). Managers,
266
+ workers, reviewers, automations, and standalone watches never merge. An open
267
+ hold pauses the run. Implement arms maintain-mode watch
235
268
  at its first published PR; release and install run only under recorded per-run
236
269
  authority, and Close-out follows their verified receipts.
237
270
 
238
- Use `axstack-watch` chat-run mode to watch every PR raised by this chat's Run, including later verified publications and PRs the driver explicitly adopts. A harness-native monitoring or scheduled wake resumes the driver chat every 10 minutes by default; only when the harness has no such capability does the existing Orca `*/10` observer act as fallback. Record the chosen mechanism in the run record. Each wake runs the own-PR maintenance loop: address feedback, rebase on base movement, rerun required CI, and check the forge-counted human approval. Delegated work still runs through Orca; there is no daemon or polling model between wakes. Independent PRs can repair in parallel with one writer per PR; stack ancestor changes invalidate child evidence. An incomplete scan leaves readiness `UNKNOWN`.
239
-
240
- The watch lasts until all member PRs merge or close and the run's release step is settled or not applicable, you cancel it, or its wake expires. Stop and verify the chosen wake; an Orca fallback also needs automation disable/readback and workspace retirement. Worker settlement and run archive are separate driver steps. Run-created implementation candidates are published and read back before independent authored review. Adopted own-PR maintenance candidates receive independent exact-local-SHA review before driver publication and remote readback. The human merges. Source and installed instructions do not prove scheduled observation, driver wake, or live activation; those require native receipts.
271
+ Use `axstack-watch` chat-run mode to watch every PR raised by this run,
272
+ including later verified publications and PRs explicitly adopted by the driver.
273
+ A bound T3 schedule resumes the driver thread every 10 minutes; record the
274
+ schedule ID and expiry. Each wake reconciles all unsettled dispatch attempts
275
+ and runs the own-PR maintenance loop: feedback, base movement, required CI,
276
+ and approval. Delegated work follows the T3 runtime contract. There is no
277
+ daemon or polling model between wakes. Independent PRs can repair in parallel
278
+ with one writer per PR; a changed stack ancestor invalidates child evidence.
279
+ An incomplete scan leaves readiness `UNKNOWN`.
280
+
281
+ The watch lasts until all member PRs merge or close and release is settled or
282
+ not applicable, the user cancels, or its wake expires. Delete the schedule by
283
+ its recorded ID and verify absence through `list_scheduled_tasks`; uncertain
284
+ deletion preserves the hold. Settlement and run archive are separate driver
285
+ steps. Implementation candidates are published and read back before independent
286
+ authored review. Adopted own-PR maintenance receives independent exact-local-SHA
287
+ review before driver publication and remote readback. The human merges by
288
+ default. Installed instructions do not prove scheduled observation or driver wake.
241
289
 
242
290
  ## Optional native peer-review automation
243
291
 
244
- The optional native review manager runs at minutes `0,15,30,45`. Each
245
- scheduled pass uses a fresh finite session in one dedicated existing workspace, scans complete
246
- discovery pages, and admits eligible actionable PR events within measured host
247
- capacity. Waiting PRs stay covered and consume no slot after
248
- owned descendants settle. Each job uses one repository-parented worktree; the
249
- manager never checks out PR branches in its own workspace.
250
-
251
- Every pass reconciles saved, GitHub, and native Orca state across the lane before
252
- admission. A confirmed same-lane manager makes the new duplicate do no work or
253
- shared-record write; it closes only its own exact terminal. The pass settles
254
- descendants,
255
- releases worker terminals, archives private evidence and reads it back, then
256
- uses `axstack-cleanup` guards to remove reviewer and PR-job worktrees. A merged
257
- or closed PR does not keep a clean job worktree waiting for a user decision.
258
- Dirty source, unpushed commits, `user_takeover`, unknown liveness, and ambiguous
259
- publication remain cleanup holds. The manager saves compact continuity, then
260
- closes its own exact terminal as the final action. Manual review and user-driven
261
- `axstack-watch` remain outside this scheduled lifecycle.
262
-
263
- Manager and job commands set `TMPDIR` to a private directory inside their owning
264
- workspace. Each bounded job uses a private `0700` directory. Cleanup targets
265
- only the validated owned path: no `TMPDIR` globs,
266
- shared-root sweeps, or general cache wipes, and uncertain files remain for
267
- reconciliation. Permission prompts and provider safety refusals are incomplete
268
- holds, never bypass or cross-model retry signals. The coordinator preserves the
269
- evidence, settles the exact owned tree through Orca's supported lifecycle, and
270
- releases capacity only after native settlement is verified. Unresolved execution
271
- teardown pauses the lane; retained evidence or cleanup metadata does not consume
272
- a slot after positive full-tree settlement. Once settled, an unchanged held
273
- event remains deduplicated while unrelated eligible PRs continue.
274
-
275
- Requested peer reviews cover any accessible repository. Orca owns schedules,
276
- sessions, Tasks, and Dispatches. Axstack adds no custom scheduler, queue engine,
277
- cursor files, polling loop, or historical runtime fallback.
292
+ The optional native review manager uses the VPS T3 project `axstack-review-lane`
293
+ on the existing host clone. Configure and read back the lane's `axstack-owner`
294
+ binding, then create an unbound T3 schedule every 15 minutes. Each pass starts
295
+ in a fresh finite worktree from `origin/main`, fetches first, and checks its
296
+ binding. Continuity lives outside worktrees at
297
+ `~/.local/share/axstack/runs/review-manager/progress.md`. Per-PR detached
298
+ review checkouts come from existing host clones; a missing clone holds that job.
299
+
300
+ Every pass reconciles saved, GitHub, and native T3 state across the lane before
301
+ admission and reads all discovery pages. Incomplete inventory or unknown
302
+ ownership holds admission. A live or uncertain earlier pass keeps its PRs;
303
+ ordering evidence is required to identify the earlier owner. A duplicate
304
+ admits nothing, writes only its private discovery note, and notifies once about
305
+ a stalled owner under the recorded policy.
306
+
307
+ Capacity is measured across the host. Waiting events stay covered and occupy
308
+ no execution slot after descendants settle. Each pass retires eligible settled
309
+ predecessors through `axstack-cleanup` and records retained worktree count.
310
+ Past the authorized storage limit (default 20 lane worktrees), disable the
311
+ schedule with `enabled:false` and hold. The overlap, real-event, killed-predecessor,
312
+ and storage-limit canaries must pass before activation.
313
+
314
+ Jobs use private owned `0700` scratch paths. Preserve evidence before exact
315
+ cleanup; dirty source, ignored non-cache content, unpushed commits,
316
+ user-taken-over threads, uncertain publication, and unknown liveness hold
317
+ retirement. No broad scratch deletion or forced worktree removal applies.
318
+ Manual review and user-driven `axstack-watch` remain outside this schedule.
319
+ Requested peer reviews cover any accessible repository. T3 owns schedules,
320
+ threads, runs, and delegated tasks; Axstack adds no queue engine, scheduler,
321
+ cursor files, or historical runtime fallback.
278
322
 
279
323
  ## Review automation
280
324
 
@@ -296,14 +340,15 @@ canary described by the operational contract.
296
340
 
297
341
  Substantive delegated or resumable work uses one compact `progress.md` rooted at
298
342
  `git rev-parse --path-format=absolute --git-common-dir`. It is shared across
299
- worktrees but never tracked. The driver alone writes it; actual Orca state, Git
343
+ worktrees but never tracked. The driver alone writes it; actual T3 state, Git
300
344
  revisions, forge state, and approved scope remain authoritative.
301
345
 
302
346
  Structural checks verify packaging and declared policy, not agent behavior.
303
347
  Predeclared scenario evaluation is qualitative behavior evidence, not deterministic proof. Runtime
304
- compatibility requires actual guide discovery, role/session evidence, worktree
305
- and Dispatch receipts, completion delivery, and cleanup as applicable. Mobile
306
- completion and reply behavior remain unverified.
348
+ compatibility requires capability discovery, configuration read-back, native
349
+ thread/run/task and worktree receipts, completion delivery, and cleanup as
350
+ applicable. Mobile completion and reply behavior remain unverified for routes
351
+ without matching live receipts.
307
352
  End-to-end compatibility remains unverified for any route without matching
308
353
  runtime receipts; evidence from one route does not establish support for all roles.
309
354
 
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "axstack",
3
- "version": "0.20.31",
4
- "description": "Axstack installer and setup CLI: installs owned chat skills and role data, configures supported harness settings, and checks Orca capabilities.",
3
+ "version": "0.22.0",
4
+ "description": "Axstack installer and setup CLI: installs owned chat skills and role data, configures supported harness settings, and checks T3 Code capabilities.",
5
5
  "keywords": [
6
6
  "claude-code",
7
7
  "codex",
8
- "orca",
8
+ "t3-code",
9
9
  "agents",
10
10
  "skills",
11
11
  "orchestration"