axstack 0.20.31 → 0.21.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 (47) hide show
  1. package/README.md +22 -21
  2. package/bin/axstack.js +17 -5
  3. package/docs/installation.md +97 -48
  4. package/docs/workflows.md +165 -122
  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 +127 -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 +10 -8
  13. package/skills/axstack/references/diligence.md +3 -1
  14. package/skills/axstack/references/evidence-archive.md +38 -33
  15. package/skills/axstack/references/lifecycle.md +64 -50
  16. package/skills/axstack/references/review-manager-prompt.md +13 -11
  17. package/skills/axstack/references/role-roster.md +12 -2
  18. package/skills/axstack/references/routing.md +29 -25
  19. package/skills/axstack/references/run-record.md +35 -16
  20. package/skills/axstack/references/t3-runtime.md +234 -0
  21. package/skills/axstack/references/test-audit-weekly.md +62 -0
  22. package/skills/axstack/references/test-value.md +120 -0
  23. package/skills/axstack/references/ui-verification.md +5 -1
  24. package/skills/axstack/references/workspace-hygiene.md +102 -156
  25. package/skills/axstack/scripts/pr-digest.js +120 -0
  26. package/skills/axstack/scripts/resolve-models.js +94 -38
  27. package/skills/axstack-align/SKILL.md +17 -7
  28. package/skills/axstack-audit/SKILL.md +12 -3
  29. package/skills/axstack-audit/references/record.md +1 -1
  30. package/skills/axstack-cleanup/SKILL.md +69 -87
  31. package/skills/axstack-debug/SKILL.md +1 -1
  32. package/skills/axstack-explain/SKILL.md +1 -1
  33. package/skills/axstack-explain/references/visual-qa.md +2 -0
  34. package/skills/axstack-implement/SKILL.md +56 -20
  35. package/skills/axstack-improve/SKILL.md +24 -4
  36. package/skills/axstack-relay/SKILL.md +8 -6
  37. package/skills/axstack-research/SKILL.md +11 -4
  38. package/skills/axstack-review/SKILL.md +34 -30
  39. package/skills/axstack-spec/SKILL.md +18 -13
  40. package/skills/axstack-tickets/SKILL.md +7 -8
  41. package/skills/axstack-watch/SKILL.md +97 -27
  42. package/skills/axstack-watch/references/watch-runtime.md +51 -66
  43. package/src/capabilities.js +33 -69
  44. package/src/installer.js +1 -1
  45. package/src/instructions.js +9 -4
  46. package/skills/axstack/references/orca-runtime.md +0 -202
  47. package/skills/axstack/scripts/trust-path.js +0 -123
package/README.md CHANGED
@@ -6,8 +6,8 @@ Engineering workflows for AI agents, from a first question to a reviewed PR.
6
6
  align → spec → tickets → implement → review → watch
7
7
  ```
8
8
 
9
- Axstack gives your current chat a way to scope work, build it with tests, and
10
- review the exact result. Orca provides worktrees, agent sessions, and visible
9
+ Axstack gives your current T3 thread a way to scope work, build it with tests, and
10
+ review the exact result. T3 Code provides worktrees, agent threads, and visible
11
11
  coordination. You can start at the phase you need.
12
12
 
13
13
  ## What you can do
@@ -39,14 +39,14 @@ implementation. Research, explanation, and peer review can start directly.
39
39
  | Wrong thing built | Align rounds clarify the request; a four-family arena compares approaches for hard choices. |
40
40
  | Nobody really reviewed it | Strict TDD checks behavior first; with the mixed preset, cross-provider review checks the exact revision. |
41
41
  | Design rot | The design lens sketches boundaries before a build; Improve surfaces evidenced changes later. |
42
- | Agents left a mess | Orca makes delegation visible, one writer owns each PR, cleanup stays bounded, and a human merges. |
42
+ | Agents left a mess | T3 makes delegation visible, one writer owns each PR, cleanup stays bounded, and a human merges. |
43
43
 
44
44
  ## Quick start
45
45
 
46
46
  > [!NOTE]
47
47
  > You need Bun >=1.3.14, Git, the GitHub CLI (`gh`) with `gh stack`, and a
48
- > running Orca with the `orca-cli`, `orchestration`, and `orca-linear` guides.
49
- > The agents selected by your preset must also be available in Orca.
48
+ > running T3 Code `0.0.46-nightly.20261003.2610` or newer.
49
+ > The agents selected by your preset must also be available through T3.
50
50
 
51
51
  Install the CLI and skills. This example targets Codex:
52
52
 
@@ -56,7 +56,7 @@ axstack check --harness codex
56
56
  axstack install --harness codex --preset mixed --yes
57
57
  ```
