axstack 0.20.13 → 0.20.15

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
@@ -20,7 +20,7 @@ scheduler, or runtime database to operate. Orca is the only supported runtime.
20
20
  | Turn agreed scope into a specification | `axstack-spec` |
21
21
  | Break a specification into executable tickets | `axstack-tickets` |
22
22
  | Build an approved task with tests and independent review | `axstack-implement` |
23
- | Review a pull request | `axstack-review` |
23
+ | Review a pull request or bounded existing code | `axstack-review` |
24
24
  | Monitor or maintain an existing PR | `axstack-watch` |
25
25
  | Diagnose a bug and establish a failing check | `axstack-debug` |
26
26
  | Answer a bounded question with sources | `axstack-research` |
@@ -46,7 +46,8 @@ need to manually coordinate every agent or repeat an approval that is still vali
46
46
  ## Quick start
47
47
 
48
48
  You need Bun >=1.3.14, Git, the GitHub CLI (`gh`), the `gh stack` extension,
49
- and a running Orca with its `orca-cli` and `orchestration` guides available.
49
+ and a running Orca with its `orca-cli`, `orchestration`, and `orca-linear`
50
+ guides available.
50
51
  The agents selected by your preset must also be available in Orca.
51
52
 
52
53
  Install the CLI and skills for your harness. For example, for Codex:
@@ -68,7 +69,9 @@ Then open an Orca chat and ask for the relevant skill:
68
69
  $axstack-align Help me scope account recovery.
69
70
  $axstack-implement Build the task we agreed on.
70
71
  $axstack-review Review this pull request: <PR URL>
72
+ $axstack-review Find issues in <paths> at <commit SHA>.
71
73
  $axstack-watch Monitor this PR without making changes: <PR URL>
74
+ $axstack-watch Watch every PR raised by this chat until all merge or close
72
75
  ```
73
76
 
74
77
  Use `--harness claude`, `opencode`, or `antigravity` for another supported
@@ -107,11 +110,10 @@ model is unavailable. See [workflow and routing details](docs/workflows.md).
107
110
  ## Optional PR automation
108
111
 
109
112
  Manual review and watch work independently of scheduled automation.
110
- For recurring use, Axstack defines two native Orca manager lanes: one discovers
111
- eligible peer-review requests, and the other monitors your open PRs and handles
112
- authorized repair events.
113
+ For recurring peer review, Axstack defines one optional native Orca review manager.
114
+ Own-PR observation and authorized repair remain user-driven through `axstack-watch`. Its chat-run mode can use one optional same-host native Orca observer per Run, about every ten minutes, to report new PR events internally to the original chat. The chat alone directs repairs and publication. Activation needs a live host canary; source and install checks do not prove it is running.
113
115
 
114
- The lanes use staggered 15-minute schedules. Each pass uses a fresh finite
116
+ The review manager uses a 15-minute schedule. Each pass uses a fresh finite
115
117
  session in an isolated workspace and admits eligible actionable PR events within
116
118
  measured host capacity. Waiting PRs remain tracked without consuming
117
119
  execution slots, so a large open-PR backlog does not require an idle agent per PR.
@@ -121,8 +123,7 @@ release capacity only after native descendant settlement. Uncertain execution
121
123
  teardown pauses the lane; settled evidence cleanup does not occupy a slot.
122
124
 
123
125
  Scheduling is opt-in and requires host-specific runtime validation before
124
- activation. Installing Axstack does not turn it on. Repairs are limited to
125
- explicitly allowed repositories; automation never merges for you.
126
+ activation. Installing Axstack does not turn it on. The review automation never merges for you.
126
127
  See [PR-manager setup and safety](skills/axstack/references/automations.md).
127
128
 
128
129
  ## Documentation
@@ -6,7 +6,8 @@ does not dispatch agents, edit Orca settings, run a scheduler, or maintain a
6
6
  workflow database.
7
7
 
8
8
  Requirements: Bun >=1.3.14, Git, `gh`, the `gh stack` extension, and a running
9
- Orca whose version-matched `orchestration` and `orca-cli` guides are available.
9
+ Orca whose version-matched `orchestration`, `orca-cli`, and `orca-linear`
10
+ guides are available.
10
11
  There are no runtime dependencies. Filesystem access uses Bun-backed `node:fs`
11
12
  and `node:fs/promises`; no other Node runtime contract is introduced.
12
13
 
@@ -83,7 +84,8 @@ axstack check [--bundle <dir>] [--instructions <file>] [--skills-dir <dir>|--har
83
84
  ```
84
85
 
85
86
  The check separates Bun/Git/`gh stack` availability, resolved Orca executable,
86
- runtime readiness, required runtime-owned guide discovery, and bundle validity.
87
+ runtime readiness, required `orchestration`, `orca-cli`, and `orca-linear`
88
+ guide discovery, and bundle validity.
87
89
  With an instruction target, it separately reports whether the marker block is
88
90
  owned, missing, unowned, edited, or bound to a different path.
89
91
  It must honor Orca's executable-resolution rules, including the Linux screen
@@ -227,15 +229,16 @@ not prove that a running harness reloaded them.
227
229
  ## Runtime guide discovery
228
230
 
229
231
  The installed Axstack bundle does not own or copy Orca's guides. At an action
230
- boundary, the skill resolves one Orca executable and loads that binary's
231
- version-matched `orchestration` and `orca-cli` guides. Automation guidance is
232
- loaded only for the watch branch. Missing discovery is a setup gap, not a reason
233
- to fall back or invent commands.
234
-
235
- Native watch activation is currently held: provider selection exists, but
236
- model, effort, permission, and bounded-expiry support do not preserve the
237
- accepted contract. Installation creates no production schedule and adds no
238
- custom scheduler.
232
+ boundary, the skill resolves one Orca executable and loads the operation's
233
+ version-matched `orchestration`, `orca-cli`, or `orca-linear` guide. Review
234
+ automation guidance is loaded only for the scheduled review branch. Missing
235
+ discovery is a setup gap, not a reason to fall back or invent commands. Guide
236
+ discovery does not prove an operation works; Linear documents, provider/model
237
+ routing, and live automation behavior need separate preflights.
238
+
239
+ Installation creates no production schedule and adds no custom scheduler. Chat-run PR watch requires a separately validated same-host native Orca automation, installed preset and effective observer model/effort, same-Run report delivery, safe original-driver wake, and own-automation stop/readback. Installed bytes alone do not activate it.
240
+ The optional review manager requires a separate native canary before activation;
241
+ installed guidance does not prove live behavior.
239
242
 
240
243
  ## Historical migration
241
244
 
package/docs/workflows.md CHANGED
@@ -21,6 +21,11 @@ Direct routes need no spec ceremony:
21
21
  behavior; complex visuals receive exact-artifact QA where applicable.
22
22
  - `axstack-improve` returns a small ranked set of evidenced improvement
23
23
  candidates without editing code.
24
+ - Manual `axstack-review` can inspect existing code at an exact revision within
25
+ a named scope. Both configured peer reviewers inspect six lenses independently;
26
+ the driver reports validated defects and risks, improvement opportunities,
27
+ unverified leads, and `COMPLETE` or `INCOMPLETE` coverage. This report does
28
+ not approve a PR or publish findings.
24
29
  - `axstack-debug` builds a red loop, diagnoses to root cause, escalates hard
25
30
  bugs through adviser-directed investigator fan-out, and hands off a
26
31
  classified repair without landing a change.
@@ -79,9 +84,12 @@ provider defaults, or installed tools, and no model is substituted silently.
79
84
 
80
85
  Immediately before dispatch, delivery processing, settlement, recovery, or
81
86
  handoff, load the shared `skills/axstack/references/orca-runtime.md`. It resolves
82
- one Orca executable, loads that binary's version-matched `orchestration` and
83
- `orca-cli` guides, and follows their advertised schemas. Axstack does not vendor
84
- the guides or restate a competing command protocol.
87
+ one Orca executable, then loads only the version-matched guide needed by the
88
+ operation: `orchestration` for Run/Task/Dispatch supervision, `orca-cli` for
89
+ worktrees, automations, handoff, and publication, and `orca-linear` for Linear
90
+ issues. Axstack follows current command help and named conditional references;
91
+ guide availability is not exercised runtime support. It does not vendor the
92
+ guides or restate a competing command protocol.
85
93
 
86
94
  All subagent, delegated-worker, reviewer, and cross-harness work goes through Orca
87
95
  orchestration via the `orca` CLI (`orca-cli` / `orchestration` guides). Do not use a
@@ -123,7 +131,10 @@ session and evidence remain valid.
123
131
  - `axstack-spec` writes observable acceptance, exclusions, decisions, and one
124
132
  user-approved revision baseline. Linear is the default authoritative store;
125
133
  GitHub Issues and repository Markdown are explicit alternatives. A GitHub
126
- baseline pins the issue URL and approved body digest.
134
+ baseline pins the issue URL and approved body digest. Linear document
135
+ operations preflight the current `orca-linear` guide and command help; a
136
+ missing native operation holds only that operation without MCP fallback or a
137
+ store switch.
127
138
  - `axstack-tickets` maps user-visible capabilities to dependency-aware internal
128
139
  tasks. Linear is the default selected store with access preflight; GitHub
129
140
  Issues is an explicit external-tracker alternative and repository Markdown
@@ -135,17 +146,17 @@ session and evidence remain valid.
135
146
  confirms the remote SHA before review. Local green and CI green remain
136
147
  separate evidence.
137
148
  - `axstack-review` gives peer PRs two isolated same-brief reviewers and authored
138
- PRs one eligible cross-family/preset-mapped reviewer. All cover security,
149
+ PRs one eligible cross-family/preset-mapped reviewer. Every reviewer runs in
150
+ a separate candidate-child worktree, with private evidence preserved before
151
+ removal. All cover security,
139
152
  correctness, integration, requirements, design, and simplicity. Report-only
140
153
  never publishes; authorized submission binds the exact commit.
141
154
  - `axstack-watch` adopts an existing PR under observation-only, peer, or
142
155
  authorized-maintenance scope. A changed head or comment is an event, not
143
- repair authority. Repairs return to the original author only for a
144
- run-launched session and receive refreshed authored review before scoped
145
- `gh stack` publication. `gh stack` publication does not apply to manager
146
- repairs: the bounded PR job repairs in its per-PR child worktree, the local
147
- SHA receives the actual-author-provenance review, and the exact candidate
148
- lands by fast-forward `git push` after final readback.
156
+ repair authority. Within an implementation run, fixes return to the original
157
+ author and follow its publish-before-review loop. Manual adopted-PR repair
158
+ reviews the exact local SHA and reply bodies before `gh stack` publication
159
+ and remote readback.
149
160
  - `axstack-audit` separates execution outcome, procedure, and measurement
150
161
  coverage with evidenced denominators; it proposes but never self-edits.
151
162
  - `axstack-cleanup` distinguishes settled-Dispatch release, exact unused-shell
@@ -176,8 +187,10 @@ keeps the current owner and a resumable record.
176
187
 
177
188
  Serious security, downtime, data-loss, and major-design risks are raised in a
178
189
  prompt immediately and hold dependent dangerous work. This is not a runtime
179
- gate. An applicable `Notification policy` may use `axstack-relay`; otherwise the
180
- current Orca conversation is the fallback. The relay normally delivers one-way
190
+ gate. An applicable `Notification policy` may use `axstack-relay` for serious
191
+ risk immediately or a genuine blocker needing user intervention after bounded
192
+ safe recovery. Questions, spec approvals, progress, CI pending, merge-ready,
193
+ merged, and completion stay in Orca. The relay normally delivers one-way
181
194
  through native `hermes send`: it checks CLI lookup and the configured target,
182
195
  binds the recipient, deduplicates on the run record, and records the returned
183
196
  `message_id`. PR-manager notifications point the user to GitHub or a durable
@@ -187,15 +200,20 @@ authority. Delivery failure never clears the underlying hold.
187
200
  Healthy watch observations remain quiet. The optional `axstack-monitor` is a
188
201
  read-only observer for standalone watches and never sends.
189
202
 
190
- ## Native watch automations
203
+ ## Chat-run PR watch
191
204
 
192
- The accepted contract has exactly two logical native manager lanes: review at
193
- minutes `0,15,30,45` and watch at `7,22,37,52`. Each scheduled pass uses a
194
- fresh finite session in a new isolated workspace, scans complete
205
+ Use `axstack-watch` chat-run mode to watch every PR raised by this chat's Run, including later verified publications and PRs the driver explicitly adopts. One same-host native Orca automation observes about every ten minutes in fresh finite read-only sessions and reports new current-state events to the original Run. The initiating chat alone routes repairs, review, publication, and notifications. Independent PRs can repair in parallel with one writer per PR; stack ancestor changes invalidate child evidence. Unchanged complete passes stay quiet. An incomplete scan leaves readiness `UNKNOWN`.
206
+
207
+ The watch lasts until all member PRs merge or close, or you cancel it. Stop requires readback that its own automation is disabled; worker settlement and run archive are separate driver steps. Run-created implementation candidates are published and read back before independent authored review. Adopted own-PR maintenance candidates receive independent exact-local-SHA review before driver publication and remote readback. The human merges. Source and installed instructions do not prove scheduled observation, driver wake, or live activation; those require same-host native canary receipts.
208
+
209
+ ## Optional native peer-review automation
210
+
211
+ The optional native review manager runs at minutes `0,15,30,45`. Each
212
+ scheduled pass uses a fresh finite session in a new isolated workspace, scans complete
195
213
  discovery pages, and admits eligible actionable PR events within measured host
196
- capacity across both lanes. Waiting PRs stay covered and consume no slot after
197
- owned descendants settle. Each job uses one repository-parented worktree; managers never check out
198
- PR branches in their own workspaces.
214
+ capacity. Waiting PRs stay covered and consume no slot after
215
+ owned descendants settle. Each job uses one repository-parented worktree; the
216
+ manager never checks out PR branches in its own workspace.
199
217
 
200
218
  Every pass reconciles saved, GitHub, and native Orca state across all same-lane
201
219
  workspaces before admission. A
@@ -203,9 +221,10 @@ confirmed same-lane manager makes the new duplicate do no work or shared-record
203
221
  write and close only itself. Normal teardown settles descendants, saves durable
204
222
  continuity and decisions outside disposable workspaces, then retires its own
205
223
  verified isolated pass workspace as the final action. It never bulk-closes a
206
- shared manager workspace or a PR-job worktree, or cleans preserved candidates,
224
+ shared manager workspace or a PR-job worktree, or cleans preserved
207
225
  evidence, user sessions, unknown liveness, `user_takeover`, or ambiguous
208
- publication state. Manual review/watch remains outside this scheduled lifecycle.
226
+ publication state. Manual review and user-driven `axstack-watch` remain outside
227
+ this scheduled lifecycle.
209
228
 
