axstack 0.19.1 → 0.20.1

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
@@ -79,7 +79,7 @@ targets are reported without normal-path adoption. Install exits nonzero when
79
79
  an instruction conflict is preserved, while clean and idempotent installs exit
80
80
  successfully.
81
81
 
82
- The public bundle preserves three canonical 25-role inputs:
82
+ The public bundle preserves three canonical 24-role inputs:
83
83
  [mixed](profiles/presets/mixed.json),
84
84
  [codex-only](profiles/presets/codex-only.json), and
85
85
  [claude-only](profiles/presets/claude-only.json). Each is exactly
@@ -114,11 +114,15 @@ answer trust or permission prompts on the worker's behalf, and never create a
114
114
  duplicate writer. A `worker_done` advances work only when its Task and Dispatch
115
115
  match the active attempt and its revision evidence verifies.
116
116
 
117
- The user lifted the native-watch hold by decision on 2026-09-16. The driver
118
- every 15 minutes dispatches and exits; the watchdog is model-free and
119
- read-only, has no gate, and records `watchdog.log`; there is no watch deadline
120
- for automations. Axstack uses no historical fallback and introduces no custom
121
- scheduler.
117
+ Two logical native PR-manager lanes run on staggered 15-minute schedules. Each
118
+ pass uses a fresh finite session in its persistent dedicated workspace. Review
119
+ and watch each admit at most five bounded PR jobs;
120
+ waiting PRs stay covered without reserving slots. Axstack adds no custom
121
+ scheduler, queue engine, or decision interpreter. Sessions reconcile before
122
+ admission, save durable continuity and decisions, clean only positively
123
+ identified owned unused setup shells, and self-close as their final action.
124
+ Native fresh-session, overlapping-pass, recovery, and VPS resource behavior
125
+ require a canary before activation.
122
126
 
123
127
  Mobile completion/reply behavior remains unverified. Structural checks and
124
128
  qualitative scenario evaluation are not live runtime proof.
@@ -51,7 +51,7 @@ profiles/presets/codex-only.json
51
51
  profiles/presets/claude-only.json
