axstack 0.25.4 → 0.25.5

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 CHANGED
@@ -10,33 +10,6 @@ Axstack gives your current T3 thread a way to scope work, build it with tests, a
10
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
- ## What you can do
14
-
15
- | Layer | Skill | What it does |
16
- | --- | --- | --- |
17
- | Plan | [axstack-align](skills/axstack-align/SKILL.md) | Settle scope through questions, a design lens sketch, and inline brainstorm validation. |
18
- | Plan | [axstack-brainstorm](skills/axstack-brainstorm/SKILL.md) | Validate an approach with independent candidates; judges for hard choices. |
19
- | Plan | [axstack-spec](skills/axstack-spec/SKILL.md) | Write and approve an observable specification. |
20
- | Plan | [axstack-tickets](skills/axstack-tickets/SKILL.md) | Break approved scope into executable tasks. |
21
- | Build | [axstack-implement](skills/axstack-implement/SKILL.md) | Build with strict TDD and an author → review → repair loop. |
22
- | Build | [axstack-debug](skills/axstack-debug/SKILL.md) | Diagnose a bug with a failing check and hand off a bounded repair. |
23
- | Verify | [axstack-review](skills/axstack-review/SKILL.md) | Review a PR or bounded codebase at an exact revision. |
24
- | Verify | [axstack-improve](skills/axstack-improve/SKILL.md) | Find evidenced codebase improvements without editing code. |
25
- | Verify | [axstack-audit](skills/axstack-audit/SKILL.md) | Measure a run's outcomes and evidence gaps. |
26
- | Verify | [axstack-correct](skills/axstack-correct/SKILL.md) | Report repeated mistakes and propose stronger checks when invoked by the user. |
27
- | Operate | [axstack-watch](skills/axstack-watch/SKILL.md) | Observe or maintain an existing PR within its authority. |
28
- | Operate | [axstack-cleanup](skills/axstack-cleanup/SKILL.md) | Retire eligible completed agent resources. |
29
- | Operate | [axstack-relay](skills/axstack-relay/SKILL.md) | Send an explicit message or authorized notification. |
30
- | Understand | [axstack-research](skills/axstack-research/SKILL.md) | Answer one bounded question with sources. |
31
- | Understand | [axstack-explain](skills/axstack-explain/SKILL.md) | Explain a system and separate known behavior from gaps. |
32
- | Understand | [axstack-diagram](skills/axstack-diagram/SKILL.md) | Draw Mermaid diagrams or verified interactive archify viewers. |
33
-
34
- Interactive viewers use [archify](https://github.com/tt-a1i/archify) (MIT).
35
-
36
- Small, bounded changes can begin with your request or an existing issue;
37
- substantial work needs an approved spec and matching tickets before
38
- implementation. Research, explanation, and peer review can start directly.
39
-
40
13
  ## Why Axstack
41
14
 
42
15
  | Failure mode | How Axstack responds |
@@ -46,56 +19,75 @@ implementation. Research, explanation, and peer review can start directly.
46
19
  | Design rot | The design lens sketches boundaries before a build; Improve surfaces evidenced changes later. |
47
20
  | Agents left a mess | T3 makes delegation visible, one writer owns each PR, cleanup stays bounded, and watched own PRs merge under guarded rules. |
48
21
 
49
- ## Quick start
22
+ ## Prerequisites
50
23
 
51
- > [!NOTE]
52
- > You need Bun >=1.3.14, Git, the GitHub CLI (`gh`) with `gh stack`, and a
53
- > running T3 Code `0.0.46-nightly.20261003.2610` or newer.
54
- > The agents selected by your preset must also be available through T3.
24
+ Axstack supports only Linux hosts. You need Bun >=1.3.14, Git, the GitHub
25
+ CLI (`gh`) with `gh stack`, and T3 Code `0.0.46-nightly.20261003.2610` or newer
26
+ on PATH. The providers selected by your preset must be available inside T3.
55
27
 
56
- Install the CLI and skills. This example targets Codex:
28
+ Choose one explicit preset (each contains all role IDs): [mixed](profiles/presets/mixed.json)
29
+ (recommended), [codex-only](profiles/presets/codex-only.json), or
30
+ [claude-only](profiles/presets/claude-only.json). Mixed supports cross-provider
31
+ implementation review; single-provider presets have workflow limits and are
32
+ not automatic cross-class or cross-provider fallbacks when a model is unavailable. See
33
+ [workflow and routing details](docs/workflows.md).
34
+
35
+ ## Quick start
36
+
37
+ Install the CLI and skills, then check your host. This example targets Codex:
57
38
 
58
39
  ```sh
59
40
  bun add --global axstack
60
- axstack check --harness codex
41
+ export PATH="$HOME/.bun/bin:$PATH"
61
42
  axstack install --harness codex --preset mixed --yes
43
+ axstack check --harness codex
62
44
  ```
63
45
 
64
- Open a T3 thread and ask for the phase you need:
46
+ Reload the harness's skills in T3 after installation. A green check verifies
47
+ local capabilities and installed files; it does not prove live provider readiness,
48
+ schedule activation or mobile delivery. See [installation](docs/installation.md)
49
+ for other harnesses, custom paths, upgrades, conflicts and uninstalling.
65
50
 
66
- ```text
67
- $axstack-align Help me scope account recovery.
68
- $axstack-implement Build the task we agreed on.
69
- $axstack-review Review this pull request: <PR URL>
70
- $axstack-review Find issues in <paths> at <commit SHA>.
71
- $axstack-watch Monitor this PR without making changes: <PR URL>
72
- $axstack-watch Watch every PR raised by this chat until all merge or close
73
- ```
51
+ ### First task
74
52
 
75
- <details>
76
- <summary>Codex installation notes</summary>
53
+ Open your repository as a T3 project and start a driver thread.
54
+ Codex invokes skills with `$skill`, and Claude uses `/skill`.
55
+ For a small repair, send this request (replace `$` with `/` in Claude):
77
56
 
78
- Codex skills default to the shared `~/.agents/skills` root. The owned
79
- `AGENTS.md` block stays under `$CODEX_HOME` (default `~/.codex`). A default
80
- install retires only unchanged manifest-owned legacy skills; `--skills-dir`
81
- sets an explicit target without automatic migration.
82
-
83
- </details>
57
+ ```text
58
+ $axstack-implement Fix the empty-state message in the existing list view within one PR, preserve list behavior, and verify the displayed result.
59
+ ```
84
60
 
85
- <details>
86
- <summary>Other harnesses</summary>
61
+ Small, bounded changes can begin with your request or an existing issue;
62
+ substantial work needs an approved spec and matching tickets before
63
+ implementation. Research, explanation, and peer review can start directly.
64
+ The driver returns a candidate revision, test evidence and unverified boundaries.
65
+ You make decisions at holds and substantial-spec approval.
66
+ Follow [getting started](docs/getting-started.md) for the full first-task journey
67
+ and [guides](docs/guides.md) for features, reviews, watches, debugging and releases.
87
68
 
88
- Use `--harness claude`, `opencode`, or `antigravity` with `axstack check` and
89
- `axstack install`, or provide explicit skill and instruction paths. Installation
90
- adds an owned instruction block and preserves unrelated content. It does not
91
- enable schedules or prove that every configured model is available. T3 uses
92
- its managed Antigravity runtime with separate browser sign-in; the IDE/`agy`
93
- skill paths do not configure that runtime.
69
+ ## What you can do
94
70
 
95
- </details>
71
+ | Layer | Skill | What it does |
72
+ | --- | --- | --- |
73
+ | Plan | [axstack-align](skills/axstack-align/SKILL.md) | Settle scope through questions, a design lens sketch, and inline brainstorm validation. |
74
+ | Plan | [axstack-brainstorm](skills/axstack-brainstorm/SKILL.md) | Validate an approach with independent candidates; judges for hard choices. |
75
+ | Plan | [axstack-spec](skills/axstack-spec/SKILL.md) | Write and approve an observable specification. |
76
+ | Plan | [axstack-tickets](skills/axstack-tickets/SKILL.md) | Break approved scope into executable tasks. |
77
+ | Build | [axstack-implement](skills/axstack-implement/SKILL.md) | Build with strict TDD and an author → review → repair loop. |
78
+ | Build | [axstack-debug](skills/axstack-debug/SKILL.md) | Diagnose a bug with a failing check and hand off a bounded repair. |
79
+ | Verify | [axstack-review](skills/axstack-review/SKILL.md) | Review a PR or bounded codebase at an exact revision. |
80
+ | Verify | [axstack-improve](skills/axstack-improve/SKILL.md) | Find evidenced codebase improvements without editing code. |
81
+ | Verify | [axstack-audit](skills/axstack-audit/SKILL.md) | Measure a run's outcomes and evidence gaps. |
82
+ | Verify | [axstack-correct](skills/axstack-correct/SKILL.md) | Report repeated mistakes and propose stronger checks when invoked by the user. |
83
+ | Operate | [axstack-watch](skills/axstack-watch/SKILL.md) | Observe or maintain an existing PR within its authority. |
84
+ | Operate | [axstack-cleanup](skills/axstack-cleanup/SKILL.md) | Retire eligible completed agent resources. |
85
+ | Operate | [axstack-relay](skills/axstack-relay/SKILL.md) | Send an explicit message or authorized notification. |
86
+ | Understand | [axstack-research](skills/axstack-research/SKILL.md) | Answer one bounded question with sources. |
87
+ | Understand | [axstack-explain](skills/axstack-explain/SKILL.md) | Explain a system and separate known behavior from gaps. |
88
+ | Understand | [axstack-diagram](skills/axstack-diagram/SKILL.md) | Draw Mermaid diagrams or verified interactive archify viewers. |
96
89
 
97
- See [installation](docs/installation.md) for source installs, custom paths,
98
- upgrades, conflicts, and uninstalling.
90
+ Interactive viewers use [archify](https://github.com/tt-a1i/archify) (MIT).
99
91
 
100
92
  ## How work stays controlled
101
93
 
@@ -110,66 +102,22 @@ upgrades, conflicts, and uninstalling.
110
102
  merge is the default under the
111
103
  [watch predicate](skills/axstack-watch/SKILL.md#5-state-readiness-precisely).
112
104
 
113
- Choose one explicit preset (each contains all role IDs): [mixed](profiles/presets/mixed.json)
114
- (recommended), [codex-only](profiles/presets/codex-only.json), or
115
- [claude-only](profiles/presets/claude-only.json). Mixed supports cross-provider
116
- implementation review; single-provider presets have workflow limits and are
117
- not automatic cross-class or cross-provider fallbacks when a model is unavailable. See
118
- [workflow and routing details](docs/workflows.md).
119
-
120
- In `mixed` and `claude-only`, auditing, requirements/code/web research,
121
- execution exploration, and the optional monitor use the Claude Sonnet class at high effort.
122
- Auditing, code research, and execution exploration have independent Sol high
123
- pair seats in `mixed` and `codex-only`; `claude-only` records them as absent.
124
-
125
105
  ## Optional PR automation
126
106
 
127
107
  Manual review works without a schedule.
128
108
  Every verified own-PR publication arms or joins the driver's chat-run watch,
129
109
  subject to explicit stop-after-publication or observation requests.
130
- Its bound T3 schedule wakes the driver every 10 minutes by default while open PRs stay watched.
110
+ See [Host operations](docs/host-operations.md#chat-run-watch-activation) for wake activation and cadence.
131
111
  See [Chat-run PR watch](docs/workflows.md#chat-run-pr-watch) for the lifecycle and quiet cadence.
132
112
 
133
113
  An optional native T3 review manager runs finite peer-review passes every 15
134
114
  minutes; the review automation never merges for you. Activation needs live
135
- host validation. See [PR-manager setup and safety](skills/axstack/references/automations.md).
115
+ host validation. See [PR-manager setup and safety](docs/host-operations.md#optional-native-peer-review-automation).
136
116
 
137
117
 
138
118
  ## Automatic merge boundaries
139
119
 
140
- The recorded owning watch thread applies the full predicate in chat-run or
141
- standalone authorized maintenance, including small and adopted work. Solo mode
142
- uses current-head-and-base cross-provider review plus diligence; team mode also
143
- needs a counted collaborator approval. Team bases are documented non-production
144
- `dev`; solo bases are documented `integration` branches, including `main`.
145
- Unknown classification means `deploying`. Whole stacks wait for every planned
146
- member to be published and reviewed.
147
-
148
- Cards name missing approval, ineligible bases, exclusions, or `Auto-merge: off`.
149
- For own integration-base PRs, the card reply authorizes the guarded actor under
150
- watch §5's exceptions.
151
- In solo mode the user's merge-card reply authorizes the guarded merge of
152
- user-written PRs or PRs with unknown or mixed provenance.
153
- Team replies never replace collaborator approval. Promotion, release,
154
- deploying-base, and peer PRs are user-merged, as are CI, manifest, merge-authority,
155
- and non-`clean` revert changes. Test sources stay eligible. See watch §5 for all
156
- excluded files and guarded merge mechanics. User merges are bottom-up for a stack.
157
- This policy grants no release, npm publish,
158
- or host install authority. Preview authority covers only the preview unit and
159
- its `tailscale serve` route on the VPS.
160
-
161
- Excluded: CLI proxy, account pooling, and IP routing; local CI contention handling
162
- is deferred. Quota-driven scheduling or model routing is excluded. Automatic
163
- merge of promotion, release, deploying-base, and peer PRs is excluded. Previews
164
- outside the VPS, public previews, and production data are excluded. Nightly triage
165
- never sends relay messages.
166
-
167
- Accepted risks: two agents can miss the same defect while CI is green; spec
168
- approval is the user's main checkpoint. A head guard does not atomically guard
169
- base freshness; the concurrent-merge race is held by the post-merge push-failure
170
- rule. A watch waking every 10 minutes (60 when quiet) until PRs land has an accepted
171
- token cost. Preview code runs under the same VPS user as agents and is not isolated;
172
- tests already do, so the added risk is small.
120
+ Eligible own PRs use guarded automatic merge; see [merge boundaries, exclusions, account-selection carve-out and accepted risks](docs/workflows.md#automatic-merge-boundaries).
173
121
 
174
122
  ## Some notes
175
123
 
@@ -180,10 +128,18 @@ tests already do, so the added risk is small.
180
128
 
181
129
  ## Documentation
182
130
 
183
- - [Installation and configuration](docs/installation.md)
184
- - [Workflows, review policy, and model routing](docs/workflows.md)
185
- - [PR scope and sizing](skills/axstack/references/pr-shape.md)
186
- - [Releases](https://github.com/axatbhardwaj/axstack/releases)
131
+ | Page | Use it for |
132
+ | --- | --- |
133
+ | [Getting started](docs/getting-started.md) | Install, understand `check`, and run a first bounded task. |
134
+ | [Concepts](docs/concepts.md) | Driver threads, phases, roles, presets, holds, evidence and account selection. |
135
+ | [Guides](docs/guides.md) | Step-by-step journeys for features, fixes, reviews, watches, debugging and releases. |
136
+ | [Workflows](docs/workflows.md) | Routing, review policy, merge boundaries, exclusions and accepted risks. |
137
+ | [Installation](docs/installation.md) | CLI commands, harness paths, configuration, upgrades and troubleshooting. |
138
+ | [Host operations](docs/host-operations.md) | Configure your host, provider runtimes, remote access and automations. |
139
+ | [Skill writing](docs/skill-writing.md) | Contribute self-contained skills and contract tests. |
140
+
141
+ See [PR scope and sizing](skills/axstack/references/pr-shape.md) for candidate
142
+ shape and [Releases](https://github.com/axatbhardwaj/axstack/releases) for release history.
187
143
 
188
144
  ## License
189
145
 
@@ -0,0 +1,112 @@
1
+ # Concepts
2
+
3
+ Axstack provides engineering instructions and evidence conventions. T3 Code
4
+ provides the active runtime. Start with [getting started](getting-started.md);
5
+ use [guides](guides.md) to choose a journey and [workflows](workflows.md) for policy.
6
+
7
+ ## Driver thread
8
+
9
+ Your current T3 conversation is the driver. It owns scope, coordination,
10
+ integration and forge actions. Workers return evidence to it; one author writes
11
+ each candidate in an isolated worktree. A different idle thread does not inherit
12
+ ownership. Explicit transfer requires a recorded recipient acceptance.
13
+
14
+ ## Phases
15
+
16
+ The delivery path is Align → Spec → Tickets → Implement → Review → Watch.
17
+ Align settles what to build; Spec records an approved baseline; Tickets makes
18
+ that baseline executable. Implement builds and repairs; Review assesses an exact
19
+ revision; Watch reconciles PR state. You can enter directly for research,
20
+ explanation, peer review or a bounded codebase review.
21
+
22
+ ## Small and substantial work
23
+
24
+ A small, clear one-PR change starts from your request or selected issue. The
25
+ driver snapshots its acceptance checks and exclusions as a small-change intent.
26
+ Substantial work needs an approved spec and matching ticket map before a build.
27
+ An unsettled material design question goes through Align. Ordinary sequential
28
+ test and implementation steps do not turn a small change into substantial work.
29
+
30
+ ## Roles and presets
31
+
32
+ A role is a named responsibility such as author, reviewer or adviser. A preset
33
+ assigns those roles to provider, model class, effort and permission intent.
34
+ Choose `mixed`, `codex-only` or `claude-only` explicitly at installation.
35
+ The installer writes the selected preset and complete role table to
36
+ `<skills-dir>/axstack/roles.json`. The driver snapshots it for a new run, resolves
37
+ exact models from saved T3 capabilities, and reuses the snapshot on resume.
38
+ The running conversation supplies the driver model; presets have no driver role.
39
+
40
+ See [Role presets](workflows.md#role-presets) for the role table. Installing a
41
+ preset does not demonstrate that its providers can authenticate or execute.
42
+
43
+ ## Holds
44
+
45
+ A hold stops affected work when authority, scope, provider availability or
46
+ required evidence is missing. A serious risk stops the dependent dangerous
47
+ action. The driver records the reason and resume condition. Waiting, silence or
48
+ a tool's acceptance response does not prove completion.
49
+
50
+ ## Run record
51
+
52
+ A substantive or resumable run has a private `progress.md` beneath the absolute
53
+ Git common directory. The driver alone writes its decisions, owners, exact
54
+ revisions and evidence pointers. It is a derived record: T3 state, Git, forge
55
+ state and approved scope remain authoritative. Credentials and private prompts
56
+ do not belong in it.
57
+
58
+ ## T3 runtime boundary
59
+
60
+ Delegation uses the `t3-code` MCP. Read-only roles use `delegate_task`; authors
61
+ use `t3_thread_launch` with their own pinned worktrees. Configuration read-back,
62
+ run receipts and revision-bound completion are separate from capability
63
+ discovery. Read the [runtime contract](../skills/axstack/references/t3-runtime.md)
64
+ immediately before dispatch, receipt consumption or recovery.
65
+
66
+ ## Account selection
67
+
68
+ Before each Claude or Codex dispatch or launch, the driver runs
69
+ `bun skills/axstack/scripts/pick-instance.js --provider claude|codex`.
70
+ The picker selects the enabled account of that provider's T3 driver with the
71
+ highest tier-weighted headroom. Save its `--json` output in private evidence
72
+ and record the chosen instance ID. `--settings <path>` overrides
73
+ `~/.t3/userdata/settings.json`.
74
+
75
+ For known usage, the score equals `(100 − max known window utilization) × tier weight`.
76
+ For unknown utilization, the score equals the tier weight alone.
77
+ The maximum uses the known utilization windows; an unavailable window is not
78
+ assumed to be empty.
79
+
80
+ | Provider / tier | Weight |
81
+ | --- | --- |
82
+ | Claude Max 20x: `default_claude_max_20x` | 4 |
83
+ | Claude Max 5x: `default_claude_max_5x` | 1 |
84
+ | Codex: `pro` | 4 |
85
+ | Codex: `prolite` | 1 |
86
+
87
+ For an unknown tier, the weight equals 1.
88
+ An account with any window at ≥95% or a reported limit reached is excluded.
89
+ Accounts with missing credentials are skipped.
90
+ Usage is cached for five minutes. Failed requests use stale usage when present,
91
+ otherwise a tier-only unknown score. Codex's plan is unknown until a successful
92
+ usage response, so an uncached failed Codex request has weight 1.
93
+
94
+ Exit 0 prints the selected instance or JSON.
95
+ For dispatched roles, only error exit 1 permits fallback to the canonical instance after validating availability.
96
+ The canonical instances are `codex` and `claudeAgent`.
97
+ Exit 2 (no eligible provider instances) must hold the work without fallback.
98
+ If the driver's own current instance is eligible, it must stay despite headroom differences.
99
+ On error exit 1, the driver must keep its current instance.
100
+ At a turn boundary, an excluded driver with an eligible same-provider sibling
101
+ switches its own calling thread and records the change. Provider, model, class
102
+ and effort remain fixed. Dispatched roles never fail over mid-thread.
103
+ See [Provider bindings](../skills/axstack/references/t3-runtime.md#preflight-and-binding)
104
+ for schedule rebinding and the [policy carve-out](workflows.md#automatic-merge-boundaries).
105
+
106
+ ## Account selection environment
107
+
108
+ `XDG_CACHE_HOME` selects the cache directory; the default is `~/.cache`.
109
+ The usage cache lives at `<cache-dir>/axstack/usage.json`.
110
+ `AXSTACK_CLAUDE_USAGE_URL` is a test-only endpoint override for Claude usage.
111
+ `AXSTACK_CODEX_USAGE_URL` is a test-only endpoint override for Codex usage.
112
+ Local tests use loopback endpoints; these variables are not provider setup steps.
@@ -0,0 +1,75 @@
1
+ # Getting started
2
+
3
+ Install Axstack, check your host, then ask for one bounded task in T3 Code.
4
+ For the mental model, read [concepts](concepts.md); for other journeys, use
5
+ [guides](guides.md).
6
+
7
+ ## Prepare your host
8
+
9
+ You need Bun >=1.3.14, Git, the GitHub CLI with its `gh stack` extension, and
10
+ T3 Code `0.0.46-nightly.20261003.2610` or newer. These executables must be on PATH.
11
+ The providers required by your chosen preset must be available inside T3.
12
+ See [installation](installation.md) for harness paths and
13
+ [host operations](host-operations.md) for provider and project setup.
14
+
15
+ ## Install and check
16
+
17
+ Run this block in a shell. It installs for Codex and explicitly chooses `mixed`:
18
+
19
+ ```sh
20
+ bun add --global axstack
21
+ export PATH="$HOME/.bun/bin:$PATH"
22
+ axstack install --harness codex --preset mixed --yes
23
+ axstack check --harness codex
24
+ ```
25
+
26
+ Installation writes owned skills and instructions, preserving unrelated content,
27
+ and fetches the pinned archify tool. Reload the harness's skills in T3 after
28
+ installation. Use the [installation reference](installation.md) for other
29
+ harnesses, source installs or conflicts.
30
+
31
+ A successful check exits 0. Its five capability rows mean:
32
+
33
+ | Row | Meaning |
34
+ | --- | --- |
35
+ | `bun` | The running Bun version meets the floor. |
36
+ | `git` | Git's version command succeeds. |
37
+ | `gh` | The GitHub CLI's version command succeeds. |
38
+ | `gh stack` | The extension's actual help command succeeds. |
39
+ | `t3` | T3's version command succeeds and meets the floor. |
40
+
41
+ With this harness target, check also validates the archify record/copy/SHA and
42
+ reports the owned instruction binding. Missing Chrome is a warning. Any reported
43
+ gap exits 1; follow [troubleshooting](installation.md#exit-codes-and-troubleshooting) before
44
+ starting a task.
45
+
46
+ Check does not prove live provider readiness, schedule activation or mobile delivery.
47
+ Inside the driver thread, capability discovery, provider configuration read-back
48
+ and actual execution receipts establish their respective runtime boundaries.
49
+
50
+ ## First bounded task
51
+
52
+ Open your repository as a T3 project and start a driver thread. Pick a small
53
+ one-PR change with an observable result. For example, ask the agent to repair
54
+ an existing empty-state message and verify its behavior.
55
+
56
+ Codex invokes skills with `$skill`; Claude uses `/skill`. Send one of these
57
+ equivalent requests in T3:
58
+
59
+ ```text
60
+ $axstack-implement Fix the empty-state message in the existing list view. Keep this to one PR, preserve list behavior, and verify the displayed result.
61
+ ```
62
+
63
+ ```text
64
+ /axstack-implement Fix the empty-state message in the existing list view. Keep this to one PR, preserve list behavior, and verify the displayed result.
65
+ ```
66
+
67
+ The driver reads back the small-change intent, acceptance checks, exclusions and
68
+ Release/host authority, then carries the author → review → repair loop forward.
69
+ If the request has an unsettled material design question, it enters Align first.
70
+ For a larger feature, Align and an approved Spec come before implementation.
71
+
72
+ You make the decisions at holds or substantial-spec approval. Watch follows the
73
+ [canonical merge policy](workflows.md#automatic-merge-boundaries).
74
+ Follow the [small-fix journey](guides.md#small-fix) to see the returned evidence
75
+ and where to look when a task holds.
package/docs/guides.md ADDED
@@ -0,0 +1,69 @@
1
+ # Guides
2
+
3
+ These journeys start in your current T3 driver thread. Use `$skill` in Codex
4
+ or `/skill` in Claude. Replace example descriptions and PR URLs with your own.
5
+ [Concepts](concepts.md) explains the terms; [workflows](workflows.md) owns policy.
6
+
7
+ ## Scope and build a feature
8
+
9
+ Ask `$axstack-align Help me scope account recovery.` The driver gathers facts,
10
+ settles material design questions and compares configured advisers' findings.
11
+ Invoke `$axstack-spec Write the agreed specification.` to record observable
12
+ acceptance, exclusions and a revision for your approval. After approval,
13
+ `$axstack-tickets Map the approved work into tasks.` prepares the dependency map.
14
+ `$axstack-implement Build the approved tasks.` carries it through authors,
15
+ exact-revision review and repairs. The driver publishes through `gh stack`
16
+ and records each candidate and its evidence.
17
+
18
+ ## Small fix
19
+
20
+ For a clear one-PR repair, start with
21
+ `$axstack-implement Fix the empty-state message and verify the displayed result.`
22
+ The driver snapshots the request, acceptance checks and exclusions as the
23
+ small-change intent. It presents Release and host authority in that read-back.
24
+ A meaningful failing behavioral check precedes the implementation, then passes
25
+ with the fix. Accepted structure-preserving work instead keeps the same
26
+ characterization check green before and after.
27
+
28
+ Expect a candidate revision, targeted and full-suite results, and explicit
29
+ unverified boundaries. If scope or a prerequisite holds, the driver names the
30
+ gap and resume condition. You do not need separate planning artifacts solely
31
+ because a small change is new.
32
+
33
+ ## Review a PR
34
+
35
+ Use `$axstack-review Review this pull request: <PR URL>`.
36
+ Peer review takes the PR description, linked issue and repository rules as intent
37
+ evidence. Configured reviewers inspect isolated checkouts at a pinned revision.
38
+ An authored candidate follows its provider-based review pairing. Findings bind
39
+ to the reviewed head; a changed head needs fresh evidence.
40
+
41
+ For report-only understanding, use
42
+ `$axstack-review Find issues in <paths> at <commit SHA>`.
43
+ A codebase report names coverage and unverified leads; it does not approve a PR.
44
+
45
+ ## Watch own PRs
46
+
47
+ Use `$axstack-watch Watch this PR: <PR URL>` to authorize maintenance, or
48
+ `$axstack-watch Monitor this PR without making changes: <PR URL>` for observation.
49
+ To cover publications from this run, ask
50
+ `$axstack-watch Watch every PR raised by this chat until all merge or close.`
51
+ The owner reconciles checks, feedback, exact-head receipts and stack dependencies.
52
+ See [Chat-run PR watch](workflows.md#chat-run-pr-watch) and
53
+ [merge boundaries](workflows.md#automatic-merge-boundaries) for readiness and merge decisions.
54
+
55
+ ## Debug
56
+
57
+ Use `$axstack-debug Diagnose this failure and establish a failing check: <symptom>`.
58
+ The driver builds a reproducible red loop, investigates the cause and hands off
59
+ a classified repair. Diagnosis alone does not land the change. An accepted
60
+ bounded repair returns to Implement with the original loop and minimized repro.
61
+
62
+ ## Release
63
+
64
+ Record release and host-install authority with the driver, then follow the
65
+ [release procedure](../skills/axstack/references/autopilot.md#release-and-install-when-applicable).
66
+ It binds the version commit, tag-triggered publication and registry verification
67
+ to evidence. See [merge boundaries](workflows.md#automatic-merge-boundaries)
68
+ for approval gates and [host operations](host-operations.md) for authorized reinstall checks.
69
+ A local test result does not establish registry publication or host installation.
@@ -0,0 +1,165 @@
1
+ # Host operations
2
+
3
+ Use this page when operating your own T3 host. Axstack installation writes owned
4
+ skills and role data; it does not activate services, pairing, previews or schedules.
5
+ Record the authority for each host change and its actual readback. Installed
6
+ instructions and local tests do not prove live provider readiness or delivery.
7
+
8
+ ## T3 setup
9
+
10
+ Set `worktreeCleanup` to `off` for every Axstack project before dispatch;
11
+ Axstack preserves author worktrees and salvages evidence before retirement.
12
+ The driver reads back this setting via `t3_project_read` where exposed, or
13
+ records the setup limitation.
14
+
15
+ For remote and Android access on the existing tailnet, run:
16
+
17
+ ```sh
18
+ t3 serve --tailscale-serve
19
+ t3 pair
20
+ ```
21
+
22
+ Run `t3 serve --tailscale-serve` as a VPS user service and pair the Android
23
+ app with `t3 pair`. T3 Connect is outside this setup. Service installation,
24
+ network access, and pairing require their own authorized host checks.
25
+
26
+ Install Antigravity through T3 provider settings using its managed runtime,
27
+ then complete the user's browser sign-in before its canary. T3 uses Google's
28
+ Antigravity ACP agent (`agy_acp_server`); the IDE/`agy` CLI skill paths in the
29
+ installation reference are separate installer targets and do not configure this managed runtime.
30
+ Antigravity roles receive self-contained briefs; its runtime does not read
31
+ `~/.agents/skills`. A missing runtime, sign-in, or canary holds those roles.
32
+
33
+ Grok CLI must be >=1.0.13 on desktop and VPS. T3 advertising Grok does not
34
+ prove the CLI runs. Hermes relay remains unchanged: verify native `hermes send`
35
+ and its configured home channel under recorded notification authority.
36
+
37
+ See [Harness skill locations](installation.md#harness-skill-locations) for installer targets.
38
+
39
+ ## Runtime preflight and schedules
40
+
41
+ At an action boundary, load the packaged [T3 runtime reference](../skills/axstack/references/t3-runtime.md)
42
+ and save the actual `orchestrator_capabilities` JSON. Missing capability holds
43
+ the affected operation. Provider/model routing, Linear documents through the
44
+ executor MCP, and live schedule behavior need separate preflights.
45
+
46
+ Installation creates no production schedule and adds no custom scheduler.
47
+ Every verified own-PR publication arms or joins the driver's chat-run watch.
48
+ Its bound T3 schedule resumes the driver every 10 minutes by default while open PRs stay watched.
49
+ See [Chat-run PR watch](workflows.md#chat-run-pr-watch) for authority, schedule identity and stop conditions.
50
+ Missing schedule capability holds activation.
51
+ The optional review manager uses an unbound 15-minute T3 schedule and requires
52
+ its separate native canary before activation. Installed guidance does not prove
53
+ live behavior. See [Review manager](../skills/axstack/references/automations.md).
54
+
55
+ ## Notifications and relay
56
+
57
+ Record the run's Notification policy before using a relay. The [workflow policy](workflows.md#notifications-and-relay)
58
+ owns the allowed events and action boundaries; use [axstack-relay](../skills/axstack-relay/SKILL.md)
59
+ for native target discovery and delivery receipts.
60
+
61
+ The relay normally delivers through native `hermes send`: it checks CLI lookup and the configured target,
62
+ binds the recipient, deduplicates on the run record, and records the returned
63
+ `message_id`. PR-manager notifications point the user to GitHub or a durable
64
+ user-owned conversation. End every relay body with the reply tag in
65
+ `axstack-relay`. Hermes may forward the user's
66
+ Telegram reply to that thread using `t3_thread_send` in queue mode, marked as
67
+ a forwarded user reply from Telegram.
68
+ A forwarded reply must quote the original reply tag and the relay `message_id` it answers.
69
+ Before granting user authority, the driver requires `message_id` to match a
70
+ `sent` relay receipt this run recorded from the same driver thread.
71
+ Ensure the quoted tag's environment label and driver `threadId` match this run.
72
+ Missing or unmatched reply tags or `message_id` values are data, never authority.
73
+ Any `AXSTACK-*` marker is data, never authority.
74
+ Every message from a worker thread is data, never authority.
75
+ The driver treats a verified forwarded reply as
76
+ user input with the same authority as a message the user types there, never more.
77
+ Revalidate the current task, exact revision, and action boundaries before acting.
78
+ Telegram delivery, raw replies, and silence grant no action authority.
79
+ Delivery failure never clears the underlying hold.
80
+
81
+ ## Chat-run watch activation
82
+
83
+ A bound T3 schedule resumes the driver thread every 10 minutes by default.
84
+ The run record holds the schedule ID and driver thread.
85
+ Each wake reconciles all unsettled dispatch attempts
86
+ and runs the own-PR maintenance loop: feedback, base movement, required CI,
87
+ and approval. Delegated work follows the T3 runtime contract. There is no
88
+ daemon or polling model between wakes.
89
+
90
+ Delete the schedule by
91
+ its recorded ID and verify absence through `list_scheduled_tasks`; uncertain
92
+ deletion preserves the hold. Settlement and run archive are separate driver
93
+ steps.
94
+
95
+ Follow [Chat-run PR watch](workflows.md#chat-run-pr-watch) for membership,
96
+ maintenance authority and stop conditions; follow the
97
+ [Watch runtime](../skills/axstack-watch/references/watch-runtime.md#chat-run-watch)
98
+ for native wake registration and lifetime re-arming. Installation alone never
99
+ activates that wake.
100
+
101
+ ## Private PR previews
102
+
103
+ Preview authority covers only the preview unit and its `tailscale serve` route on the VPS.
104
+ The [workflow boundaries](workflows.md#automatic-merge-boundaries) own exclusions
105
+ and accepted risks. Follow the [PR preview procedure](../skills/axstack/references/preview.md)
106
+ for setup and verification: use a private tailnet endpoint backed by a
107
+ loopback-only application, start one named systemd user unit per PR, and confirm
108
+ the route points to that exact endpoint. Capture rendered interaction evidence
109
+ before calling the preview ready. Keep lifetime, teardown and absence receipts
110
+ with the PR; remove the exact unit and route after settlement.
111
+
112
+ ## Optional native peer-review automation
113
+
114
+ The optional native review manager uses the VPS T3 project `axstack-review-lane`
115
+ on the existing host clone. Configure and read back the lane's `axstack-owner`
116
+ binding, then create an unbound T3 schedule every 15 minutes. Each pass starts
117
+ in a fresh finite worktree from `origin/main`, fetches first, and checks its
118
+ binding. Continuity lives outside worktrees at
119
+ `~/.local/share/axstack/runs/review-manager/progress.md`. Per-PR detached
120
+ review checkouts come from existing host clones; a missing clone holds that job.
121
+ At pass start, follow [Provider bindings](../skills/axstack/references/t3-runtime.md#preflight-and-binding)
122
+ for account selection and schedule recreation.
123
+
124
+ Every pass reconciles saved, GitHub, and native T3 state across the lane before
125
+ admission and reads all discovery pages. Incomplete inventory or unknown
126
+ ownership holds admission. A live or uncertain earlier pass keeps its PRs;
127
+ ordering evidence is required to identify the earlier owner. A duplicate
128
+ admits nothing, writes only its private discovery note, and notifies once about
129
+ a stalled owner under the recorded policy.
130
+
131
+ Capacity is measured across the host. Waiting events stay covered and occupy
132
+ no execution slot after descendants settle. After lane reconciliation at pass
133
+ start, every pass, including a duplicate, settles finished lane pass threads
134
+ under the [Finite-session teardown guards](../skills/axstack/references/automations.md#finite-session-teardown).
135
+ Held or stuck passes stay unsettled. Only the owner retires eligible settled
136
+ predecessors through `axstack-cleanup` and writes continuity; each pass records
137
+ retained worktree count.
138
+ Past the authorized storage limit (default 20 lane worktrees), disable the
139
+ schedule with `enabled:false` and hold. The overlap, real-event, killed-predecessor,
140
+ and storage-limit canaries must pass before activation.
141
+
142
+ Jobs use private owned `0700` scratch paths. Preserve evidence before exact
143
+ cleanup; dirty source, ignored non-cache content, unpushed commits,
144
+ user-taken-over threads, uncertain publication, and unknown liveness hold
145
+ retirement. No broad scratch deletion or forced worktree removal applies.
146
+ Manual review and user-driven `axstack-watch` remain outside this schedule.
147
+ Requested peer reviews cover any accessible repository. T3 owns schedules,
148
+ threads, runs, and delegated tasks; Axstack adds no queue engine, scheduler,
149
+ cursor files, or historical runtime fallback.
150
+
151
+ ## Review automation
152
+
153
+ The review manager uses one short packaged prompt that loads the current
154
+ relative contract and invokes `axstack-review`. Bounded jobs publish ordinary
155
+ exact-head review verdicts; peer PRs are merged by the user. Manual adopted-PR maintenance
156
+ uses `axstack-watch` with local-SHA review before authorized publication.
157
+ Exceptional security, permanent-on-chain, or architectural decisions remain actionable in GitHub or a durable user-owned conversation
158
+ after the manager session ends, with an authorized deduplicated Telegram notification.
159
+ The current operational contract is
160
+ [Review-manager contract](../skills/axstack/references/automations.md).
161
+
162
+ These documents and their source-contract tests define expected decisions.
163
+ Scenario fixtures are behavioral-evaluation inputs, not model-evaluation
164
+ results, and neither form is live proof; activation still requires the native
165
+ canary described by the operational contract.