axstack 0.20.1 → 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 +4 -3
- package/docs/workflows.md +8 -6
- package/package.json +1 -1
- package/skills/axstack/references/automations.md +74 -14
- package/skills/axstack/references/lifecycle.md +1 -1
- package/skills/axstack/references/review-manager-prompt.md +4 -2
- package/skills/axstack/references/watch-manager-prompt.md +4 -3
- package/skills/axstack-review/SKILL.md +2 -0
- package/skills/axstack-watch/SKILL.md +4 -2
- package/skills/axstack-watch/references/watch-runtime.md +4 -3
package/README.md
CHANGED
|
@@ -115,12 +115,13 @@ 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
117
|
Two logical native PR-manager lanes run on staggered 15-minute schedules. Each
|
|
118
|
-
pass uses a fresh finite session in
|
|
118
|
+
pass uses a fresh finite session in a new isolated workspace. Review
|
|
119
119
|
and watch each admit at most five bounded PR jobs;
|
|
120
120
|
waiting PRs stay covered without reserving slots. Axstack adds no custom
|
|
121
121
|
scheduler, queue engine, or decision interpreter. Sessions reconcile before
|
|
122
|
-
admission, save durable continuity and decisions
|
|
123
|
-
|
|
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.
|
|
124
125
|
Native fresh-session, overlapping-pass, recovery, and VPS resource behavior
|
|
125
126
|
require a canary before activation.
|
|
126
127
|
|
package/docs/workflows.md
CHANGED
|
@@ -184,19 +184,21 @@ read-only observer for standalone watches and never sends.
|
|
|
184
184
|
|
|
185
185
|
The accepted contract has exactly two logical native manager lanes: review at
|
|
186
186
|
minutes `0,15,30,45` and watch at `7,22,37,52`. Each scheduled pass uses a
|
|
187
|
-
fresh finite session in a
|
|
187
|
+
fresh finite session in a new isolated workspace, scans complete
|
|
188
188
|
discovery pages, and admits at most five executing
|
|
189
189
|
PR jobs. Waiting PRs stay covered and consume no slot after owned descendants
|
|
190
190
|
settle. Each job uses one repository-parented worktree; managers never check out
|
|
191
191
|
PR branches in their own workspaces.
|
|
192
192
|
|
|
193
|
-
Every pass reconciles saved, GitHub, and native Orca state
|
|
193
|
+
Every pass reconciles saved, GitHub, and native Orca state across all same-lane
|
|
194
|
+
workspaces before admission. A
|
|
194
195
|
confirmed same-lane manager makes the new duplicate do no work or shared-record
|
|
195
196
|
write and close only itself. Normal teardown settles descendants, saves durable
|
|
196
|
-
continuity and decisions
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
liveness, `user_takeover`, or ambiguous
|
|
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.
|
|
200
202
|
|
|
201
203
|
Requested reviews cover any accessible repository; automatic repairs retain
|
|
202
204
|
their `defi-com/monorepo` and `defi-com/mobile` scope. Orca owns schedules,
|
package/package.json
CHANGED
|
@@ -13,13 +13,22 @@ There are exactly two logical manager lanes:
|
|
|
13
13
|
[axstack-watch](../../axstack-watch/SKILL.md) for eligible own-PR watch or
|
|
14
14
|
repair events.
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
manager
|
|
19
|
-
|
|
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
|
|
20
24
|
discovers current state. The two short packaged prompts sit beside this file
|
|
21
25
|
and discover these rules by relative link instead of copying them.
|
|
22
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
|
+
|
|
23
32
|
This is prompt policy, not proof that Orca starts a fresh session or prevents
|
|
24
33
|
overlapping passes. Before activation a native canary must prove fresh-session
|
|
25
34
|
launch, overlapping-pass behavior, recovery after session loss, nested
|
|
@@ -29,14 +38,43 @@ effects. A firing timestamp proves neither delivery nor useful completion.
|
|
|
29
38
|
## Session admission
|
|
30
39
|
|
|
31
40
|
Reconcile saved state, current GitHub state, and native Orca Tasks, Dispatches,
|
|
32
|
-
sessions, and liveness
|
|
33
|
-
|
|
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.
|
|
34
46
|
The new duplicate does no PR work, makes no shared-record write, touches
|
|
35
|
-
nothing owned by the live manager, and closes only itself as its final action
|
|
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.
|
|
36
49
|
Unknown liveness blocks admission and shared-record writes; it does not
|
|
37
50
|
authorize takeover, cleanup, or a duplicate manager. Preserve `user_takeover`
|
|
38
51
|
and other user-owned sessions.
|
|
39
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.
|
|
77
|
+
|
|
40
78
|
## Discovery and coverage
|
|
41
79
|
|
|
42
80
|
Resolve self on every tick with `gh api user --jq .login`; never hardcode the
|
|
@@ -176,13 +214,35 @@ and must be reconciled rather than trusted from saved status. Then save durable
|
|
|
176
214
|
continuity, evidence locations, pending receipts, and user decisions before
|
|
177
215
|
self-close. Waiting PRs still occupy zero slots once their owned trees settle.
|
|
178
216
|
|
|
179
|
-
Cleanup
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
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.
|
|
186
246
|
|
|
187
247
|
## Recovery and limits
|
|
188
248
|
|
|
@@ -110,7 +110,7 @@ differs from merged; human merges.
|
|
|
110
110
|
|
|
111
111
|
## Watch health
|
|
112
112
|
|
|
113
|
-
Native review and watch lanes use fresh finite sessions in
|
|
113
|
+
Native review and watch lanes use fresh finite sessions in isolated per-pass
|
|
114
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
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
# Review manager prompt
|
|
2
2
|
|
|
3
|
-
You are a fresh finite review-manager session in its
|
|
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
9
|
and stay quiet when nothing changed. Reconcile before admission, save durable
|
|
10
|
-
continuity
|
|
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,11 +1,12 @@
|
|
|
1
1
|
# Watch manager prompt
|
|
2
2
|
|
|
3
|
-
You are a fresh finite watch-manager session in its
|
|
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
9
|
completed trees, and stay quiet when nothing changed. Reconcile before
|
|
10
|
-
admission, save durable continuity
|
|
11
|
-
|
|
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,6 +5,8 @@ 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.
|
|
@@ -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.
|
|
@@ -71,8 +73,8 @@ 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. Each native watch-manager pass starts a fresh finite session in
|
|
75
|
-
|
|
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
|
|
76
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
|
|
@@ -14,9 +14,10 @@ stop task-owned registrations at completion, cancellation, or expiry.
|
|
|
14
14
|
## Native watch manager
|
|
15
15
|
|
|
16
16
|
The separate native watch manager lane follows the
|
|
17
|
-
[native PR-manager contract](../../axstack/references/automations.md).
|
|
18
|
-
|
|
19
|
-
|
|
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
|
|
20
21
|
admits at most five bounded actionable-event jobs. Waiting PRs stay covered
|
|
21
22
|
without reserving slots. Each job uses its own repository-parented worktree and
|
|
22
23
|
settles with all descendants; no model, per-PR timer, or polling loop waits for
|