axstack 0.20.0 → 0.20.2
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 +9 -4
- package/docs/workflows.md +20 -8
- package/package.json +1 -1
- package/skills/axstack/references/automations.md +127 -33
- package/skills/axstack/references/lifecycle.md +2 -2
- package/skills/axstack/references/review-manager-prompt.md +5 -2
- package/skills/axstack/references/watch-manager-prompt.md +5 -3
- package/skills/axstack-review/SKILL.md +5 -3
- package/skills/axstack-watch/SKILL.md +11 -9
- package/skills/axstack-watch/references/repair-publication.md +3 -3
- package/skills/axstack-watch/references/watch-runtime.md +8 -6
package/README.md
CHANGED
|
@@ -114,11 +114,16 @@ 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
|
-
Two
|
|
118
|
-
|
|
117
|
+
Two logical native PR-manager lanes run on staggered 15-minute schedules. Each
|
|
118
|
+
pass uses a fresh finite session in a new isolated workspace. Review
|
|
119
|
+
and watch each admit at most five bounded PR jobs;
|
|
119
120
|
waiting PRs stay covered without reserving slots. Axstack adds no custom
|
|
120
|
-
scheduler, queue engine, or decision interpreter.
|
|
121
|
-
|
|
121
|
+
scheduler, queue engine, or decision interpreter. Sessions reconcile before
|
|
122
|
+
admission across the whole lane, save durable continuity and decisions outside
|
|
123
|
+
disposable workspaces, and retire only their verified pass workspace as the
|
|
124
|
+
final action. Manual review/watch never inherits this cleanup lifecycle.
|
|
125
|
+
Native fresh-session, overlapping-pass, recovery, and VPS resource behavior
|
|
126
|
+
require a canary before activation.
|
|
122
127
|
|
|
123
128
|
Mobile completion/reply behavior remains unverified. Structural checks and
|
|
124
129
|
qualitative scenario evaluation are not live runtime proof.
|
package/docs/workflows.md
CHANGED
|
@@ -173,8 +173,8 @@ 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`. PR-manager notifications point the user to
|
|
177
|
-
|
|
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
178
|
authority. Delivery failure never clears the underlying hold.
|
|
179
179
|
|
|
180
180
|
Healthy watch observations remain quiet. The optional `axstack-monitor` is a
|
|
@@ -182,16 +182,27 @@ read-only observer for standalone watches and never sends.
|
|
|
182
182
|
|
|
183
183
|
## Native watch automations
|
|
184
184
|
|
|
185
|
-
The accepted contract has exactly two
|
|
186
|
-
minutes `0,15,30,45` and watch at `7,22,37,52`. Each
|
|
187
|
-
|
|
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 new isolated workspace, scans complete
|
|
188
|
+
discovery pages, and admits at most five executing
|
|
188
189
|
PR jobs. Waiting PRs stay covered and consume no slot after owned descendants
|
|
189
190
|
settle. Each job uses one repository-parented worktree; managers never check out
|
|
190
191
|
PR branches in their own workspaces.
|
|
191
192
|
|
|
193
|
+
Every pass reconciles saved, GitHub, and native Orca state across all same-lane
|
|
194
|
+
workspaces before admission. A
|
|
195
|
+
confirmed same-lane manager makes the new duplicate do no work or shared-record
|
|
196
|
+
write and close only itself. Normal teardown settles descendants, saves durable
|
|
197
|
+
continuity and decisions outside disposable workspaces, then retires its own
|
|
198
|
+
verified isolated pass workspace as the final action. It never bulk-closes a
|
|
199
|
+
shared manager workspace or a PR-job worktree, or cleans preserved candidates,
|
|
200
|
+
evidence, user sessions, unknown liveness, `user_takeover`, or ambiguous
|
|
201
|
+
publication state. Manual review/watch remains outside this scheduled lifecycle.
|
|
202
|
+
|
|
192
203
|
Requested reviews cover any accessible repository; automatic repairs retain
|
|
193
204
|
their `defi-com/monorepo` and `defi-com/mobile` scope. Orca owns schedules,
|
|
194
|
-
|
|
205
|
+
sessions, Tasks, and Dispatches. Axstack adds no custom scheduler, queue engine,
|
|
195
206
|
cursor files, polling loop, or historical runtime fallback.
|
|
196
207
|
|
|
197
208
|
## Automations
|
|
@@ -200,8 +211,9 @@ The review and watch managers use short packaged prompts that load the current
|
|
|
200
211
|
relative contract and invoke `axstack-review` or `axstack-watch`. Bounded jobs
|
|
201
212
|
publish ordinary exact-head review verdicts or reviewed fast-forward repairs;
|
|
202
213
|
the human merges. Exceptional security, permanent-on-chain, or architectural
|
|
203
|
-
decisions remain
|
|
204
|
-
|
|
214
|
+
decisions remain actionable in GitHub or a durable user-owned conversation
|
|
215
|
+
after manager self-close, with an authorized deduplicated Telegram notification.
|
|
216
|
+
The current operational contract is
|
|
205
217
|
`skills/axstack/references/automations.md`.
|
|
206
218
|
|
|
207
219
|
## Run record and evidence
|
package/package.json
CHANGED
|
@@ -5,7 +5,7 @@ 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
|
|
8
|
+
There are exactly two logical manager lanes:
|
|
9
9
|
|
|
10
10
|
- **Review manager:** runs at minutes `0,15,30,45` and invokes
|
|
11
11
|
[axstack-review](../../axstack-review/SKILL.md) for eligible peer reviews.
|
|
@@ -13,17 +13,67 @@ There are exactly two reusable manager chats:
|
|
|
13
13
|
[axstack-watch](../../axstack-watch/SKILL.md) for eligible own-PR watch or
|
|
14
14
|
repair events.
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
16
|
+
Use a new isolated workspace for every scheduled pass, with one fresh finite
|
|
17
|
+
manager session. Configure native repo-created worktree mode against the
|
|
18
|
+
designated manager repository; never target an existing shared workspace.
|
|
19
|
+
Do not use `--reuse-session`. The scheduler creates the pass workspace before
|
|
20
|
+
launch; the manager must not move itself from a shared launch workspace.
|
|
21
|
+
Keep lane continuity and evidence outside disposable manager workspaces at
|
|
22
|
+
the configured durable absolute paths. A manager never checks out a PR branch
|
|
23
|
+
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.
|
|
21
26
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
+
Provision one explicit absolute continuity path per automation ID in the
|
|
28
|
+
scheduled prompt. Follow [Run record](run-record.md) for its contents; the
|
|
29
|
+
repository's absolute Git common directory is a valid durable root, but a pass
|
|
30
|
+
worktree is not. Missing or non-durable continuity configuration holds admission.
|
|
31
|
+
|
|
32
|
+
This is prompt policy, not proof that Orca starts a fresh session or prevents
|
|
33
|
+
overlapping passes. Before activation a native canary must prove fresh-session
|
|
34
|
+
launch, overlapping-pass behavior, recovery after session loss, nested
|
|
35
|
+
dispatch depth for coordinator-launched leaves, and total process and memory
|
|
36
|
+
effects. A firing timestamp proves neither delivery nor useful completion.
|
|
37
|
+
|
|
38
|
+
## Session admission
|
|
39
|
+
|
|
40
|
+
Reconcile saved state, current GitHub state, and native Orca Tasks, Dispatches,
|
|
41
|
+
sessions, and liveness across all workspaces belonging to the same automation
|
|
42
|
+
before discovery or admission; never infer lane ownership from an empty local
|
|
43
|
+
workspace. Bind the lane to the automation ID and pass to its native run ID,
|
|
44
|
+
workspace ID, and terminal identity, not a title or directory-name guess.
|
|
45
|
+
A confirmed live manager for the same lane remains authoritative.
|
|
46
|
+
The new duplicate does no PR work, makes no shared-record write, touches
|
|
47
|
+
nothing owned by the live manager, and closes only itself as its final action
|
|
48
|
+
by the same guarded isolated-workspace retirement below, not a tab-only close.
|
|
49
|
+
Unknown liveness blocks admission and shared-record writes; it does not
|
|
50
|
+
authorize takeover, cleanup, or a duplicate manager. Preserve `user_takeover`
|
|
51
|
+
and other user-owned sessions.
|
|
52
|
+
|
|
53
|
+
When two new passes overlap, reconcile native run ordering before either admits
|
|
54
|
+
work; the earlier unsettled pass retains the lane. Missing ordering or ownership
|
|
55
|
+
evidence holds admission, never guesses a winner. This is not an atomic lock:
|
|
56
|
+
activation requires an overlap canary proving only one pass admits work. Count
|
|
57
|
+
all unsettled PR jobs and descendants across the lane, not just this workspace.
|
|
58
|
+
Read every page of native runs, workers, and workspace inventory; truncated or
|
|
59
|
+
failed inventory holds admission and cleanup rather than implying absence.
|
|
60
|
+
|
|
61
|
+
A prior manager does not retain the lane merely because its automation run
|
|
62
|
+
status says failed or dispatched. Require confirmed native process exit for its
|
|
63
|
+
exact terminal incarnation, saved continuity, and settlement of all owned jobs
|
|
64
|
+
and descendants before releasing its lane ownership. Absence or saved retirement
|
|
65
|
+
intent alone is insufficient. Conversely a completed run row does not prove exit.
|
|
66
|
+
If these facts remain unknown, report the hold at the durable decision location;
|
|
67
|
+
do not silently stand down forever or replace a potentially live owner.
|
|
68
|
+
|
|
69
|
+
Before PR admission, reconcile old pass resources. If three or more unreclaimed
|
|
70
|
+
earlier pass workspaces remain, disable only this automation through the native
|
|
71
|
+
CLI, verify the disabled setting, save/report the cleanup hold, and admit no new
|
|
72
|
+
PR jobs. Also pause on a confirmed cleanup failure or unresolved lane ownership.
|
|
73
|
+
Already-dispatched passes still reconcile and retire only their own safe resources;
|
|
74
|
+
this threshold is a stop condition, not an atomic hard cap on in-flight creations.
|
|
75
|
+
An uncertain disable is a reported failure, not proof scheduling stopped. Resume
|
|
76
|
+
only after ownership/cleanup is verified and explicit activation authority exists.
|
|
27
77
|
|
|
28
78
|
## Discovery and coverage
|
|
29
79
|
|
|
@@ -74,8 +124,8 @@ a slot settles; repeatedly changing PRs cannot starve older unserved work.
|
|
|
74
124
|
|
|
75
125
|
## Per-PR jobs
|
|
76
126
|
|
|
77
|
-
The
|
|
78
|
-
coordinator owns only its admitted event. Do not create a second live owner or
|
|
127
|
+
The logical manager lane owns ongoing discovery and continuity across finite
|
|
128
|
+
sessions; the bounded PR coordinator owns only its admitted event. Do not create a second live owner or
|
|
79
129
|
writer for the same PR. Reuse an existing valid per-PR worktree, owner, and
|
|
80
130
|
unchanged receipts before creating anything. Otherwise create one separate
|
|
81
131
|
Orca worktree per PR job, parented to that repository's primary worktree, and
|
|
@@ -85,19 +135,23 @@ handles the current actionable event, returns exact receipts, then settles.
|
|
|
85
135
|
Settlement returns continuity to the manager rather than retaining an idle PR
|
|
86
136
|
coordinator. Reviewers retain the isolation required by `axstack-review`.
|
|
87
137
|
|
|
88
|
-
An unchanged exact head and event creates no job
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
138
|
+
An unchanged exact head and unchanged event identity creates no job; an
|
|
139
|
+
unchanged exact head with a new event identity remains actionable. Event
|
|
140
|
+
identity includes the applicable review ID and body digest, check identity and
|
|
141
|
+
result, or other current GitHub event receipt. Dedupe from current GitHub state,
|
|
142
|
+
native Orca Task and Dispatch state, and the existing compact run record; do
|
|
143
|
+
not create machine cursor files or a queue engine. Record enough to resume: PR,
|
|
144
|
+
head, base, event identity, mode, owner and worker receipts, candidate,
|
|
92
145
|
publication receipt, hold, and next action. GitHub remains authoritative for
|
|
93
146
|
open state, revisions, reviews, checks, and merge state.
|
|
94
147
|
|
|
95
148
|
When the current event is handled, settle and release owned native resources.
|
|
96
|
-
Preserve
|
|
97
|
-
user-owned work until
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
149
|
+
Preserve dirty worktrees, unpushed candidates, review evidence, pending
|
|
150
|
+
external results, and user-owned work until durability and ownership are
|
|
151
|
+
proven. Unknown liveness, `user_takeover`, and ambiguous publication likewise
|
|
152
|
+
forbid cleanup. Here a pending external result means an unconfirmed publication
|
|
153
|
+
or send outcome, not pending CI. Waiting state belongs in GitHub and the compact
|
|
154
|
+
record, never in an idle model, per-PR timer, or polling loop.
|
|
101
155
|
|
|
102
156
|
## Review and repair authority
|
|
103
157
|
|
|
@@ -137,18 +191,58 @@ boundary.
|
|
|
137
191
|
## Exceptional decisions and notifications
|
|
138
192
|
|
|
139
193
|
A credible security concern, permanent on-chain state change, or architecture
|
|
140
|
-
decision is held in
|
|
141
|
-
head, base, action, candidate,
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
194
|
+
decision is held in GitHub or a durable user-owned conversation that survives
|
|
195
|
+
the finite manager session. Store the PR, head, base, action, candidate,
|
|
196
|
+
decision context, durable decision location, and preserved candidate bytes or
|
|
197
|
+
refs in the compact record. The decision must never depend on a closed manager
|
|
198
|
+
chat. Send one deduplicated Telegram notification only when the recorded
|
|
199
|
+
`Notification policy` authorizes it, using
|
|
200
|
+
[axstack-relay](../../axstack-relay/SKILL.md) and telling the user where the
|
|
201
|
+
durable decision is actionable.
|
|
146
202
|
|
|
147
203
|
Telegram delivery, a Telegram reply, or silence never authorizes an action.
|
|
148
|
-
After a decision
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
204
|
+
After a decision, revalidate the exact candidate, head, base, event, authority,
|
|
205
|
+
and remote state before acting. A changed input makes the old decision stale
|
|
206
|
+
and holds that action. There are no token files, Telegram decision interpreter,
|
|
207
|
+
or separate model gate.
|
|
208
|
+
|
|
209
|
+
## Finite-session teardown
|
|
210
|
+
|
|
211
|
+
After admission closes, settle every owned PR job and all descendants before the
|
|
212
|
+
manager session ends; active or unknown descendants keep their PR slot occupied
|
|
213
|
+
and must be reconciled rather than trusted from saved status. Then save durable
|
|
214
|
+
continuity, evidence locations, pending receipts, and user decisions before
|
|
215
|
+
self-close. Waiting PRs still occupy zero slots once their owned trees settle.
|
|
216
|
+
|
|
217
|
+
Cleanup of PR-job setup shells stays scoped to positively identified owned unused
|
|
218
|
+
setup shells: use the native exact-terminal close operation for each only.
|
|
219
|
+
Preserve dirty worktrees, unpushed candidates, review evidence, user-owned
|
|
220
|
+
terminals, unknown liveness, `user_takeover`, and ambiguous publication state.
|
|
221
|
+
|
|
222
|
+
For the manager pass only, verify native run/workspace identity, exclusive
|
|
223
|
+
automation ownership, no unsettled descendants, and a fresh terminal inventory
|
|
224
|
+
containing only this manager and its proven unused setup shells. No other pass
|
|
225
|
+
may target this workspace. If an unexpected terminal or user takeover is present,
|
|
226
|
+
do not bulk-close; preserve the workspace and report the hold at its durable
|
|
227
|
+
decision location. Never bulk-close a shared manager workspace or a PR-job worktree.
|
|
228
|
+
|
|
229
|
+
After saving continuity, use the version-matched native workspace retirement:
|
|
230
|
+
`terminal close --worktree id:<exact-native-workspace-id> --all --json`.
|
|
231
|
+
Copy the complete ID from the run/workspace receipt; never use a name, branch,
|
|
232
|
+
path-only selector, or `active` for this destructive operation.
|
|
233
|
+
Self-close is the final action; perform no record write or cleanup afterward.
|
|
234
|
+
A failed or uncertain close is not proof of retirement. The next admitted pass
|
|
235
|
+
reconciles prior retirement from native state before trusting saved intent.
|
|
236
|
+
Retire only positively identified completed pass resources; do not kill another
|
|
237
|
+
live or unknown manager. Remove an old pass worktree only with native cleanup
|
|
238
|
+
after terminal retirement is confirmed and its Git state is clean, with no
|
|
239
|
+
unpushed commits, retained evidence, children, or user-owned work. Never use
|
|
240
|
+
recursive shell deletion. Failed cleanup remains recorded, not silently forgotten.
|
|
241
|
+
|
|
242
|
+
The activation canary must additionally prove distinct workspace IDs per pass,
|
|
243
|
+
cross-workspace lane admission, self-retirement and absence after client reconnect,
|
|
244
|
+
and bounded retained worktrees over repeated passes. A shell-only close test does
|
|
245
|
+
not prove agent resume-record retirement. Do not activate on source checks alone.
|
|
152
246
|
|
|
153
247
|
## Recovery and limits
|
|
154
248
|
|
|
@@ -162,6 +256,6 @@ unambiguous work may proceed.
|
|
|
162
256
|
Use only native schedules and Orca orchestration. Add no daemon, shell precheck,
|
|
163
257
|
watchdog script, custom scheduler, cursor or pending sidecar, runtime database,
|
|
164
258
|
workflow state machine, decision interpreter, or programmatic escalation gate.
|
|
165
|
-
The live VPS activation, native
|
|
259
|
+
The live VPS activation, native fresh-session and overlapping-pass behavior, recovery path,
|
|
166
260
|
nested dispatch depth for coordinator-launched leaves, and resource ceiling
|
|
167
261
|
remain unverified until the canary succeeds.
|
|
@@ -110,8 +110,8 @@ differs from merged; human merges.
|
|
|
110
110
|
|
|
111
111
|
## Watch health
|
|
112
112
|
|
|
113
|
-
|
|
114
|
-
staggered 15-minute schedules. Each admits at most five executing PR jobs;
|
|
113
|
+
Native review and watch lanes use fresh finite sessions in isolated per-pass
|
|
114
|
+
workspaces on staggered 15-minute schedules. Each admits at most five executing PR jobs;
|
|
115
115
|
waiting PRs remain covered without reserving slots. Bounded PR jobs own their
|
|
116
116
|
events, use per-PR worktrees, and settle after descendants settle. Build no
|
|
117
117
|
custom scheduler, state engine, or legacy fallback. Details live in
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
# Review manager prompt
|
|
2
2
|
|
|
3
|
-
You are
|
|
3
|
+
You are a fresh finite review-manager session in its isolated per-pass Orca workspace. Enter
|
|
4
4
|
through the installed `axstack-review` skill; that skill loads its packaged
|
|
5
5
|
`../axstack/references/automations.md` contract by relative reference. Discover
|
|
6
6
|
every eligible peer-review event and invoke the skill through Orca for each
|
|
7
7
|
admitted bounded PR job. Keep complete coverage separate from the five-job
|
|
8
8
|
execution cap, preserve exact ownership and receipts, settle completed trees,
|
|
9
|
-
and stay quiet when nothing changed.
|
|
9
|
+
and stay quiet when nothing changed. Reconcile before admission, save durable
|
|
10
|
+
continuity outside this workspace, then retire only this pass workspace as the
|
|
11
|
+
final action under the contract's ownership guards. Reconcile the whole lane,
|
|
12
|
+
not just this workspace. Never check out a PR branch here.
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
# Watch manager prompt
|
|
2
2
|
|
|
3
|
-
You are
|
|
3
|
+
You are a fresh finite watch-manager session in its isolated per-pass Orca workspace. Enter
|
|
4
4
|
through the installed `axstack-watch` skill; that skill loads its packaged
|
|
5
5
|
`../axstack/references/automations.md` contract by relative reference. Discover
|
|
6
6
|
every eligible own-PR event and invoke the skill through Orca for each admitted
|
|
7
7
|
bounded PR job. Keep complete coverage separate from the five-job execution
|
|
8
8
|
cap, preserve exact ownership, candidates, holds, and receipts, settle
|
|
9
|
-
completed trees, and stay quiet when nothing changed.
|
|
10
|
-
|
|
9
|
+
completed trees, and stay quiet when nothing changed. Reconcile before
|
|
10
|
+
admission, save durable continuity outside this workspace, then retire only this
|
|
11
|
+
pass workspace as the final action under the contract's ownership guards.
|
|
12
|
+
Reconcile the whole lane, not just this workspace. Never check out a PR branch here.
|
|
@@ -5,11 +5,13 @@ description: When a candidate PR needs final review, use axstack-review for conf
|
|
|
5
5
|
|
|
6
6
|
# Review
|
|
7
7
|
|
|
8
|
+
Manual invocation does not enter the scheduled manager lifecycle; never close the user’s chat or workspace.
|
|
9
|
+
|
|
8
10
|
Produce one evidence-bound verdict for an exact candidate revision using the
|
|
9
11
|
review count and model routing required by its mode. Report within the
|
|
10
12
|
requested authority; the human merges unless separately authorized otherwise.
|
|
11
13
|
|
|
12
|
-
When the current session is
|
|
14
|
+
When the current session is a fresh review-manager session, load
|
|
13
15
|
[Native PR managers](../axstack/references/automations.md) and follow only its
|
|
14
16
|
discovery, admission, recovery, and settlement branch. Do not review a PR,
|
|
15
17
|
materialize `axstack-owner`, or check out a PR branch in the manager workspace.
|
|
@@ -276,7 +278,7 @@ private transport values or configuration.
|
|
|
276
278
|
|
|
277
279
|
Under a manager PR job, credible serious risk found by a reviewer raises the
|
|
278
280
|
standing internal prompt and dependent-action hold immediately in the compact
|
|
279
|
-
run record and
|
|
281
|
+
run record and a durable GitHub or user-owned conversation. The authorized
|
|
280
282
|
`axstack-relay` notification points the user there; delivery or silence never
|
|
281
283
|
authorizes action.
|
|
282
284
|
|
|
@@ -329,7 +331,7 @@ to the intended commit.
|
|
|
329
331
|
For a peer PR selected under
|
|
330
332
|
[Native PR managers](../axstack/references/automations.md), apply the same
|
|
331
333
|
complete-review and exact-commit requirements. A serious-risk escalation holds
|
|
332
|
-
submission
|
|
334
|
+
submission at its durable decision location. Otherwise `APPROVE` requires
|
|
333
335
|
no validated blocker and `REQUEST_CHANGES` requires at least one evidenced
|
|
334
336
|
validated blocker. `INCOMPLETE`, unavailable inputs, unresolved disagreement,
|
|
335
337
|
or unknown GitHub state submits nothing.
|
|
@@ -5,6 +5,8 @@ description: When babysitting an existing PR, use axstack-watch to monitor or ma
|
|
|
5
5
|
|
|
6
6
|
# Watch
|
|
7
7
|
|
|
8
|
+
Manual invocation does not enter the scheduled manager lifecycle; never close the user’s chat or workspace.
|
|
9
|
+
|
|
8
10
|
Leave each adopted PR with one accountable owner, current readiness evidence,
|
|
9
11
|
and user-facing updates that name its current milestone and next wake or
|
|
10
12
|
condition.
|
|
@@ -14,7 +16,7 @@ Its required edge loads [Shared lifecycle](../axstack/references/lifecycle.md),
|
|
|
14
16
|
including the end-of-run audit hook. Reach other references only at the steps
|
|
15
17
|
that name them.
|
|
16
18
|
|
|
17
|
-
When the current session is
|
|
19
|
+
When the current session is a fresh watch-manager session, load
|
|
18
20
|
[Native PR managers](../axstack/references/automations.md) and follow only its
|
|
19
21
|
discovery, admission, recovery, and settlement branch. Do not adopt or repair a
|
|
20
22
|
PR, materialize `axstack-owner`, or check out a PR branch in the manager
|
|
@@ -71,9 +73,9 @@ Read-only checks and updates to the already-owned local record need no runtime
|
|
|
71
73
|
load. When the watch needs a new owner or automated observation, first read
|
|
72
74
|
[Watch runtime](references/watch-runtime.md) and then
|
|
73
75
|
[Orca runtime](../axstack/references/orca-runtime.md). Reconcile before creating
|
|
74
|
-
anything.
|
|
75
|
-
staggered 15-minute schedule, covers
|
|
76
|
-
bounded actionable-event jobs. Waiting PRs reserve no execution slots and
|
|
76
|
+
anything. Each native watch-manager pass starts a fresh finite session in an
|
|
77
|
+
isolated per-pass workspace on its staggered 15-minute schedule, covers
|
|
78
|
+
every eligible own PR, and starts only bounded actionable-event jobs. Waiting PRs reserve no execution slots and
|
|
77
79
|
there is no watch deadline for manager automation. `axstack-monitor` stays an
|
|
78
80
|
optional read-only observer that never sends. One read-only PR observation
|
|
79
81
|
needs neither. The bounded PR coordinator is the live owner for its event;
|
|
@@ -127,8 +129,8 @@ the current revision, and a recorded hold or next owner where work remains.
|
|
|
127
129
|
When a new actionable event is eligible under a recorded `Notification policy`,
|
|
128
130
|
the owner may use the optional [axstack-relay](../axstack-relay/SKILL.md).
|
|
129
131
|
The monitor never sends. The manager deduplicates authorized notifications;
|
|
130
|
-
absent policy or failed relay uses
|
|
131
|
-
every existing hold open.
|
|
132
|
+
absent policy or failed relay uses the recorded durable GitHub or user-owned
|
|
133
|
+
conversation and leaves every existing hold open.
|
|
132
134
|
|
|
133
135
|
## 5. State readiness precisely
|
|
134
136
|
|
|
@@ -140,9 +142,9 @@ observed state distinct from merged, and the human merges by default.
|
|
|
140
142
|
## 6. End and preserve continuity
|
|
141
143
|
|
|
142
144
|
A bounded manager PR job ends as soon as its current event and every owned
|
|
143
|
-
descendant settle. It returns exact receipts and remaining state to the
|
|
144
|
-
|
|
145
|
-
the manager's recurring schedule.
|
|
145
|
+
descendant settle. It returns exact receipts and remaining state to the logical
|
|
146
|
+
manager lane's durable continuity, releases proven resources, and never waits
|
|
147
|
+
for merge or stops the manager's recurring schedule.
|
|
146
148
|
|
|
147
149
|
End a standalone watch early when all required PRs merge, at cancellation, or
|
|
148
150
|
at its shared default 24 h deadline. There is no watch deadline for manager
|
|
@@ -36,9 +36,9 @@ exact new revision and base, all six angles, applicable acceptance, the reply
|
|
|
36
36
|
body identities, and every affected boundary, with no unresolved material
|
|
37
37
|
finding or urgent hold. Under a manager PR job, a serious-risk escalation
|
|
38
38
|
preserves the local candidate and exact context, records the hold in the
|
|
39
|
-
compact record and
|
|
40
|
-
deduplicated notification. Publication remains held until the
|
|
41
|
-
that
|
|
39
|
+
compact record and a durable GitHub or user-owned conversation, and sends only
|
|
40
|
+
an authorized deduplicated notification. Publication remains held until the
|
|
41
|
+
user decides at that durable location and all exact inputs are revalidated.
|
|
42
42
|
|
|
43
43
|
## 3. Revalidate immediately before publication
|
|
44
44
|
|
|
@@ -13,10 +13,12 @@ stop task-owned registrations at completion, cancellation, or expiry.
|
|
|
13
13
|
|
|
14
14
|
## Native watch manager
|
|
15
15
|
|
|
16
|
-
The separate native watch manager follows the
|
|
17
|
-
[native PR-manager contract](../../axstack/references/automations.md).
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
The separate native watch manager lane follows the
|
|
17
|
+
[native PR-manager contract](../../axstack/references/automations.md). Each pass
|
|
18
|
+
uses a new isolated workspace and fresh finite session at minutes `7,22,37,52`.
|
|
19
|
+
Continuity survives outside disposable workspaces; admission reconciles the
|
|
20
|
+
whole lane across workspaces. It scans every eligible own PR and
|
|
21
|
+
admits at most five bounded actionable-event jobs. Waiting PRs stay covered
|
|
20
22
|
without reserving slots. Each job uses its own repository-parented worktree and
|
|
21
23
|
settles with all descendants; no model, per-PR timer, or polling loop waits for
|
|
22
24
|
CI, review, a user decision, or merge.
|
|
@@ -27,8 +29,8 @@ settings or source configuration are not runtime evidence. Preserve quiet
|
|
|
27
29
|
unchanged behavior, exact-head event dedupe, ownership, complete discovery,
|
|
28
30
|
and current authority.
|
|
29
31
|
|
|
30
|
-
Before activation, canary
|
|
31
|
-
loss and recovery, nested dispatch depth for coordinator-launched leaves, and
|
|
32
|
+
Before activation, canary fresh-session launch, an overlapping scheduled pass,
|
|
33
|
+
session loss and recovery, nested dispatch depth for coordinator-launched leaves, and
|
|
32
34
|
total process and memory behavior. Until observed, those remain unverified; do
|
|
33
35
|
not replace them with a precheck, watchdog, custom scheduler, state engine, or
|
|
34
36
|
legacy fallback.
|