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.
Files changed (33) hide show
  1. package/README.md +3 -2
  2. package/bin/axstack.js +1 -1
  3. package/docs/getting-started.md +4 -4
  4. package/docs/guides.md +1 -1
  5. package/docs/installation.md +8 -3
  6. package/docs/workflows.md +40 -8
  7. package/package.json +1 -1
  8. package/profiles/presets/claude-only.json +18 -0
  9. package/profiles/presets/codex-only.json +18 -0
  10. package/profiles/presets/mixed.json +18 -0
  11. package/skills/axstack/references/automations.md +4 -2
  12. package/skills/axstack/references/autopilot.md +5 -15
  13. package/skills/axstack/references/candidate-publication.md +25 -26
  14. package/skills/axstack/references/contracts.md +2 -3
  15. package/skills/axstack/references/lifecycle.md +2 -2
  16. package/skills/axstack/references/pr-chain.md +51 -0
  17. package/skills/axstack/references/role-roster.md +6 -1
  18. package/skills/axstack/references/run-record.md +1 -0
  19. package/skills/axstack/references/t3-runtime.md +2 -2
  20. package/skills/axstack/references/test-audit-weekly.md +1 -1
  21. package/skills/axstack/references/ui-verification.md +1 -0
  22. package/skills/axstack-align/SKILL.md +5 -0
  23. package/skills/axstack-implement/SKILL.md +24 -55
  24. package/skills/axstack-improve/SKILL.md +3 -3
  25. package/skills/axstack-research/SKILL.md +2 -1
  26. package/skills/axstack-review/SKILL.md +13 -1
  27. package/skills/axstack-scout/SKILL.md +84 -0
  28. package/skills/axstack-verify/SKILL.md +2 -1
  29. package/skills/axstack-watch/SKILL.md +21 -9
  30. package/skills/axstack-watch/references/repair-publication.md +44 -59
  31. package/skills/axstack-watch/references/watch-runtime.md +15 -30
  32. package/src/capabilities.js +2 -4
  33. 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`) with `gh stack`, and T3 Code `0.0.46-nightly.20261003.2610` or newer
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 stack, and the T3 Code version floor.
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
 
@@ -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 with its `gh stack` extension, and
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 five capability rows mean:
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
- With this harness target, check also validates the archify record/copy/SHA and
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 stack`
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
@@ -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`, the `gh stack` extension, and a running
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 five rows:
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. Mixed web-google and X retain their source-specific
133
- Antigravity and Grok routes.
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 stack`, and
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 stack` publication
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, recorded
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.34.4",
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 and unchanged event identity creates no job; an
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. Dedupe from current GitHub state,
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, rebases when the base moves,
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
- Use the run's recorded Notification policy through `axstack-relay`.
172
- Decision holds, including spec and npm approval, are always eligible.
173
- Relay eligibility is limited to user-decision holds, serious-risk holds, the
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
- This is the author-to-review boundary for an owned candidate. The author stops
4
- after returning its revision-bound implementation receipt and does not push.
5
- Within recorded PR-scoped publication authority, the owner reconciles that
6
- receipt against the actual local candidate SHA and base. The owner does not edit
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
- Publish the existing commits through `gh stack`. Prefer a fast-forward push.
15
- Before a history rewrite, confirm the expected-old remote SHA and use lease
16
- protection; a mismatch holds publication. If the push outcome is ambiguous,
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 and confirm that it resolves
20
- to the candidate SHA; also pin the current base.
21
- Before reviewer dispatch, refresh the PR body counts and base from the confirmed
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: immediately after publication CI is pending until
45
- its required checks complete. Review may run in parallel with CI only after the
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` and exact attempt
71
- identity. The checkout is disposable, made from the existing repository; never
72
- register a duplicate repository or replace it with a movable branch checkout.
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, including untracked entries, before dispatch.
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
- Each peer reviewer has a separate checkout and evidence folder with no first-pass
77
- cross-read. Later review gets a fresh checkout.
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 Git worktree absence under [Workspace hygiene](workspace-hygiene.md);
80
- reviewer retirement preserves the separate author candidate until merge or closure.
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; use `gh stack` for dependent PRs. Routine shape, split, fanout, and
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. Parent changes invalidate
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 through `gh stack`.
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, SHA/base,
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 a `gh stack`.
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 a `gh stack`,
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
- `gh stack` and opens at most one test-audit PR per week after independent review;
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