axstack 0.20.31 → 0.22.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 +25 -23
- package/bin/axstack.js +17 -5
- package/docs/installation.md +104 -51
- package/docs/workflows.md +176 -131
- package/package.json +3 -3
- package/profiles/presets/claude-only.json +23 -23
- package/profiles/presets/codex-only.json +10 -10
- package/profiles/presets/mixed.json +24 -24
- package/skills/axstack/references/automations.md +136 -137
- package/skills/axstack/references/autopilot.md +30 -17
- package/skills/axstack/references/candidate-publication.md +13 -8
- package/skills/axstack/references/contracts.md +13 -12
- package/skills/axstack/references/design-lens.md +3 -3
- package/skills/axstack/references/diligence.md +3 -1
- package/skills/axstack/references/evidence-archive.md +38 -33
- package/skills/axstack/references/lifecycle.md +64 -50
- package/skills/axstack/references/review-manager-prompt.md +13 -11
- package/skills/axstack/references/role-roster.md +12 -2
- package/skills/axstack/references/routing.md +33 -25
- package/skills/axstack/references/run-record.md +35 -16
- package/skills/axstack/references/t3-runtime.md +237 -0
- package/skills/axstack/references/test-audit-weekly.md +62 -0
- package/skills/axstack/references/test-value.md +120 -0
- package/skills/axstack/references/ui-verification.md +5 -1
- package/skills/axstack/references/workspace-hygiene.md +102 -156
- package/skills/axstack/scripts/pr-digest.js +120 -0
- package/skills/axstack/scripts/resolve-models.js +102 -38
- package/skills/axstack-align/SKILL.md +19 -56
- package/skills/axstack-audit/SKILL.md +12 -3
- package/skills/axstack-audit/references/record.md +1 -1
- package/skills/axstack-brainstorm/SKILL.md +24 -0
- package/skills/axstack-brainstorm/references/arena.md +56 -0
- package/skills/axstack-cleanup/SKILL.md +69 -87
- package/skills/axstack-debug/SKILL.md +1 -1
- package/skills/axstack-explain/SKILL.md +1 -1
- package/skills/axstack-explain/references/visual-qa.md +2 -0
- package/skills/axstack-implement/SKILL.md +56 -20
- package/skills/axstack-improve/SKILL.md +24 -4
- package/skills/axstack-relay/SKILL.md +8 -6
- package/skills/axstack-research/SKILL.md +11 -4
- package/skills/axstack-review/SKILL.md +34 -30
- package/skills/axstack-spec/SKILL.md +18 -13
- package/skills/axstack-tickets/SKILL.md +7 -8
- package/skills/axstack-watch/SKILL.md +97 -27
- package/skills/axstack-watch/references/watch-runtime.md +51 -66
- package/src/capabilities.js +33 -69
- package/src/installer.js +1 -1
- package/src/instructions.js +9 -4
- package/skills/axstack/references/orca-runtime.md +0 -202
- package/skills/axstack/scripts/trust-path.js +0 -123
|
@@ -26,7 +26,9 @@ Set the rung from researched facts; never ask the user to choose it. A change
|
|
|
26
26
|
inside one module's existing interface, ownership, data flow, and failure
|
|
27
27
|
guarantees is Rung 0: no design questions or sketch. Otherwise load the
|
|
28
28
|
[design lens ladder](../axstack/references/design-lens.md) for Rung 1 or 2
|
|
29
|
-
and settle only unresolved areas in its order within the existing budget.
|
|
29
|
+
and settle only unresolved areas in its order within the existing budget.
|
|
30
|
+
For unresolved Rung 1 or 2 design questions, load
|
|
31
|
+
[Brainstorm](../axstack-brainstorm/SKILL.md) inline. Carry a
|
|
30
32
|
Rung 1 or 2 sketch in the substantial spec's `Design` section or the returned
|
|
31
33
|
small-change intent. A design question alone does not make small work
|
|
32
34
|
substantial; apply routing's existing size reassessment rule.
|
|
@@ -37,7 +39,7 @@ substantial; apply routing's existing size reassessment rule.
|
|
|
37
39
|
tools before asking the user. Separate facts from preferences, name evidence
|
|
38
40
|
gaps, and map which decisions unlock others. When a fact needed for the
|
|
39
41
|
frontier is not derivable from the local repo or docs by ordinary reading,
|
|
40
|
-
dispatch `axstack-research` branches through
|
|
42
|
+
dispatch `axstack-research` branches through T3 `delegate_task` by source type:
|
|
41
43
|
requirements, code, web, and, once configured, X. Give one owner per branch,
|
|
42
44
|
use cross-harness routes where the roles allow, and require a cited note per
|
|
43
45
|
the research skill's source standards. The driver folds verified claims into
|
|
@@ -65,9 +67,10 @@ substantial; apply routing's existing size reassessment rule.
|
|
|
65
67
|
The current chat remains the driver under
|
|
66
68
|
[Standing contracts](../axstack/references/contracts.md). For each new
|
|
67
69
|
user round, the driver independently drafts the prioritized frontier and
|
|
68
|
-
recommendations, except for
|
|
69
|
-
|
|
70
|
-
|
|
70
|
+
recommendations, except for brainstorm questions, where the driver frames the
|
|
71
|
+
brief and rubric and assesses after the candidates and required judge rounds
|
|
72
|
+
return. Reuse valid brainstorm receipts to replace the adviser consult for
|
|
73
|
+
that question. For other questions, consult `axstack-advisor-astra` and
|
|
71
74
|
`axstack-advisor-opus` independently, without cross-reading, using the same
|
|
72
75
|
bounded evidence and question. Each adviser challenges assumptions, edges,
|
|
73
76
|
omissions, and alternatives; the driver synthesizes disagreements and accepts
|
|
@@ -76,61 +79,21 @@ material disagreement remains, then surface the choices to the user. Never
|
|
|
76
79
|
fabricate consensus or impersonate a role.
|
|
77
80
|
|
|
78
81
|
Immediately before the first actual adviser dispatch, load and follow
|
|
79
|
-
[
|
|
82
|
+
[T3 runtime](../axstack/references/t3-runtime.md). Reuse each adviser
|
|
80
83
|
session and settled receipt; consult only the changed frontier and reuse
|
|
81
84
|
unchanged receipts. Record compact adviser evidence, the driver's assessment,
|
|
82
85
|
and user-resolved choices for `axstack-spec`. If either adviser is unavailable,
|
|
83
86
|
hold Align; safe fact work may continue without substitution.
|
|
84
87
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
settled decisions it must respect) and three to six gradeable rubric
|
|
95
|
-
criteria. Candidates receive only the brief; the rubric is for judging.
|
|
96
|
-
2. **Fan out.** Produce one candidate per configured family independently from the same brief,
|
|
97
|
-
without cross-reading: `axstack-advisor-astra`, `axstack-advisor-opus`,
|
|
98
|
-
`axstack-arena-candidate-grok`, and `axstack-arena-candidate-antigravity`.
|
|
99
|
-
Each gives a design, rationale, and rejected alternatives. The driver authors no candidate.
|
|
100
|
-
3. **Cross-judge.** After every candidate completes, give round 1 judge
|
|
101
|
-
`axstack-arena-judge-opus` the anonymized, relabeled candidates and rubric to
|
|
102
|
-
score every candidate per criterion and recommend a base with a reason.
|
|
103
|
-
The driver compares its own pick with the Opus verdict. Only if the driver
|
|
104
|
-
and the Opus judge disagree on the base, or the user rejects the round-1
|
|
105
|
-
synthesis,
|
|
106
|
-
run round 2 with fresh sessions: `axstack-escalation-fable` and `axstack-arena-judge-astra`
|
|
107
|
-
independently score the same anonymized candidates and rubric. Judges never
|
|
108
|
-
author, never cross-read each other, and never average verdicts. After round-2
|
|
109
|
-
verdicts return, the driver re-picks in step 4 and re-presents in step 6.
|
|
110
|
-
4. **Pick.** The driver reads every candidate end to end and scores per
|
|
111
|
-
criterion, not on holistic feel, then compares with the judge verdicts from
|
|
112
|
-
each completed round. Agreement confirms the base. On disagreement, re-read
|
|
113
|
-
the rationales and decide with a stated reason; never average verdicts or
|
|
114
|
-
fabricate consensus.
|
|
115
|
-
5. **Graft.** Walk the losing candidates once more for the one or two ideas
|
|
116
|
-
worth porting and fold them into the base by hand so the result stays
|
|
117
|
-
coherent under one mental model. Convergence on the same shape is a strong
|
|
118
|
-
agreement signal: adopt the consensus shape, no graft. Wide divergence
|
|
119
|
-
means the frame was under-specified: reframe and rerun once, never
|
|
120
|
-
average.
|
|
121
|
-
6. **Present.** The synthesized design is the recommendation in the next
|
|
122
|
-
`Qn`, with its trade-off, judge verdicts per round, and what was grafted or rejected.
|
|
123
|
-
The user still decides; spec approval remains the one human checkpoint.
|
|
124
|
-
|
|
125
|
-
Record the synthesis note (base, grafts and their source candidate, rejections,
|
|
126
|
-
dropouts, judge verdicts per round) as `Decisions` rows in the
|
|
127
|
-
[run record](../axstack/references/run-record.md). Load
|
|
128
|
-
[Orca runtime](../axstack/references/orca-runtime.md) immediately before the
|
|
129
|
-
first candidate or judge dispatch. If any configured candidate or judge seat
|
|
130
|
-
required for that round is unavailable at launch or returns a failed receipt,
|
|
131
|
-
hold that question without substitution, record the gap, and ask: the user decides whether to proceed without it.
|
|
132
|
-
For an uncertain dispatch, reconcile natively; it is never treated as absent.
|
|
133
|
-
Unaffected fact work and questions continue.
|
|
88
|
+
An optional adviser note may be deferred or rejected in a `Decisions` row with
|
|
89
|
+
the draft unchanged; it needs no new adviser pair. Changed draft text, a
|
|
90
|
+
blocking finding, or a high-stakes decision requires fresh receipts on the new
|
|
91
|
+
revision.
|
|
92
|
+
|
|
93
|
+
## Use the brainstorm synthesis
|
|
94
|
+
|
|
95
|
+
Present its recommendation and trade-off in the next `Qn` within the same
|
|
96
|
+
question budget. The user still decides; reuse unchanged receipts.
|
|
134
97
|
|
|
135
98
|
## Bound the interview
|
|
136
99
|
|
|
@@ -189,7 +152,7 @@ approval; record chosen document names and paths once per run.
|
|
|
189
152
|
documentation pointers without adding another runtime. Return the compact
|
|
190
153
|
scope and record pointer in the current chat. Native transfer is separate:
|
|
191
154
|
use it only when the user explicitly requests transfer, loading
|
|
192
|
-
[
|
|
155
|
+
[T3 runtime](../axstack/references/t3-runtime.md) immediately before
|
|
193
156
|
actual dispatch. Alignment completion never dispatches a recipient.
|
|
194
157
|
|
|
195
158
|
Alignment completes for both sizes only when the handoff is usable and its next
|
|
@@ -23,7 +23,7 @@ shared load edge explicit: Standing contracts require
|
|
|
23
23
|
substantive phases, and lifecycle's audit hook loads this skill. This audit is
|
|
24
24
|
the terminal exception: it writes its assigned record and does not audit itself.
|
|
25
25
|
|
|
26
|
-
The dispatching driver
|
|
26
|
+
The dispatching driver must read [T3 runtime](../axstack/references/t3-runtime.md)
|
|
27
27
|
immediately before an actual auditor profile or session dispatch. Ordinary
|
|
28
28
|
audit reading and record writing do not load it, and the auditor never
|
|
29
29
|
dispatches.
|
|
@@ -34,7 +34,14 @@ This skill governs what that auditor reads, measures, and proposes.
|
|
|
34
34
|
Dispatch `axstack-auditor` and `axstack-auditor-sol` independently on the same
|
|
35
35
|
bounded brief, without cross-reading. The driver reconciles findings per claim;
|
|
36
36
|
never average verdicts. Record an intentionally absent Sol seat and continue
|
|
37
|
-
with the base auditor alone
|
|
37
|
+
with the base auditor alone. `axstack-auditor-sol` is optional: if its launch
|
|
38
|
+
fails, fence it, record `absent (<reason>)`, name it once in the next read-back,
|
|
39
|
+
and skip it without relay or substitution. In mixed fan-out retain a Codex and
|
|
40
|
+
a Claude seat or hold the affected audit.
|
|
41
|
+
If the base auditor is unlaunchable (preflight rejection, no Dispatch started),
|
|
42
|
+
record `auditor: UNKNOWN (unlaunchable)` with the attempted route and error as
|
|
43
|
+
the archive receipt; archive the run. A launched auditor Dispatch must settle
|
|
44
|
+
normally. There is no substitution for the base auditor.
|
|
38
45
|
The user-chosen improvement mode is a tested, independently reviewed PR that a
|
|
39
46
|
human merges.
|
|
40
47
|
|
|
@@ -87,7 +94,9 @@ counts with denominators plus the evidence behind the count:
|
|
|
87
94
|
- Applicable test-first evidence: normal behavior changes have real red-green
|
|
88
95
|
proof; explicitly accepted structure-preserving work has the old revision
|
|
89
96
|
green before edits and the same checks green on the new revision, plus
|
|
90
|
-
applicable equivalence evidence.
|
|
97
|
+
applicable equivalence evidence. Authorized F repairs use
|
|
98
|
+
[F proof](../axstack/references/test-value.md#f-proof).
|
|
99
|
+
Record noncompliance when the applicable
|
|
91
100
|
evidence path is absent, or `UNKNOWN` with the reason when its records are
|
|
92
101
|
unavailable.
|
|
93
102
|
- Independent exact-revision review status and unresolved findings.
|
|
@@ -12,7 +12,7 @@ Steps: <completed / deviated + why + approval per deviation>
|
|
|
12
12
|
Advisers: <Astra/Opus configured coverage / eligible uses + same-question receipts; Astra/Fable high-stakes AGREE coverage / eligible uses>
|
|
13
13
|
Decisions: <escalation trigger + evidence pointers + outcome changed yes/no, or n/a>
|
|
14
14
|
Debug: <rung reached + loop command + fix attempts + adviser and investigator receipts + isolation evidence | n/a>
|
|
15
|
-
TDD: <applicable evidence path: normal real red-green | accepted structure-preserving old revision green before edits + same checks new revision green; absent proof: noncompliance | unavailable records: UNKNOWN with reason>
|
|
15
|
+
TDD: <applicable evidence path: normal real red-green | accepted structure-preserving old revision green before edits + same checks new revision green | F-repair base-green/removal-inversion-red/rewording-green evidence; absent proof: noncompliance | unavailable records: UNKNOWN with reason>
|
|
16
16
|
Review: <exact-rev independent review status + unresolved findings>
|
|
17
17
|
Rework: <cycles + causes>
|
|
18
18
|
Interventions: <avoidable user interventions, or unsupported by records>
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: axstack-brainstorm
|
|
3
|
+
description: When validating a design approach, use axstack-brainstorm to compare independent candidates and return a synthesis.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Brainstorm
|
|
7
|
+
|
|
8
|
+
Standalone usage: `/axstack-brainstorm <problem + candidate approach>`.
|
|
9
|
+
Run inline in the current T3 driver thread. Never delegate a coordinator.
|
|
10
|
+
This procedure is report-only. Do not implement, prototype, or grant execution
|
|
11
|
+
or spec approval. Never interview the user or invoke Align.
|
|
12
|
+
|
|
13
|
+
Load [Standing contracts](../axstack/references/contracts.md) before acting.
|
|
14
|
+
Set the rung from researched facts under the
|
|
15
|
+
[design lens](../axstack/references/design-lens.md); Rung 2 meets its ADR test.
|
|
16
|
+
Follow the [arena procedure](references/arena.md), preserving settled decisions
|
|
17
|
+
and naming missing evidence. Candidates challenge the supplied approach as
|
|
18
|
+
well as proposing alternatives.
|
|
19
|
+
|
|
20
|
+
Return `recommend | revise | reject | unresolved` with the
|
|
21
|
+
[sketch](../axstack/references/design-lens.md#sketch), including `Rejected` and
|
|
22
|
+
`Open`, plus base, criterion scores, grafts, dropouts and completed judge rounds.
|
|
23
|
+
Return proposed questions to the caller. The caller owns preferences, next
|
|
24
|
+
steps and any approval; an open blocker stays unresolved.
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
## Arena
|
|
2
|
+
|
|
3
|
+
Every brainstorm runs a light arena. At Rung 1, the driver scores, picks and
|
|
4
|
+
grafts without a judge round. Only at Rung 2, run the judge rounds below for
|
|
5
|
+
hard-to-reverse choices; they replace the critique round for that question.
|
|
6
|
+
|
|
7
|
+
1. **Frame.** The driver writes the brief (the artifact, its constraints, the
|
|
8
|
+
settled decisions it must respect) and three to six gradeable rubric
|
|
9
|
+
criteria. Every brief requires a premise check and comparison with the
|
|
10
|
+
smallest change and doing nothing. The rubric uses agent-contributor red
|
|
11
|
+
flags as evidence prompts: seeing only opened files, copying the nearest
|
|
12
|
+
example, taking the shortest path that compiles. Treat them as prompts, not defects. Candidates receive only the brief; the rubric is for judging.
|
|
13
|
+
2. **Fan out.** Produce one candidate per configured family independently from the same brief,
|
|
14
|
+
without cross-reading: `axstack-advisor-astra`, `axstack-advisor-opus`,
|
|
15
|
+
`axstack-arena-candidate-grok`, and `axstack-arena-candidate-antigravity`.
|
|
16
|
+
Each gives a design, rationale, and rejected alternatives. The driver authors no candidate.
|
|
17
|
+
The driver drafts no recommendation until every candidate returns.
|
|
18
|
+
3. **Cross-judge (Rung 2 only).** After every candidate completes, give round 1 judge
|
|
19
|
+
`axstack-arena-judge-opus` the anonymized, relabeled candidates and rubric to
|
|
20
|
+
score every candidate per criterion and recommend a base with a reason.
|
|
21
|
+
The driver compares its own pick with the Opus verdict. Only if the driver
|
|
22
|
+
and the Opus judge disagree on the base, or the caller re-invokes with the user's rejection of the round-1
|
|
23
|
+
synthesis,
|
|
24
|
+
run round 2 with fresh sessions: `axstack-escalation-fable` and `axstack-arena-judge-astra`
|
|
25
|
+
independently score the same anonymized candidates and rubric. Judges never
|
|
26
|
+
author, never cross-read each other, and never average verdicts. After round-2
|
|
27
|
+
verdicts return, the driver re-picks in step 4 and re-presents in step 6.
|
|
28
|
+
4. **Pick.** The driver reads every candidate end to end and scores per
|
|
29
|
+
criterion, not on holistic feel, then compares with the judge verdicts from
|
|
30
|
+
each completed round. Agreement confirms the base. On disagreement, re-read
|
|
31
|
+
the rationales and decide with a stated reason; never average verdicts or
|
|
32
|
+
fabricate consensus.
|
|
33
|
+
5. **Graft.** Revisit losing candidates once; graft one or two ideas by hand
|
|
34
|
+
into the coherent base under one mental model. Convergence on the same shape is a strong
|
|
35
|
+
agreement signal: adopt the consensus shape, no graft. Wide divergence
|
|
36
|
+
means the frame was under-specified: reframe and rerun once, never
|
|
37
|
+
average.
|
|
38
|
+
6. **Present.** Return the synthesized design to the caller with its
|
|
39
|
+
trade-off, judge verdicts per round, and what was grafted or rejected.
|
|
40
|
+
The user still decides; spec approval remains the one human checkpoint.
|
|
41
|
+
|
|
42
|
+
Record the synthesis note (base, graft sources, rejections, dropouts, judge
|
|
43
|
+
verdicts per round) as `Decisions` rows in the
|
|
44
|
+
[caller's run record](../../axstack/references/run-record.md) when one exists,
|
|
45
|
+
otherwise include it in the returned verdict. Load
|
|
46
|
+
[T3 runtime](../../axstack/references/t3-runtime.md) immediately before the
|
|
47
|
+
first candidate or judge dispatch. If an optional Grok or Antigravity candidate
|
|
48
|
+
malfunctions (launch failure, trust/login prompt, or prompt block), fence it,
|
|
49
|
+
record `absent (<reason>)`, name it once in the next
|
|
50
|
+
read-back, and continue with available candidates without relay or substitution.
|
|
51
|
+
A required adviser, candidate, or judge needed for this rung unavailable at
|
|
52
|
+
launch or returning a failed receipt holds that question without substitution;
|
|
53
|
+
record the gap and return a proposed question to the caller about whether to proceed. In mixed fan-out retain at least one Codex and one Claude
|
|
54
|
+
seat, or hold the affected question.
|
|
55
|
+
For an uncertain dispatch, reconcile natively; it is never treated as absent.
|
|
56
|
+
Unaffected fact work and questions continue.
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: axstack-cleanup
|
|
3
|
-
description: When completed
|
|
3
|
+
description: When completed T3 threads and worktrees need bounded retirement, use axstack-cleanup after accepted settlement or for an explicitly scoped backlog.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Cleanup
|
|
7
7
|
|
|
8
|
-
Run cleanup inline in the driver after accepting a worker
|
|
8
|
+
Run cleanup inline in the driver after accepting a worker task or run
|
|
9
9
|
completion, or for the exact backlog scope the user named. This skill never
|
|
10
10
|
dispatches a cleanup worker and never retires its current driver session.
|
|
11
11
|
|
|
@@ -14,13 +14,15 @@ Before any runtime action, load and follow:
|
|
|
14
14
|
- [Standing contracts](../axstack/references/contracts.md)
|
|
15
15
|
- [Lifecycle and receipts](../axstack/references/lifecycle.md)
|
|
16
16
|
- [Shared routing](../axstack/references/routing.md)
|
|
17
|
-
- [
|
|
17
|
+
- [T3 runtime](../axstack/references/t3-runtime.md)
|
|
18
18
|
- [Workspace hygiene](../axstack/references/workspace-hygiene.md) for settlement, salvage, and driver-start sweep
|
|
19
19
|
- [Private evidence archive](../axstack/references/evidence-archive.md) when
|
|
20
20
|
evidence is the last removable-worktree blocker
|
|
21
21
|
|
|
22
|
-
Use
|
|
23
|
-
|
|
22
|
+
Use project-scoped T3 thread inventory, `git worktree list --porcelain` and run
|
|
23
|
+
records. Preflight requires `worktreeCleanup` off via `t3_project_read` where
|
|
24
|
+
exposed, or a recorded setup limitation. Follow the runtime schema, never invent
|
|
25
|
+
an alternate command protocol.
|
|
24
26
|
|
|
25
27
|
## Authority and scope
|
|
26
28
|
|
|
@@ -28,29 +30,26 @@ Inline cleanup may consider only resources owned by the accepted completion it
|
|
|
28
30
|
is processing. Driver-start orphan sweeps follow the guarded cross-run sweep in
|
|
29
31
|
[Workspace hygiene](../axstack/references/workspace-hygiene.md). Backlog
|
|
30
32
|
cleanup requires an explicit bounded selector such as a
|
|
31
|
-
|
|
33
|
+
project, run, task set, checkout set, repository, or named age window; age narrows an
|
|
32
34
|
inventory but never establishes eligibility. A partial inventory holds only the
|
|
33
35
|
resource whose identity or state is incomplete while other independently proven
|
|
34
36
|
resources may proceed.
|
|
35
37
|
|
|
36
|
-
Never clean a
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
evidence that has not been durably preserved. Do not
|
|
41
|
-
force native removal, bulk-clean, override a hook failure, edit a runtime
|
|
42
|
-
database, or add a scheduler, daemon, or state machine.
|
|
38
|
+
Never clean a user-created thread, the current driver, a user-taken-over thread, an active or unknown worker, an unsettled descendant, or a resource with ambiguous ownership.
|
|
39
|
+
Preserve unknown files, unmerged author work, ambiguous publication, and evidence that has not been durably preserved.
|
|
40
|
+
Do not force removal, bulk-clean, edit a runtime database, or add a scheduler,
|
|
41
|
+
daemon or state machine. Report other projects' resources; never touch them.
|
|
43
42
|
|
|
44
43
|
## Reconcile each candidate
|
|
45
44
|
|
|
46
|
-
Take a fresh native inventory and bind every candidate to its exact
|
|
47
|
-
|
|
45
|
+
Take a fresh native inventory and bind every candidate to its exact projectId, attempt key, taskId/childThreadId/childRunId
|
|
46
|
+
or threadId/runId, checkout path, repository, branch, and current
|
|
48
47
|
liveness. Read current Git and forge state rather than trusting age, names, or a
|
|
49
48
|
prior receipt. Reconcile an existing cleanup claim before retrying so repeated
|
|
50
49
|
invocations converge instead of duplicating mutations.
|
|
51
50
|
|
|
52
51
|
Retire descendants before parents. A candidate is eligible only when all owned
|
|
53
|
-
|
|
52
|
+
tasks and runs are accepted as settled, no descendant remains unsettled, native
|
|
54
53
|
liveness is positively known where required, and every preservation guard is
|
|
55
54
|
cleared. Record one decision per resource; uncertainty about one candidate does
|
|
56
55
|
not authorize or block unrelated candidates.
|
|
@@ -60,50 +59,47 @@ not authorize or block unrelated candidates.
|
|
|
60
59
|
Classify exact evidence files individually. Save the compact cleanup decision
|
|
61
60
|
and identities in the private run record or another configured durable private
|
|
62
61
|
location outside disposable worktrees. When the evidence archive applies, use
|
|
63
|
-
its helper with either the existing PR identity or the non-PR
|
|
62
|
+
its helper with either the existing PR identity or the non-PR run and task
|
|
64
63
|
identity; never invent a PR number. Read back the durable record and, when an
|
|
65
64
|
archive is used, its manifest, including hashes and exact identities, before
|
|
66
65
|
removing any source copy or workspace.
|
|
67
66
|
|
|
68
|
-
Archive success proves only preservation of the listed bytes
|
|
69
|
-
settlement, exit, ownership, a clean worktree, publication, or removal safety.
|
|
67
|
+
Archive success proves only preservation of the listed bytes; it does not prove settlement, liveness, ownership, a clean worktree, publication, or removal safety.
|
|
70
68
|
|
|
71
69
|
For a completed non-author worktree with useful local content, follow the
|
|
72
70
|
[Workspace hygiene](../axstack/references/workspace-hygiene.md) salvage path
|
|
73
71
|
before removal; a verified bundle changes preservation classification, not
|
|
74
72
|
native ownership or liveness. Keep an author worktree until its PR merges or closes.
|
|
75
73
|
|
|
76
|
-
For a settled reviewer
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
Dispatches in the same reviewer worktree are recovery for missed earlier
|
|
74
|
+
For a settled reviewer task, its checkout can be retired while the PR remains open, before merge, after its report and supporting evidence are archived privately and read back.
|
|
75
|
+
Generated reviewer scratch is disposable after a compact durable receipt is
|
|
76
|
+
written outside the review checkout and read back. Bind it to projectId,
|
|
77
|
+
repository, attempt key, taskId/childThreadId/childRunId, checkout path, exact head
|
|
78
|
+
SHA and base SHA, review verdict, coverage and limitations, test and CI result
|
|
79
|
+
pointers, user authorization and cleanup scope. A raw reviewer report may be
|
|
80
|
+
discarded after its verdict and limitations are compacted into that read-back
|
|
81
|
+
receipt; use the private evidence archive for the report and supporting evidence.
|
|
82
|
+
Evidence already outside the checkout needs no copy; read it back. Verify each
|
|
83
|
+
task archive and manifest readback independently. Preserve the separate author
|
|
84
|
+
candidate with useful unmerged work; reviewer cleanup never removes it.
|
|
85
|
+
|
|
86
|
+
Use only a named run-owned scratch prefix recorded with the attempt. Multiple
|
|
87
|
+
tasks in the same reviewer worktree are recovery for missed earlier
|
|
91
88
|
cleanup; after independent archives and readback, use per-prefix removal. Two or
|
|
92
89
|
more review passes in the same reviewer worktree may leave distinct prefixes;
|
|
93
|
-
each named run-owned scratch prefix must belong to an accepted settled
|
|
94
|
-
in the
|
|
90
|
+
each named run-owned scratch prefix must belong to an accepted settled task
|
|
91
|
+
in the run. Require `git status --porcelain=v1 -z --untracked-files=all`
|
|
95
92
|
to show all dirt as untracked files inside a run-owned scratch prefix. Prove
|
|
96
93
|
every remaining untracked file individually belongs to one of those named
|
|
97
94
|
run-owned scratch prefixes; any tracked, staged, unmerged or unpushed work,
|
|
98
95
|
dirty source, or dirt outside them enters the salvage check above or holds.
|
|
99
|
-
Check ignored files across the whole worktree too;
|
|
96
|
+
Check ignored files across the whole worktree too; classified ignored non-cache content enters the verified salvage path, while unknown content holds. Validate that
|
|
100
97
|
the detached checkout still matches the reviewed head and check local commits
|
|
101
98
|
against recorded remote refs; unknown divergence holds. Validate that
|
|
102
99
|
the exact reviewed scratch prefix names the recorded directory inside the exact
|
|
103
100
|
reviewer worktree, never a repository-root target or symlink. Inspect every
|
|
104
101
|
descendant for symlinks, hard links, special files, unknown content, user-owned
|
|
105
|
-
files, or ignored files; any mismatch holds. Active or
|
|
106
|
-
also hold.
|
|
102
|
+
files, or ignored files; any mismatch holds. Active or user-taken-over threads also hold.
|
|
107
103
|
|
|
108
104
|
For each prefix, list the exact scoped path and all descendants with their
|
|
109
105
|
types, confirm each belongs to generated reviewer scratch, and record that
|
|
@@ -121,64 +117,50 @@ absent, while remaining classified prefixes and outside content still match.
|
|
|
121
117
|
Only unexpected changes hold. Then run
|
|
122
118
|
`git clean -fd -- <same exact prefix>` with the identical concrete path, record
|
|
123
119
|
that path and outcome, and repeat for the next proven prefix. Recheck clean Git status
|
|
124
|
-
after the last deletion. Require final clean Git status before
|
|
125
|
-
|
|
126
|
-
Never use `-x`, a
|
|
127
|
-
glob, a repository-root target, extra force, or broad clean.
|
|
120
|
+
after the last deletion. Require final clean Git status before exact `git worktree remove <path>` without force. Use no unresolved variable as a destructive target.
|
|
121
|
+
Never use `-x`, a glob, a repository-root target, extra force, or broad clean.
|
|
128
122
|
This scratch decision does not waive any other preservation or native removal
|
|
129
123
|
guard.
|
|
130
124
|
|
|
131
125
|
## Apply distinct native operations
|
|
132
126
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
head, permit
|
|
165
|
-
exact-ref expected-old ref deletion and read back its absence. Never delete
|
|
166
|
-
the author branch or use generic force. A failed or unknown hook outcome or
|
|
167
|
-
uncertain response preserves the resource; never force or substitute shell
|
|
168
|
-
deletion.
|
|
169
|
-
4. **Chat archival.** Attempt it only if the version-matched runtime guide
|
|
170
|
-
advertises a distinct supported operation and the scoped chat is eligible.
|
|
171
|
-
Otherwise record chat archival as unsupported. Process exit, worker release,
|
|
172
|
-
terminal close, and worktree removal do not prove UI history disappeared.
|
|
173
|
-
|
|
174
|
-
Do not self-close or self-remove. Return control to the driver after recording
|
|
175
|
-
receipts and holds; the owner decides when its own Run may archive.
|
|
127
|
+
Follow [Workspace hygiene](../axstack/references/workspace-hygiene.md)'s exact
|
|
128
|
+
cleanup order: settled descendants, evidence readback, salvage dirty or ignored
|
|
129
|
+
non-cache content, thread archive, exact worktree removal without force, then
|
|
130
|
+
local-only branch retirement. Treat each as a separate decision and receipt:
|
|
131
|
+
|
|
132
|
+
1. **Thread archival.** Require accepted matching completion and terminal run
|
|
133
|
+
evidence for the exact task or run, with no pending descendants. Use
|
|
134
|
+
`t3_thread_organize` archive for that exact eligible thread. Retain an author
|
|
135
|
+
thread and worktree until PR merge or closure. Metadata archive does not prove
|
|
136
|
+
process exit, worktree removal or evidence preservation.
|
|
137
|
+
2. **Worktree removal.** Immediately re-read Git status, ignored files,
|
|
138
|
+
branch/upstream divergence, unpushed commits, forge merge/publication state,
|
|
139
|
+
descendants, native ownership/liveness and preserved evidence. When archived
|
|
140
|
+
evidence is the last dirt for one task, use the evidence archive helper's
|
|
141
|
+
manifest-bound retirement operation and require an empty pending set. For
|
|
142
|
+
multiple task scratch prefixes, independently verify archives and full union
|
|
143
|
+
classification, then use the exact per-prefix dry-run and clean above. Never
|
|
144
|
+
unlink through prose or a shell loop. Run exact `git worktree remove <path>`
|
|
145
|
+
without force; re-list native threads and `git worktree list --porcelain` to
|
|
146
|
+
verify archival and worktree absence separately. No native Archive Script is
|
|
147
|
+
part of this Git path; unknown removal hooks or safety prompts hold.
|
|
148
|
+
3. **Branch retirement.** Read back each remaining local ref's recorded name and
|
|
149
|
+
tip. Unknown origin, unique commits, active worktrees or a remote counterpart
|
|
150
|
+
preserve it. Only provenance proving a run-owned local-only ref for the removed
|
|
151
|
+
checkout and a tip reachable from a preserved candidate, verified salvage ref
|
|
152
|
+
or confirmed remote PR head permits exact `git branch -d <branch>`; no force.
|
|
153
|
+
Read back absence; refusal or uncertainty holds the ref.
|
|
154
|
+
Never delete the author branch or use generic force.
|
|
155
|
+
|
|
156
|
+
Do not self-archive or self-remove. Return control to the driver after recording
|
|
157
|
+
receipts and holds; the owner decides when its own run may archive.
|
|
176
158
|
|
|
177
159
|
## Receipt
|
|
178
160
|
|
|
179
161
|
Report the scope and inventory denominator, then for each candidate record its
|
|
180
162
|
exact identity, classification (`removed`, `retained`, `held`, or `unsupported`),
|
|
181
163
|
the fresh evidence used, native receipt and readback, and any resume condition.
|
|
182
|
-
Keep settlement,
|
|
164
|
+
Keep settlement, terminal run evidence, thread archival, worktree/branch effects,
|
|
183
165
|
evidence preservation, and chat archival as separate fields. An idempotent retry
|
|
184
166
|
reconciles these receipts and performs only still-pending eligible operations.
|
|
@@ -129,7 +129,7 @@ two independent receipts or clear the hold. Reconcile contradictory receipts
|
|
|
129
129
|
by evidence or one discriminating rerun, never by vote.
|
|
130
130
|
|
|
131
131
|
Immediately before an actual adviser or investigator dispatch, load and follow
|
|
132
|
-
[
|
|
132
|
+
[T3 runtime](../axstack/references/t3-runtime.md).
|
|
133
133
|
|
|
134
134
|
## Isolation
|
|
135
135
|
|
|
@@ -16,7 +16,7 @@ exposes both skills, route the request here only.
|
|
|
16
16
|
Before acting, load [Standing contracts](../axstack/references/contracts.md),
|
|
17
17
|
then follow its required lifecycle and audit pointers. Explanation work has no
|
|
18
18
|
scope baseline. Ordinary work in the current chat needs no launch preflight;
|
|
19
|
-
load the [
|
|
19
|
+
load the [T3 runtime boundary](../axstack/references/t3-runtime.md) only
|
|
20
20
|
immediately before an actual profile dispatch.
|
|
21
21
|
|
|
22
22
|
## 1. Bound the question and evidence
|
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
Use this checklist for every HTML explanation and other visual artifacts where
|
|
4
4
|
rendering matters.
|
|
5
5
|
|
|
6
|
+
Browser and visual checks must run in the delegated `axstack-ui-verifier` in its own detached checkout; outputs go to its private evidence folder, never the driver worktree.
|
|
7
|
+
|
|
6
8
|
1. Identify the final artifact bytes and theme. The explicit user theme wins;
|
|
7
9
|
otherwise use the dark default.
|
|
8
10
|
2. Delegate the rendered pass through [UI verification](../../axstack/references/ui-verification.md).
|