axstack 0.20.11 → 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/package.json
CHANGED
|
@@ -238,9 +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
|
|
242
|
-
|
|
243
|
-
|
|
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.
|
|
244
247
|
|
|
245
248
|
## Review and repair authority
|
|
246
249
|
|
|
@@ -310,8 +313,8 @@ terminals, unknown liveness, `user_takeover`, and ambiguous publication state.
|
|
|
310
313
|
Never classify all dirt as evidence. If explicitly classified evidence is the
|
|
311
314
|
last retention reason, apply and verify the [private evidence archive](evidence-archive.md),
|
|
312
315
|
update durable continuity, and read it back before native retirement.
|
|
313
|
-
|
|
314
|
-
|
|
316
|
+
Completed PR-job reviewer scratch uses axstack-cleanup after archive and readback;
|
|
317
|
+
it never changes manager pass preservation or retirement guards.
|
|
315
318
|
|
|
316
319
|
For the manager pass only, verify native run/workspace identity, exclusive
|
|
317
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,11 +96,11 @@ 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
|
-
|
|
100
|
-
[axstack-cleanup](../../axstack-cleanup/SKILL.md)
|
|
101
|
-
|
|
102
|
-
active or
|
|
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;
|
|
103
104
|
uncertain ownership or evidence holds. Terminal release alone is not permission
|
|
104
105
|
to discard evidence or remove the worktree.
|
|
105
106
|
|
|
@@ -64,21 +64,30 @@ removing any source copy or workspace.
|
|
|
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
|
|
68
|
-
|
|
69
|
-
|
|
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,
|
|
70
72
|
Task, Dispatch, reviewer workspace and terminal, exact head SHA and base SHA,
|
|
71
73
|
review verdict, coverage and limitations, test and CI result pointers, and the
|
|
72
74
|
user authorization and scope for cleanup. A raw reviewer report may be discarded
|
|
73
75
|
after its verdict and limitations are compacted into that read-back receipt;
|
|
74
|
-
use the private evidence archive for
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
Use only a named run-owned scratch prefix recorded with the Dispatch.
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
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
|
|
82
91
|
the detached checkout still matches the reviewed head and check local commits
|
|
83
92
|
against recorded remote refs; unknown divergence holds. Validate that
|
|
84
93
|
the exact reviewed scratch prefix names the recorded directory inside the exact
|
|
@@ -87,17 +96,25 @@ descendant for symlinks, hard links, special files, unknown content, user-owned
|
|
|
87
96
|
files, or ignored files; any mismatch holds. Active or `user_takeover` terminals
|
|
88
97
|
also hold.
|
|
89
98
|
|
|
90
|
-
|
|
91
|
-
belongs to generated reviewer scratch, and record that
|
|
92
|
-
|
|
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
|
|
93
103
|
`git clean -nd -- <exact reviewed scratch prefix>`
|
|
94
104
|
with the concrete reviewed relative prefix substituted for the angle-bracket
|
|
95
105
|
notation. Compare its sole target to the classified directory; an empty,
|
|
96
|
-
partial, or different result holds.
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
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
|
|
101
118
|
glob, a repository-root target, extra force, or broad clean.
|
|
102
119
|
This scratch decision does not waive any other preservation or native removal
|
|
103
120
|
guard.
|
|
@@ -119,15 +136,27 @@ Treat these operations as separate decisions and receipts:
|
|
|
119
136
|
3. **Worktree removal.** Re-read Git status, branch/upstream divergence,
|
|
120
137
|
unpushed commits, forge merge/publication state, children, terminals, and
|
|
121
138
|
archived evidence immediately before the native exact-workspace removal.
|
|
122
|
-
When archived evidence is the last dirt, use the evidence
|
|
123
|
-
manifest-bound retirement operation and require an empty
|
|
124
|
-
|
|
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
|
|
125
146
|
provenance before native removal: an unknown or required-but-untrusted hook
|
|
126
147
|
holds. Record its native outcome as `unconfigured`, `passed`, `failed`, or
|
|
127
148
|
`unknown`; only `unconfigured` or trusted `passed` may advance. Account for
|
|
128
149
|
branch-deletion side effects explicitly, then re-list both native workspaces
|
|
129
|
-
and Git refs.
|
|
130
|
-
|
|
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.
|
|
131
160
|
4. **Chat archival.** Attempt it only if the version-matched runtime guide
|
|
132
161
|
advertises a distinct supported operation and the scoped chat is eligible.
|
|
133
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.
|