axstack 0.24.0 → 0.25.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 +48 -9
- package/docs/installation.md +7 -6
- package/docs/workflows.md +121 -24
- package/package.json +1 -1
- package/profiles/presets/claude-only.json +10 -1
- package/profiles/presets/codex-only.json +10 -1
- package/profiles/presets/mixed.json +16 -7
- package/skills/axstack/references/automations.md +69 -10
- package/skills/axstack/references/autopilot.md +35 -21
- package/skills/axstack/references/candidate-publication.md +10 -0
- package/skills/axstack/references/contracts.md +20 -17
- package/skills/axstack/references/diligence.md +6 -1
- package/skills/axstack/references/lifecycle.md +4 -4
- package/skills/axstack/references/pr-shape.md +5 -0
- package/skills/axstack/references/pr-triage-nightly.md +20 -0
- package/skills/axstack/references/preview.md +53 -0
- package/skills/axstack/references/role-roster.md +5 -1
- package/skills/axstack/references/routing.md +7 -2
- package/skills/axstack/references/run-record.md +4 -1
- package/skills/axstack/references/t3-runtime.md +20 -3
- package/skills/axstack/references/test-audit-weekly.md +2 -1
- package/skills/axstack/references/ui-verification.md +2 -0
- package/skills/axstack/scripts/pick-instance.js +110 -0
- package/skills/axstack-audit/SKILL.md +5 -3
- package/skills/axstack-implement/SKILL.md +25 -10
- package/skills/axstack-relay/SKILL.md +2 -0
- package/skills/axstack-review/SKILL.md +42 -11
- package/skills/axstack-watch/SKILL.md +125 -42
- package/skills/axstack-watch/references/repair-publication.md +3 -0
- package/skills/axstack-watch/references/watch-runtime.md +31 -11
|
@@ -13,7 +13,9 @@ Manual review keeps the user’s chat and workspace open.
|
|
|
13
13
|
|
|
14
14
|
Produce evidence-bound findings for an exact revision using the review count
|
|
15
15
|
and model routing required by its mode. Report within the requested authority;
|
|
16
|
-
|
|
16
|
+
for own PRs, automatic merge is the default under the
|
|
17
|
+
[watch predicate](../axstack-watch/SKILL.md#5-state-readiness-precisely).
|
|
18
|
+
Reviewers never merge.
|
|
17
19
|
|
|
18
20
|
When the current session is a fresh review-manager session, load
|
|
19
21
|
[Native PR managers](../axstack/references/automations.md) and follow only its
|
|
@@ -35,6 +37,27 @@ carry the required escalation field and every eligible peer PR takes a binding
|
|
|
35
37
|
|
|
36
38
|
For performance claims only, load [Performance checklist](../axstack/references/performance-checklist.md).
|
|
37
39
|
|
|
40
|
+
## Finding severity
|
|
41
|
+
|
|
42
|
+
Rate every review and diligence finding as `high`, `medium`, or `low` under
|
|
43
|
+
this shared rubric.
|
|
44
|
+
|
|
45
|
+
- `high` = correctness, security, data-loss, or contract defect with real impact.
|
|
46
|
+
- `medium` = material behaviour, test, or maintainability defect, a softened or
|
|
47
|
+
dropped obligation, or an evidence-integrity mismatch (SHAs, counts, missing red/green logs).
|
|
48
|
+
- `low` = polish that does not change behaviour.
|
|
49
|
+
|
|
50
|
+
The reviewer rates each finding.
|
|
51
|
+
Round uncertain ratings up.
|
|
52
|
+
Only diligence can raise a rating.
|
|
53
|
+
Nobody can lower a rating.
|
|
54
|
+
`medium` and `high` findings block `APPROVE`.
|
|
55
|
+
Fix and re-review every `medium` or `high` finding.
|
|
56
|
+
`low` findings do not block approval or merge.
|
|
57
|
+
The owner records all low findings in one follow-up issue in the repository's
|
|
58
|
+
tracker (GitHub Issues, or Linear for `defi-com`), linked from the PR.
|
|
59
|
+
The follow-up issue never gates merge.
|
|
60
|
+
|
|
38
61
|
## Codebase findings mode
|
|
39
62
|
|
|
40
63
|
Use this manual mode for existing code at a pinned exact source revision and a
|
|
@@ -197,10 +220,9 @@ This section applies to peer and authored PR modes.
|
|
|
197
220
|
private per-dispatch artifacts. Each reviewer uses a separate driver-made disposable detached checkout;
|
|
198
221
|
preserve its private evidence before removal.
|
|
199
222
|
- **Peer:** exactly two independent final reviewers,
|
|
200
|
-
`axstack-reviewer-primary` and `axstack-reviewer-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
creates children.
|
|
223
|
+
`axstack-reviewer-primary` and `axstack-reviewer-peer` from the routing snapshot.
|
|
224
|
+
Send both the identical six-angle brief, with no first-pass cross-read or children.
|
|
225
|
+
Mixed peer reviewers share a model, with independence from separate sessions, the identical brief and an isolated first pass.
|
|
204
226
|
- **Authored:** exactly one eligible independent reviewer from this complete
|
|
205
227
|
mapping:
|
|
206
228
|
|
|
@@ -222,10 +244,9 @@ This section applies to peer and authored PR modes.
|
|
|
222
244
|
reviewer covers the complete brief alone. No author or owner session may
|
|
223
245
|
review, even if its role or provider label changes.
|
|
224
246
|
|
|
225
|
-
Mixed
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
independence only: separate `axstack-explainer` at high and
|
|
247
|
+
Mixed authored review is cross-provider. Single-provider review uses different
|
|
248
|
+
models, not cross-provider independence. The claude-only Sonnet explanation
|
|
249
|
+
exception is session independence only: separate `axstack-explainer` and
|
|
229
250
|
`axstack-explainer-review` at high. It never permits same-model code review.
|
|
230
251
|
|
|
231
252
|
For the existing high-stakes Opus high author / Sol high checkpoint route,
|
|
@@ -265,6 +286,12 @@ This section applies to peer and authored PR modes.
|
|
|
265
286
|
inspect the named keepers. Removing a test without a named keeper or
|
|
266
287
|
vacuity/obsolescence evidence is a finding. Peer mode remains report-only.
|
|
267
288
|
|
|
289
|
+
The authored reviewer checks the `Revert` line against the diff.
|
|
290
|
+
Follow [Revert line](../axstack/references/candidate-publication.md#revert-line)
|
|
291
|
+
for its format and classification.
|
|
292
|
+
Record the `Revert` line in the review receipt.
|
|
293
|
+
Rate a wrong or missing `Revert` line at least `medium` under [Finding severity](#finding-severity).
|
|
294
|
+
|
|
268
295
|
Under angle 6, verify the recorded shape against the pinned head and base.
|
|
269
296
|
A mismatch between the recorded and measured total is a finding. Apply the
|
|
270
297
|
level matching the measured total. The rationale band requires only its
|
|
@@ -382,7 +409,9 @@ Evidence: <run dir>/evidence/<dispatch>/ (report and probe paths)
|
|
|
382
409
|
Verdict: <APPROVE | REQUEST_CHANGES | INCOMPLETE>
|
|
383
410
|
Coverage: <angles + acceptance + executable evidence checked>
|
|
384
411
|
Limitations: <unverified boundaries + why>
|
|
385
|
-
Findings: <evidence + consequence each>
|
|
412
|
+
Findings: <severity + evidence + consequence each>
|
|
413
|
+
Revert: <declared line + diff-based assessment in authored mode>
|
|
414
|
+
Agent-authored comment and thread IDs: <receipt-recorded IDs or none>
|
|
386
415
|
Safety fact: <the one fact the change is safe because of> — <ladder step + proof | unproven>
|
|
387
416
|
Escalate to user: <yes | no> — <criterion> — <reason>
|
|
388
417
|
```
|
|
@@ -426,7 +455,9 @@ evidence, limitations, validated risk, or an internal `INCOMPLETE` report.
|
|
|
426
455
|
- A missing, mismatched, stale, or materially changed input blocks approval and
|
|
427
456
|
merge-ready declarations while readonly investigation continues.
|
|
428
457
|
|
|
429
|
-
The
|
|
458
|
+
The recorded owning watch thread applies watch §5's guarded merge and card rules.
|
|
459
|
+
Review approval alone never supplies merge authority. Peer PRs stay user-merged.
|
|
460
|
+
User merges are bottom-up for a stack.
|
|
430
461
|
|
|
431
462
|
## Report-only scope
|
|
432
463
|
|
|
@@ -141,63 +141,142 @@ the existing hold open.
|
|
|
141
141
|
|
|
142
142
|
The owner checks the full predicate below before declaring merge-ready. API or
|
|
143
143
|
permission errors leave readiness `UNKNOWN`; review approval alone is not
|
|
144
|
-
merge-ready. Merge-ready is an observed state distinct from merged.
|
|
145
|
-
|
|
146
|
-
|
|
144
|
+
merge-ready. Merge-ready is an observed state distinct from merged.
|
|
145
|
+
Automatic merge is the default for own PRs under a chat-run watch or a standalone
|
|
146
|
+
watch in authorized maintenance mode, including small and adopted work.
|
|
147
|
+
The merge actor is the recorded owning thread of that watch (`axstack-owner`
|
|
148
|
+
for standalone maintenance).
|
|
149
|
+
A missing or idle owner never transfers merge authority, because the reconcile and
|
|
150
|
+
explicit-transfer rules in [Lifecycle](../axstack/references/lifecycle.md) apply first.
|
|
151
|
+
Observation-only and peer watches never merge.
|
|
152
|
+
Workers, reviewers, monitors, managers, and the nightly triage never merge.
|
|
147
153
|
A current diligence `PASS` at the exact head is required before any merge-ready statement.
|
|
148
154
|
|
|
149
|
-
Record approval mode
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
+
Record approval mode from the collaborator readback: `solo` only when it lists
|
|
156
|
+
the user alone with write, maintain, or admin permission; otherwise, or when
|
|
157
|
+
unknown, `team`.
|
|
158
|
+
Base classification uses repository docs and workflows, never the branch name
|
|
159
|
+
alone, and unknown means `deploying`.
|
|
160
|
+
A base is `integration` only when repository docs or workflows show it does not
|
|
161
|
+
deploy to production.
|
|
162
|
+
Re-read approval mode and base classification immediately before each automated
|
|
163
|
+
merge and at every watch resume.
|
|
155
164
|
|
|
156
165
|
For each current head and base SHA, every merge-ready term must hold:
|
|
157
166
|
|
|
158
|
-
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
167
|
+
- Approval: in `solo` mode, authored-review `APPROVE` plus diligence `PASS`, both
|
|
168
|
+
bound to the current head and base, satisfy approval.
|
|
169
|
+
The reviewer's provider differs from every provider that authored or repaired
|
|
170
|
+
commits in `merge-base..head`, using receipt-recorded provenance.
|
|
171
|
+
Both modes use `git patch-id --stable` of `merge-base..head`.
|
|
172
|
+
A rebase or base-update merge with unchanged patch-id adds no provenance.
|
|
173
|
+
Unknown or mixed provenance and PRs the user wrote by hand post a merge card.
|
|
174
|
+
In `team` mode, require at least one counted collaborator approval at the
|
|
175
|
+
current head plus the same authored review and diligence.
|
|
176
|
+
Human approval: in `team` mode, count the forge's latest opinionated review
|
|
177
|
+
from each non-author account of type `User` only when it is `APPROVED`, not
|
|
178
|
+
dismissed, and `collaborators/{login}/permission` is write, maintain, or admin.
|
|
179
|
+
A read-only approver does not count.
|
|
180
|
+
Reviews carrying an Axstack automation marker never count.
|
|
181
|
+
A later `CHANGES_REQUESTED` blocks until resolved; a stale or dismissed
|
|
182
|
+
approval does not count.
|
|
183
|
+
A collaborator approval carries over only across a rebase with unchanged
|
|
184
|
+
patch-id recorded for both heads while the forge still counts it.
|
|
185
|
+
Require fresh authored review, diligence, and CI on every new head.
|
|
186
|
+
Text carrying a visible machine marker never counts as a user reply:
|
|
187
|
+
orchestration notices, dispatch envelopes, `<pasted_content>` blocks, task
|
|
188
|
+
notifications, tool output, relay/Telegram text, and PR text.
|
|
169
189
|
- CI: every job of workflows the base runs on `pull_request`, plus each branch
|
|
170
190
|
protection required check, is present at the head with conclusion `success`.
|
|
171
191
|
There must be at least as many jobs as the base's latest run of those
|
|
172
192
|
workflows; an unknown or empty check set holds. A skipped required CI job
|
|
173
193
|
holds. Checks from other apps may be neutral or skipped; none may be pending.
|
|
174
194
|
- Feedback and revision: the PR is not draft and is mergeable against the
|
|
175
|
-
current base; no unresolved
|
|
195
|
+
current base; no unresolved blocking agent-authored thread, top-level blocking comment, or
|
|
176
196
|
effective blocking review remains. Authored review `APPROVE` and diligence
|
|
177
197
|
`PASS` are bound to the current head and base. No `Escalate to user`,
|
|
178
198
|
unsettled author Dispatch, or task, PR, dependency, run-wide, or serious-risk
|
|
179
|
-
hold affects this merge.
|
|
199
|
+
hold affects this merge. Apply the comment holds below.
|
|
180
200
|
The current target base head must be an ancestor of the singleton head or
|
|
181
201
|
bottom stack member head; unknown ancestry holds. A CI re-run does not restore
|
|
182
202
|
this freshness after the base moves. Update the branch and refresh head-bound
|
|
183
203
|
evidence instead.
|
|
184
204
|
- Veto: no `do-not-merge` label and no chat `hold` applies.
|
|
185
205
|
|
|
206
|
+
Only comments and threads whose IDs are recorded in an agent receipt count as agent-authored.
|
|
207
|
+
Every other review thread, review body, or top-level comment from a human or a bot holds automatic merge.
|
|
208
|
+
Post a merge card for these non-agent items until a human resolves or dismisses them.
|
|
209
|
+
Clear GitHub-unresolvable review bodies and top-level comments only by the user's
|
|
210
|
+
reply to that merge card naming the items.
|
|
211
|
+
Agents never rate, resolve, or dismiss these non-agent items.
|
|
212
|
+
An always-commenting review bot therefore blocks automatic merge until the user clears its threads.
|
|
213
|
+
Agent-authored threads with only `low` findings can stay open.
|
|
214
|
+
Apply any repository rule that requires conversation resolution.
|
|
215
|
+
|
|
186
216
|
Under authorized own-PR maintenance, keep repairing and rebasing onto the base
|
|
187
217
|
when it moves, then re-run checks, until the head is rebased on the current base,
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
218
|
+
the comment holds above are cleared, the approval term holds, and required CI is
|
|
219
|
+
green; only then record merge-ready.
|
|
220
|
+
Never re-request a collaborator's review while its approval still counts under
|
|
221
|
+
the carryover rule above.
|
|
222
|
+
If the forge dismissed it or requires last-push approval, hold and tell the user
|
|
223
|
+
without auto-requesting re-review.
|
|
224
|
+
Initial review requests before any human approval remain allowed.
|
|
225
|
+
|
|
226
|
+
### Automatic merge eligibility and cards
|
|
227
|
+
|
|
228
|
+
Team mode targets only `dev` when repository docs or workflows prove it is
|
|
229
|
+
non-production.
|
|
230
|
+
Solo mode targets `main` or any other `integration` base.
|
|
231
|
+
For a `gh stack`, only the bottom member's base must be eligible.
|
|
232
|
+
Each other member's base must be the next-lower member's branch at its reviewed head.
|
|
233
|
+
Every member must meet every other term and exclusion.
|
|
234
|
+
A stack holds until every member of its approved plan (the ticket map or the
|
|
235
|
+
adopted stack's recorded members) is published.
|
|
236
|
+
Reviewed members are never retargeted to become eligible.
|
|
237
|
+
|
|
238
|
+
Never auto-merge PRs authored by anyone other than the user or the user's agents.
|
|
239
|
+
Never auto-merge promotion PRs (`dev` to `staging`, `staging` to `prod`).
|
|
240
|
+
Never auto-merge PRs with a `deploying` or unknown base.
|
|
241
|
+
Never auto-merge release PRs.
|
|
242
|
+
Never auto-merge PRs changing anything under `.github/`.
|
|
243
|
+
Never auto-merge PRs changing a file a workflow step invokes by path.
|
|
244
|
+
Never auto-merge PRs changing the package manifest or lockfile.
|
|
245
|
+
Never auto-merge PRs changing test-runner config.
|
|
246
|
+
Never auto-merge PRs changing branch-protection or ruleset config.
|
|
247
|
+
Never auto-merge PRs changing `CODEOWNERS`.
|
|
248
|
+
Test sources stay eligible.
|
|
249
|
+
Never auto-merge PRs changing Axstack merge-authority text (examples, not a closed
|
|
250
|
+
list): `contracts.md`, `autopilot.md`, `lifecycle.md`, `routing.md`, `role-roster.md`,
|
|
251
|
+
`t3-runtime.md`, `diligence.md`, `profiles/presets/*.json`, `axstack-watch`,
|
|
252
|
+
`axstack-implement`, `axstack-review`, and `AGENTS.md`.
|
|
253
|
+
Never auto-merge PRs whose revert line is not `clean`.
|
|
254
|
+
Read the revert gate from the declaration whose line starts with `Revert:`
|
|
255
|
+
at line start in the PR description.
|
|
256
|
+
A quoted format inside a bullet never counts as the declaration.
|
|
257
|
+
Never auto-merge PRs held under the comment rules above.
|
|
258
|
+
`--admin` and rule bypass are never used.
|
|
259
|
+
`Auto-merge: off` for a run or PR makes the merge card wait, and it waits for the user.
|
|
260
|
+
|
|
261
|
+
Post a merge card for every nonqualifying approval, base, exclusion, or off case.
|
|
262
|
+
Bind it to the PR head and base SHA; list CI, authored review and diligence at
|
|
263
|
+
those SHAs, counted collaborator approvals and bot votes with each vote's SHA
|
|
264
|
+
and stale flag, and the causes holding this merge.
|
|
265
|
+
A card that needs the user's decision is a decision hold under the recorded
|
|
266
|
+
Notification policy with one deduplicated relay; relay text never supplies approval.
|
|
267
|
+
A changed head or base requires a refreshed card.
|
|
268
|
+
For an own PR on an `integration` base, the user's reply to the card authorizes
|
|
269
|
+
the merge actor to merge under the guarded path, subject to the exceptions below.
|
|
270
|
+
In `solo` mode the user's merge-card reply authorizes the guarded merge of
|
|
271
|
+
user-written PRs or PRs with unknown or mixed provenance.
|
|
272
|
+
In `team` mode a reply never replaces counted collaborator approval.
|
|
273
|
+
In `team` mode the reply only clears an ineligible base, auto-merge turned off,
|
|
274
|
+
and an open human or bot comment.
|
|
275
|
+
PRs in the CI, manifest, merge-authority, or non-`clean` revert categories are
|
|
276
|
+
merged by the user on the forge.
|
|
277
|
+
Promotion, release, `deploying`-base, and peer PRs are merged by the user on the
|
|
278
|
+
forge, and the card only reports readiness.
|
|
279
|
+
User merges are bottom-up for a stack.
|
|
201
280
|
|
|
202
281
|
Immediately before each automated merge, re-read every term from the forge.
|
|
203
282
|
Confirm merge commits are allowed, `delete_branch_on_merge` is false, and the
|
|
@@ -228,22 +307,25 @@ merge result is a run-wide hold on further automated merges until resolved.
|
|
|
228
307
|
|
|
229
308
|
## 6. End and preserve continuity
|
|
230
309
|
|
|
231
|
-
End a chat-run watch after all members merged or closed
|
|
232
|
-
step is settled or not applicable, user cancellation
|
|
233
|
-
|
|
310
|
+
End a chat-run watch only after all members merged or closed, launched work is settled,
|
|
311
|
+
and the run's release step is settled or not applicable, or user cancellation.
|
|
312
|
+
Without an Autopilot or Release record, the release step is not
|
|
234
313
|
applicable to this watch. A required PR closed without merging records a
|
|
235
|
-
decision hold and the wake remains active
|
|
236
|
-
|
|
314
|
+
decision hold and the wake remains active until the user resolves scope or cancels.
|
|
315
|
+
Stop the chosen wake and verify
|
|
237
316
|
its stop receipt; a failed or uncertain schedule deletion is a hold.
|
|
238
317
|
Delete only the recorded schedule and verify absence with `list_scheduled_tasks` under
|
|
239
318
|
[Watch runtime](references/watch-runtime.md#chat-run-watch).
|
|
240
319
|
|
|
320
|
+
Run Close-out after the watch ends, subject to its existing acceptance conditions.
|
|
321
|
+
Keep merge-card replies and `hold` in the driver thread.
|
|
322
|
+
|
|
241
323
|
End a standalone watch early when all required PRs merge, at cancellation, or
|
|
242
324
|
at its shared default 24 h deadline. In every case, stop all owned
|
|
243
325
|
registrations and verify their receipts.
|
|
244
326
|
|
|
245
327
|
At every end condition, leave the compact state below in the private run record
|
|
246
|
-
and report it in the current chat, even when work remains.
|
|
328
|
+
and report it in the current chat, even when work remains. Standalone expiry grants neither
|
|
247
329
|
silent renewal nor ownership-transfer authority.
|
|
248
330
|
|
|
249
331
|
Transfer ownership through the runtime-owned T3 transfer route only when the
|
|
@@ -259,7 +341,8 @@ Owner: <profile + session> Worktree: <path>
|
|
|
259
341
|
Scope: <approved rev, small-change intent, or maintenance snapshot>
|
|
260
342
|
Capability: <issue + lifecycle state>
|
|
261
343
|
CI/review: <current states + evidence refs>
|
|
262
|
-
Watch: <chosen wake mechanism, native id or command,
|
|
344
|
+
Watch: <chosen wake mechanism, native id or command, native schedule lifetime + re-arm receipts + stop receipt>
|
|
345
|
+
Standalone watch: <shared expiry>
|
|
263
346
|
Remaining: <next actions + owner>
|
|
264
347
|
Resume: <known commands or verified refs needed to reconcile from this revision>
|
|
265
348
|
```
|
|
@@ -63,3 +63,6 @@ confirming the intended operation is absent.
|
|
|
63
63
|
Publication ends with a remote receipt proving that the reviewed revision and
|
|
64
64
|
exact replies landed once, or a recorded hold naming the unmatched input and
|
|
65
65
|
next owner.
|
|
66
|
+
|
|
67
|
+
After verified publication of an own PR, the owner must follow
|
|
68
|
+
[PR previews](../../axstack/references/preview.md) to decide on or restart its preview.
|
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
Read this before starting, resuming, or stopping automated PR observation.
|
|
4
4
|
|
|
5
|
+
For each own PR, the owner must follow [PR previews](../../axstack/references/preview.md)
|
|
6
|
+
when deciding on a preview, restarting it after a head change, or tearing it down.
|
|
7
|
+
|
|
5
8
|
## Standalone watch
|
|
6
9
|
|
|
7
10
|
A standalone PR owner remains accountable through the default 24-hour window.
|
|
@@ -22,14 +25,24 @@ is verified while watching, plus explicitly adopted PRs with accepted
|
|
|
22
25
|
maintenance snapshots. An unrelated self-authored PR is outside this Run. Retain
|
|
23
26
|
merged/closed members in the record; scan reopened members. Ambiguous membership
|
|
24
27
|
or publication holds completion. Draft members stay watched but cannot be
|
|
25
|
-
merge-ready.
|
|
28
|
+
merge-ready. An own PR published after the watch stops arms a new watch under
|
|
29
|
+
[Autopilot](../../axstack/references/autopilot.md#own-pr-publication-into-maintain-watch)
|
|
30
|
+
after verified readback, subject to the user's explicit publication boundary.
|
|
26
31
|
|
|
27
32
|
The initiating T3 thread remains the sole driver and `progress.md` writer.
|
|
28
33
|
Use the bound run watch from [T3 runtime](../../axstack/references/t3-runtime.md):
|
|
29
34
|
`schedule_task` with `bindToCurrentThread:true`, `everyMs:600000`, a stable
|
|
30
35
|
`clientRequestId`, and the authorized watch prompt. Record the schedule ID,
|
|
31
|
-
driver thread, chosen mechanism and
|
|
36
|
+
driver thread, chosen mechanism and native schedule lifetime; the watch inherits the driver binding.
|
|
32
37
|
One bound schedule serves both the run watch and the chat-run watch; never create a second watch.
|
|
38
|
+
The chat-run watch never expires or waits for re-authorization while PRs remain open.
|
|
39
|
+
If the native schedule has a lifetime, the driver re-arms it at a wake.
|
|
40
|
+
Use `update_scheduled_task` on the recorded schedule ID for cadence changes and re-arming.
|
|
41
|
+
After 7 days with no event on any watched PR, and only with no unsettled launched work,
|
|
42
|
+
change the wake cadence from 10 to 60 minutes.
|
|
43
|
+
On the next event on a watched PR, restore the wake cadence to 10 minutes.
|
|
44
|
+
If launched work becomes unsettled, restore the 10-minute cadence.
|
|
45
|
+
Read back each schedule update and record its receipt; an uncertain update holds affected work.
|
|
33
46
|
Each wake reconciles all unsettled runs before running the authorized maintenance loop.
|
|
34
47
|
A failed run holds incomplete work even when its writer sent no receipt.
|
|
35
48
|
A missing schedule capability holds activation. Delegated roles follow T3 runtime;
|
|
@@ -81,7 +94,11 @@ merged milestones (at most two across implementation and release), or a
|
|
|
81
94
|
serious-risk hold.
|
|
82
95
|
Quiet ticks never notify.
|
|
83
96
|
|
|
84
|
-
The driver alone routes repair.
|
|
97
|
+
The driver alone routes repair.
|
|
98
|
+
The driver routes rebases and review feedback to the PR's author for repair.
|
|
99
|
+
For an adopted PR whose author this run did not launch, use a new author attempt under the adoption rules.
|
|
100
|
+
The watch never writes candidate source.
|
|
101
|
+
Re-read remote head/base and T3 ownership.
|
|
85
102
|
Independent PRs may repair in parallel in separate T3 writer worktrees within
|
|
86
103
|
measured host capacity. Two issues on the same PR use one author and one
|
|
87
104
|
candidate; never create competing writers. A stack parent change invalidates
|
|
@@ -91,7 +108,10 @@ then rebase and revalidate children. Run-launched implementation PRs follow
|
|
|
91
108
|
review. Explicitly adopted own PRs follow [Repair and
|
|
92
109
|
publication](repair-publication.md): independent exact-local-SHA review precedes
|
|
93
110
|
driver-owned `gh stack` publication and remote readback. The driver never
|
|
94
|
-
self-reviews
|
|
111
|
+
self-reviews.
|
|
112
|
+
For own PRs, automatic merge is the default under the
|
|
113
|
+
[watch predicate](../SKILL.md#5-state-readiness-precisely).
|
|
114
|
+
Observation alone grants no repair or
|
|
95
115
|
public-reply authority.
|
|
96
116
|
|
|
97
117
|
On new comments, failed checks, or base movement, repeat repair, the
|
|
@@ -104,19 +124,19 @@ re-read all feedback and approvals at the current head before readiness.
|
|
|
104
124
|
Re-reading approvals checks current state, not re-requesting review from a
|
|
105
125
|
human who already approved.
|
|
106
126
|
|
|
107
|
-
Stop the chosen wake only when every watched PR is merged or closed
|
|
108
|
-
run's release step is settled or not applicable,
|
|
109
|
-
|
|
127
|
+
Stop the chosen wake only when every watched PR is merged or closed,
|
|
128
|
+
launched work is settled, and the run's release step is settled or not applicable,
|
|
129
|
+
or the user cancels. Without an Autopilot or Release record, the release step is not
|
|
110
130
|
applicable to this watch. A required PR closed without merging records a
|
|
111
|
-
decision hold and the wake remains active
|
|
112
|
-
|
|
131
|
+
decision hold and the wake remains active until the user resolves scope or cancels;
|
|
132
|
+
the run is not release-eligible.
|
|
113
133
|
Delete only the recorded watch with `delete_scheduled_task` and read back its absence with
|
|
114
134
|
`list_scheduled_tasks`.
|
|
115
135
|
An uncertain delete preserves the hold and recorded schedule ID.
|
|
116
136
|
Re-read membership and confirm no ambiguous publication or unsettled pass;
|
|
117
137
|
cancellation prevents new work but does not prove running workers exited.
|
|
118
|
-
For a chat-run watch, keep the bound run watch armed until every watched PR is merged or closed
|
|
119
|
-
and the release step is settled or not applicable, or until user cancellation
|
|
138
|
+
For a chat-run watch, keep the bound run watch armed until every watched PR is merged or closed,
|
|
139
|
+
launched work is settled, and the release step is settled or not applicable, or until user cancellation.
|
|
120
140
|
For a chat-run watch, defer the T3 runtime's "nothing remains unsettled" deletion until those chat-run stop conditions.
|
|
121
141
|
The driver separately settles workers, preserves evidence, and archives the run;
|
|
122
142
|
an unavailable driver leaves those steps pending. The standalone 24-hour expiry
|