Skip to content

chore(agents): stacks merge forward, the ADR PR is reviewed first, and CI failures are triaged before a fix run - #798

Merged
V3RON merged 3 commits into
chore/process-small-fixesfrom
chore/process-delivery-stacks
Oct 21, 2026
Merged

V3RON merged 3 commits into
chore/process-small-fixesfrom
chore/process-delivery-stacks

Conversation

@V3RON

@V3RON V3RON commented Oct 21, 2026

Copy link
Copy Markdown
Contributor

What this is

Layer three of docs/internal/PROCESS-REVIEW-2026-10-21.md: the delivery and stack changes, items 9 to 12. Stacked on #796.

  • Item 9: stack-sync.sh <top pr> reads the chain from GitHub and merges forward, bottom to top, in temporary worktrees. A merge is a fast-forward push, so no rebase, no force push and no human in the loop; gh stack rebase failed 11 of 14 times in the last runs, the one run that merged forward needed nobody. The deliver skill links each PR into the stack as soon as its draft exists. The ADR index merges by union (.gitattributes) and src/adr-index.test.ts keeps it complete and ordered; ADR 0022 had no row.
  • Item 10: before the first build the ADR branch is merged up to main, so tasks stop inheriting red CI (the docs-manuals test was 8 of 28 CI lines).
  • Item 11: the ADR PR is reviewed at run start, in parallel with the first build, instead of when the gate refuses.
  • Item 12: ci-triage.mjs <pr> sorts each failed test as flaky, base-inherited, in the PR's reach, or unknown; only reach gets an implementer, the rest a rerun or a sync. ci-failures.mjs --branch <name> reads a branch's newest run for the base comparison.

The fix brief's stack: line now means "merge the named parent into your branch"; delivery rule 15 says a stack moves by merging forward.

Judged by

delivery-counters.mjs --since <date> on the next feature runs: CI lines sent to fix runs (26 over the last 20 merged PRs), stack syncs (12), empty builds (2), no-change fix runs (6); and gate refusals per run (two of four runs).

Written by an agent.

…d CI failures are triaged before a fix run

stack-sync.sh merges main and each parent branch forward through a feature's PR stack in temporary worktrees, so no rebase and no force push; the deliver skill links the stack at build time, syncs the ADR branch and reviews the ADR PR before the first build, and sends a CI failure to an implementer only when ci-triage.mjs says the PR reaches it (reruns for flaky and unknown, a sync for base-inherited). The ADR index merges by union and src/adr-index.test.ts keeps it complete; ADR 0022 gets its missing row. PROCESS-REVIEW-2026-10-21.md items 9 to 12.
@V3RON
V3RON marked this pull request as ready for review October 21, 2026 08:54
@V3RON
V3RON marked this pull request as draft October 21, 2026 08:57
@V3RON
V3RON marked this pull request as ready for review October 21, 2026 09:04
@V3RON
V3RON merged commit 985f7cf into main Oct 21, 2026
34 of 35 checks passed
@V3RON
V3RON deleted the chore/process-delivery-stacks branch October 21, 2026 09:05
V3RON added a commit that referenced this pull request Oct 21, 2026
…andidates are probed, mechanical fix-checks spawn no lens, the audit proves coverage (#799)

## What this is

Layer four of `docs/internal/PROCESS-REVIEW-2026-10-21.md`: the review
changes, items 13, 14, 15 and 23. Stacked on #798.

- Item 13: round 1 reports every site of a confirmed defect class. The
real #775 round 1 found one STRICT INTEGER column and round 2 its
sibling; a replay found both in round 1, so the reach is there and the
brief now asks for it. A sibling found in round 2 is recorded as round
1's miss.
- Item 23: a candidate in a safety class is never downgraded to a note
or dismissed at synthesis on reasoning alone; the coordinator probes it
or it blocks. Both #752 replays lost the safety finding that way; one
coordinator saw it and wrote "name-only matching is narrow".
- Item 15: a fix-check whose every hunk is mechanical spawns no lens;
the coordinator reads the diff and records it. One semantic hunk sends
only the lens it reaches.
- Item 14: the audit lists every changed function and proves a test goes
red when its body is deleted (`covered <c>/<f>` on the audit line).
About 20 of 45 review findings were test-coverage classes the audit
should have caught.

## Verification

Replayed with these rules through `review-replay.sh <pr> 1 a580434`,
once each, against the baseline runs of the same snapshots (write-up,
sections 4.5 to 4.8):

| Snapshot | Baseline recall | With the changes | USD | Minutes |
| --- | --- | --- | --- | --- |
| #752 round 1 | 4/6 | 6/6 | 1.41 → 1.67 | 12 → 17 |
| #775 round 1 | 6/10 | 8/10 | 6.47 → 8.07 | 34 → 37 |

#752: the safety finding came back blocking with a reproduction, where
both baseline runs had downgraded it to a note; EPERM-counted-dead
stayed blocking for want of a probe (item 23). #775: all three STRICT
INTEGER columns in one round-1 finding, with probes, where the real
review needed round 2 (item 13); the socket probe found in round 1
again. Still missed on #775: the fake table accepting extra keys. Cost
per round 1 is up about 20 percent; the rounds it should remove are
measured on the next deliveries. Rows are in
`.agents/replay/results.jsonl`.

*Written by an agent.*
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant