axstack 0.34.4 → 0.36.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -2
- package/bin/axstack.js +1 -1
- package/docs/getting-started.md +4 -4
- package/docs/guides.md +1 -1
- package/docs/installation.md +8 -3
- package/docs/workflows.md +40 -8
- package/package.json +1 -1
- package/profiles/presets/claude-only.json +18 -0
- package/profiles/presets/codex-only.json +18 -0
- package/profiles/presets/mixed.json +18 -0
- package/skills/axstack/references/automations.md +4 -2
- package/skills/axstack/references/autopilot.md +5 -15
- package/skills/axstack/references/candidate-publication.md +25 -26
- package/skills/axstack/references/contracts.md +2 -3
- package/skills/axstack/references/lifecycle.md +2 -2
- package/skills/axstack/references/pr-chain.md +51 -0
- package/skills/axstack/references/role-roster.md +6 -1
- package/skills/axstack/references/run-record.md +1 -0
- package/skills/axstack/references/t3-runtime.md +2 -2
- package/skills/axstack/references/test-audit-weekly.md +1 -1
- package/skills/axstack/references/ui-verification.md +1 -0
- package/skills/axstack-align/SKILL.md +5 -0
- package/skills/axstack-implement/SKILL.md +24 -55
- package/skills/axstack-improve/SKILL.md +3 -3
- package/skills/axstack-research/SKILL.md +2 -1
- package/skills/axstack-review/SKILL.md +13 -1
- package/skills/axstack-scout/SKILL.md +84 -0
- package/skills/axstack-verify/SKILL.md +2 -1
- package/skills/axstack-watch/SKILL.md +21 -9
- package/skills/axstack-watch/references/repair-publication.md +44 -59
- package/skills/axstack-watch/references/watch-runtime.md +15 -30
- package/src/capabilities.js +2 -4
- package/src/roles.js +2 -2
package/README.md
CHANGED
|
@@ -22,7 +22,7 @@ coordination. You can start at the phase you need.
|
|
|
22
22
|
## Prerequisites
|
|
23
23
|
|
|
24
24
|
Axstack supports only Linux hosts. You need Bun >=1.3.14, Git, the GitHub
|
|
25
|
-
CLI (`gh`)
|
|
25
|
+
CLI (`gh`), and T3 Code `0.0.46-nightly.20261003.2610` or newer
|
|
26
26
|
on PATH. The providers selected by your preset must be available inside T3.
|
|
27
27
|
|
|
28
28
|
Choose one explicit preset (each contains all role IDs): [mixed](profiles/presets/mixed.json)
|
|
@@ -66,7 +66,7 @@ You make decisions at holds and substantial-spec approval.
|
|
|
66
66
|
Follow [getting started](docs/getting-started.md) for the full first-task journey
|
|
67
67
|
and [guides](docs/guides.md) for features, reviews, watches, debugging and releases.
|
|
68
68
|
|
|
69
|
-
## What you can do
|
|
69
|
+
## What you can do (19 skills)
|
|
70
70
|
|
|
71
71
|
| Layer | Skill | What it does |
|
|
72
72
|
| --- | --- | --- |
|
|
@@ -86,6 +86,7 @@ and [guides](docs/guides.md) for features, reviews, watches, debugging and relea
|
|
|
86
86
|
| Operate | [axstack-cleanup](skills/axstack-cleanup/SKILL.md) | Retire eligible completed agent resources. |
|
|
87
87
|
| Operate | [axstack-relay](skills/axstack-relay/SKILL.md) | Send an explicit message or authorized notification. |
|
|
88
88
|
| Understand | [axstack-research](skills/axstack-research/SKILL.md) | Answer one bounded question with sources. |
|
|
89
|
+
| Understand | [axstack-scout](skills/axstack-scout/SKILL.md) | Gather codebase evidence for an agent across several areas. |
|
|
89
90
|
| Understand | [axstack-explain](skills/axstack-explain/SKILL.md) | Explain a system and separate known behavior from gaps. |
|
|
90
91
|
| Understand | [axstack-diagram](skills/axstack-diagram/SKILL.md) | Draw SVG/CSS in inline pages, Mermaid for chat/GitHub/docs, or requested archify viewers. |
|
|
91
92
|
|
package/bin/axstack.js
CHANGED
|
@@ -51,7 +51,7 @@ Usage:
|
|
|
51
51
|
Commands:
|
|
52
52
|
install Validate a skill bundle, then copy owned skills and selected role
|
|
53
53
|
data and record ownership hashes.
|
|
54
|
-
check Probe Bun, Git, gh
|
|
54
|
+
check Probe Bun, Git, gh, and the T3 Code version floor.
|
|
55
55
|
Driver preflight verifies MCP readiness inside a T3 thread.
|
|
56
56
|
uninstall Remove only unchanged Axstack-owned assets. User edits survive.
|
|
57
57
|
|
package/docs/getting-started.md
CHANGED
|
@@ -8,7 +8,7 @@ For the mental model, read [concepts](concepts.md); for other journeys, use
|
|
|
8
8
|
|
|
9
9
|
## Prepare your host
|
|
10
10
|
|
|
11
|
-
You need Bun >=1.3.14, Git, the GitHub CLI
|
|
11
|
+
You need Bun >=1.3.14, Git, the GitHub CLI, and
|
|
12
12
|
T3 Code `0.0.46-nightly.20261003.2610` or newer. These executables must be on PATH.
|
|
13
13
|
The providers required by your chosen preset must be available inside T3.
|
|
14
14
|
See [installation](installation.md) for harness paths and
|
|
@@ -30,17 +30,17 @@ and fetches the pinned archify tool for explicit viewer requests. Reload the
|
|
|
30
30
|
harness's skills in T3 after installation. Use the [installation reference](installation.md) for other
|
|
31
31
|
harnesses, source installs or conflicts.
|
|
32
32
|
|
|
33
|
-
A successful check exits 0. Its
|
|
33
|
+
A successful check exits 0. Its four capability rows mean:
|
|
34
34
|
|
|
35
35
|
| Row | Meaning |
|
|
36
36
|
| --- | --- |
|
|
37
37
|
| `bun` | The running Bun version meets the floor. |
|
|
38
38
|
| `git` | Git's version command succeeds. |
|
|
39
39
|
| `gh` | The GitHub CLI's version command succeeds. |
|
|
40
|
-
| `gh stack` | The extension's actual help command succeeds. |
|
|
41
40
|
| `t3` | T3's version command succeeds and meets the floor. |
|
|
42
41
|
|
|
43
|
-
|
|
42
|
+
The `gh stack` extension is needed only for preexisting native stacks; ordinary
|
|
43
|
+
PRs/chains use Git and `gh pr`. With this harness target, check also validates the archify record/copy/SHA and
|
|
44
44
|
reports the owned instruction binding. Missing Chrome is a warning. Any reported
|
|
45
45
|
gap exits 1; follow [troubleshooting](installation.md#exit-codes-and-troubleshooting) before
|
|
46
46
|
starting a task.
|
package/docs/guides.md
CHANGED
|
@@ -12,7 +12,7 @@ Invoke `$axstack-spec Write the agreed specification.` to record observable
|
|
|
12
12
|
acceptance, exclusions and a revision for your approval. After approval,
|
|
13
13
|
`$axstack-tickets Map the approved work into tasks.` prepares the dependency map.
|
|
14
14
|
`$axstack-implement Build the approved tasks.` carries it through authors,
|
|
15
|
-
exact-revision review and repairs. The driver publishes through `gh
|
|
15
|
+
exact-revision review and repairs. The driver publishes through scoped Git push and `gh pr create/edit`
|
|
16
16
|
and records each candidate and its evidence.
|
|
17
17
|
|
|
18
18
|
## Small fix
|
package/docs/installation.md
CHANGED
|
@@ -7,7 +7,7 @@ checks host capabilities. T3 Code is the only supported active runtime. The CLI
|
|
|
7
7
|
does not dispatch agents, edit T3 settings, run a scheduler, or maintain a
|
|
8
8
|
workflow database.
|
|
9
9
|
|
|
10
|
-
Requirements: Bun >=1.3.14, Git, `gh`,
|
|
10
|
+
Requirements: Bun >=1.3.14, Git, `gh`, and a running
|
|
11
11
|
T3 Code `0.0.46-nightly.20261003.2610` or newer. The driver is a T3 thread
|
|
12
12
|
with the `t3-code` MCP. See the [T3 runtime boundary](../skills/axstack/references/t3-runtime.md).
|
|
13
13
|
Axstack has no runtime package dependencies. Filesystem access uses Bun-backed
|
|
@@ -123,14 +123,14 @@ role store and no T3 configuration merge.
|
|
|
123
123
|
axstack check [--bundle <dir>] [--instructions <file>] [--skills-dir <dir>|--harness <name>]
|
|
124
124
|
```
|
|
125
125
|
|
|
126
|
-
The capability report has
|
|
126
|
+
The capability report has four rows; `gh stack` is required only for preexisting
|
|
127
|
+
legacy native-stack operations, which probe `gh stack --help` separately:
|
|
127
128
|
|
|
128
129
|
| Row | What it checks |
|
|
129
130
|
| --- | --- |
|
|
130
131
|
| `bun` | The `bun` row reports the already-validated running version, because Bun below 1.3.14 exits 1 before any row is printed. |
|
|
131
132
|
| `git` | `git --version` succeeds. |
|
|
132
133
|
| `gh` | `gh --version` succeeds. |
|
|
133
|
-
| `gh stack` | `gh stack --help` succeeds, rather than merely finding an extension name. |
|
|
134
134
|
| `t3` | `t3 --version` succeeds and its output meets the T3 version floor. |
|
|
135
135
|
|
|
136
136
|
`--bundle` additionally validates the bundle and reports its skill-file count
|
|
@@ -307,6 +307,11 @@ The `mixed` and `claude-only` presets assign `axstack-auditor`,
|
|
|
307
307
|
Activation requires that exact ID and high effort in saved T3 capabilities;
|
|
308
308
|
missing either holds these roles without substitution, including Haiku 4.5.
|
|
309
309
|
The `codex-only` assignments for these roles are unchanged.
|
|
310
|
+
Scout adds `axstack-explore-codebase-luna` at Codex Luna xhigh in `mixed` and
|
|
311
|
+
`codex-only`. The optional `axstack-explore-codebase-flash` seat uses
|
|
312
|
+
Antigravity `gemini-3.8-flash-medium` at medium effort in `mixed`.
|
|
313
|
+
The missing Scout seats have explicit null models: Luna and Flash in
|
|
314
|
+
`claude-only`, and Flash in `codex-only`.
|
|
310
315
|
The three `-sol` pair seats for auditor, research-code, and explore-execution
|
|
311
316
|
use Sol high in `mixed` and `codex-only`; `claude-only` records intentional
|
|
312
317
|
absences. The paired seats run independently on one brief and the driver
|
package/docs/workflows.md
CHANGED
|
@@ -29,6 +29,8 @@ Direct routes need no spec ceremony:
|
|
|
29
29
|
- [axstack-perf](../skills/axstack-perf/SKILL.md) routes performance work to
|
|
30
30
|
Debug, Improve, or Implement through the shared performance loop.
|
|
31
31
|
- `axstack-research` answers one bounded source-backed question.
|
|
32
|
+
- `axstack-scout` gathers cited codebase evidence for broad or unfamiliar
|
|
33
|
+
questions using independent, read-only seats.
|
|
32
34
|
- `axstack-correct` reports repeated mistakes and proposes stronger checks.
|
|
33
35
|
Only the user invokes it.
|
|
34
36
|
- `axstack-explain` separates implemented, intended, tested, live, and unknown
|
|
@@ -129,8 +131,11 @@ use the Claude Sonnet class at high effort. `axstack-explore-codebase` and
|
|
|
129
131
|
`axstack-monitor` adopt Haiku 5.5 high, with class `haiku` and exact pin
|
|
130
132
|
`claude-haiku-5-5`. Missing that ID or high effort in saved T3 capabilities
|
|
131
133
|
holds those roles without substitution. `codex-only` keeps its Codex
|
|
132
|
-
assignments for those roles.
|
|
133
|
-
|
|
134
|
+
assignments for those roles. Scout adds a Luna xhigh codebase seat in `mixed`
|
|
135
|
+
and `codex-only`, and an optional Antigravity Flash medium seat in `mixed`.
|
|
136
|
+
In `claude-only`, Luna and Flash are intentionally absent; Flash is also
|
|
137
|
+
intentionally absent in `codex-only`. Mixed web-google and X retain their
|
|
138
|
+
source-specific Antigravity and Grok routes.
|
|
134
139
|
The mixed `axstack-auditor` uses Haiku 5.5 xhigh, pinned to `claude-haiku-5-5`;
|
|
135
140
|
missing that ID or xhigh effort holds without substitution. The mixed
|
|
136
141
|
`axstack-explainer-review` uses Sol medium; `axstack-explainer` stays Sonnet high.
|
|
@@ -234,7 +239,7 @@ for explicit ownership transfer.
|
|
|
234
239
|
- `axstack-implement` uses strict behavioral RED, GREEN, then refactor. The
|
|
235
240
|
narrow accepted structure-preserving route uses old-green and the same check
|
|
236
241
|
new-green. One author writes and returns a local receipt without pushing. The
|
|
237
|
-
owner reconciles it, publishes the unchanged commits through `gh
|
|
242
|
+
owner reconciles it, publishes the unchanged commits through scoped Git push and `gh pr create/edit`, and
|
|
238
243
|
confirms the remote SHA before review. Local green and CI green remain
|
|
239
244
|
separate evidence. Authors apply the shared
|
|
240
245
|
[test-value gate](../skills/axstack/references/test-value.md) to each new or
|
|
@@ -250,7 +255,7 @@ for explicit ownership transfer.
|
|
|
250
255
|
authorized-maintenance scope. A changed head or comment is an event, not
|
|
251
256
|
repair authority. Within an implementation run, fixes return to the original
|
|
252
257
|
author and follow its publish-before-review loop. Manual adopted-PR repair
|
|
253
|
-
reviews the exact local SHA and reply bodies before `gh
|
|
258
|
+
reviews the exact local SHA and reply bodies before scoped Git push and `gh pr create/edit` publication
|
|
254
259
|
and remote readback.
|
|
255
260
|
- `axstack-audit` separates execution outcome, procedure, and measurement
|
|
256
261
|
coverage with evidenced denominators; it proposes but never self-edits.
|
|
@@ -393,7 +398,8 @@ that authored or repaired `merge-base..head` commits. Team approval also needs a
|
|
|
393
398
|
counted non-author collaborator review at the current head. Axstack automation
|
|
394
399
|
votes never count. Unknown or mixed provenance and manually authored PRs need a
|
|
395
400
|
merge card. New heads need fresh authored review, diligence, and CI. A collaborator
|
|
396
|
-
approval carries over only across an unchanged stable patch-id rebase,
|
|
401
|
+
approval carries over only across an unchanged stable patch-id rebase, base-update
|
|
402
|
+
merge or base-only retarget, recorded
|
|
397
403
|
for both heads, while the forge still counts it.
|
|
398
404
|
|
|
399
405
|
Base classification uses repository docs and workflows, never the branch name
|
|
@@ -417,6 +423,9 @@ Proven verification is required for every own PR. Use the authored receipt:
|
|
|
417
423
|
Earlier-head red-to-green evidence in the PR's patch lineage counts only when
|
|
418
424
|
the reviewer records that it still applies to the final change.
|
|
419
425
|
An applicable `verify-<app>` passing result is required for the changed behavior.
|
|
426
|
+
The passing result must come from the reviewer's or `axstack-ui-verifier`'s local drive at that head.
|
|
427
|
+
The author's log alone never satisfies this requirement.
|
|
428
|
+
A preview URL never satisfies this requirement.
|
|
420
429
|
- Verification requires no limitation tagged `changed-behavior: unproven`.
|
|
421
430
|
The reviewer tags every limitation leaving changed behavior unexercised or
|
|
422
431
|
unverified, in whatever words, `changed-behavior: unproven`.
|
|
@@ -483,12 +492,35 @@ Personal and work PRs remain eligible whatever files they change, including
|
|
|
483
492
|
branch-protection or ruleset config, `CODEOWNERS`, `AGENTS.md`, and non-clean
|
|
484
493
|
revert lines such as `Revert: steps`.
|
|
485
494
|
|
|
486
|
-
For a `gh stack`, only the bottom member's base must be eligible.
|
|
495
|
+
For a legacy native `gh stack`, only the bottom member's base must be eligible.
|
|
487
496
|
Each other member's base must be the next-lower member's branch at its reviewed head.
|
|
488
497
|
Every member must meet every other term.
|
|
489
|
-
A stack holds until every member of its approved plan (the ticket map or the
|
|
498
|
+
A legacy native stack holds until every member of its approved plan (the ticket map or the
|
|
490
499
|
adopted stack's recorded members) is published.
|
|
491
|
-
Reviewed members are never retargeted to become eligible.
|
|
500
|
+
Reviewed legacy native-stack members are never retargeted to become eligible.
|
|
501
|
+
|
|
502
|
+
New work uses ordinary PRs/chains under [PR chains](../skills/axstack/references/pr-chain.md).
|
|
503
|
+
Record chain/native identity and direct dependencies; unknown or mixed routing
|
|
504
|
+
holds affected operations. Children start from reviewed parents and merge
|
|
505
|
+
parent/base updates without rewriting existing commits. Immediately invalidate
|
|
506
|
+
affected child readiness, then refresh next ready children as needed, batching
|
|
507
|
+
ancestor changes. A ready parent with independently deliverable approved scope
|
|
508
|
+
can integrate before its children are published or ready. Only ready roots
|
|
509
|
+
merge into integration targets; children never merge into open parent branches.
|
|
510
|
+
|
|
511
|
+
Each root uses `gh pr merge <n> --merge --match-head-commit <sha>` under the full
|
|
512
|
+
watch predicate, with merge commits enabled, no merge queue and auto-delete off.
|
|
513
|
+
After confirmed parent merge, prove actual head equals reviewed head and is an
|
|
514
|
+
ancestor of the integration result; reread direct child head/old base, change
|
|
515
|
+
only base and read back unchanged head/new base. Unknown outcomes require lookup
|
|
516
|
+
before retry; rewritten, squash/rebase or closed-unmerged parents hold dependents.
|
|
517
|
+
The latest integration tip must enter child history before its merge. Retargeting
|
|
518
|
+
or a base update requires fresh applicable review, diligence, shape, CI and
|
|
519
|
+
approval evaluation bound to PR/head/base branch/base SHA. Branch retirement
|
|
520
|
+
checks unpublished dependencies, active authors and complete open-PR inventory;
|
|
521
|
+
unknown consumers hold deletion, not independent parent integration. Existing
|
|
522
|
+
native stacks retain their full-stack, linear-history and no-retarget path.
|
|
523
|
+
Singleton eligibility and user-only categories are unchanged.
|
|
492
524
|
|
|
493
525
|
Never auto-merge PRs authored by anyone other than the user or the user's agents.
|
|
494
526
|
Test sources stay eligible.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "axstack",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.36.0",
|
|
4
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",
|
|
@@ -173,6 +173,24 @@
|
|
|
173
173
|
"modelClass": "haiku",
|
|
174
174
|
"model": "claude-haiku-5-5"
|
|
175
175
|
},
|
|
176
|
+
{
|
|
177
|
+
"id": "axstack-explore-codebase-luna",
|
|
178
|
+
"name": "Axstack codebase explorer Luna (unavailable)",
|
|
179
|
+
"provider": "claude",
|
|
180
|
+
"model": null,
|
|
181
|
+
"modeId": "bypassPermissions",
|
|
182
|
+
"thinkingOptionId": "xhigh",
|
|
183
|
+
"notes": "Intentional single-provider absence: Luna Scout seat is unavailable in claude-only."
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
"id": "axstack-explore-codebase-flash",
|
|
187
|
+
"name": "Axstack codebase explorer Flash (unavailable)",
|
|
188
|
+
"provider": "claude",
|
|
189
|
+
"model": null,
|
|
190
|
+
"modeId": "bypassPermissions",
|
|
191
|
+
"thinkingOptionId": "medium",
|
|
192
|
+
"notes": "Intentional single-provider absence: Flash Scout seat is unavailable in claude-only."
|
|
193
|
+
},
|
|
176
194
|
{
|
|
177
195
|
"id": "axstack-explore-execution",
|
|
178
196
|
"name": "Axstack execution explorer",
|
|
@@ -172,6 +172,24 @@
|
|
|
172
172
|
"notes": "Codebase mapper: explores repository structure and interfaces for research and handoff context. Resolve the class from saved T3 capabilities at run start; rejection and unavailable settings hold without substitution.",
|
|
173
173
|
"modelClass": "sol"
|
|
174
174
|
},
|
|
175
|
+
{
|
|
176
|
+
"id": "axstack-explore-codebase-luna",
|
|
177
|
+
"name": "Axstack codebase explorer Luna",
|
|
178
|
+
"provider": "codex",
|
|
179
|
+
"modeId": "full-access",
|
|
180
|
+
"thinkingOptionId": "xhigh",
|
|
181
|
+
"notes": "Independent read-only Luna Scout facet explorer. Searches the whole repository on the same brief without cross-reading; reports evidence for driver reconciliation. Unavailable model or effort holds without substitution.",
|
|
182
|
+
"modelClass": "luna"
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
"id": "axstack-explore-codebase-flash",
|
|
186
|
+
"name": "Axstack codebase explorer Flash (unavailable)",
|
|
187
|
+
"provider": "codex",
|
|
188
|
+
"model": null,
|
|
189
|
+
"modeId": "full-access",
|
|
190
|
+
"thinkingOptionId": "medium",
|
|
191
|
+
"notes": "Intentional single-provider absence: Flash Scout seat is unavailable in codex-only."
|
|
192
|
+
},
|
|
175
193
|
{
|
|
176
194
|
"id": "axstack-explore-execution",
|
|
177
195
|
"name": "Axstack execution explorer",
|
|
@@ -173,6 +173,24 @@
|
|
|
173
173
|
"modelClass": "haiku",
|
|
174
174
|
"model": "claude-haiku-5-5"
|
|
175
175
|
},
|
|
176
|
+
{
|
|
177
|
+
"id": "axstack-explore-codebase-luna",
|
|
178
|
+
"name": "Axstack codebase explorer Luna",
|
|
179
|
+
"provider": "codex",
|
|
180
|
+
"modeId": "full-access",
|
|
181
|
+
"thinkingOptionId": "xhigh",
|
|
182
|
+
"notes": "Independent read-only Luna Scout facet explorer. Searches the whole repository on the same brief without cross-reading; reports evidence for driver reconciliation. Unavailable model or effort holds without substitution.",
|
|
183
|
+
"modelClass": "luna"
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
"id": "axstack-explore-codebase-flash",
|
|
187
|
+
"name": "Axstack codebase explorer Flash",
|
|
188
|
+
"provider": "antigravity",
|
|
189
|
+
"model": "gemini-3.8-flash-medium",
|
|
190
|
+
"modeId": "full-access",
|
|
191
|
+
"thinkingOptionId": "medium",
|
|
192
|
+
"notes": "Optional read-only Scout breadth seat: searches the whole repository for missed boundaries and counterexamples. Reports evidence for driver reconciliation without cross-reading."
|
|
193
|
+
},
|
|
176
194
|
{
|
|
177
195
|
"id": "axstack-explore-execution",
|
|
178
196
|
"name": "Axstack execution explorer",
|
|
@@ -210,10 +210,12 @@ through a broad `TMPDIR` glob, sweep a shared temporary root, or wipe a general
|
|
|
210
210
|
cache. Preserve evidence and any temporary path with uncertain ownership or
|
|
211
211
|
containment.
|
|
212
212
|
|
|
213
|
-
An unchanged exact head
|
|
213
|
+
An unchanged exact head, base branch identity, base SHA and event identity
|
|
214
|
+
creates no job; an
|
|
214
215
|
unchanged exact head with a new event identity remains actionable. Event
|
|
215
216
|
identity includes the applicable review ID and body digest, request identity, or other current GitHub event
|
|
216
|
-
receipt.
|
|
217
|
+
receipt. A base-only retarget or base update is a new evidence identity under
|
|
218
|
+
[PR chains](pr-chain.md). Dedupe from current GitHub state,
|
|
217
219
|
native T3 task and thread/run state, and the existing compact run record; do
|
|
218
220
|
not create machine cursor files or a queue engine. Record enough to resume: PR,
|
|
219
221
|
head, base, event identity, mode, owner and worker receipts, verdict,
|
|
@@ -97,7 +97,8 @@ cadence conditions before ending the turn.
|
|
|
97
97
|
An explicitly adopted PR joins only with its maintenance snapshot.
|
|
98
98
|
The original driver alone routes work; one author writes each
|
|
99
99
|
candidate. Until a PR is merge-ready, wakes feed implement §6 step 4. After
|
|
100
|
-
merge-ready, watch §5 maintenance repairs feedback,
|
|
100
|
+
merge-ready, watch §5 maintenance repairs feedback, updates the base under
|
|
101
|
+
[PR chains](pr-chain.md),
|
|
101
102
|
keeps CI green, and checks approvals without re-requesting human review.
|
|
102
103
|
|
|
103
104
|
Maintain is the default mode for run-created PRs.
|
|
@@ -168,20 +169,9 @@ instructions, always win.
|
|
|
168
169
|
|
|
169
170
|
Follow [Provider bindings](t3-runtime.md#preflight-and-binding) for driver account re-selection on start, resume and run-watch wakes.
|
|
170
171
|
|
|
171
|
-
|
|
172
|
-
Decision holds, including spec and npm
|
|
173
|
-
|
|
174
|
-
60-minute blocked ping, unresolved-rating notice and capped peer PR milestones
|
|
175
|
-
under the Notification policy.
|
|
176
|
-
Under the recorded Notification policy, `verification not proven` is a
|
|
177
|
-
user-decision hold. The 60-minute blocked ping is a notification-only category
|
|
178
|
-
under the Notification policy. The unresolved-rating notice is a notification-only
|
|
179
|
-
category under the Notification policy, deduplicated per comment and head.
|
|
180
|
-
The unresolved-rating notice grants no reply authority.
|
|
181
|
-
The unresolved-rating notice never clears the hold.
|
|
182
|
-
Never send routine merge-ready or merged relays
|
|
183
|
-
for own PRs. Notifications for peer PRs are unchanged, including at most two
|
|
184
|
-
merge-ready/merged milestones per run, deduplicated across implementation and release.
|
|
172
|
+
Follow [Watch notifications](../../axstack-watch/SKILL.md#4-route-each-wake)
|
|
173
|
+
under the recorded Notification policy. Decision holds, including spec and npm
|
|
174
|
+
approval, are always eligible.
|
|
185
175
|
Across implementation and release, peer PR merge-ready and merged notifications
|
|
186
176
|
together are capped at two per run; deduplicate by purpose and revision. Healthy ticks stay
|
|
187
177
|
quiet. A failed or uncertain delivery preserves the underlying hold. A relay
|
|
@@ -1,25 +1,27 @@
|
|
|
1
1
|
# Candidate publication
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
the author's candidate; required code changes return to the author.
|
|
3
|
+
For an owned candidate, the author returns its revision-bound implementation
|
|
4
|
+
receipt and stops without pushing. Under recorded PR-scoped publication authority,
|
|
5
|
+
the owner reconciles author receipt with actual local candidate SHA/base. The owner
|
|
6
|
+
does not edit the candidate; code changes return to its author.
|
|
8
7
|
|
|
9
8
|
Before publication, dispatch `axstack-diligence` under
|
|
10
9
|
[Diligence](diligence.md) to check the author receipt against its evidence
|
|
11
10
|
folder: red/green logs exist, and counts, SHAs, and paths match. Resolve
|
|
12
11
|
`FINDINGS` with the same author before publishing.
|
|
13
12
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
Follow [PR chains](pr-chain.md) for recorded membership and base-bound evidence.
|
|
14
|
+
For ordinary PRs, use `git push origin HEAD:refs/heads/<owned branch>` and
|
|
15
|
+
`gh pr create` or `gh pr edit` with the actual parent or integration base.
|
|
16
|
+
Never use routine force push for ordinary PRs. For legacy native `gh stack`,
|
|
17
|
+
prefer a fast-forward push of existing commits, preserving unrelated entries.
|
|
18
|
+
Before a history rewrite, confirm expected-old remote SHA and use a narrowly
|
|
19
|
+
justified lease; a mismatch holds publication. If push outcome is ambiguous,
|
|
17
20
|
inspect remote state before retrying.
|
|
18
21
|
|
|
19
|
-
Before reviewer dispatch, read the remote ref back
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
candidate SHA and current base under [PR shape](pr-shape.md).
|
|
22
|
+
Before reviewer dispatch, read the remote ref back, confirm its SHA equals candidate SHA, pin
|
|
23
|
+
current base and refresh PR body counts and base from confirmed candidate SHA
|
|
24
|
+
and that base under [PR shape](pr-shape.md).
|
|
23
25
|
After every push, before post-push diligence or merge-ready, compare the PR body's
|
|
24
26
|
stated head SHA with `Confirmed remote SHA` and record `PR body head SHA: <sha or none>`.
|
|
25
27
|
Accept `none` for a PR body without a stated head SHA.
|
|
@@ -32,6 +34,7 @@ Record:
|
|
|
32
34
|
|
|
33
35
|
```text
|
|
34
36
|
Candidate: <sha>
|
|
37
|
+
Base branch: <branch>
|
|
35
38
|
Base: <sha>
|
|
36
39
|
Remote ref: <branch>
|
|
37
40
|
Expected-old remote SHA: <sha | absent>
|
|
@@ -41,11 +44,8 @@ PR: <url>
|
|
|
41
44
|
CI: <run ID or URL and triggered/pending/completed status>
|
|
42
45
|
```
|
|
43
46
|
|
|
44
|
-
Local green is not CI green:
|
|
45
|
-
|
|
46
|
-
remote confirmation. Reviewers inspect a detached immutable checkout of the
|
|
47
|
-
confirmed candidate SHA and pinned base, never only the movable branch name.
|
|
48
|
-
Any author repair creates a new revision and repeats this boundary.
|
|
47
|
+
Local green is not CI green: CI is pending after publication until required checks complete. Review may run alongside CI only after remote confirmation. Follow [Immutable checkout shape](#immutable-checkout-shape) for review.
|
|
48
|
+
Author repairs create new revisions and repeat this boundary.
|
|
49
49
|
After verified publication readback, follow
|
|
50
50
|
[Native PR links and watches](t3-runtime.md#native-pr-links-and-watches).
|
|
51
51
|
|
|
@@ -67,18 +67,17 @@ step, subject to recorded release authority and human npm stage approval.
|
|
|
67
67
|
## Immutable checkout shape
|
|
68
68
|
|
|
69
69
|
The driver creates the immutable review checkout with `git worktree add --detach <run>/checkouts/<key> <sha>` at the confirmed candidate SHA and pinned base.
|
|
70
|
-
Follow [T3 runtime](t3-runtime.md) for async `delegate_task
|
|
71
|
-
|
|
72
|
-
register a duplicate
|
|
70
|
+
Follow [T3 runtime](t3-runtime.md) for async `delegate_task`.
|
|
71
|
+
Bind disposable checkout to exact attempt identity.
|
|
72
|
+
Use the existing repository; never register a duplicate or use a movable branch.
|
|
73
73
|
Delegated reviewers must `cd` into their separate detached checkout; tracked candidate files remain read-only and outputs go to their private evidence folder.
|
|
74
|
-
Snapshot driver HEAD and full status
|
|
74
|
+
Snapshot driver HEAD and full status (including untracked) before dispatch.
|
|
75
75
|
After each delegated completion, compare the driver HEAD and `git status --porcelain` with their pre-dispatch values; any change holds advancement.
|
|
76
|
-
|
|
77
|
-
|
|
76
|
+
Peer reviewers have separate checkouts/evidence without first-pass cross-read.
|
|
77
|
+
Later review gets a fresh checkout.
|
|
78
78
|
Before removing a reviewer checkout, read back its report and supporting evidence, then use exact `git worktree remove <run>/checkouts/<key>` without force.
|
|
79
|
-
Verify
|
|
80
|
-
|
|
81
|
-
Release checks use the same driver-made SHA-pinned detached-checkout procedure.
|
|
79
|
+
Verify absence under [Workspace hygiene](workspace-hygiene.md); retain the author
|
|
80
|
+
candidate until merge/closure. Release checks use same driver-made SHA-pinned detached-checkout procedure.
|
|
82
81
|
|
|
83
82
|
For a release PR, dispatch `axstack-diligence` under
|
|
84
83
|
[Diligence](diligence.md) to check the release PR body
|
|
@@ -125,12 +125,11 @@ remain a serious-risk hold.
|
|
|
125
125
|
- One T3 host/server owns a run. No fixed active-PR count; fanout is dependency-
|
|
126
126
|
and capacity-driven within host resource and spending limits. Reduce fanout for
|
|
127
127
|
recorded rework, review backlog, or resource pressure. Queue conflicts and
|
|
128
|
-
dependencies;
|
|
128
|
+
dependencies; follow [PR chains](pr-chain.md). Routine shape, split, fanout, and
|
|
129
129
|
exception choices within approved scope are autonomous driver decisions; size alone never
|
|
130
130
|
requires user approval.
|
|
131
131
|
- Exactly one writer per candidate; one persistent accountable PR owner. Each PR has one theme and measured size under [PR shape](pr-shape.md). Report unknown capacity
|
|
132
|
-
metrics; never a telemetry prerequisite or blocker.
|
|
133
|
-
affected child evidence; refresh it against the new parent.
|
|
132
|
+
metrics; never a telemetry prerequisite or blocker. PR chains owns child evidence invalidation and refresh.
|
|
134
133
|
- Own PRs default to automatic merge under [watch §5](../../axstack-watch/SKILL.md).
|
|
135
134
|
Review approval and reviewer votes alone never grant mutation or merge authority.
|
|
136
135
|
User merges are bottom-up for a stack.
|
|
@@ -24,7 +24,7 @@ binding state and receipts to exact revisions.
|
|
|
24
24
|
|
|
25
25
|
Prefer parallel independent bounded work; no redundant workers. Fanout is dependency- and
|
|
26
26
|
capacity-driven within host/spending limits. [PR shape](pr-shape.md) covers
|
|
27
|
-
theme/size; queue dependencies
|
|
27
|
+
theme/size; queue dependencies under [PR chains](pr-chain.md).
|
|
28
28
|
|
|
29
29
|
## Ownership
|
|
30
30
|
|
|
@@ -70,7 +70,7 @@ Store receipt references, not raw output, in the [Run record](run-record.md).
|
|
|
70
70
|
role; reuse on resume.
|
|
71
71
|
- Acceptance receipt: sender/recipient, accepted scope/authority, timestamp,
|
|
72
72
|
and ownership session receipt.
|
|
73
|
-
- Review receipt: mode, provenance, reviewer,
|
|
73
|
+
- Review receipt: mode, provenance, reviewer, PR/head/base branch/base SHA,
|
|
74
74
|
verdict (`APPROVE | REQUEST_CHANGES | INCOMPLETE`), coverage, limitations and
|
|
75
75
|
findings. Changed code needs a new receipt. Codebase: revision/scope,
|
|
76
76
|
`COMPLETE | INCOMPLETE` coverage, no PR verdict.
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Ordinary PR chains
|
|
2
|
+
|
|
3
|
+
Record ordinary-chain or legacy-native-stack identity and direct dependencies.
|
|
4
|
+
Ordinary PRs/chains are default. Unknown/mixed identity holds
|
|
5
|
+
affected operations. Use `gh stack` only for legacy-native-stack operations,
|
|
6
|
+
probe `gh stack --help` first. Preserve publication, linear-history, full-stack
|
|
7
|
+
merge, pinning and no-retarget rules under
|
|
8
|
+
[watch §5](../../axstack-watch/SKILL.md#5-state-readiness-precisely).
|
|
9
|
+
No automatic live unstacking. Singleton eligibility unchanged.
|
|
10
|
+
|
|
11
|
+
Children start from reviewed parent. For ordinary chains, merge parent
|
|
12
|
+
or base into owned child preserving existing commits. Immediately
|
|
13
|
+
invalidate affected child readiness. Refresh next ready children and direct
|
|
14
|
+
dependencies as needed, batching ancestor changes. Re-run affected checks and
|
|
15
|
+
remeasure shape against new base; size growth alone is not an automatic hold.
|
|
16
|
+
Legacy children retain reviewed-parent rebasing and revalidation.
|
|
17
|
+
Ordinary chains/legacy stacks: repair lowest affected ancestor first,
|
|
18
|
+
then refresh/revalidate children as needed.
|
|
19
|
+
|
|
20
|
+
## Integration
|
|
21
|
+
|
|
22
|
+
Only ready chain roots merge into integration targets. Never merge a child into
|
|
23
|
+
an open parent branch. Ready parent can merge before child publication or
|
|
24
|
+
readiness for independently deliverable approved scope. Apply watch §5, including
|
|
25
|
+
personal/work eligibility and user-only categories. Latest integration tip
|
|
26
|
+
must enter child history before merge.
|
|
27
|
+
|
|
28
|
+
After confirmed parent merge, verify reviewed head equals actual head and
|
|
29
|
+
is reachable from integration result. Mismatch: serious-risk hold.
|
|
30
|
+
Direct children: reread old head and base, change only base, read back
|
|
31
|
+
unchanged head and new base. Use `gh pr edit <child> --base <integration>` only
|
|
32
|
+
after confirming old base is parent branch and recorded head matches.
|
|
33
|
+
Retarget direct children only; prove forge auto-retargeting likewise.
|
|
34
|
+
Unknown retarget outcome: lookup before retry. Closed without merge,
|
|
35
|
+
rewritten parents, external squash or rebase, and missing ancestry hold dependents.
|
|
36
|
+
|
|
37
|
+
Bind evidence to PR, head, base branch identity and base SHA. Base-only retarget
|
|
38
|
+
or base update needs fresh applicable review, diligence, shape, CI and
|
|
39
|
+
approval evaluation. Check new-base workflow coverage at unchanged heads;
|
|
40
|
+
never reuse old-base receipts. Carryover compares stable patch-id at both recorded
|
|
41
|
+
head/base
|
|
42
|
+
identities and requires a forge-counted human approval under watch §5. Never
|
|
43
|
+
automatically request human rereview.
|
|
44
|
+
|
|
45
|
+
## Retirement
|
|
46
|
+
|
|
47
|
+
Branch retirement checks published and unpublished dependencies, active authors
|
|
48
|
+
and complete open-PR inventory. Unknown consumers hold deletion, never safe
|
|
49
|
+
independent parent integration. Resolve/read back all consumers before deletion.
|
|
50
|
+
Keep auto-delete off; omit
|
|
51
|
+
merge-time deletion for present/uncertain consumers.
|
|
@@ -41,6 +41,10 @@
|
|
|
41
41
|
or high effort holds these roles without substitution.
|
|
42
42
|
`axstack-monitor`: standalone watch never sends; chat-run watch: bounded
|
|
43
43
|
internal reports to its Run and original driver.
|
|
44
|
+
- Scout requires `axstack-explore-codebase` and
|
|
45
|
+
`axstack-explore-codebase-luna` per facet in mixed (Haiku high + Luna
|
|
46
|
+
xhigh) and codex-only (Sol high + Luna xhigh). Claude-only requires
|
|
47
|
+
the Haiku high base seat per facet.
|
|
44
48
|
- Sol pairs `axstack-auditor-sol`/`axstack-research-code-sol`/
|
|
45
49
|
`axstack-explore-execution-sol`: `codex/sol` high in
|
|
46
50
|
mixed/codex-only; intentionally absent in claude-only. Dispatch each
|
|
@@ -50,7 +54,8 @@
|
|
|
50
54
|
- Optional seats: `axstack-arena-candidate-grok`,
|
|
51
55
|
`axstack-arena-candidate-antigravity`, `axstack-research-web-google`,
|
|
52
56
|
`axstack-research-x`, `axstack-checker`, `axstack-research-code-sol`,
|
|
53
|
-
`axstack-explore-execution-sol`, `axstack-auditor-sol
|
|
57
|
+
`axstack-explore-execution-sol`, `axstack-auditor-sol`,
|
|
58
|
+
`axstack-explore-codebase-flash`.
|
|
54
59
|
Always dispatch optional seats when configured and available. Only a
|
|
55
60
|
launch failure, trust/login prompt, or prompt block makes one absent:
|
|
56
61
|
fence the attempt, record `absent (<reason>)`, name it once in the next
|
|
@@ -183,6 +183,7 @@ Deploying bases: <base -> integration | deploying; docs/workflow evidence>
|
|
|
183
183
|
PR digest watermarks: <repo -> absolute path of its per-repository JSON file inside the private run directory> | none
|
|
184
184
|
Release: <AGENTS.md file:line + tag-triggered workflow path + named install hosts> | not applicable (<reason>)
|
|
185
185
|
Source base: <exact revision or source identity>
|
|
186
|
+
PR membership: <PR -> ordinary-chain | legacy-native-stack; direct dependencies incl unpublished; active authors; head/base branch/base SHA>
|
|
186
187
|
IDs: <projectId + driver threadId/runId + dispatch identity receipt pointers>
|
|
187
188
|
Runtime: <host + T3 version + installed Axstack SHA + installed Axstack version/check time + last reference read time + capabilities JSON path>
|
|
188
189
|
Schedules: <scheduledTaskIds of every watch and manager schedule>
|
|
@@ -264,12 +264,12 @@ delete preserves the hold and recorded ID.
|
|
|
264
264
|
## Native PR links and watches
|
|
265
265
|
|
|
266
266
|
After verified publication readback or adoption of an own PR, the driver calls
|
|
267
|
-
`link_pull_request` with the full PR URL for every layer of
|
|
267
|
+
`link_pull_request` with the full PR URL for every layer of an ordinary-chain or legacy `gh stack`.
|
|
268
268
|
Before finishing PR work, including watch end or Close-out, the driver calls
|
|
269
269
|
`list_thread_pull_requests` and links every missing run PR.
|
|
270
270
|
Never link unrelated PRs.
|
|
271
271
|
|
|
272
|
-
After verified publication readback of an own PR, for every layer of
|
|
272
|
+
After verified publication readback of an own PR, for every layer of an ordinary-chain or legacy `gh stack`,
|
|
273
273
|
the driver also calls `t3_thread_update` with `action: link_pull_request`,
|
|
274
274
|
`pullRequest` containing its number, repository and full PR URL, and `threadId`
|
|
275
275
|
set to the author thread, then reads back the PR link with
|
|
@@ -57,7 +57,7 @@ The weekly test audit is a named exception to Implement's publish-then-review
|
|
|
57
57
|
order: it requires review-before-publication.
|
|
58
58
|
Obtain independent review using Implement's configured authored-review roles and
|
|
59
59
|
verify the exact candidate's checks before publication. The driver uses
|
|
60
|
-
|
|
60
|
+
[Candidate publication](candidate-publication.md) and opens at most one test-audit PR per week after independent review;
|
|
61
61
|
for own PRs, automatic merge is the default under the
|
|
62
62
|
[watch predicate](../../axstack-watch/SKILL.md#5-state-readiness-precisely).
|
|
63
63
|
|
|
@@ -47,6 +47,7 @@ If a PR changes a mapped feature, its author updates the feature file in the sam
|
|
|
47
47
|
For a missing skill, add "suggest `axstack-verify create`" to the receipt's `Unverified:` line.
|
|
48
48
|
Never generate a verification skill automatically.
|
|
49
49
|
For a broken or stale recipe, report the gap.
|
|
50
|
+
Report a broken or stale recipe as a `low` finding naming `axstack-verify maintain`.
|
|
50
51
|
Never let a broken or stale recipe waive existing acceptance obligations.
|
|
51
52
|
Keep browser recipes tool-neutral for the verifier.
|
|
52
53
|
|
|
@@ -149,6 +149,11 @@ approval; record chosen document names and paths once per run.
|
|
|
149
149
|
gaps. For substantial work, this summary becomes part of the draft spec in
|
|
150
150
|
`axstack-spec`; spec approval is the one human checkpoint. Included and
|
|
151
151
|
excluded work must be distinguishable, and no open item may appear settled.
|
|
152
|
+
When scope changes runnable behavior, the read-back records a Verification decision.
|
|
153
|
+
For an applicable `verify-<app>` skill, record the features that cover the change.
|
|
154
|
+
For a missing skill, the plan always includes `axstack-verify create` as the first PR.
|
|
155
|
+
Skipping this first PR requires plain AGREE from both `axstack-advisor-astra` and `axstack-advisor-opus` that a verification skill is unnecessary.
|
|
156
|
+
Record both advisers' reason in the Verification decision.
|
|
152
157
|
2. Classify the result with the shared
|
|
153
158
|
[proportional scope identity](../axstack/references/routing.md#proportional-scope-identity):
|
|
154
159
|
- For work clarified as small, return a **small-change intent** handoff with
|