axstack 0.20.10 → 0.20.12
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/docs/workflows.md +2 -2
- package/package.json +1 -1
- package/profiles/presets/codex-only.json +2 -2
- package/profiles/presets/mixed.json +2 -2
- package/skills/axstack/references/automations.md +8 -0
- package/skills/axstack/references/evidence-archive.md +15 -5
- package/skills/axstack/references/orca-runtime.md +10 -4
- package/skills/axstack-audit/SKILL.md +1 -1
- package/skills/axstack-cleanup/SKILL.md +77 -10
- package/skills/axstack-implement/SKILL.md +6 -2
package/docs/workflows.md
CHANGED
|
@@ -50,8 +50,8 @@ role.
|
|
|
50
50
|
|
|
51
51
|
| Preset | Author | Ordered peer reviewers | Astra / Fable advisers | Auditor |
|
|
52
52
|
| --- | --- | --- | --- | --- |
|
|
53
|
-
| `mixed` | Sol medium | Sol medium; Opus medium | Astra high / Fable high | Luna
|
|
54
|
-
| `codex-only` | Sol medium | Sol medium; Luna xhigh | Astra high / unavailable | Luna
|
|
53
|
+
| `mixed` | Sol medium | Sol medium; Opus medium | Astra high / Fable high | Luna xhigh |
|
|
54
|
+
| `codex-only` | Sol medium | Sol medium; Luna xhigh | Astra high / unavailable | Luna xhigh |
|
|
55
55
|
| `claude-only` | Opus medium | Opus medium; Sonnet xhigh | unavailable / Fable high | Sonnet xhigh |
|
|
56
56
|
|
|
57
57
|
The installed `<skills-dir>/axstack/roles.json` adds the selected preset name:
|
package/package.json
CHANGED
|
@@ -124,7 +124,7 @@
|
|
|
124
124
|
"provider": "codex",
|
|
125
125
|
"model": "gpt-6-luna",
|
|
126
126
|
"modeId": "full-access",
|
|
127
|
-
"thinkingOptionId": "
|
|
127
|
+
"thinkingOptionId": "xhigh",
|
|
128
128
|
"notes": "Independent visual explanation reviewer: checks the exact artifact for source fidelity and rendered behavior where warranted. Any artifact change invalidates its review. Validate configured availability at launch; hold affected work without fallback."
|
|
129
129
|
},
|
|
130
130
|
{
|
|
@@ -160,7 +160,7 @@
|
|
|
160
160
|
"provider": "codex",
|
|
161
161
|
"model": "gpt-6-luna",
|
|
162
162
|
"modeId": "full-access",
|
|
163
|
-
"thinkingOptionId": "
|
|
163
|
+
"thinkingOptionId": "xhigh",
|
|
164
164
|
"notes": "Read-only end-of-run and checkpoint auditor. Collects scope and outcome evidence with counts and denominators and reports PASS, FAIL, or UNKNOWN without inventing numbers. Never edits, merges, activates, or audits itself."
|
|
165
165
|
},
|
|
166
166
|
{
|
|
@@ -124,7 +124,7 @@
|
|
|
124
124
|
"provider": "codex",
|
|
125
125
|
"model": "gpt-6-luna",
|
|
126
126
|
"modeId": "full-access",
|
|
127
|
-
"thinkingOptionId": "
|
|
127
|
+
"thinkingOptionId": "xhigh",
|
|
128
128
|
"notes": "Independent visual explanation reviewer: checks the exact artifact for source fidelity and rendered behavior where warranted. Any artifact change invalidates its review. Validate configured availability at launch; hold affected work without fallback."
|
|
129
129
|
},
|
|
130
130
|
{
|
|
@@ -160,7 +160,7 @@
|
|
|
160
160
|
"provider": "codex",
|
|
161
161
|
"model": "gpt-6-luna",
|
|
162
162
|
"modeId": "full-access",
|
|
163
|
-
"thinkingOptionId": "
|
|
163
|
+
"thinkingOptionId": "xhigh",
|
|
164
164
|
"notes": "Read-only end-of-run and checkpoint auditor. Collects scope and outcome evidence with counts and denominators and reports PASS, FAIL, or UNKNOWN without inventing numbers. Never edits, merges, activates, or audits itself."
|
|
165
165
|
},
|
|
166
166
|
{
|
|
@@ -238,6 +238,12 @@ or send outcome, not pending CI. Waiting state belongs in GitHub and the compact
|
|
|
238
238
|
record, never in an idle model, per-PR timer, or polling loop.
|
|
239
239
|
Follow the [private evidence archive](evidence-archive.md) when evidence is the
|
|
240
240
|
only local state to preserve; archive success does not relax any other guard.
|
|
241
|
+
For a completed PR-job, including one whose PR remains open, archive classified
|
|
242
|
+
reviewer scratch through the [private evidence archive](evidence-archive.md),
|
|
243
|
+
read back the archive and compact receipt, then follow
|
|
244
|
+
[axstack-cleanup](../../axstack-cleanup/SKILL.md)'s exact-path guards to retire
|
|
245
|
+
the reviewer checkout before merge. This does not release active jobs or manager
|
|
246
|
+
pass workspaces.
|
|
241
247
|
|
|
242
248
|
## Review and repair authority
|
|
243
249
|
|
|
@@ -307,6 +313,8 @@ terminals, unknown liveness, `user_takeover`, and ambiguous publication state.
|
|
|
307
313
|
Never classify all dirt as evidence. If explicitly classified evidence is the
|
|
308
314
|
last retention reason, apply and verify the [private evidence archive](evidence-archive.md),
|
|
309
315
|
update durable continuity, and read it back before native retirement.
|
|
316
|
+
Completed PR-job reviewer scratch uses axstack-cleanup after archive and readback;
|
|
317
|
+
it never changes manager pass preservation or retirement guards.
|
|
310
318
|
|
|
311
319
|
For the manager pass only, verify native run/workspace identity, exclusive
|
|
312
320
|
automation ownership, no unsettled descendants, and a fresh terminal inventory
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
# Private evidence archive
|
|
2
2
|
|
|
3
3
|
Use this only when local review or coordinator evidence is the last reason a
|
|
4
|
-
finished
|
|
4
|
+
finished Orca-owned worktree cannot be retired. It archives evidence; it
|
|
5
5
|
never decides that a terminal or worktree is safe to remove and never performs
|
|
6
6
|
native cleanup.
|
|
7
7
|
|
|
8
8
|
## Eligibility
|
|
9
9
|
|
|
10
10
|
First prove the exact repository, PR or Run/Task, 40-character head SHA, Dispatch,
|
|
11
|
-
workspace, terminal incarnation,
|
|
11
|
+
workspace, terminal incarnation, Orca ownership, descendant settlement,
|
|
12
12
|
and liveness from current native state. A manual chat, `user_takeover`, an
|
|
13
13
|
active or unknown task terminal, an unsettled descendant, unpushed commits,
|
|
14
14
|
dirty source, ambiguous publication, or an unknown file remains protected.
|
|
@@ -51,6 +51,14 @@ identities in durable lane continuity, then read the continuity and archive
|
|
|
51
51
|
manifest back before cleanup. If either readback differs or is unavailable,
|
|
52
52
|
preserve the worktree.
|
|
53
53
|
|
|
54
|
+
For a reviewer checkout with another Dispatch's scratch, archive and read back
|
|
55
|
+
each Dispatch's complete file set independently. The installed helper's retire
|
|
56
|
+
operation may reject another Dispatch's scratch as unclassified dirt. After
|
|
57
|
+
full union classification and verified per-Dispatch archives, use
|
|
58
|
+
[axstack-cleanup](../../axstack-cleanup/SKILL.md)'s exact per-prefix dry-run and
|
|
59
|
+
clean recovery; never force, use a broad target, or treat archive success as
|
|
60
|
+
removal authority.
|
|
61
|
+
|
|
54
62
|
## Native retirement
|
|
55
63
|
|
|
56
64
|
Retire descendants before their parent. For each positively identified unused
|
|
@@ -83,10 +91,12 @@ to matching listed files and never removes directories.
|
|
|
83
91
|
Record the retirement receipt's `removed`, `alreadyAbsent`, and `pending` file
|
|
84
92
|
sets. A repeat invocation reconciles already absent files without changing the
|
|
85
93
|
manifest. A partial or failed invocation preserves the archive; resolve its
|
|
86
|
-
exact hold and retry the same operation until `pending` is empty.
|
|
87
|
-
|
|
94
|
+
exact hold and retry the same operation until `pending` is empty. The verified
|
|
95
|
+
multiple-Dispatch recovery above uses only axstack-cleanup's exact per-prefix
|
|
96
|
+
path. Never replace either path with a shell loop, broad deletion, force, or a
|
|
97
|
+
waiver.
|
|
88
98
|
|
|
89
|
-
Re-read Git and native state after successful
|
|
99
|
+
Re-read Git and native state after successful evidence removal. Any remaining or
|
|
90
100
|
uncertain dirt holds worktree removal. Settlement, liveness/no-writer proof,
|
|
91
101
|
useful-work and publication checks, evidence classification, and removal
|
|
92
102
|
authority remain driver decisions; archive or retirement success proves none of
|
|
@@ -78,8 +78,9 @@ authorized retry so no duplicate writer starts.
|
|
|
78
78
|
|
|
79
79
|
Give each reviewer a separate Orca-managed child worktree under the candidate's
|
|
80
80
|
worktree, including report-only reviews and rechecks; never share the author's
|
|
81
|
-
checkout or another reviewer's checkout.
|
|
82
|
-
|
|
81
|
+
checkout or another reviewer's checkout. A later review gets a fresh Orca-managed
|
|
82
|
+
child worktree after the prior settled review's evidence and cleanup are
|
|
83
|
+
reconciled. Use the runtime-owned worktree guide,
|
|
83
84
|
not a raw Git worktree or temporary clone. Before dispatch, verify a detached
|
|
84
85
|
checkout of the exact candidate SHA and the pinned base in that child.
|
|
85
86
|
|
|
@@ -95,8 +96,13 @@ owner. Remove only that exact validated owned path, with no glob or parent-root
|
|
|
95
96
|
deletion; never wipe a general cache. Uncertain temporary files are preserved
|
|
96
97
|
for later reconciliation. Incidental tool-managed caches are not review evidence.
|
|
97
98
|
Before removing a reviewer worktree, preserve its report and supporting evidence
|
|
98
|
-
in the
|
|
99
|
-
|
|
99
|
+
in the private evidence archive outside the disposable checkout, verify manifest
|
|
100
|
+
readback, and update the run record's paths. A settled reviewer Dispatch can be
|
|
101
|
+
cleaned before PR merge through [axstack-cleanup](../../axstack-cleanup/SKILL.md)
|
|
102
|
+
only after its classification, readback, and removal guards pass. Preserve
|
|
103
|
+
active or unknown review evidence and unique evidence whose bytes must survive;
|
|
104
|
+
uncertain ownership or evidence holds. Terminal release alone is not permission
|
|
105
|
+
to discard evidence or remove the worktree.
|
|
100
106
|
|
|
101
107
|
## Consume, settle, and recover
|
|
102
108
|
|
|
@@ -25,7 +25,7 @@ immediately before an actual auditor profile or session dispatch. Ordinary
|
|
|
25
25
|
audit reading and record writing do not load it, and the auditor never
|
|
26
26
|
dispatches.
|
|
27
27
|
|
|
28
|
-
Core owns the `axstack-auditor` profile (codex/gpt-6-luna
|
|
28
|
+
Core owns the `axstack-auditor` profile (codex/gpt-6-luna xhigh) and its
|
|
29
29
|
invocation. This skill governs what that auditor reads, measures, and proposes.
|
|
30
30
|
The user-chosen improvement mode is a tested, independently reviewed PR that a
|
|
31
31
|
human merges.
|
|
@@ -34,8 +34,8 @@ Never clean a manual chat, the current driver, `user_takeover`, an active or
|
|
|
34
34
|
unknown worker, an unsettled descendant, or a resource with ambiguous ownership.
|
|
35
35
|
Preserve dirty or unknown files, unpushed commits, unmerged useful work,
|
|
36
36
|
ambiguous publication, and evidence that has not been durably preserved. Do not
|
|
37
|
-
force, bulk-clean, override a hook failure, edit a runtime
|
|
38
|
-
scheduler, daemon, or state machine.
|
|
37
|
+
force native removal, bulk-clean, override a hook failure, edit a runtime
|
|
38
|
+
database, or add a scheduler, daemon, or state machine.
|
|
39
39
|
|
|
40
40
|
## Reconcile each candidate
|
|
41
41
|
|
|
@@ -57,13 +57,68 @@ Classify exact evidence files individually. Save the compact cleanup decision
|
|
|
57
57
|
and identities in the private run record or another configured durable private
|
|
58
58
|
location outside disposable worktrees. When the evidence archive applies, use
|
|
59
59
|
its helper with either the existing PR identity or the non-PR Run and Task
|
|
60
|
-
identity; never invent a PR number. Read back
|
|
61
|
-
archive manifest, including hashes and exact identities, before
|
|
62
|
-
source copy or workspace.
|
|
60
|
+
identity; never invent a PR number. Read back the durable record and, when an
|
|
61
|
+
archive is used, its manifest, including hashes and exact identities, before
|
|
62
|
+
removing any source copy or workspace.
|
|
63
63
|
|
|
64
64
|
Archive success proves only preservation of the listed bytes. It does not prove
|
|
65
65
|
settlement, exit, ownership, a clean worktree, publication, or removal safety.
|
|
66
66
|
|
|
67
|
+
For a settled reviewer Dispatch, the reviewer worktree can be retired while its
|
|
68
|
+
PR remains open, before merge, after its report and supporting evidence are
|
|
69
|
+
archived privately and read back. Generated reviewer scratch is disposable
|
|
70
|
+
after a compact durable receipt is written outside the review worktree and read
|
|
71
|
+
back. Bind that receipt to the exact repository, Run,
|
|
72
|
+
Task, Dispatch, reviewer workspace and terminal, exact head SHA and base SHA,
|
|
73
|
+
review verdict, coverage and limitations, test and CI result pointers, and the
|
|
74
|
+
user authorization and scope for cleanup. A raw reviewer report may be discarded
|
|
75
|
+
after its verdict and limitations are compacted into that read-back receipt;
|
|
76
|
+
use the private evidence archive for the report and supporting evidence. Verify
|
|
77
|
+
each Dispatch archive and manifest readback independently. Preserve the separate
|
|
78
|
+
author candidate with useful unmerged work; reviewer cleanup never removes it.
|
|
79
|
+
|
|
80
|
+
Use only a named run-owned scratch prefix recorded with the Dispatch. Multiple
|
|
81
|
+
Dispatches in the same reviewer worktree are recovery for missed earlier
|
|
82
|
+
cleanup; after independent archives and readback, use per-prefix removal. Two or
|
|
83
|
+
more review passes in the same reviewer worktree may leave distinct prefixes;
|
|
84
|
+
each named run-owned scratch prefix must belong to an accepted settled Dispatch
|
|
85
|
+
in the Run. Require `git status --porcelain=v1 -z --untracked-files=all`
|
|
86
|
+
to show all dirt as untracked files inside a run-owned scratch prefix. Prove
|
|
87
|
+
every remaining untracked file individually belongs to one of those named
|
|
88
|
+
run-owned scratch prefixes; any tracked, staged, unmerged or unpushed work,
|
|
89
|
+
dirty source, or dirt outside them holds. Check ignored files across the whole
|
|
90
|
+
worktree too; unknown or ignored content holds. Validate that
|
|
91
|
+
the detached checkout still matches the reviewed head and check local commits
|
|
92
|
+
against recorded remote refs; unknown divergence holds. Validate that
|
|
93
|
+
the exact reviewed scratch prefix names the recorded directory inside the exact
|
|
94
|
+
reviewer worktree, never a repository-root target or symlink. Inspect every
|
|
95
|
+
descendant for symlinks, hard links, special files, unknown content, user-owned
|
|
96
|
+
files, or ignored files; any mismatch holds. Active or `user_takeover` terminals
|
|
97
|
+
also hold.
|
|
98
|
+
|
|
99
|
+
For each prefix, list the exact scoped path and all descendants with their
|
|
100
|
+
types, confirm each belongs to generated reviewer scratch, and record that
|
|
101
|
+
inventory. For each prefix, perform an exact-path dry-run and exact-path deletion
|
|
102
|
+
separately. Dry-run the exact scoped path from the reviewer worktree root with
|
|
103
|
+
`git clean -nd -- <exact reviewed scratch prefix>`
|
|
104
|
+
with the concrete reviewed relative prefix substituted for the angle-bracket
|
|
105
|
+
notation. Compare its sole target to the classified directory; an empty,
|
|
106
|
+
partial, or different result holds. Immediately before each deletion, including
|
|
107
|
+
each next deletion, re-read the compact receipt, complete Git status with
|
|
108
|
+
whole-worktree dirt and ignored files, every remaining prefix inventory, and
|
|
109
|
+
native ownership and liveness. Compare these reads against the expected
|
|
110
|
+
post-deletion state: previously deleted proven prefixes and their files are
|
|
111
|
+
absent, while remaining classified prefixes and outside content still match.
|
|
112
|
+
Only unexpected changes hold. Then run
|
|
113
|
+
`git clean -fd -- <same exact prefix>` with the identical concrete path, record
|
|
114
|
+
that path and outcome, and repeat for the next proven prefix. Recheck clean Git status
|
|
115
|
+
after the last deletion. Require final clean Git status before native
|
|
116
|
+
exact-workspace removal without force. Use no unresolved variable as a destructive target.
|
|
117
|
+
Never use `-x`, a
|
|
118
|
+
glob, a repository-root target, extra force, or broad clean.
|
|
119
|
+
This scratch decision does not waive any other preservation or native removal
|
|
120
|
+
guard.
|
|
121
|
+
|
|
67
122
|
## Apply distinct native operations
|
|
68
123
|
|
|
69
124
|
Treat these operations as separate decisions and receipts:
|
|
@@ -81,15 +136,27 @@ Treat these operations as separate decisions and receipts:
|
|
|
81
136
|
3. **Worktree removal.** Re-read Git status, branch/upstream divergence,
|
|
82
137
|
unpushed commits, forge merge/publication state, children, terminals, and
|
|
83
138
|
archived evidence immediately before the native exact-workspace removal.
|
|
84
|
-
When archived evidence is the last dirt, use the evidence
|
|
85
|
-
manifest-bound retirement operation and require an empty
|
|
86
|
-
|
|
139
|
+
When archived evidence is the last dirt for one Dispatch, use the evidence
|
|
140
|
+
archive helper's manifest-bound retirement operation and require an empty
|
|
141
|
+
pending set. If multiple Dispatch scratch prefixes remain in one checkout,
|
|
142
|
+
the helper may reject the other Dispatch's files as unclassified; after
|
|
143
|
+
independently verified per-Dispatch archives and full union classification,
|
|
144
|
+
use the exact per-prefix dry-run and clean above. Never unlink through prose
|
|
145
|
+
or a shell loop. Verify the effective Archive Script
|
|
87
146
|
provenance before native removal: an unknown or required-but-untrusted hook
|
|
88
147
|
holds. Record its native outcome as `unconfigured`, `passed`, `failed`, or
|
|
89
148
|
`unknown`; only `unconfigured` or trusted `passed` may advance. Account for
|
|
90
149
|
branch-deletion side effects explicitly, then re-list both native workspaces
|
|
91
|
-
and Git refs.
|
|
92
|
-
|
|
150
|
+
and Git refs. Read back each remaining local review ref against its recorded
|
|
151
|
+
name and tip. Any branch with unknown origin, unique commits, an active
|
|
152
|
+
worktree, or a remote counterpart must be preserved. Only when provenance
|
|
153
|
+
proves a ref was created for the removed reviewer checkout and its tip is
|
|
154
|
+
already reachable from the preserved author candidate or confirmed remote PR
|
|
155
|
+
head, permit
|
|
156
|
+
exact-ref expected-old ref deletion and read back its absence. Never delete
|
|
157
|
+
the author branch or use generic force. A failed or unknown hook outcome or
|
|
158
|
+
uncertain response preserves the resource; never force or substitute shell
|
|
159
|
+
deletion.
|
|
93
160
|
4. **Chat archival.** Attempt it only if the version-matched runtime guide
|
|
94
161
|
advertises a distinct supported operation and the scoped chat is eligible.
|
|
95
162
|
Otherwise record chat archival as unsupported. Process exit, worker release,
|
|
@@ -163,7 +163,11 @@ For each PR:
|
|
|
163
163
|
1. Dispatch `axstack-author` under §§3-5 and consume its strict-TDD receipt.
|
|
164
164
|
2. Publish through candidate-publication and read back the exact SHA.
|
|
165
165
|
3. Dispatch and consume the authored-mode `axstack-review` selected from actual
|
|
166
|
-
author provenance.
|
|
166
|
+
author provenance. After each settled review, run `axstack-cleanup` for its
|
|
167
|
+
exact reviewer resources before PR merge, preserving and reading back the
|
|
168
|
+
private evidence archive before eligible worktree retirement. A later review
|
|
169
|
+
uses a fresh child checkout. Keep the author candidate until merge and
|
|
170
|
+
Close-out; a cleanup hold preserves only the affected reviewer resource.
|
|
167
171
|
4. Route the verdict. `APPROVE` at that head plus `axstack-watch` §5's full
|
|
168
172
|
predicate—required checks, all feedback, approvals, mergeability, and
|
|
169
173
|
exact-revision receipts—records `merge-ready`. With required checks pending,
|
|
@@ -187,7 +191,7 @@ all-merged event—two per run—and (c) serious risk; never progress.
|
|
|
187
191
|
Merge-ready is the human boundary: the user merges, bottom-up for a stack. The
|
|
188
192
|
driver resumes on the user's next message or `/axstack-watch`; no Orca merge
|
|
189
193
|
wake exists today. Re-read forge state: record forge-merged PRs as `merged`;
|
|
190
|
-
changed heads or feedback return to step 1;
|
|
194
|
+
changed heads or feedback return to step 1; retain useful author work before Close-out.
|
|
191
195
|
Run Close-out once only after every required PR is forge-merged and acceptance
|
|
192
196
|
passes. It settles workers, records counts, makes the auditor decision and
|
|
193
197
|
settlement, releases worktrees, closes eligible tickets, and archives the run.
|