52
52
  ```
53
53
 
54
- Each has exactly `{ "version": 1, "roles": [...] }` with the same 25 stable
54
+ Each has exactly `{ "version": 1, "roles": [...] }` with the same 24 stable
55
55
  role IDs. Installation writes `<skills-dir>/axstack/roles.json` as
56
56
  `{ "version": 1, "preset": "<selected preset>", "roles": [...] }` and records
57
57
  its ownership hash like every other installed skill asset. There is no second
@@ -150,7 +150,7 @@ to rewrite them.
150
150
  ## Role behavior after installation
151
151
 
152
152
  The runtime reads `roles.json` from the installed shared root `skills/axstack/`.
153
- A new run records the selected preset plus all 25 role rows. An active run keeps
153
+ A new run records the selected preset plus all 24 role rows. An active run keeps
154
154
  that snapshot after a later preset install unless the user explicitly changes
155
155
  it and accepts the resulting evidence invalidation.
156
156
 
package/docs/workflows.md CHANGED
@@ -40,7 +40,7 @@ only affected work.
40
40
 
41
41
  Installation requires one explicit canonical preset. The three bundle files
42
42
  under `profiles/presets/` each contain exactly
43
- `{ "version": 1, "roles": [...] }` and the same 25 stable IDs.
43
+ `{ "version": 1, "roles": [...] }` and the same 24 stable IDs.
44
44
 
45
45
  The current chat drives on whatever model runs it; no preset carries a driver
46
46
  role.
@@ -139,10 +139,10 @@ session and evidence remain valid.
139
139
  authorized-maintenance scope. A changed head or comment is an event, not
140
140
  repair authority. Repairs return to the original author only for a
141
141
  run-launched session and receive refreshed authored review before scoped
142
- `gh stack` publication. `gh stack` publication does not apply to automation
143
- repairs: the automation session (or a dispatched `axstack-author`) repairs in
144
- a per-PR child worktree, the local SHA is reviewed and gated, and the repair
145
- lands by fast-forward `git push` after `proceed`.
142
+ `gh stack` publication. `gh stack` publication does not apply to manager
143
+ repairs: the bounded PR job repairs in its per-PR child worktree, the local
144
+ SHA receives the actual-author-provenance review, and the exact candidate
145
+ lands by fast-forward `git push` after final readback.
146
146
  - `axstack-audit` separates execution outcome, procedure, and measurement
147
147
  coverage with evidenced denominators; it proposes but never self-edits.
148
148
 
@@ -173,40 +173,45 @@ gate. An applicable `Notification policy` may use `axstack-relay`; otherwise the
173
173
  current Orca conversation is the fallback. The relay normally delivers one-way
174
174
  through native `hermes send`: it checks CLI lookup and the configured target,
175
175
  binds the recipient, deduplicates on the run record, and records the returned
176
- `message_id`. The PR automation's decision tokens are the narrow exception: a
177
- fixed Hermes script writes the user's bound decision to a file for the driver
178
- to consume; no session polls Telegram. Delivery failure never clears the
179
- underlying hold.
176
+ `message_id`. PR-manager notifications point the user to GitHub or a durable
177
+ user-owned conversation; Telegram delivery, replies, and silence grant no action
178
+ authority. Delivery failure never clears the underlying hold.
180
179
 
181
- Healthy watch observations remain quiet. The optional `axstack-monitor` is
182
- read-only and never sends; `axstack-watchdog` never mutates GitHub. Under the
183
- rev-3 PR automation it performs four model-free health checks and sends new
184
- occurrences directly, with no health gate.
180
+ Healthy watch observations remain quiet. The optional `axstack-monitor` is a
181
+ read-only observer for standalone watches and never sends.
185
182
 
186
183
  ## Native watch automations
187
184
 
188
- The accepted PR-automation contract is a 15-minute driver automation and an
189
- hourly watchdog, with quiet healthy checks, deduplicated occurrences, one live
190
- dispatch marker per PR, and decision tokens for user-authorized actions.
185
+ The accepted contract has exactly two logical native manager lanes: review at
186
+ minutes `0,15,30,45` and watch at `7,22,37,52`. Each scheduled pass uses a
187
+ fresh finite session in a persistent dedicated workspace, scans complete
188
+ discovery pages, and admits at most five executing
189
+ PR jobs. Waiting PRs stay covered and consume no slot after owned descendants
190
+ settle. Each job uses one repository-parented worktree; managers never check out
191
+ PR branches in their own workspaces.
192
+
193
+ Every pass reconciles saved, GitHub, and native Orca state before admission. A
194
+ confirmed same-lane manager makes the new duplicate do no work or shared-record
195
+ write and close only itself. Normal teardown settles descendants, saves durable
196
+ continuity and decisions, closes only positively identified owned unused setup
197
+ shell terminals, then self-closes as the final action. It never blanket-closes
198
+ the workspace or cleans preserved candidates, evidence, user sessions, unknown
199
+ liveness, `user_takeover`, or ambiguous publication state.
191
200
 
192
- The driver is the automation session itself, with no `axstack-monitor` or
193
- `axstack-owner` role row. It uses the agent selected in Orca; changing that
194
- selection does not change the configured reviewers or impose a model hold.
195
201
  Requested reviews cover any accessible repository; automatic repairs retain
196
- their separate explicit repository scope. Orca owns scheduling and run history;
197
- Axstack adds no custom scheduler, polling loop, or historical runtime fallback.
202
+ their `defi-com/monorepo` and `defi-com/mobile` scope. Orca owns schedules,
203
+ sessions, Tasks, and Dispatches. Axstack adds no custom scheduler, queue engine,
204
+ cursor files, polling loop, or historical runtime fallback.
198
205
 
199
206
  ## Automations
200
207
 
201
- Two native Orca automations run the installed skills: a driver every 15 minutes
202
- that discovers work through four GitHub searches, dispatches exact-head peer
203
- reviews and own-PR repairs, consumes decision tokens, and exits; and an hourly
204
- model-free watchdog that evaluates four liveness checks and exits without
205
- launching a session. PR reviewers use exactly three escalation criteria. A gate
206
- `escalate` opens a bound decision token and exits, while `proceed` permits only
207
- the verdict or fast-forward push supported by the reviewed evidence. There are
208
- no `COMMENT` reviews, obligations, watch deadline, terminal cleanup sweep, or
209
- health gate. The current operational contract is
208
+ The review and watch managers use short packaged prompts that load the current
209
+ relative contract and invoke `axstack-review` or `axstack-watch`. Bounded jobs
210
+ publish ordinary exact-head review verdicts or reviewed fast-forward repairs;
211
+ the human merges. Exceptional security, permanent-on-chain, or architectural
212
+ decisions remain actionable in GitHub or a durable user-owned conversation
213
+ after manager self-close, with an authorized deduplicated Telegram notification.
214
+ The current operational contract is
210
215
  `skills/axstack/references/automations.md`.
211
216
 
212
217
  ## Run record and evidence
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "axstack",
3
- "version": "0.19.1",
3
+ "version": "0.20.1",
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,16 +152,7 @@
152
152
  "model": "claude-sonnet-5",
153
153
  "modeId": "bypassPermissions",
154
154
  "thinkingOptionId": "low",
155
- "notes": "Optional independent read-only PR observer, not the driver: the five-minute driver is the automation session itself. Reads GitHub, feedback, and checks, persists event IDs, and wakes the owner only for a new actionable event. Never sends, never authors, reviews, or replies. Healthy snapshots stay quiet. Hold was lifted by user decision on 2026-09-16."
156
- },
157
- {
158
- "id": "axstack-watchdog",
159
- "name": "Axstack watchdog",
160
- "provider": "claude",
161
- "model": "claude-sonnet-5",
162
- "modeId": "bypassPermissions",
163
- "thinkingOptionId": "low",
164
- "notes": "Hourly independent read-only automation health checker: compares the recorded driver model with the expected one, checks run history, precheck errors, duplicate handling, and relay receipts, and passes findings to the gate under the automation-health criterion. Never mutates GitHub and never authors, reviews, or replies; its only gate-authorized automation-health send is recorded in watchdog.json."
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."
165
156
  },
166
157
  {
167
158
  "id": "axstack-auditor",
@@ -152,16 +152,7 @@
152
152
  "model": "gpt-5.6-terra",
153
153
  "modeId": "full-access",
154
154
  "thinkingOptionId": "low",
155
- "notes": "Optional independent read-only PR observer, not the driver: the five-minute driver is the automation session itself. Reads GitHub, feedback, and checks, persists event IDs, and wakes the owner only for a new actionable event. Never sends, never authors, reviews, or replies. Healthy snapshots stay quiet. Hold was lifted by user decision on 2026-09-16."
156
- },
157
- {
158
- "id": "axstack-watchdog",
159
- "name": "Axstack watchdog",
160
- "provider": "codex",
161
- "model": "gpt-5.6-terra",
162
- "modeId": "full-access",
163
- "thinkingOptionId": "low",
164
- "notes": "Hourly independent read-only automation health checker: compares the recorded driver model with the expected one, checks run history, precheck errors, duplicate handling, and relay receipts, and passes findings to the gate under the automation-health criterion. Never mutates GitHub and never authors, reviews, or replies; its only gate-authorized automation-health send is recorded in watchdog.json."
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."
165
156
  },
166
157
  {
167
158
  "id": "axstack-auditor",
@@ -152,16 +152,7 @@
152
152
  "model": "claude-opus-5",
153
153
  "modeId": "bypassPermissions",
154
154
  "thinkingOptionId": "medium",
155
- "notes": "Optional independent read-only PR observer, not the driver: the five-minute driver is the automation session itself. Reads GitHub, feedback, and checks, persists event IDs, and wakes the owner only for a new actionable event. Never sends, never authors, reviews, or replies. Healthy snapshots stay quiet. Hold was lifted by user decision on 2026-09-16."
156
- },
157
- {
158
- "id": "axstack-watchdog",
159
- "name": "Axstack watchdog",
160
- "provider": "claude",
161
- "model": "claude-opus-5",
162
- "modeId": "bypassPermissions",
163
- "thinkingOptionId": "medium",
164
- "notes": "Hourly independent read-only automation health checker: compares the recorded driver model with the expected one, checks run history, precheck errors, duplicate handling, and relay receipts, and passes findings to the gate under the automation-health criterion. Never mutates GitHub and never authors, reviews, or replies; its only gate-authorized automation-health send is recorded in watchdog.json."
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."
165
156
  },
166
157
  {
167
158
  "id": "axstack-auditor",