axstack 0.47.0 → 0.48.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "axstack",
3
- "version": "0.47.0",
3
+ "version": "0.48.0",
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",
@@ -81,6 +81,29 @@ owner stops.
81
81
  deleted.
82
82
  The driver records `paused` on a user request or a hold; idle alone is neither.
83
83
 
84
+ ## Review-round budgets
85
+
86
+ Each PR membership entry carries `rounds: <n>` and `step-back: unused | used r<n>`.
87
+ The field `rounds` counts failing review rounds, not `repairs`.
88
+ Ticketless PRs (small-change intents) and adopted PRs have entries too.
89
+ A new planned PR, small-change PR or adopted PR starts at `rounds: 0` and `step-back: unused`
90
+ when it enters the run, unless a prior run entry exists.
91
+ When a prior run entry exists for the PR, copy that entry, including adopted PRs.
92
+ A prior record predates the field only when its `Runtime` line names an Axstack version below 0.48.0.
93
+ Such a pre-field entry starts with `rounds: 0` and `step-back: unused` only if the field is absent.
94
+ Except for that absent-field initialization, an inherited entry with missing or unclear `rounds` or `step-back` values
95
+ counts as `step-back: used`, including a newer record missing the field or an unknown `Runtime` version.
96
+ Distinct PRs that share one ticket or issue keep separate budgets.
97
+ Write `step-back: used r<n>` before dispatching any repair from the step-back,
98
+ including a user-picked path from the advised step-back card.
99
+ A replacement or split PR copies its predecessor's entry.
100
+ The entry persists across rebases, resumes and owner transfer.
101
+ A `step-back: used` entry permits no further extension.
102
+ Any counted failing review round after the extension records `held` with an advised card,
103
+ including a re-review after a base update and a round after a passing round 4.
104
+ Follow [Advised holds](contracts.md#advised-holds) for that card.
105
+ An interrupted or failed extra-round attempt never earns a second extension and follows the existing failure rules.
106
+
84
107
  ## Handoff and resumption
85
108
 
86
109
  Keep handoff state in this same record, never a second wrapper record. Before an
@@ -190,7 +213,7 @@ Deploying bases: <base -> integration | deploying; docs/workflow evidence>
190
213
  PR digest watermarks: <repo -> absolute path of its per-repository JSON file inside the private run directory> | none
191
214
  Release: <AGENTS.md file:line + tag-triggered workflow path + named install hosts> | not applicable (<reason>)
192
215
  Source base: <exact revision or source identity>
193
- PR membership: <PR -> ordinary-chain | legacy-native-stack; direct dependencies incl unpublished; active authors; head/base branch/base SHA>
216
+ PR membership: <PR -> ordinary-chain | legacy-native-stack; direct dependencies incl unpublished; active authors; head/base branch/base SHA; rounds: <n>; step-back: unused | used r<n>>
194
217
  IDs: <projectId + driver threadId/runId + dispatch identity receipt pointers>
195
218
  Runtime: <host + T3 version + installed Axstack SHA + installed Axstack version/check time + last reference read time + capabilities JSON path>
196
219
  Schedules: <scheduledTaskIds of every watch and manager schedule>
@@ -250,9 +250,8 @@ For each PR:
250
250
  polish.
251
251
  `REQUEST_CHANGES`, a failed required check, or post-readiness feedback returns
252
252
  findings to the same author for a new revision, increments `repairs`, and
253
- returns to step 1. `INCOMPLETE`, a provenance gap, unavailable model, serious
254
- risk, or the third review round with `REQUEST_CHANGES` and/or diligence
255
- `FINDINGS` on one PR records `held`. A changed parent immediately invalidates affected child readiness; refresh
253
+ returns to step 1. `INCOMPLETE`, a provenance gap, unavailable model or serious
254
+ risk records `held`. A changed parent immediately invalidates affected child readiness; refresh
256
255
  the next ready children as needed under PR chains before step 1.
257
256
  Follow [Advised holds](../axstack/references/contracts.md#advised-holds) for eligible `held` causes.
258
257
  Merge-ready also requires a current diligence `PASS` at that head; diligence
@@ -263,7 +262,15 @@ For each PR:
263
262
  rule as a finding on the owning PR and hold merge-ready until the contradiction is resolved.
264
263
  An unrelated run-record `Learning` leaves merge-ready eligibility unchanged.
265
264
  A round with reviewer `REQUEST_CHANGES` and/or diligence `FINDINGS` increments
266
- `repairs` once and counts once toward the third-round hold.
265
+ `repairs` once and counts once toward the round-3 step-back.
266
+ Failed checks and post-readiness feedback increment `repairs` but never count
267
+ as failing review rounds.
268
+ On any counted failing review round that leaves `rounds` at 3 or more while
269
+ `step-back: unused`, the driver steps back with both `axstack-advisor-astra`
270
+ and `axstack-advisor-opus` to assess exactly one extra repair round (round 4
271
+ in the normal case).
272
+ Load and follow [Round-3 step-back](references/step-back.md).
273
+ Load and follow [Review-round budgets](../axstack/references/run-record.md#review-round-budgets) before dispatching any repair from the step-back.
267
274
 
268
275
  The T3 run watch reconciles every unsettled dispatch attempt; the bounded
269
276
  forge check wait is the only other implementation wait.
@@ -0,0 +1,31 @@
1
+ # Round-3 step-back
2
+
3
+ An unavailable step-back seat counts as no agreement and falls to the user with the advised step-back card.
4
+ Follow [Advised holds](../../axstack/references/contracts.md#advised-holds) for
5
+ seat attempts, waits, gaps and cards, including the round-4 card's delta-only adviser reuse.
6
+
7
+ Each adviser independently gets the open findings and the author's replies.
8
+ Each adviser independently gets the per-round deltas.
9
+ Each adviser independently gets blame showing the round in which each flagged line first appeared.
10
+ Each adviser independently gets the approved scope, sketch and approach.
11
+
12
+ Send one advised repair brief to the same author for the extra round only when all conditions below hold:
13
+
14
+ - The driver accepts the path.
15
+ - Both advisers agree on the path.
16
+ - The path stays inside the approved scope.
17
+ The path must not break a sketch `Binding` line.
18
+ - No independent hold applies.
19
+
20
+ The extra round requires fresh independent reviewer and diligence receipts, with a fresh session of the same mapped reviewer role.
21
+ Do not add an extra reviewer.
22
+ Advisers must never lower a rating or clear a finding.
23
+ Advisers can propose `Pre-existing` with evidence, which the extra-round reviewer validates under
24
+ [review's Pre-existing rules](../../axstack-review/SKILL.md#finding-severity).
25
+
26
+ When any condition fails, record `held` and fall to the user with the advised step-back card.
27
+ Failed conditions include an adviser split, an unavailable seat, the driver rejecting the agreed path,
28
+ or the only path leaving approved scope or breaking a `Binding` line.
29
+ A scope change follows the existing material-revision route.
30
+ An independent hold keeps its own card and rules, with received step-back advice attached as context.
31
+ After an independent hold clears, recheck all extra-round conditions and reuse unchanged advice.