axstack 0.37.0 → 0.38.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/docs/host-operations.md +9 -5
- package/package.json +1 -1
- package/skills/axstack/references/automations.md +7 -2
- package/skills/axstack/references/lifecycle.md +2 -1
- package/skills/axstack/references/review-manager-prompt.md +44 -3
- package/skills/axstack/references/role-roster.md +8 -3
- package/skills/axstack/references/routing.md +2 -1
- package/skills/axstack/references/run-record.md +2 -0
- package/skills/axstack-research/SKILL.md +18 -6
package/README.md
CHANGED
|
@@ -115,8 +115,8 @@ subject to explicit stop-after-publication or observation requests.
|
|
|
115
115
|
See [Host operations](docs/host-operations.md#chat-run-watch-activation) for wake activation and cadence.
|
|
116
116
|
See [Chat-run PR watch](docs/workflows.md#chat-run-pr-watch) for the lifecycle and quiet cadence.
|
|
117
117
|
|
|
118
|
-
An optional native T3 review manager runs finite peer-review passes
|
|
119
|
-
|
|
118
|
+
An optional native T3 review manager runs finite peer-review passes hourly
|
|
119
|
+
(`everyMs:3600000`); the review automation never merges for you. Activation needs live
|
|
120
120
|
host validation. See [PR-manager setup and safety](docs/host-operations.md#optional-native-peer-review-automation).
|
|
121
121
|
|
|
122
122
|
|
package/docs/host-operations.md
CHANGED
|
@@ -52,7 +52,8 @@ Every verified own-PR publication arms or joins the driver's chat-run watch.
|
|
|
52
52
|
Its bound T3 schedule uses the cadence in [Chat-run watch activation](#chat-run-watch-activation).
|
|
53
53
|
See [Chat-run PR watch](workflows.md#chat-run-pr-watch) for authority, schedule identity and stop conditions.
|
|
54
54
|
Missing schedule capability holds activation.
|
|
55
|
-
The optional review manager uses an unbound
|
|
55
|
+
The optional review manager uses an unbound hourly T3 schedule
|
|
56
|
+
(`everyMs:3600000`) and requires
|
|
56
57
|
its separate native canary before activation. Installed guidance does not prove
|
|
57
58
|
live behavior. See [Review manager](../skills/axstack/references/automations.md).
|
|
58
59
|
|
|
@@ -172,8 +173,10 @@ with the PR; remove the exact unit and route after settlement.
|
|
|
172
173
|
|
|
173
174
|
The optional native review manager uses the VPS T3 project `axstack-review-lane`
|
|
174
175
|
on the existing host clone. Configure and read back the lane's `axstack-owner`
|
|
175
|
-
binding, then create an unbound T3 schedule
|
|
176
|
-
|
|
176
|
+
binding, then create an unbound hourly T3 schedule (`everyMs:3600000`).
|
|
177
|
+
The packaged prompt checks for a quiet exit before skill loading; full passes
|
|
178
|
+
follow the lifecycle below. Each pass starts in a fresh finite worktree from
|
|
179
|
+
`origin/main`, fetches first, and checks its
|
|
177
180
|
binding. Continuity lives outside worktrees at
|
|
178
181
|
`~/.local/share/axstack/runs/review-manager/progress.md`. Per-PR detached
|
|
179
182
|
review checkouts come from existing host clones; a missing clone holds that job.
|
|
@@ -211,8 +214,9 @@ and [Single T3 server](#single-t3-server).
|
|
|
211
214
|
|
|
212
215
|
## Review automation
|
|
213
216
|
|
|
214
|
-
The review manager uses one short packaged prompt that
|
|
215
|
-
relative contract and invokes `axstack-review
|
|
217
|
+
The review manager uses one short packaged prompt that checks for a quiet exit,
|
|
218
|
+
then loads the current relative contract and invokes `axstack-review` for a full pass.
|
|
219
|
+
Bounded jobs publish ordinary
|
|
216
220
|
exact-head review verdicts; peer PRs are merged by the user. Manual adopted-PR maintenance
|
|
217
221
|
uses `axstack-watch` with local-SHA review before authorized publication.
|
|
218
222
|
Exceptional security, permanent-on-chain, or architectural decisions remain actionable in GitHub or a durable user-owned conversation
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "axstack",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.38.0",
|
|
4
4
|
"description": "Axstack installer and setup CLI: installs owned chat skills and role data, configures supported harness settings, and checks T3 Code capabilities.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"claude-code",
|
|
@@ -40,11 +40,16 @@ A missing, non-durable or unreadable continuity path holds admission.
|
|
|
40
40
|
Follow the [Run record](run-record.md) and use the
|
|
41
41
|
[Review-manager continuity template](run-record.md#review-manager-continuity-template):
|
|
42
42
|
overwrite its four current-state sections and archive superseded history once
|
|
43
|
-
beside it. A no-change pass appends at most one history line.
|
|
43
|
+
beside it. A no-change full pass appends at most one history line.
|
|
44
|
+
|
|
45
|
+
Follow the quiet check in the packaged [review-manager prompt](review-manager-prompt.md).
|
|
46
|
+
The full pass records in Watermarks `Quiet gate:` as the sorted list and
|
|
47
|
+
`Last full pass:` as UTC only as owner-of-record, then reads back the save.
|
|
48
|
+
The sections below govern full passes; a quiet exit bypasses their teardown.
|
|
44
49
|
|
|
45
50
|
Configure the lane thread via `t3_thread_configure` with the `axstack-owner`
|
|
46
51
|
binding and verify its read-back. Then `schedule_task` uses the packaged prompt,
|
|
47
|
-
`everyMs:
|
|
52
|
+
hourly with `everyMs:3600000`, `bindToCurrentThread:false`, and a stable `clientRequestId`.
|
|
48
53
|
Record the schedule ID, project, lane binding and pass thread/run identities.
|
|
49
54
|
Each pass compares its own `t3_thread_configuration` with the recorded binding
|
|
50
55
|
after any owner-only instance update under [Provider bindings](t3-runtime.md#preflight-and-binding), before admission.
|
|
@@ -131,7 +131,8 @@ differs from merged.
|
|
|
131
131
|
## Review automation health
|
|
132
132
|
|
|
133
133
|
The native review manager uses fresh finite T3 pass threads from its dedicated
|
|
134
|
-
lane project on
|
|
134
|
+
lane project on an hourly T3 scheduled task (`everyMs:3600000`). It admits
|
|
135
|
+
actionable PR events
|
|
135
136
|
within measured host capacity; waiting PRs remain covered without reserving slots.
|
|
136
137
|
Bounded PR jobs use driver-made detached checkouts and settle after descendants.
|
|
137
138
|
Build no custom scheduler, state engine or legacy fallback. See
|
|
@@ -1,6 +1,44 @@
|
|
|
1
1
|
# Review manager prompt
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
The account picker must run first, before the quiet check: from the installed
|
|
4
|
+
`axstack` skill directory, run `bun scripts/pick-instance.js --provider <own provider> --json`.
|
|
5
|
+
Find this pass's current instance from `t3_thread_configuration` in the picker
|
|
6
|
+
JSON `instances` and inspect its `state`; defer reference loads until a full pass.
|
|
7
|
+
An eligible current instance remains quiet-eligible even when `chosenInstanceId`
|
|
8
|
+
names a different instance.
|
|
9
|
+
Run the quiet check before invoking `axstack-review` or reading any `skills/**` file.
|
|
10
|
+
|
|
11
|
+
Resolve self with `gh api user --jq .login`, then union two paginated `gh search prs`
|
|
12
|
+
queries (`review-requested:@me` and `involves:@me`), each with `--limit 1000`,
|
|
13
|
+
for open, non-draft PRs authored by someone else,
|
|
14
|
+
producing a sorted (repo#number, headRefOid, updatedAt) list.
|
|
15
|
+
Search omits head OIDs: obtain them with read-only `gh pr view --json headRefOid`.
|
|
16
|
+
A result count at or above 1000 in either query makes coverage incomplete.
|
|
17
|
+
Inventory every page of T3 lane threads and their run liveness, including recorded
|
|
18
|
+
PR-job descendants, using exact lane identities.
|
|
19
|
+
Read continuity at `~/.local/share/axstack/runs/review-manager/progress.md` and
|
|
20
|
+
compare its Watermarks with the inventory:
|
|
21
|
+
|
|
22
|
+
- Run the full pass when the picker JSON marks this pass's current instance `excluded`.
|
|
23
|
+
- Run the full pass when the picker exits with code 1.
|
|
24
|
+
- Run the full pass when the picker exits with code 2.
|
|
25
|
+
- Run the full pass when the sorted list differs from `Quiet gate:`.
|
|
26
|
+
- Run the full pass when any other lane thread is non-terminal.
|
|
27
|
+
- Run the full pass when continuity or either watermark is missing, malformed or unreadable.
|
|
28
|
+
- Run the full pass when `Last full pass:` is at least 4 hours old or in the future.
|
|
29
|
+
- Run the full pass when any call fails or pagination, PR head OIDs or thread/run liveness is incomplete or unknown.
|
|
30
|
+
- Run the full pass when continuity records any unserved, capacity-deferred, `INCOMPLETE` or re-eligible event, or any open hold with a resume condition beyond a user decision (such as capacity or remeasure).
|
|
31
|
+
|
|
32
|
+
Holds awaiting only the user remain quiet-eligible: a user decision on the PR
|
|
33
|
+
changes `updatedAt` and the 4 h full pass bounds reminders.
|
|
34
|
+
|
|
35
|
+
If every busy condition is false, end the turn with no text, no skill load, no sweep and no continuity write.
|
|
36
|
+
Otherwise continue with the full pass below; incomplete evidence retains the
|
|
37
|
+
existing admission and cleanup holds.
|
|
38
|
+
|
|
39
|
+
## Full pass
|
|
40
|
+
|
|
41
|
+
Follow [Provider bindings](t3-runtime.md#preflight-and-binding) for own account selection.
|
|
4
42
|
|
|
5
43
|
You are a fresh finite T3 review-manager pass in project `axstack-review-lane`
|
|
6
44
|
on the VPS's existing `axatbhardwaj/axstack` clone. Fetch first; this unbound
|
|
@@ -17,5 +55,8 @@ Report retained worktree count and disable the schedule and hold past its
|
|
|
17
55
|
authorized limit. Only the owner retires settled predecessors and saves and
|
|
18
56
|
reads back continuity at
|
|
19
57
|
`~/.local/share/axstack/runs/review-manager/progress.md` using
|
|
20
|
-
`run-record.md#review-manager-continuity-template
|
|
21
|
-
|
|
58
|
+
`run-record.md#review-manager-continuity-template`.
|
|
59
|
+
The full pass records in Watermarks `Quiet gate:` as the sorted list and
|
|
60
|
+
`Last full pass:` as UTC only as owner-of-record, then reads back the save.
|
|
61
|
+
Settle descendants and end the finite turn. Stay quiet when unchanged.
|
|
62
|
+
Never check out a PR branch here.
|
|
@@ -58,11 +58,16 @@
|
|
|
58
58
|
`axstack-research-x`, `axstack-checker`, `axstack-research-code-sol`,
|
|
59
59
|
`axstack-explore-execution-sol`, `axstack-auditor-sol`,
|
|
60
60
|
`axstack-explore-codebase-flash`.
|
|
61
|
-
Always dispatch optional seats when configured and available
|
|
61
|
+
Always dispatch optional seats when configured and available, except research
|
|
62
|
+
branches, which follow [Research step 2](../../axstack-research/SKILL.md#procedure) sizing.
|
|
63
|
+
A research branch unneeded by an open claim is recorded `not needed (<reason>)`,
|
|
64
|
+
never as absent or a malfunction. Only a
|
|
62
65
|
launch failure, trust/login prompt, or prompt block makes one absent:
|
|
63
66
|
fence the attempt, record `absent (<reason>)`, name it once in the next
|
|
64
67
|
read-back, and skip it without a relay or substitution. An uncertain
|
|
65
|
-
dispatch is reconciled, not called absent. A mixed fan-out
|
|
66
|
-
|
|
68
|
+
dispatch is reconciled, not called absent. A sized mixed research fan-out
|
|
69
|
+
requires dispatched branches spanning at least two different providers;
|
|
70
|
+
otherwise hold that fan-out. Every other mixed fan-out, including arena and
|
|
71
|
+
peer review, retains at least one Codex and one Claude seat; otherwise hold that fan-out.
|
|
67
72
|
Intentional absences in codex-only and claude-only remain unchanged.
|
|
68
73
|
- `axstack-debug-investigator-1..4` probe L1 briefs.
|
|
@@ -44,7 +44,8 @@ An exhausted account with no eligible sibling still holds; dispatched roles neve
|
|
|
44
44
|
Follow [Provider bindings](t3-runtime.md#preflight-and-binding) for driver account re-selection at turn boundaries.
|
|
45
45
|
[Model discipline](contracts.md#model-discipline) governs optional seats,
|
|
46
46
|
auditor preflight, and required holds; [Role roster](role-roster.md) governs
|
|
47
|
-
single-provider absence
|
|
47
|
+
single-provider absence, mixed research with at least two different providers,
|
|
48
|
+
and other mixed Codex+Claude fan-out (including arena and peer review).
|
|
48
49
|
Bundled presets are setup inputs, not runtime readiness proof.
|
|
49
50
|
|
|
50
51
|
Load the [Role roster](role-roster.md) for configured roles and authored-review pairings.
|
|
@@ -159,6 +159,8 @@ in the adjacent history file, not below this template.
|
|
|
159
159
|
- <PR or lane, reason, evidence, owner, resume condition; or none>
|
|
160
160
|
|
|
161
161
|
## Watermarks
|
|
162
|
+
- Quiet gate: <sorted (repo#number, headRefOid, updatedAt) list; [] when empty>
|
|
163
|
+
- Last full pass: <UTC timestamp of the last full pass>
|
|
162
164
|
- <PR/event identity, exact head/base, last observed receipt; or none>
|
|
163
165
|
|
|
164
166
|
## Last pass
|
|
@@ -28,10 +28,20 @@ is part of research.
|
|
|
28
28
|
gathering evidence only after the target and stopping boundary are explicit.
|
|
29
29
|
|
|
30
30
|
2. **Fan out research:** A single factual lookup stays in the current chat.
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
31
|
+
For other runs, dispatch through T3 `delegate_task` only branches whose
|
|
32
|
+
source class (requirements, code, execution, web, X) an open answer-changing claim needs.
|
|
33
|
+
Dispatch requirements only when scope is unclear.
|
|
34
|
+
Dispatch execution when a claim depends on runtime behavior.
|
|
35
|
+
Dispatch X only when a claim depends on X posts.
|
|
36
|
+
Record each skipped branch as `not needed (<reason>)`.
|
|
37
|
+
For each needed source class, retain two isolated branches where configured.
|
|
38
|
+
In mixed, each needed source class retains branches from different providers.
|
|
39
|
+
The code pair is `axstack-research-code` +
|
|
40
|
+
`axstack-research-code-sol`; the web pair is `axstack-research-web` +
|
|
41
|
+
`axstack-research-web-google`; the execution pair is `axstack-explore-execution` +
|
|
42
|
+
`axstack-explore-execution-sol`. Requirements, code, and web use Sonnet high
|
|
43
|
+
in mixed/claude-only and Codex in codex-only; web-google uses
|
|
44
|
+
Gemini/Antigravity with Google Search built in, and X uses Grok.
|
|
35
45
|
Give each branch one owner, allow no cross-reading, and require a cited note
|
|
36
46
|
with a URL and access date per claim; re-open sources and never trust a search
|
|
37
47
|
summary. The driver reconciles agreements/disagreements per claim.
|
|
@@ -61,8 +71,10 @@ is part of research.
|
|
|
61
71
|
never averaging findings. Record an intentionally absent pair and proceed
|
|
62
72
|
with the base seat alone. The `-sol` pair is optional: fence a launch failure,
|
|
63
73
|
trust/login prompt, or prompt block; record `absent (<reason>)`, and continue
|
|
64
|
-
with the base seat.
|
|
65
|
-
|
|
74
|
+
with the base seat. A sized mixed research fan-out requires dispatched
|
|
75
|
+
branches spanning at least two different providers; otherwise hold that fan-out.
|
|
76
|
+
Every other mixed fan-out, including arena and peer review, retains at least one
|
|
77
|
+
Codex and one Claude seat; otherwise hold that fan-out.
|
|
66
78
|
|
|
67
79
|
3. **Gather primary source evidence.** Inspect the actual documentation, code,
|
|
68
80
|
or tool output for every answer-changing claim. Apply the source standards
|