210
229
  One natively ordered successor may recover an exact positively completed
211
230
  predecessor whose terminal survived, but only after matching its automation,
@@ -229,18 +248,17 @@ teardown pauses the lane; retained evidence or cleanup metadata does not consume
229
248
  a slot after positive full-tree settlement. Once settled, an unchanged held
230
249
  event remains deduplicated while unrelated eligible PRs continue.
231
250
 
232
- Requested reviews cover any accessible repository; automatic repairs retain
233
- their `defi-com/monorepo` and `defi-com/mobile` scope. Orca owns schedules,
251
+ Requested peer reviews cover any accessible repository. Orca owns schedules,
234
252
  sessions, Tasks, and Dispatches. Axstack adds no custom scheduler, queue engine,
235
253
  cursor files, polling loop, or historical runtime fallback.
236
254
 
237
- ## Automations
255
+ ## Review automation
238
256
 
239
- The review and watch managers use short packaged prompts that load the current
240
- relative contract and invoke `axstack-review` or `axstack-watch`. Bounded jobs
241
- publish ordinary exact-head review verdicts or reviewed fast-forward repairs;
242
- the human merges. Exceptional security, permanent-on-chain, or architectural
243
- decisions remain actionable in GitHub or a durable user-owned conversation
257
+ The review manager uses one short packaged prompt that loads the current
258
+ relative contract and invokes `axstack-review`. Bounded jobs publish ordinary
259
+ exact-head review verdicts; the human merges. Manual adopted-PR maintenance
260
+ uses `axstack-watch` with local-SHA review before authorized publication.
261
+ Exceptional security, permanent-on-chain, or architectural decisions remain actionable in GitHub or a durable user-owned conversation
244
262
  after manager self-close, with an authorized deduplicated Telegram notification.
245
263
  The current operational contract is
246
264
  `skills/axstack/references/automations.md`.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "axstack",
3
- "version": "0.20.13",
3
+ "version": "0.20.15",
4
4
  "description": "Axstack installer and setup CLI: installs owned chat skills and role data, configures supported harness settings, and checks Orca capabilities.",
5
5
  "keywords": [
6
6
  "claude-code",
@@ -152,7 +152,7 @@
152
152
  "model": "claude-sonnet-5",
153
153
  "modeId": "bypassPermissions",
154
154
  "thinkingOptionId": "low",
155
- "notes": "Optional independent read-only observer for a standalone PR watch. Reads GitHub, feedback, and checks, persists event IDs, and wakes the owner only for a new actionable event. Never sends, authors, reviews, replies, or acts as either reusable PR manager. Healthy snapshots stay quiet."
155
+ "notes": "Optional independent read-only observer for a standalone PR watch. Reads GitHub, feedback, and checks, persists event IDs, and wakes the owner only for a new actionable event. Never sends, authors, reviews, replies, or acts as either reusable PR manager. Healthy snapshots stay quiet. Chat-run mode: one same-host native read-only observer per Run; fresh finite passes report precise deltas internally to the original Run/driver and may disable/read back only their own automation at verified stop. No repair, dispatch, public notification, or replacement coordinator. Effective scheduled model/effort and wake require live proof."
156
156
  },
157
157
  {
158
158
  "id": "axstack-auditor",
@@ -152,7 +152,7 @@
152
152
  "model": "gpt-6-sol",
153
153
  "modeId": "full-access",
154
154
  "thinkingOptionId": "low",
155
- "notes": "Optional independent read-only observer for a standalone PR watch. Reads GitHub, feedback, and checks, persists event IDs, and wakes the owner only for a new actionable event. Never sends, authors, reviews, replies, or acts as either reusable PR manager. Healthy snapshots stay quiet."
155
+ "notes": "Optional independent read-only observer for a standalone PR watch. Reads GitHub, feedback, and checks, persists event IDs, and wakes the owner only for a new actionable event. Never sends, authors, reviews, replies, or acts as either reusable PR manager. Healthy snapshots stay quiet. Chat-run mode: one same-host native read-only observer per Run; fresh finite passes report precise deltas internally to the original Run/driver and may disable/read back only their own automation at verified stop. No repair, dispatch, public notification, or replacement coordinator. Effective scheduled model/effort and wake require live proof."
156
156
  },
157
157
  {
158
158
  "id": "axstack-auditor",
@@ -152,7 +152,7 @@
152
152
  "model": "claude-opus-5-5",
153
153
  "modeId": "bypassPermissions",
154
154
  "thinkingOptionId": "medium",
155
- "notes": "Optional independent read-only observer for a standalone PR watch. Reads GitHub, feedback, and checks, persists event IDs, and wakes the owner only for a new actionable event. Never sends, authors, reviews, replies, or acts as either reusable PR manager. Healthy snapshots stay quiet."
155
+ "notes": "Optional independent read-only observer for a standalone PR watch. Reads GitHub, feedback, and checks, persists event IDs, and wakes the owner only for a new actionable event. Never sends, authors, reviews, replies, or acts as either reusable PR manager. Healthy snapshots stay quiet. Chat-run mode: one same-host native read-only observer per Run; fresh finite passes report precise deltas internally to the original Run/driver and may disable/read back only their own automation at verified stop. No repair, dispatch, public notification, or replacement coordinator. Effective scheduled model/effort and wake require live proof."
156
156
  },