58
58
 
59
- Open an Orca chat and ask for the phase you need:
59
+ Open a T3 thread and ask for the phase you need:
60
60
 
61
61
  ```text
62
62
  $axstack-align Help me scope account recovery.
@@ -83,7 +83,9 @@ sets an explicit target without automatic migration.
83
83
  Use `--harness claude`, `opencode`, or `antigravity` with `axstack check` and
84
84
  `axstack install`, or provide explicit skill and instruction paths. Installation
85
85
  adds an owned instruction block and preserves unrelated content. It does not
86
- enable automations or prove that every configured model is available.
86
+ enable schedules or prove that every configured model is available. T3 uses
87
+ its managed Antigravity runtime with separate browser sign-in; the IDE/`agy`
88
+ skill paths do not configure that runtime.
87
89
 
88
90
  </details>
89
91
 
@@ -92,15 +94,16 @@ upgrades, conflicts, and uninstalling.
92
94
 
93
95
  ## How work stays controlled
94
96
 
95
- - The current chat drives scope, coordination, and publication. Delegation uses
96
- visible Orca orchestration via the `orca` CLI, not harness-native subagent
97
- tools. Separate worktrees keep one writer on each candidate.
97
+ - The current T3 thread drives scope, coordination, and publication. Delegation uses
98
+ visible T3 orchestration via the `t3-code` MCP; harness-native subagent
99
+ tools are forbidden. Separate worktrees keep one writer on each candidate.
100
+ See the [T3 runtime boundary](skills/axstack/references/t3-runtime.md).
98
101
  - Peer PRs receive two independent reviews. Authored changes receive a reviewer
99
102
  selected from the author's configured pairing. Reviews bind to exact revisions.
100
103
  - Agents keep accepted decisions and evidence for resume. Missing authority,
101
104
  unavailable models, and serious risks surface as holds. The human merges by default.
102
105
 
103
- Choose one explicit preset (32 roles each): [mixed](profiles/presets/mixed.json)
106
+ Choose one explicit preset (each contains all role IDs): [mixed](profiles/presets/mixed.json)
104
107
  (recommended), [codex-only](profiles/presets/codex-only.json), or
105
108
  [claude-only](profiles/presets/claude-only.json). Mixed supports cross-provider
106
109
  implementation review; single-provider presets have workflow limits and are
@@ -115,20 +118,18 @@ pair seats in `mixed` and `codex-only`; `claude-only` records them as absent.
115
118
  ## Optional PR automation
116
119
 
117
120
  Manual review works without a schedule. Own open PRs in chat-run mode use a
118
- harness-native monitoring or scheduled wake to resume the driver chat every 10
119
- minutes; the existing Orca `*/10` observer is fallback only when the harness
120
- has no such capability. Each wake checks feedback, base, CI, and human approval;
121
- delegated work still uses Orca. Stop the chosen wake when all watched PRs merge
122
- or close, the user cancels, or it expires.
121
+ bound T3 schedule to resume the driver thread every 10 minutes. Each wake
122
+ checks feedback, base, CI, and approval. Stop and verify deletion of the watch
123
+ when all watched PRs merge or close and release is settled or not applicable, the user cancels,
124
+ or it expires.
123
125
 
124
- An optional native Orca review manager handles recurring peer review; the
125
- review automation never merges for you. Its activation is opt-in and needs
126
- live host validation. See
127
- [PR-manager setup and safety](skills/axstack/references/automations.md).
126
+ An optional native T3 review manager runs finite peer-review passes every 15
127
+ minutes; the review automation never merges for you. Activation needs live
128
+ host validation. See [PR-manager setup and safety](skills/axstack/references/automations.md).
128
129
 
129
130
  ## Some notes
130
131
 
131
- - Orca is the only supported active runtime. Axstack adds no daemon or runtime
132
+ - T3 Code is the only supported active runtime. Axstack adds no daemon or runtime
132
133
  database.
133
134
  - A human merges by default.
134
135
  - This is an early project; expect the workflows to evolve.
package/bin/axstack.js CHANGED
@@ -14,6 +14,7 @@ import {
14
14
  validateBundle,
15
15
  } from '../src/installer.js';
16
16
  import { BUN_FLOOR, checkCapabilities, meetsFloor, runRealCheck } from '../src/capabilities.js';
17
+ import { findLegacyRoutingLines } from '../src/instructions.js';
17
18
  import { harnessLocations } from '../src/locations.js';
18
19
 
19
20
  // import.meta.dir is already a filesystem path (no URL conversion, so
@@ -50,8 +51,8 @@ Usage:
50
51
  Commands:
51
52
  install Validate a skill bundle, then copy owned skills and selected role
52
53
  data and record ownership hashes.
53
- check Probe Bun, Git, gh stack, and resolved Orca runtime/guide
54
- capabilities. Probes do not prove model or execution compatibility.
54
+ check Probe Bun, Git, gh stack, and the T3 Code version floor.
55
+ Driver preflight verifies MCP readiness inside a T3 thread.
55
56
  uninstall Remove only unchanged Axstack-owned assets. User edits survive.
56
57
 
57
58
  Flags:
@@ -110,7 +111,7 @@ function parseArgs(argv) {
110
111
  const tok = rest.shift();
111
112
  if (tok === '--profile') {
112
113
  throw new Error(
113
- '--profile is obsolete in the Orca-only installer; role data is installed as axstack/roles.json and legacy Paseo cleanup is separate',
114
+ '--profile is obsolete in the T3 Code installer; role data is installed as axstack/roles.json and legacy Paseo cleanup is separate',
114
115
  );
115
116
  }
116
117
  if (wantsValue.has(tok)) {
@@ -398,7 +399,6 @@ async function main() {
398
399
  }
399
400
  if (command === 'check') {
400
401
  const report = await checkCapabilities(runRealCheck);
401
- printCheckReport(report);
402
402
  if (flags.bundle) {
403
403
  const bundle = await validateBundle(resolve(flags.bundle));
404
404
  const presetNames = Object.keys(bundle.presets);
@@ -418,8 +418,20 @@ async function main() {
418
418
  `instruction ${instruction.status}: ${instruction.path}` +
419
419
  (instruction.reason ? ` (${instruction.reason})` : ''),
420
420
  );
421
- if (instruction.status !== 'owned') process.exitCode = 1;
421
+ if (instruction.status !== 'owned') {
422
+ report.gaps.push(`instruction ${instruction.status}: ${instruction.reason ?? 'Axstack binding is absent'}`);
423
+ }
424
+ let text;
425
+ try {
426
+ text = readFileSync(instruction.path, 'utf8');
427
+ } catch (err) {
428
+ if (err?.code !== 'ENOENT') throw err;
429
+ }
430
+ if (text !== undefined && findLegacyRoutingLines(text).length > 0) {
431
+ report.gaps.push('gap: legacy routing remains outside the Axstack block; preserved for manual migration');
432
+ }
422
433
  }
434
+ printCheckReport(report);
423
435
  if (report.gaps.length > 0) process.exitCode = 1;
424
436
  return;
425
437
  }
@@ -1,16 +1,45 @@
1
1
  # Installation
2
2
 
3
3
  Axstack's Bun CLI installs owned chat skills plus one selected role snapshot and
4
- checks host capabilities. Orca is the only supported active runtime. The CLI
5
- does not dispatch agents, edit Orca settings, run a scheduler, or maintain a
4
+ checks host capabilities. T3 Code is the only supported active runtime. The CLI
5
+ does not dispatch agents, edit T3 settings, run a scheduler, or maintain a
6
6
  workflow database.
7
7
 
8
8
  Requirements: Bun >=1.3.14, Git, `gh`, the `gh stack` extension, and a running
9
- Orca whose version-matched `orchestration`, `orca-cli`, and `orca-linear`
10
- guides are available.
9
+ T3 Code `0.0.46-nightly.20261003.2610` or newer. The driver is a T3 thread
10
+ with the `t3-code` MCP. See the [T3 runtime boundary](../skills/axstack/references/t3-runtime.md).
11
11
  There are no runtime dependencies. Filesystem access uses Bun-backed `node:fs`
12
12
  and `node:fs/promises`; no other Node runtime contract is introduced.
13
13
 
14
+ ## T3 setup
15
+
16
+ Set `worktreeCleanup` to `off` for every Axstack project before dispatch;
17
+ Axstack preserves author worktrees and salvages evidence before retirement.
18
+ The driver reads back this setting via `t3_project_read` where exposed, or
19
+ records the setup limitation.
20
+
21
+ For remote and Android access on the existing tailnet, run:
22
+
23
+ ```sh
24
+ t3 serve --tailscale-serve
25
+ t3 pair
26
+ ```
27
+
28
+ Run `t3 serve --tailscale-serve` as a VPS user service and pair the Android
29
+ app with `t3 pair`. T3 Connect is outside this setup. Service installation,
30
+ network access, and pairing require their own authorized host checks.
31
+
32
+ Install Antigravity through T3 provider settings using its managed runtime,
33
+ then complete the user's browser sign-in before its canary. T3 uses Google's
34
+ Antigravity ACP agent (`agy_acp_server`); the IDE/`agy` CLI skill paths below
35
+ are separate installer targets and do not configure this managed runtime.
36
+ Antigravity roles receive self-contained briefs; its runtime does not read
37
+ `~/.agents/skills`. A missing runtime, sign-in, or canary holds those roles.
38
+
39
+ Grok CLI must be >=1.0.13 on desktop and VPS. T3 advertising Grok does not
40
+ prove the CLI runs. Hermes relay remains unchanged: verify native `hermes send`
41
+ and its configured home channel under recorded notification authority.
42
+
14
43
  ## Commands
15
44
 
16
45
  ### Install
@@ -55,7 +84,7 @@ conflict. Then finish that owner with
55
84
  the settings sidecar preserves the value while any other install still owns it.
56
85
 
57
86
  - `--claude-settings` and `--no-claude-settings` control the existing Claude
58
- Code subagent-default transaction. They do not configure Orca roles.
87
+ Code subagent-default transaction. They do not configure T3 roles.
59
88
  - `--force` may replace an edited owned asset; it never adopts or removes
60
89
  unrelated state.
61
90
  - `--yes` confirms writes under the user's home directory. Tests use temporary
@@ -71,11 +100,11 @@ profiles/presets/codex-only.json
71
100
  profiles/presets/claude-only.json
72
101
  ```
