axstack 0.25.2 → 0.25.4

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 CHANGED
@@ -254,8 +254,10 @@ for explicit ownership transfer.
254
254
  read back private evidence, salvage dirty or ignored non-cache content,
255
255
  archive the exact eligible thread, then remove its exact worktree without
256
256
  force and delete only eligible local branches. T3 metadata actions do not
257
- remove worktrees. Authors remain until their PR merges or closes; the current
258
- pass, unsettled descendants, and user-taken-over threads remain protected.
257
+ remove worktrees. Accepted writer or delegated completion settles thread
258
+ metadata only. Author threads and worktrees remain retained and unarchived
259
+ until their PR merges or closes; the current pass, unsettled descendants,
260
+ and user-taken-over threads remain protected.
259
261
 
260
262
  One T3 host/server owns a run, one persistent owner owns each PR, and one
261
263
  writer owns each candidate. Fanout has no fixed PR count; it follows real
@@ -265,9 +267,13 @@ one theme and a measured size under the shared
265
267
  For own PRs, automatic merge is the default under the
266
268
  [watch predicate](../skills/axstack-watch/SKILL.md#5-state-readiness-precisely).
267
269
  Review approval alone never grants merge authority.
268
- For the rationale band, the autonomous driver records a cohesion rationale. The exception band
269
- requires a reasonable split attempt and full exception record. These are
270
- autonomous driver choices; size alone never requires user approval.
270
+ Treat size flags as informational only.
271
+ Size alone must never block review, reject a PR, require split attempts or
272
+ cohesion/exception rationale, or hold approval.
273
+ Review the actual footprint, complexity, and required context, incrementally when needed.
274
+ Approval requires sufficient review coverage.
275
+ Report INCOMPLETE when required coverage is missing.
276
+ Shape choices remain autonomous driver decisions; size alone never requires user approval.
271
277
 
272
278
  ## Explicit handoff
273
279
 
@@ -427,8 +433,12 @@ admits nothing, writes only its private discovery note, and notifies once about
427
433
  a stalled owner under the recorded policy.
428
434
 
429
435
  Capacity is measured across the host. Waiting events stay covered and occupy
430
- no execution slot after descendants settle. Each pass retires eligible settled
431
- predecessors through `axstack-cleanup` and records retained worktree count.
436
+ no execution slot after descendants settle. After lane reconciliation at pass
437
+ start, every pass, including a duplicate, settles finished lane pass threads
438
+ under the [Finite-session teardown guards](../skills/axstack/references/automations.md#finite-session-teardown).
439
+ Held or stuck passes stay unsettled. Only the owner retires eligible settled
440
+ predecessors through `axstack-cleanup` and writes continuity; each pass records
441
+ retained worktree count.
432
442
  Past the authorized storage limit (default 20 lane worktrees), disable the
433
443
  schedule with `enabled:false` and hold. The overlap, real-event, killed-predecessor,
434
444
  and storage-limit canaries must pass before activation.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "axstack",
3
- "version": "0.25.2",
3
+ "version": "0.25.4",
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",
@@ -70,8 +70,10 @@ The earlier pass wins only when ordering evidence exists.
70
70
  Missing ordering or ownership evidence holds admission and never guesses a winner.
71
71
 
72
72
  Once identified as a duplicate, the new pass does no PR work, makes no further
73
- shared-record write and touches no live or unsettled resource owned by the
74
- live manager. A duplicate pass admits nothing and runs read-only discovery
73
+ shared-record write and touches no PR-job thread or descendant owned by the
74
+ live manager. A duplicate's only mutation is pass-start settlement of eligible
75
+ terminal lane pass threads under [Finite-session teardown](#finite-session-teardown).
76
+ A duplicate pass admits nothing and runs read-only discovery
75
77
  into its own pass note in its private evidence folder, recording new eligible
76
78
  events and the unserved count. If a duplicate finds a stalled owner idle at its
77
79
  prompt with a final turn lacking a completion receipt for more than five
@@ -328,6 +330,16 @@ or separate model gate.
328
330
 
329
331
  ## Finite-session teardown
330
332
 
333
+ After lane reconciliation at pass start, every pass, including a duplicate,
334
+ uses `t3_thread_organize` to settle finished predecessor and duplicate lane pass
335
+ threads as metadata only, before discovery or admission.
336
+ Settle another lane pass thread only with terminal run evidence, no unsettled
337
+ descendants, no recorded open hold naming it, no user takeover, and exclusion of
338
+ the live owner and current pass.
339
+ Leave held or stuck pass threads unsettled.
340
+ Settlement is separate from owner-only worktree removal, branch deletion and
341
+ continuity writes.
342
+
331
343
  Only the owner-of-record pass retires settled predecessor passes and qualifying
332
344
  terminal duplicates, including duplicates newer than the owner and immediately
333
345
  after successor takeover.
@@ -340,8 +352,8 @@ Then run the driver-start orphan sweep under Workspace hygiene; the sweep is
340
352
  silent when nothing was removed. Record sweep results and holds in continuity's
341
353
  Open holds table.
342
354
  The orphan sweep covers the run record's repositories plus registered repositories on this host.
343
- Retirement settles duplicate threads with `t3_thread_organize` (settle/archive
344
- changes metadata only) before separate guarded Git worktree removal.
355
+ Retirement settles remaining duplicate threads with `t3_thread_organize`
356
+ (settle/archive changes metadata only) before separate guarded Git worktree removal.
345
357
  Unknown, active or user-taken-over threads,
346
358
  ambiguous publication and failed salvage stay preserved.
347
359
 
@@ -12,16 +12,15 @@ Total additions + deletions over all files. Disclose moves detected by `-M`;
12
12
  report binaries by count and purpose, never estimated lines. Disclose generated,
13
13
  lockfile, and formatter-only bulk buckets alongside the total.
14
14
 
15
- The full total controls the level: ≤2000 is the target. The 2001–2500 rationale
16
- band requires only a recorded cohesion rationale, with no split-attempt record.
17
- The >2500 exception band requires the full exception record below. Bulk may
18
- support either rationale only with a reproducible recorded command. Never
19
- automatically subtract bulk or shift bands; silent exclusion is forbidden; no file-count hard metric.
15
+ Flag totals above 2500 changed lines as informational only.
16
+ Never automatically subtract bulk from the full total; silent exclusion is forbidden; no file-count hard metric.
17
+ Disclose each bulk bucket with a reproducible recorded command.
18
+ There is no universal safe LOC limit or fixed token percentage.
20
19
 
21
20
  ## Theme
22
21
  One behavior or component may include the callers, tests, types, docs, and
23
22
  migrations that must change together to stay green and reviewable.
24
- This is not a folder restriction. Unrelated themes split even under the target.
23
+ This is not a folder restriction. Unrelated themes split regardless of size.
25
24
  Smaller cohesive PRs are encouraged; no padding.
26
25
 
27
26
  ## PR body
@@ -29,16 +28,13 @@ Smaller cohesive PRs are encouraged; no padding.
29
28
  Every own PR description must contain exactly one `Revert` line.
30
29
  Follow [Revert line](candidate-publication.md#revert-line) for its format and classification.
31
30
 
32
- ## Exception band
33
- The driver attempts a reasonable split first. If each tried split materially
34
- compromises atomicity, green state, or independent reviewability, or inseparable
35
- reproducible bulk dominates, record and proceed autonomously within the approved
36
- spec. The mandatory record includes the full total, bulk buckets with their
37
- reproducible command, measured head and base, split attempts tried, and why each
38
- fails on atomicity, green state, or reviewability. “Already written,” deadlines,
39
- and rebase pain are not reasons.
40
- Size alone never requires user approval. Review verifies the measurement and
41
- whether the stated split failure is real under angle 6, not the number itself.
42
- Missing rationale blocks approval; weak rationale returns to the author through
43
- the normal split/rework loop, never to the user. Escalate only for an existing
44
- material-scope, security, downtime, data-loss, major-design-risk, or unavailable-model hold.
31
+ ## Review and decisions
32
+ Size alone must never block review, reject a PR, require split attempts or
33
+ cohesion/exception rationale, or hold approval.
34
+ Review the actual footprint, complexity, and required context, incrementally when needed.
35
+ Approval requires sufficient review coverage.
36
+ Report INCOMPLETE when required coverage is missing.
37
+ Routine shape decisions remain autonomous driver decisions within approved scope;
38
+ size alone never requires user approval.
39
+ Escalate only for an existing material-scope, security, downtime, data-loss,
40
+ major-design-risk, or unavailable-model hold.
@@ -9,10 +9,13 @@ which loads `../axstack/references/automations.md` relatively. Read that contrac
9
9
  and [T3 runtime](t3-runtime.md). Reconcile lane ownership and duplicate status,
10
10
  then follow [Provider bindings](t3-runtime.md#preflight-and-binding) for shared schedule
11
11
  recreation and recorded instance update before verifying the recorded `axstack-owner`
12
- binding before admission. Discover all eligible peer-review events and admit within measured host capacity.
12
+ binding before admission. At pass start, every pass, including a duplicate,
13
+ settles finished predecessor and duplicate pass threads under the Finite-session
14
+ teardown guards before admission. Discover all eligible peer-review events and admit within measured host capacity.
13
15
  Use host-clone detached per-PR checkouts; preserve exact ownership and receipts.
14
- Retire settled predecessors, report retained worktree count, and disable the
15
- schedule and hold past its authorized limit. Save and read back continuity at
16
+ Report retained worktree count and disable the schedule and hold past its
17
+ authorized limit. Only the owner retires settled predecessors and saves and
18
+ reads back continuity at
16
19
  `~/.local/share/axstack/runs/review-manager/progress.md` using
17
20
  `run-record.md#review-manager-continuity-template`; settle descendants and end
18
21
  the finite turn. Stay quiet when unchanged. Never check out a PR branch here.
@@ -32,7 +32,12 @@ Cleanup order is: settled descendants -> evidence readback -> salvage dirty or i
32
32
  Require terminal run evidence before `t3_thread_organize` settle or archive.
33
33
  These metadata actions do not remove worktrees. Accept matching delegated task
34
34
  or launched run completion under the runtime contract before settlement.
35
- Keep the author worktree and thread until the PR merges or closes.
35
+ After the driver accepts a launched writer's or delegated task's completion from terminal run evidence plus a verified receipt or candidate check, it settles the matching thread with `t3_thread_organize` as metadata only.
36
+ Settling never removes, archives or abandons the thread or worktree.
37
+ Retain the author worktree and thread unarchived until the PR merges or closes, with repairs returning to the same author.
38
+ A repair turn automatically un-settles the thread, making it visible while working.
39
+ The driver settles the thread again after the next accepted repair completion.
40
+ Threads with unaccepted completion, FAILED or QUESTION markers, held, failed or interrupted runs, or anything needing the user stay unsettled and visible.
36
41
  Retain a user-taken-over T3 thread and never send cleanup commands to it, including `t3_thread_organize` settle or archive.
37
42
  Never remove the current driver, current pass, an active or unknown thread, an unsettled descendant, or a resource with ambiguous ownership.
38
43
  At final settlement, no eligible non-driver thread or worktree remains.
@@ -117,10 +117,10 @@ counts with denominators plus the evidence behind the count:
117
117
  - Rework cycles with causes.
118
118
  - Avoidable user interventions where records support the call, and no call where they do not.
119
119
  - Parallelizable tasks identified versus dispatched, judged with dependency and writer isolation.
120
- - PRs within band / total PRs using the actual denominator. Apply the level
121
- matching the measured total. For the rationale band, record cohesion
122
- rationale presence; for the exception band, record the full driver exception
123
- record. Record `UNKNOWN` when a receipt lacks the measurement.
120
+ - PRs with an informational size flag / total PRs using the actual denominator.
121
+ Record full totals, bulk buckets with reproducible commands, and measured head/base.
122
+ Treat size flags as informational only.
123
+ Record `UNKNOWN` when a receipt lacks the measurement.
124
124
  This is evidence, not a score to game. Audit treats routine shape choices as
125
125
  autonomous driver decisions; size alone never requires user approval.
126
126
  - API-dollar cost by model when provider receipts are available, UNKNOWN otherwise.
@@ -17,7 +17,7 @@ Review: <exact-rev independent review status + unresolved findings>
17
17
  Rework: <cycles + causes>
18
18
  Interventions: <avoidable user interventions, or unsupported by records>
19
19
  Parallelism: <identified vs dispatched + dependency/writer isolation>
20
- Shape: <PRs within band / total PRs + rationale-band cohesion rationale + exception-band full driver exception record; missing measurement: UNKNOWN>
20
+ Shape: <PRs with an informational size flag / total PRs; full totals + bulk buckets with reproducible commands + measured head/base; UNKNOWN when measurement is missing>
21
21
  Cost: <API dollars by model when measured, or UNKNOWN with reason>
22
22
  Judgment: <execution outcome vs procedural adherence vs measurement coverage>
23
23
  Proposals: <bounded hypothesized changes with regression-first plan, or none>
@@ -25,6 +25,8 @@ Learning candidates: <each candidate's statement + scope + evidence/revision poi
25
25
  Privacy: <local/private default; sanitized summary only when authorized>
26
26
  ```
27
27
 
28
+ Treat size flags as informational only.
29
+
28
30
  The record is complete when its counts reconcile, its judgments remain
29
31
  separate, every proposal has a regression-first validation path, every learning
30
32
  candidate is bounded to accepted audited evidence, and all unknowns and
@@ -293,17 +293,15 @@ This section applies to peer and authored PR modes.
293
293
  Rate a wrong or missing `Revert` line at least `medium` under [Finding severity](#finding-severity).
294
294
 
295
295
  Under angle 6, verify the recorded shape against the pinned head and base.
296
- A mismatch between the recorded and measured total is a finding. Apply the
297
- level matching the measured total. The rationale band requires only its
298
- recorded cohesion rationale, not a split-attempt record. For the exception
299
- band, verify the full exception record: total, bulk buckets with their
300
- reproducible command, measured head/base, split attempts tried, and why each
301
- fails on atomicity, green state, or reviewability. Missing rationale is a
302
- validated angle 6 finding that blocks approval like any other. Reviewer
303
- judgment is bounded to verifying the measurement and whether the stated split
304
- failure is real, not the number itself. A weak rationale returns to the
305
- author as a split or rework request through the normal fix loop, never to the
306
- user. Routine shape decisions remain autonomous driver decisions; size alone
296
+ A mismatch between the recorded and measured total is a finding.
297
+ Verify full totals and bulk buckets with their reproducible command.
298
+ Treat size flags as informational only.
299
+ Size alone must never block review, reject a PR, require split attempts or
300
+ cohesion/exception rationale, or hold approval.
301
+ Review the actual footprint, complexity, and required context, incrementally when needed.
302
+ Approval requires sufficient review coverage.
303
+ Report INCOMPLETE when required coverage is missing.
304
+ Routine shape decisions remain autonomous driver decisions; size alone
307
305
  never requires user approval. Escalate only when that work exposes an
308
306
  existing material-scope, security, downtime,
309
307
  data-loss, major-design-risk, or unavailable-model hold.
@@ -50,11 +50,12 @@ no dispatch preflight.
50
50
  sketch boundary as a split signal. Identify internal tasks, dependencies,
51
51
  PR ownership, and worktrees. For each task the driver records
52
52
  one theme and a coarse size estimate from the ownership, interface, and
53
- dependency map. A task estimated in the exception band is assessed for a
54
- split at mapping time and split where a green, atomic, reviewable split
55
- exists. If the driver judges it inseparable, record the coarse planning
56
- rationale with the task; actual measurement and exception evidence follow in
57
- the implement receipt. Mapping time requires no actual SHAs or line counts.
53
+ dependency map. Plan coherent, independently reviewable tasks around those
54
+ boundaries. Treat size flags as informational only.
55
+ Size alone must never block review, reject a PR, require split attempts or
56
+ cohesion/exception rationale, or hold approval.
57
+ Actual measurement and bulk disclosure follow in the implement receipt.
58
+ Mapping time requires no actual SHAs or line counts.
58
59
  Every capability ends with the fields below and an explicit dependency list.
59
60
  Before accepting the map, dispatch `axstack-diligence` under
60
61
  [Diligence](../axstack/references/diligence.md) to confirm every spec
@@ -72,7 +73,7 @@ Spec: <approved revision>
72
73
  Capability: <Markdown ref, GitHub issue URL, or Linear issue URL> <title>
73
74
  Internal task: <task> -> <PR owner> -> <worktree>
74
75
  Theme: <one behavior or component>
75
- Size est: <coarse band estimate>
76
+ Size est: <coarse size estimate>
76
77
  Acceptance: <checks from approved spec rev>
77
78
  Depends: <task IDs or none>
78
79
  ```