157
157
  {
158
158
  "id": "axstack-auditor",
@@ -1,17 +1,12 @@
1
- # Native PR managers
1
+ # Native peer-review manager
2
2
 
3
- Read this only for the two native Orca PR-manager automations. The historical
3
+ Read this for the optional native Orca peer-review automation. The historical
4
4
  automation specs and plans describe retired designs and are not instructions.
5
5
 
6
6
  ## Topology and schedules
7
7
 
8
- There are exactly two logical manager lanes:
9
-
10
- - **Review manager:** runs at minutes `0,15,30,45` and invokes
11
- [axstack-review](../../axstack-review/SKILL.md) for eligible peer reviews.
12
- - **Watch manager:** runs at minutes `7,22,37,52` and invokes
13
- [axstack-watch](../../axstack-watch/SKILL.md) for eligible own-PR watch or
14
- repair events.
8
+ The review manager runs at minutes `0,15,30,45` and invokes
9
+ [axstack-review](../../axstack-review/SKILL.md) for eligible peer reviews.
15
10
 
16
11
  Use a new isolated workspace for every scheduled pass, with one fresh finite
17
12
  manager session. Configure native repo-created worktree mode against the
@@ -21,8 +16,8 @@ launch; the manager must not move itself from a shared launch workspace.
21
16
  Keep lane continuity and evidence outside disposable manager workspaces at
22
17
  the configured durable absolute paths. A manager never checks out a PR branch
23
18
  in its pass workspace. Missed slots do not replay a backlog; the next ordinary pass
24
- discovers current state. The two short packaged prompts sit beside this file
25
- and discover these rules by relative link instead of copying them.
19
+ discovers current state. The short packaged review prompt sits beside this file
20
+ and discovers these rules by relative link instead of copying them.
26
21
 
27
22
  Provision one explicit absolute continuity path per automation ID in the
28
23
  scheduled prompt. Follow [Run record](run-record.md) for its contents; the
@@ -136,32 +131,26 @@ only when its body ends with
136
131
  or a retained legacy receipt proves that provenance; otherwise never replace
137
132
  it automatically.
138
133
 
139
- The watch manager covers every open non-draft PR authored by self. It may
140
- repair only `defi-com/monorepo` and `defi-com/mobile`; PRs elsewhere remain
141
- observed but read-only. Preserve deploy-on-push exclusions, lowest-first stack
142
- dependencies, and existing ownership boundaries. Peer code is always
143
- read-only.
144
-
145
134
  Coverage is not execution. Waiting for CI, a reviewer, a user decision, or a
146
135
  merge occupies no execution slot after owned work and descendants settle.
147
- Watch membership never reserves a slot and no job stays active merely until a
136
+ Review waiting state never reserves a slot and no job stays active merely until a
148
137
  PR merges or closes. Thirty open PRs, including ten settled waiting PRs, are
149
138
  all scanned; those ten occupy zero slots.
150
139
 
151
140
  ## Admission and fairness
152
141
 
153
- The review manager and watch manager admit all eligible actionable PR events
142
+ The review manager admits all eligible actionable PR events
154
143
  that measured host capacity can support across ticks. Before each admission,
155
- inspect available memory, CPU load, and active worker trees across both lanes;
144
+ inspect available memory, CPU load, and active worker trees across the host;
156
145
  account for the whole proposed worker tree, dependencies, spending limits, and
157
146
  exclusive ownership. Report unavailable metrics as unknown; use the remaining
158
147
  host evidence rather than treating a missing metric alone as a blocker. Defer
159
148
  an event when observed pressure or uncertain headroom cannot support its whole
160
149
  tree, record the reason, and remeasure on the next pass. Do not use a fixed
161
- PR-job count or reserve capacity for either lane.
150
+ PR-job count or reserve a fixed slot.
162
151
 
163
- A slot covers one bounded PR event and remains occupied while its author,
164
- reviewers, or other owned descendants are active or unsettled. Leaf workers do
152
+ A slot covers one bounded PR event and remains occupied while its reviewers
153
+ or other owned descendants are active or unsettled. Leaf workers do
165
154
  not create recursive teams. Settlement of the PR job and every descendant
166
155
  frees the slot even while the PR stays open.
167
156
 
@@ -180,10 +169,12 @@ writer for the same PR. Reuse an existing valid per-PR worktree, owner, and
180
169
  unchanged receipts before creating anything. Otherwise create one separate
181
170
  Orca worktree per PR job, parented to that repository's primary worktree, and
182
171
  pin the observed head and base. The bounded PR coordinator loads the
183
- appropriate skill, launches only the reviewers or author that skill owns,
172
+ review skill, launches only the reviewers that skill owns,
184
173
  handles the current actionable event, returns exact receipts, then settles.
185
174
  Settlement returns continuity to the manager rather than retaining an idle PR
186
- coordinator. Reviewers retain the isolation required by `axstack-review`.
175
+ coordinator. Reviewers retain the isolation required by `axstack-review`:
176
+ each runs in a separate Orca child worktree, keeps its probes and evidence
177
+ inside that worktree, and preserves required evidence before removal.
187
178
 
188
179
  Give each job a private job-local temporary directory under its per-PR
189
180
  worktree, following the ownership, containment, and cleanup checks in the
@@ -194,12 +185,12 @@ containment is uncertain.
194
185
 
195
186
  An unchanged exact head and unchanged event identity creates no job; an
196
187
  unchanged exact head with a new event identity remains actionable. Event
197
- identity includes the applicable review ID and body digest, check identity and
198
- result, or other current GitHub event receipt. Dedupe from current GitHub state,
188
+ identity includes the applicable review ID and body digest, request identity, or other current GitHub event
189
+ receipt. Dedupe from current GitHub state,
199
190
  native Orca Task and Dispatch state, and the existing compact run record; do
200
191
  not create machine cursor files or a queue engine. Record enough to resume: PR,
201
- head, base, event identity, mode, owner and worker receipts, candidate,
202
- publication receipt, hold, and next action. GitHub remains authoritative for
192
+ head, base, event identity, mode, owner and worker receipts, verdict,
193
+ submission receipt, hold, and next action. GitHub remains authoritative for
203
194
  open state, revisions, reviews, checks, and merge state.
204
195
 
205
196
  ## Held job settlement
@@ -236,10 +227,10 @@ lane before another pass can admit work rather than accumulating active passes
236
227
  or claiming capacity from an uncertain process tree.
237
228
 
238
229
  When the current event is handled, settle and release owned native resources.
239
- Preserve dirty worktrees, unpushed candidates, unarchived review evidence, pending
230
+ Preserve dirty worktrees, unarchived review evidence, pending
240
231
  external results, and user-owned work until durability and ownership are
241
232
  proven. Unknown liveness, `user_takeover`, and ambiguous publication likewise
242
- forbid cleanup. Here a pending external result means an unconfirmed publication
233
+ forbid cleanup. Here a pending external result means an unconfirmed review submission
243
234
  or send outcome, not pending CI. Waiting state belongs in GitHub and the compact
244
235
  record, never in an idle model, per-PR timer, or polling loop.
245
236
  Follow the [private evidence archive](evidence-archive.md) when evidence is the
@@ -251,7 +242,7 @@ read back the archive and compact receipt, then follow
251
242
  the reviewer checkout before merge. This does not release active jobs or manager
252
243
  pass workspaces.
253
244
 
254
- ## Review and repair authority
245
+ ## Review authority
255
246
 
256
247
  Peer review follows `axstack-review` peer mode: two isolated configured
257
248
  reviewers inspect the exact head and base. Complete review may publish the
@@ -269,21 +260,8 @@ private or local artifacts. Write the local HTML copy under the established
269
260
  `review-PR-<num>.html` reserved for `defi-com/monorepo`. Never publish a
270
261
  `COMMENT` review. An ambiguous submission is looked up before retry.
271
262
 
272
- An own PR becomes actionable for repair only when a failing check has a base
273
- check-run with the same name and producing app identity observed passing (or a
274
- legacy status has the same context), or when a new current-head
275
- `CHANGES_REQUESTED` review has both an unhandled review ID and an unhandled body
276
- digest. Missing, pending, or same-name/different-app base evidence holds repair.
277
- A new head or generic event grants no repair authority by itself.
278
-
279
- Authorized own-PR repair follows `axstack-watch`: produce the smallest repair
280
- in the per-PR worktree, obtain the actual-author-provenance reviewer pairing,
281
- and publish only a reviewed fast-forward repair push after exact-current
282
- candidate, head, base, event, allowlist, deploy, and remote readback receipts.
283
- Reconcile an ambiguous review or push result before any retry.
284
-
285
263
  No manager, coordinator, or worker may merge, close, force-push, rebase,
286
- restack, broaden scope, or use `gh stack` mutation. Human merge remains the
264
+ restack, broaden scope, or mutate a PR branch. Human merge remains the
287
265
  boundary.
288
266
 
289
267
  ## Exceptional decisions and notifications
@@ -314,7 +292,7 @@ self-close. Waiting PRs still occupy zero slots once their owned trees settle.
314
292
 
315
293
  Cleanup of PR-job setup shells stays scoped to positively identified owned unused
316
294
  setup shells: use the native exact-terminal close operation for each only.
317
- Preserve dirty worktrees, unpushed candidates, unarchived review evidence, user-owned
295
+ Preserve dirty worktrees, unarchived review evidence, user-owned
318
296
  terminals, unknown liveness, `user_takeover`, and ambiguous publication state.
319
297
  Never classify all dirt as evidence. If explicitly classified evidence is the
320
298
  last retention reason, apply and verify the [private evidence archive](evidence-archive.md),
@@ -30,16 +30,13 @@ remote confirmation. Reviewers inspect a detached immutable checkout of the
30
30
  confirmed candidate SHA and pinned base, never only the movable branch name.
31
31
  Any author repair creates a new revision and repeats this boundary.
32
32
 
33
- ## Automation repair exception
33
+ ## Immutable checkout shape
34
34
 
35
- For a manager PR repair under
36
- [Native PR managers](automations.md), the candidate is a local immutable
37
- commit SHA in the per-PR child worktree, not a published remote ref. The
38
- reviewer confirms that exact local SHA with `git rev-parse` in the worktree
39
- instead of remote equality, and inspects a detached checkout of it with the
40
- pinned base. The remote ref is expected to still be the pre-repair head; record
41
- it as the expected-old remote SHA rather than requiring it to equal the
42
- candidate. Remote equality is re-checked at the publication readback of the
43
- watch skill's repair-publication reference immediately before the fast-forward
44
- push. Ordinary workflows keep the remote confirmation above; the
45
- exception never applies outside a manager PR job.
35
+ The immutable checkout is an Orca worktree of the already-registered repo:
36
+ `ORCA worktree create --repo id:<repoId> --name review-<pr>-<sha7> --json`,
37
+ then `git checkout --detach <candidate SHA>` inside it. Never materialize it
38
+ as a `git clone` into a temp directory followed by `orca repo add`; each
39
+ `repo add` registers a duplicate top-level repo and leaves a stale record once
40
+ the directory is gone. Release preparation uses a `release/<version>` worktree
41
+ of the same registered repo the same way. Release the checkout with
42
+ `ORCA worktree rm` after its receipt is recorded.
@@ -13,25 +13,25 @@ binding state and receipts to exact revisions.
13
13
  merge is default.
14
14
  - Author: exactly one writer per candidate; accepted fixes return there.
15
15
  Workers launch no recursive teams.
16
- - Reviewers: peer = two independent `axstack-reviewer-primary` and
17
- `axstack-reviewer-secondary` sessions with identical brief and isolated first
18
- pass; authored = one eligible configured reviewer from actual author
19
- provenance. Owner and author never review.
20
- - Automation review/watch managers and optional monitor: see
21
- [Watch health](#watch-health).
16
+ - Reviewers: peer = two configured roles with the same brief and isolated first
17
+ pass; authored = one eligible role from author provenance. Each uses a
18
+ separate Orca child worktree, keeps evidence there, and preserves it before
19
+ removal. Owner and author never review.
20
+ - Automation review manager and monitors: see
21
+ [Review automation health](#review-automation-health).
22
22
  - Auditor (`axstack-auditor`): report-only; never edits, merges, activates, or
23
23
  audits itself.
24
24
 
25
- Prefer parallel independent bounded work; no redundant workers.
26
- Per [standing contracts](contracts.md), fanout is dependency/capacity-driven
27
- with no fixed count within host/spending limits. [PR shape](pr-shape.md)
28
- covers theme/size; queue via `gh stack`.
25
+ Prefer parallel independent bounded work; no redundant workers. Fanout is dependency- and
26
+ capacity-driven within host/spending limits. [PR shape](pr-shape.md) covers
27
+ theme/size; queue dependencies through `gh stack`.
29
28
 
30
29
  ## Ownership
31
30
 
32
- The PR owner remains accountable for candidate, fixes, evidence, monitoring;
33
- peer code stays read-only. Missing or idle sessions never transfer ownership.
34
- Owned implementation enters review through the revision-bound
31
+ The PR owner is accountable for candidate, fixes, evidence, monitoring; a
32
+ chat-run observer reports only to its driver. Peer code stays read-only.
33
+ Missing or idle sessions never transfer ownership.
34
+ Owned work enters review via the revision-bound
35
35
  [candidate-publication boundary](candidate-publication.md).
36
36
 
37
37
  ## Native handoff and resume
@@ -63,12 +63,13 @@ receipts/timers, unresolved decisions, next action, and transfer ownership/gap.
63
63
  Store receipt references, not raw output, in the [Run record](run-record.md).
64
64
 
65
65
  - Session receipt: actual agent/workspace IDs, requested provider/model and
66
- role; reuse on resume rather than spawn a replacement.
66
+ role; reuse on resume.
67
67
  - Acceptance receipt: sender/recipient, accepted scope/authority, timestamp,
68
68
  and ownership session receipt.
69
- - Review receipt: mode, applicable provenance, reviewer, SHA/base,
69
+ - Review receipt: mode, provenance, reviewer, SHA/base,
70
70
  verdict (`APPROVE | REQUEST_CHANGES | INCOMPLETE`), coverage, limitations and
71
- findings. Changed code needs a receipt for its new revision.
71
+ findings. Changed code needs a new receipt. Codebase: revision/scope,
72
+ `COMPLETE | INCOMPLETE` coverage, no PR verdict.
72
73
  - Submission receipt: actual commit, review, remote confirmation; ambiguity
73
74
  requires external lookup before retry.
74
75
  - Audit receipt: scope, evidenced PASS/FAIL/UNKNOWN counts/denominators and
@@ -99,21 +100,21 @@ On `consumer_fenced`, reconcile the active coordinator rather than borrowing an
99
100
  identity. Respect settlement protection including `user_takeover`.
100
101
 
101
102
  No execution heartbeat or substitute scheduler is created by Axstack. Native
102
- watch automation follows [Watch health](#watch-health).
103
+ review automation follows [Review automation health](#review-automation-health).
103
104
  Tracking grants no merge, release, model-substitution, or scope authority.
104
105
 
105
106
  ## Deadline (one rule for every owned timer)
106
107
 
107
108
  The default 24-hour deadline covers standalone task-owned timers. Stop them at
108
- deadline and preserve remaining work; there is no watch deadline for
109
- automations. A PR is merge-ready only with the applicable review receipt(s) at
109
+ deadline and preserve remaining work; the review automation has no task-owned
110
+ deadline. A PR is merge-ready only with the applicable review receipt(s) at
110
111
  its exact head; green CI or tests alone never make it merge-ready. Merge-ready
111
112
  differs from merged; human merges.
112
113
 
113
- ## Watch health
114
+ ## Review automation health
114
115
 
115
- Native review and watch lanes use fresh finite sessions in isolated per-pass
116
- workspaces on staggered 15-minute schedules. Each admits eligible actionable PR
116
+ The native review manager uses fresh finite sessions in isolated per-pass
117
+ workspaces on a 15-minute schedule. It admits eligible actionable PR
117
118
  events within measured host capacity; waiting PRs remain covered without
118
119
  reserving slots. Bounded PR jobs own their
119
120
  events, use per-PR worktrees, and settle after descendants settle. Build no
@@ -13,12 +13,24 @@ Resolve one Orca executable for the session and reuse it. Prefer
13
13
  terminals, and otherwise `orca`. If the selected executable fails, report that
14
14
  exact gap; never switch binaries silently.
15
15
 
16
- Before supervised work, load the selected executable's version-matched
17
- `skills get orchestration --json` and `skills get orca-cli --json` guides.
18
- Follow returned schemas and their named conditional references rather than
19
- copying their command procedures into Axstack. Missing guide discovery is a
20
- setup gap. It does not authorize legacy runtime use or an Axstack dispatcher,
21
- daemon, scheduler, database, or escalation engine.
16
+ Load only the selected executable's version-matched guides needed by the
17
+ operation through `skills get orchestration --json`,
18
+ `skills get orca-cli --json`, and `skills get orca-linear --json`.
19
+ `orchestration` owns Run, Task,
20
+ Dispatch, messaging, supervision,
21
+ settlement, and recovery. `orca-cli` owns worktrees, terminals, automations,
22
+ handoffs, and artifact publication; load its named conditional reference at
23
+ the matching action gate. `orca-linear` owns Linear issue reads and writes.
24
+ Follow returned schemas and current command help rather than copying their
25
+ procedures into Axstack. Guide discovery does not prove runtime support for a
26
+ particular operation: preflight that operation and report an advertised gap.
27
+ Missing discovery never authorizes legacy runtime use, a silent integration or
28
+ store fallback, or an Axstack dispatcher, daemon, scheduler, database, or
29
+ escalation engine.
30
+
31
+ Orca artifacts publish public-by-link output. They are not private evidence
32
+ storage and must never receive private evidence by default; sharing requires
33
+ explicit publication authority and the `orca-cli` publishing reference.
22
34
 
23
35
  ## Bind the configured role
24
36
 
@@ -43,6 +55,15 @@ readiness failure; because Align and Spec require both adviser receipts, either
43
55
  null adviser still holds those phases. The current chat is the driver and has
44
56
  no role row in any preset.
45
57
 
58
+ ## Materialize checkouts as worktrees of the registered repo
59
+
60
+ Every reviewer, release, or worker checkout is `ORCA worktree create --repo
61
+ id:<repoId> ...` under the repo Orca already registers. `ORCA repo add` is a
62
+ one-time import of a new repository; running it on a clone of a registered
63
+ repo creates a second top-level repo record, so it never materializes a
64
+ checkout. See [Candidate publication](candidate-publication.md) for the
65
+ detached immutable review checkout.
66
+
46
67
  ## Supervise one authoritative attempt
47
68
 
48
69
  For supervised work, use the orchestration guide's native Run, Task, and
@@ -63,6 +84,11 @@ running worker. Lineage is presentation and reconciliation state, never
63
84
  authority: it grants nothing, and a correct parent never substitutes for the
64
85
  Task, Dispatch, and receipt evidence above.
65
86
 
87
+ Every reviewer gets a separate Orca child worktree parented to the candidate.
88
+ Keep that reviewer's probes and private evidence inside its worktree, with no
89
+ first-pass cross-read. Preserve the required evidence in the private run record
90
+ before removal; untracked files never prove a reviewer worktree disposable.
91
+
66
92
  An `input_accepted` stage proves only that input reached the terminal. Require
67
93
  `turn_started` plus runtime/session inspection before treating the agent as
68
94
  started, and verify the requested role independently before trusting its work.