73
102
 
74
- Each has exactly `{ "version": 1, "roles": [...] }` with the same 32 stable
75
- role IDs. Installation writes `<skills-dir>/axstack/roles.json` as
103
+ Each has exactly `{ "version": 1, "roles": [...] }` and lists all role IDs
104
+ in the same order. Installation writes `<skills-dir>/axstack/roles.json` as
76
105
  `{ "version": 1, "preset": "<selected preset>", "roles": [...] }` and records
77
106
  its ownership hash like every other installed skill asset. There is no second
78
- role store and no Orca configuration merge.
107
+ role store and no T3 configuration merge.
79
108
 
80
109
  ### Check
81
110
 
@@ -83,13 +112,14 @@ role store and no Orca configuration merge.
83
112
  axstack check [--bundle <dir>] [--instructions <file>] [--skills-dir <dir>|--harness <name>]
84
113
  ```
85
114
 
86
- The check separates Bun/Git/`gh stack` availability, resolved Orca executable,
87
- runtime readiness, required `orchestration`, `orca-cli`, and `orca-linear`
88
- guide discovery, and bundle validity.
115
+ The check separates Bun/Git/`gh stack` availability, the `t3` executable and
116
+ version floor, in-session MCP readiness, and bundle validity.
117
+ The CLI labels in-session MCP readiness as "verified by driver preflight";
118
+ the driver saves `orchestrator_capabilities` and follows its advertised schema.
89
119
  With an instruction target, it separately reports whether the marker block is
90
- owned, missing, unowned, edited, or bound to a different path.
91
- It must honor Orca's executable-resolution rules, including the Linux screen
92
- reader name collision, and must not switch binaries after a failed resolution.
120
+ owned, missing, unowned, edited, or bound to a different path. Hand-written
121
+ legacy routing outside the owned block is reported for manual migration and
122
+ preserved byte for byte.
93
123
 
94
124
  A successful check is not provider/model availability, effective permission,
95
125
  skill reload, task execution, mobile delivery, or end-to-end compatibility
@@ -110,10 +140,12 @@ are pruned only when empty, and the target root is never removed.
110
140
  The deterministic `<!-- axstack:begin v1 -->` / `<!-- axstack:end -->` block
111
141
  contains the target-derived Axstack entry path and model-free routing prose. It
112
142
  also routes every subagent, delegated worker, reviewer, and cross-harness dispatch
113
- through Orca orchestration via the `orca` CLI (`orca-cli` / `orchestration` guides)
114
- so the work stays visible. It forbids harness-native subagent tools (e.g. Claude/Codex
115
- native subagents); workers such as OpenCode and Antigravity subagents
116
- run as Orca-supervised workers, never via harness-native delegation.
143
+ through the `t3-code` MCP. It forbids harness-native subagent tools. The current
144
+ T3 thread is the driver; read-only roles use async `delegate_task`, while authors
145
+ use `t3_thread_launch` in their own SHA-pinned worktrees. The standing block
146
+ authorizes writer launch; it grants no push, merge, release, or host mutation.
147
+ The [runtime reference](../skills/axstack/references/t3-runtime.md) owns the dispatch
148
+ and receipt protocol.
117
149
 
118
150
  Create, update, repeated install, check, and uninstall preserve every byte and
119
151
  the file mode outside the markers. The manifest binds the canonical instruction
@@ -172,7 +204,7 @@ to rewrite them.
172
204
  ## Role behavior after installation
173
205
 
174
206
  The runtime reads `roles.json` from the installed shared root `skills/axstack/`.
175
- A new run records the selected preset plus all 32 role rows. Class rows resolve
207
+ A new run records the selected preset plus all role IDs. Class rows resolve
176
208
  at run start; each role snapshot records class, exact ID, source, and time.
177
209
  An active run and resume reuse that snapshot after a later preset install unless
178
210
  the user explicitly changes it and accepts the resulting evidence invalidation.
@@ -188,9 +220,9 @@ reconciles their findings.
188
220
 
189
221
  The mixed checker and `axstack-research-web-google` have provider
190
222
  `antigravity`; mixed `axstack-research-x` has provider `grok`. All three use
191
- `model: null` because Orca exposes no model override for those agent-ID routes;
192
- their notes authorize launch by agent ID, and the run record snapshots the model
193
- reported by the TUI. The single-provider presets configure the checker and keep
223
+ `model: null` with notes authorizing their agent-ID routes; T3 resolves the exact
224
+ model from the first entry for that provider in saved capabilities. Empty
225
+ Antigravity model catalogs hold. The single-provider presets configure the checker and keep
194
226
  both cross-provider research routes as intentional absences. Their
195
227
  unavailable adviser and round-2 seat remain explicit same-provider
196
228
  `model: null` roles, which do not make installation unready;
@@ -199,25 +231,25 @@ receipts. For an arena-grade Align question, round 1 needs Opus; round 2, if
199
231
  invoked, needs escalation Fable and Astra; a required seat that is unavailable holds that
200
232
  round. The current chat drives on whatever
201
233
  model runs it; no preset carries a driver role. Every other missing, invalid, unsupported, or unavailable role value holds only
202
- the affected work. Codex class resolution reads the explicit catalog path via
203
- `skills/axstack/scripts/resolve-models.js`; a missing or malformed catalog
204
- holds. Claude launches an alias once per class, reads the exact ID from the
205
- first assistant transcript turn, then reuses it. Only explicit model rejection
206
- before that turn permits a recorded Codex retry within the same class, provider,
207
- and effort. Claude rejection, timeout, quota, and auth failures hold; no
208
- subscription inference or quota routing applies.
234
+ the affected work. Codex and Claude class resolution reads the saved T3 capabilities catalog via
235
+ `skills/axstack/scripts/resolve-models.js --provider`; missing or malformed
236
+ catalogs hold. A preset model is used as given; class rows resolve to the newest
237
+ matching catalog ID. Resume retains the recorded snapshot without re-resolution.
238
+ Rejection, timeout, quota, and auth failures hold; no subscription inference,
239
+ quota routing, or alternative-model retry applies.
209
240
 
210
241
  `modeId` and similar permission fields remain conservative declared intent.
211
- They do not prove the effective Orca launcher mode, sandboxing, or permission
212
- parity. Requested provider/model/effort, input acceptance, effective session
213
- settings, and completed behavior are separate evidence classes.
242
+ They do not prove effective T3 `runtimeMode`, sandboxing, or permission parity.
243
+ Requested provider/model/effort, input acceptance, effective session settings,
244
+ and completed behavior are separate evidence classes. Follow the runtime
245
+ reference for provider option IDs and configuration read-back.
214
246
 
215
247
  ## Claude Code subagent default
216
248
 
217
249
  The preserved Claude-settings feature manages only
218
250
  `env.CLAUDE_CODE_SUBAGENT_MODEL = "opus"` when its existing ownership and
219
251
  availability conditions allow. It does not change the main conversation,
220
- select an Axstack role, force built-in agents, or configure Orca.
252
+ select an Axstack role, force built-in agents, or configure T3.
221
253
 
222
254
  Axstack merges that one key and preserves all unrelated settings and environment
223
255
  values. A pre-existing value is preserved and never adopted. Missing Claude,
@@ -238,25 +270,27 @@ survives.
238
270
  | Claude | `~/.claude/skills` | documented upstream |
239
271
  | Codex | `~/.agents/skills` | documented upstream |
240
272
  | OpenCode | `~/.config/opencode/skills` | documented upstream |
241
- | Antigravity | `~/.gemini/config/skills` | documented upstream |
273
+ | Antigravity IDE / `agy` CLI | `~/.gemini/config/skills` | documented upstream |
242
274
  | Grok | explicit `--skills-dir` only | auto-discovery unverified |
243
275
 
244
276
  Prefer explicit paths and current upstream CLI guidance. Installing files does
245
277
  not prove that a running harness reloaded them.
246
278
 
247
- ## Runtime guide discovery
279
+ ## Runtime preflight and schedules
248
280
 
249
- The installed Axstack bundle does not own or copy Orca's guides. At an action
250
- boundary, the skill resolves one Orca executable and loads the operation's
251
- version-matched `orchestration`, `orca-cli`, or `orca-linear` guide. Review
252
- automation guidance is loaded only for the scheduled review branch. Missing
253
- discovery is a setup gap, not a reason to fall back or invent commands. Guide
254
- discovery does not prove an operation works; Linear documents, provider/model
255
- routing, and live automation behavior need separate preflights.
281
+ At an action boundary, load the packaged [T3 runtime reference](../skills/axstack/references/t3-runtime.md)
282
+ and save the actual `orchestrator_capabilities` JSON. Missing capability holds
283
+ the affected operation. Provider/model routing, Linear documents through the
284
+ executor MCP, and live schedule behavior need separate preflights.
256
285
 
257
- Installation creates no production schedule and adds no custom scheduler. Chat-run own-PR watch uses a harness-native monitoring or scheduled wake every 10 minutes by default. Only when the harness has no such capability does the Orca `*/10` observer serve as fallback; it needs separately validated same-host automation, installed preset and effective observer model/effort, same-Run report delivery, safe original-driver wake, and own-automation stop/readback. Installed bytes alone do not activate either path.
258
- The optional review manager requires a separate native canary before activation;
259
- installed guidance does not prove live behavior.
286
+ Installation creates no production schedule and adds no custom scheduler.
287
+ Chat-run own-PR watch uses a bound T3 schedule every 10 minutes by default;
288
+ record its ID, driver thread, and expiry. Missing schedule capability holds
289
+ activation. Delete the schedule by its exact ID and verify absence with
290
+ `list_scheduled_tasks` when the watch ends; uncertainty preserves the hold.
291
+ The optional review manager uses an unbound 15-minute T3 schedule and requires
292
+ its separate native canary before activation. Installed guidance does not prove
293
+ live behavior. See [Review manager](../skills/axstack/references/automations.md).
260
294
 
261
295
  ## Historical migration
262
296
 
@@ -275,8 +309,8 @@ retired `axstack-driver` row leaves `roles.json` on the next install because
275
309
  that file is rewritten as one owned snapshot. A --force uninstall/install
276
310
  cycle remains only for discarding edited copies you have decided to abandon;
277
311
  edited, custom, and unknown assets otherwise survive. `axstack-explain`
278
- supersedes the old docs route. Full ownership transfer uses Orca's runtime-owned
279
- handoff guidance and still requires explicit recipient acceptance.
312
+ supersedes the old docs route. Full ownership transfer uses the T3 runtime
313
+ contract and still requires explicit recipient acceptance.
280
314
 
281
315
  Do not mutate live historical configuration during development or migration
282
316
  tests. Host cutover, old-timer cleanup, release installation, and global cleanup
@@ -292,4 +326,19 @@ axstack uninstall --skills-dir /tmp/ax-skills --instructions /tmp/AGENTS.md
292
326
  ```
293
327
 
294
328
  The second install should report no changes. These scratch examples do not
295
- activate Orca sessions or schedules.
329
+ activate T3 threads or schedules.
330
+
331
+ ## Rollback
332
+
333
+ Use the recorded host-mutation authority and verified backups for these steps:
334
+
335
+ 1. Reinstall `axstack@0.20.31` (v0.20.31) on desktop and VPS.
336
+ 2. Restore the backed-up `~/.claude/CLAUDE.md` and `~/.codex/AGENTS.md` global instructions on both hosts.
337
+ 3. Set the recorded T3 manager schedule to `enabled:false` and verify the disabled state.
338
+ 4. Delete every armed run watch by its recorded schedule ID and verify absence.
339
+ 5. Stop and disable the `t3 serve` user service on the VPS.
340
+ 6. Re-enable the Orca automation and verify its enabled state.
341
+
342
+ Orca stays installed for one week after the VPS canary; keep its automation disabled,
343
+ rather than deleting it, after the T3 canary passes. Do not uninstall it during
344
+ that retention window.