axstack 0.25.1 → 0.25.3
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 +7 -3
- package/package.json +1 -1
- package/skills/axstack/references/autopilot.md +2 -0
- package/skills/axstack/references/candidate-publication.md +2 -0
- package/skills/axstack/references/pr-shape.md +15 -19
- package/skills/axstack/references/routing.md +8 -1
- package/skills/axstack/references/t3-runtime.md +27 -1
- package/skills/axstack-audit/SKILL.md +4 -4
- package/skills/axstack-audit/references/record.md +3 -1
- package/skills/axstack-review/SKILL.md +9 -11
- package/skills/axstack-tickets/SKILL.md +7 -6
- package/skills/axstack-watch/SKILL.md +22 -13
- package/skills/axstack-watch/references/repair-publication.md +3 -4
- package/skills/axstack-watch/references/watch-runtime.md +5 -1
package/docs/workflows.md
CHANGED
|
@@ -265,9 +265,13 @@ one theme and a measured size under the shared
|
|
|
265
265
|
For own PRs, automatic merge is the default under the
|
|
266
266
|
[watch predicate](../skills/axstack-watch/SKILL.md#5-state-readiness-precisely).
|
|
267
267
|
Review approval alone never grants merge authority.
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
268
|
+
Treat size flags as informational only.
|
|
269
|
+
Size alone must never block review, reject a PR, require split attempts or
|
|
270
|
+
cohesion/exception rationale, or hold approval.
|
|
271
|
+
Review the actual footprint, complexity, and required context, incrementally when needed.
|
|
272
|
+
Approval requires sufficient review coverage.
|
|
273
|
+
Report INCOMPLETE when required coverage is missing.
|
|
274
|
+
Shape choices remain autonomous driver decisions; size alone never requires user approval.
|
|
271
275
|
|
|
272
276
|
## Explicit handoff
|
|
273
277
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "axstack",
|
|
3
|
-
"version": "0.25.
|
|
3
|
+
"version": "0.25.3",
|
|
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",
|
|
@@ -67,6 +67,8 @@ The driver remains the single owner and sole run-record writer.
|
|
|
67
67
|
Never create a per-PR session or an ownership hand-off.
|
|
68
68
|
Read the [T3 runtime boundary](t3-runtime.md) and use its bound
|
|
69
69
|
`schedule_task` wake (`everyMs:600000`), recording the scheduledTaskId.
|
|
70
|
+
Follow [Native PR links and watches](t3-runtime.md#native-pr-links-and-watches)
|
|
71
|
+
alongside that bound schedule.
|
|
70
72
|
An explicitly adopted PR joins only with its maintenance snapshot.
|
|
71
73
|
The original driver alone routes work; one author writes each
|
|
72
74
|
candidate. Until a PR is merge-ready, wakes feed implement §6 step 4. After
|
|
@@ -44,6 +44,8 @@ its required checks complete. Review may run in parallel with CI only after the
|
|
|
44
44
|
remote confirmation. Reviewers inspect a detached immutable checkout of the
|
|
45
45
|
confirmed candidate SHA and pinned base, never only the movable branch name.
|
|
46
46
|
Any author repair creates a new revision and repeats this boundary.
|
|
47
|
+
After verified publication readback, follow
|
|
48
|
+
[Native PR links and watches](t3-runtime.md#native-pr-links-and-watches).
|
|
47
49
|
|
|
48
50
|
## Revert line
|
|
49
51
|
|
|
@@ -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
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
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
|
|
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
|
-
##
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
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.
|
|
@@ -85,7 +85,14 @@ step (3) for user routing: no substitution or same-provider review.
|
|
|
85
85
|
- Codebase review -> `axstack-review` codebase mode, report only.
|
|
86
86
|
- A status question about an own open PR or stack ("check now", "what's left",
|
|
87
87
|
"are we done", or "is it approved") -> `axstack-watch` observation-only
|
|
88
|
-
mode
|
|
88
|
+
mode when it does not ask to watch.
|
|
89
|
+
- A user request to watch, babysit, keep watching, maintain, address, patch, or fix
|
|
90
|
+
own PRs authored by the authenticated `gh api user` login or the user's agents
|
|
91
|
+
grants authorized maintenance by default.
|
|
92
|
+
Snapshot the maintenance intent once without extra approval.
|
|
93
|
+
Observation-only applies only to explicit observe-only requests, status
|
|
94
|
+
questions without a watch request, or peers' PRs.
|
|
95
|
+
Explicit observe-only includes "monitor only" or "do not change anything".
|
|
89
96
|
- Chat-run PR watch -> `axstack-watch`: original driver; verified run PRs and
|
|
90
97
|
explicit adoptions only.
|
|
91
98
|
- Other own PR work -> `axstack-review` authored mode or `axstack-watch`
|
|
@@ -9,7 +9,8 @@ delegated tasks, messaging and native schedules.
|
|
|
9
9
|
The driver must be a T3 thread, save `orchestrator_capabilities` JSON under
|
|
10
10
|
the run record, and follow the advertised tool schema; discovery alone proves
|
|
11
11
|
neither provider readiness nor successful execution. Missing capability holds
|
|
12
|
-
the affected operation, without a substitute runtime.
|
|
12
|
+
the affected operation, without a substitute runtime. Native PR watch absence
|
|
13
|
+
uses the schedule fallback below.
|
|
13
14
|
|
|
14
15
|
From installed `skills/axstack/roles.json`, the driver must snapshot the selected
|
|
15
16
|
preset and stable role IDs, requested provider/model/class/mode/effort, resolved
|
|
@@ -224,6 +225,31 @@ Once nothing remains unsettled the driver must `delete_scheduled_task` for the
|
|
|
224
225
|
run watch and use `list_scheduled_tasks` to read back its absence; an uncertain
|
|
225
226
|
delete preserves the hold and recorded ID.
|
|
226
227
|
|
|
228
|
+
## Native PR links and watches
|
|
229
|
+
|
|
230
|
+
After verified publication readback or adoption of an own PR, the driver calls
|
|
231
|
+
`link_pull_request` with the full PR URL for every layer of a `gh stack`.
|
|
232
|
+
Before finishing PR work, including watch end or Close-out, the driver calls
|
|
233
|
+
`list_thread_pull_requests` and links every missing run PR.
|
|
234
|
+
Never link unrelated PRs.
|
|
235
|
+
|
|
236
|
+
For every watched own PR in chat-run or standalone adopted maintenance, when
|
|
237
|
+
available the driver calls `watch_pull_request` for T3 wakes on check completion,
|
|
238
|
+
new comments from others, or branch conflicts, then ends the turn.
|
|
239
|
+
Never poll or keep a model active between native PR wake events.
|
|
240
|
+
When T3 reports it stopped watching a PR, the next wake re-checks the PR and
|
|
241
|
+
calls `watch_pull_request` again.
|
|
242
|
+
This includes a stop after T3 could not read the PR for 15 minutes.
|
|
243
|
+
Route native PR wake events through watch §4 and the unchanged §5 readiness predicate.
|
|
244
|
+
|
|
245
|
+
If `watch_pull_request` is unavailable, fall back to the bound 10-minute schedule
|
|
246
|
+
and `scripts/pr-digest.js` without a hold.
|
|
247
|
+
Keep the schedule cadence unchanged while a native PR watch is active,
|
|
248
|
+
including the existing 7-day quiet relaxation.
|
|
249
|
+
The schedule still reconciles author and review tasks, readiness, and release.
|
|
250
|
+
When a PR merges or closes, or its watch is torn down, call `unwatch_pull_request`
|
|
251
|
+
and keep its link.
|
|
252
|
+
|
|
227
253
|
## Evidence, prompts and authority
|
|
228
254
|
|
|
229
255
|
Put the [Safe-deletion rule](workspace-hygiene.md#safe-deletion) in every worker brief.
|
|
@@ -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
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
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
|
|
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.
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
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.
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
rationale
|
|
57
|
-
|
|
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
|
|
76
|
+
Size est: <coarse size estimate>
|
|
76
77
|
Acceptance: <checks from approved spec rev>
|
|
77
78
|
Depends: <task IDs or none>
|
|
78
79
|
```
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: axstack-watch
|
|
3
|
-
description: When babysitting an existing PR, use axstack-watch to
|
|
3
|
+
description: When babysitting an existing PR, use axstack-watch to maintain own PRs by default within bounded authority.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Watch
|
|
@@ -37,20 +37,21 @@ live owner and watch; uncertain state holds new registrations until resolved.
|
|
|
37
37
|
|
|
38
38
|
For an existing own PR, read the
|
|
39
39
|
[proportional scope identities](../axstack/references/routing.md#proportional-scope-identity),
|
|
40
|
-
|
|
40
|
+
apply its default maintenance rule and verify writable ownership, then snapshot the
|
|
41
41
|
accepted maintenance intent once: authorized scope, actual head and base,
|
|
42
42
|
current owner, actual author provenance, and watch state. Check authoring
|
|
43
43
|
session evidence; the orchestrator identity is not author evidence, and never
|
|
44
44
|
assume an author for an imported own PR. It needs no new spec, ticket, or repeated
|
|
45
|
-
approval.
|
|
45
|
+
approval. Explicit observation-only adoption grants no repair or reply authority.
|
|
46
46
|
|
|
47
47
|
Adoption is settled when the record names one persistent owner, one watch, the
|
|
48
|
-
exact PR revision and base, and the applicable authority snapshot. If
|
|
49
|
-
|
|
48
|
+
exact PR revision and base, and the applicable authority snapshot. If writable
|
|
49
|
+
access is unverified, record the hold and continue read-only; pushing stays held.
|
|
50
50
|
|
|
51
51
|
## 2. Fix the operating mode
|
|
52
52
|
|
|
53
|
-
Choose one mode
|
|
53
|
+
Choose one mode under [Shared routing](../axstack/references/routing.md#direct-routes-no-spec-ceremony)
|
|
54
|
+
and record it before dispatch:
|
|
54
55
|
|
|
55
56
|
- **Chat-run watch:** authorized maintain mode is the default for run-created
|
|
56
57
|
PRs. The initiating chat remains the only driver and record
|
|
@@ -63,7 +64,8 @@ Choose one mode from the user's authority and record it before dispatch:
|
|
|
63
64
|
repair path, including obvious fixes after changed heads or feedback.
|
|
64
65
|
- **Peer:** observe and report a colleague's PR. Peer mode never repairs.
|
|
65
66
|
- **Authorized maintenance:** repair an adopted own PR only within the accepted
|
|
66
|
-
maintenance snapshot and publication authority
|
|
67
|
+
maintenance snapshot and publication authority; own-PR watch requests use this
|
|
68
|
+
mode by default under Shared routing.
|
|
67
69
|
|
|
68
70
|
Every later wake must be classifiable from this recorded mode without inferring
|
|
69
71
|
new authority.
|
|
@@ -87,7 +89,8 @@ create no recursive teams, and the adoption watcher is never the writer.
|
|
|
87
89
|
|
|
88
90
|
A standalone live watch has verified role and timer receipts, handshakes, watched scope,
|
|
89
91
|
wake ownership, and a common expiry. A missing runtime capability is a setup gap,
|
|
90
|
-
|
|
92
|
+
subject to the [native PR watch fallback](../axstack/references/t3-runtime.md#native-pr-links-and-watches).
|
|
93
|
+
Never invent a call or create a duplicate registration. Native
|
|
91
94
|
wake-ups drive observation; never poll or keep a model active between events.
|
|
92
95
|
|
|
93
96
|
## 4. Route each wake
|
|
@@ -114,11 +117,14 @@ snapshot. Missing, stale, or materially changed identity holds repair routing
|
|
|
114
117
|
while monitoring continues. Accepted fixes return to the same original author
|
|
115
118
|
session only when the run itself launched that session and evidence allows,
|
|
116
119
|
then receive refreshed review under the authored mode rule before publication.
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
120
|
+
If this run did not launch the original author, or historical provenance is
|
|
121
|
+
unknown or mixed, launch a new configured `axstack-author` attempt under
|
|
122
|
+
[Shared routing](../axstack/references/routing.md).
|
|
123
|
+
For an adopted own PR, pair the authored reviewer from the recorded actual
|
|
124
|
+
provenance of its repair author.
|
|
125
|
+
Hold only when the repair author's own provenance cannot be established or
|
|
126
|
+
an eligible configured reviewer is unavailable; report that exact gap.
|
|
127
|
+
Historical provenance still follows §5's merge-card rule.
|
|
122
128
|
|
|
123
129
|
A handled wake has an acknowledged event ID, an observation or action bound to
|
|
124
130
|
the current revision, and a recorded hold or next owner where work remains.
|
|
@@ -307,6 +313,9 @@ merge result is a run-wide hold on further automated merges until resolved.
|
|
|
307
313
|
|
|
308
314
|
## 6. End and preserve continuity
|
|
309
315
|
|
|
316
|
+
Reconcile PR links and stop native PR watches under
|
|
317
|
+
[T3 runtime](../axstack/references/t3-runtime.md#native-pr-links-and-watches).
|
|
318
|
+
|
|
310
319
|
End a chat-run watch only after all members merged or closed, launched work is settled,
|
|
311
320
|
and the run's release step is settled or not applicable, or user cancellation.
|
|
312
321
|
Without an Autopilot or Release record, the release step is not
|
|
@@ -15,10 +15,9 @@ stale, or materially changed boundary holds the repair while read-only
|
|
|
15
15
|
monitoring continues.
|
|
16
16
|
|
|
17
17
|
Record the exact defect, allowed files and actions, current revision, feedback
|
|
18
|
-
IDs, and actual author without expanding scope.
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
the importing owner or orchestrator.
|
|
18
|
+
IDs, and actual author without expanding scope.
|
|
19
|
+
Follow [Feedback routing](../SKILL.md#feedback-routing) to launch an adopted
|
|
20
|
+
repair author and pair its reviewer.
|
|
22
21
|
|
|
23
22
|
## 2. Produce a reviewable candidate
|
|
24
23
|
|
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
Read this before starting, resuming, or stopping automated PR observation.
|
|
4
4
|
|
|
5
|
+
Follow [Native PR links and watches](../../axstack/references/t3-runtime.md#native-pr-links-and-watches)
|
|
6
|
+
for linking, event wakes, re-watching, fallback, and teardown in both watch modes.
|
|
7
|
+
|
|
5
8
|
For each own PR, the owner must follow [PR previews](../../axstack/references/preview.md)
|
|
6
9
|
when deciding on a preview, restarting it after a head change, or tearing it down.
|
|
7
10
|
|
|
@@ -98,7 +101,8 @@ Quiet ticks never notify.
|
|
|
98
101
|
|
|
99
102
|
The driver alone routes repair.
|
|
100
103
|
The driver routes rebases and review feedback to the PR's author for repair.
|
|
101
|
-
For an adopted PR whose author this run did not launch, use a new author attempt under the
|
|
104
|
+
For an adopted PR whose author this run did not launch, use a new author attempt under the
|
|
105
|
+
[adoption rules](../SKILL.md#feedback-routing).
|
|
102
106
|
The watch never writes candidate source.
|
|
103
107
|
Re-read remote head/base and T3 ownership.
|
|
104
108
|
Independent PRs may repair in parallel in separate T3 writer worktrees within
|