Skip to content

chore(agents): review replay harness, and the 2026-10-21 process review - #794

Merged
V3RON merged 2 commits into
mainfrom
docs/review-process-analysis
Oct 21, 2026
Merged

V3RON merged 2 commits into
mainfrom
docs/review-process-analysis

Conversation

@V3RON

@V3RON V3RON commented Oct 21, 2026

Copy link
Copy Markdown
Contributor

What this is

A review replay harness, and the process review it was built for.

docs/internal/PROCESS-REVIEW-2026-10-21.md reads the deliver and spec runs after #739: where the time went, the obstacles (stale stacked bases, stack tooling, CI flakes, late ADR reviews, the round cap), review quality, spec-session holes, test growth and which instruction files agents actually open. It lists 22 changes, each with the number that judges it, and says the replay harness comes first.

The harness:

  • review-inputs.sh takes REVIEW_HEAD, REVIEW_BASE and REVIEW_RULES, so a merged PR's snapshot can be reviewed again, with today's or another commit's rules.
  • replay-freeze.mjs pins a round's head, base and previous as refs/replay/<PR>/<round>/* on origin and the PR's Review ledger as the blob refs/replay/<PR>/truth, never in the checkout.
  • review-replay.sh builds the blind inputs for a snapshot and prints the reviewer's prompt, tagged stage=replay; --lens replays one lens alone.
  • review-score.mjs scores a replay's findings (JSON or a lens report) against the truth and appends a row to .agents/replay/results.jsonl.
  • review-metrics.mjs leaves stage=replay runs out unless --replay; the reviewer has a replay clause.

Replayed so far

Harness defects found by the examples and fixed in this PR: the coordinator reading the truth file, coordinators self-checking instead of spawning lenses, lens runs tagged as real reviews.

Written by an agent.

Pins a PR's review snapshot and its ledger on origin (refs/replay), replays the review or one lens on it with stage=replay, and scores the findings against the ledger. Replayed #752 round 1 and #775 rounds 1 and 2; results in docs/internal/PROCESS-REVIEW-2026-10-21.md, with the findings over the deliver and spec runs after #739 and the 22 changes they call for.
@V3RON
V3RON added this pull request to stack #797 October 21, 2026 08:19
@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 324294f into main Oct 21, 2026
33 of 36 checks passed
@V3RON
V3RON deleted the docs/review-process-analysis branch October 21, 2026 09:05
V3RON added a commit that referenced this pull request Oct 21, 2026
## What this is

The first layer of changes from
`docs/internal/PROCESS-REVIEW-2026-10-21.md`: the ones that need no
replay to judge, and the two measuring scripts the delivery and
instruction changes depend on. Stacked on #794.

- Item 3: the spec checker no longer pads five notes into every report.
- Item 19: the budget guard counts awake time on the monotonic clock
`clock.mjs` already used, so a laptop that sleeps does not spend its
session budget (#771 lost its audit that way). `awake.mjs` is the shared
helper.
- Item 20: `pr-body-check.mjs` fails a PR whose Review section names a
review that ran but has no `## Review ledger` comment (four of the last
fifteen delivery PRs had none).
- Item 21: `review-inputs.sh <pr> <previous> <previous base>` maps a
previous commit across a rebase when every commit's patch-id matches,
instead of refusing and leaving the coordinator to self-check; the
reviewer and the deliver skill pass the base after a rebase or stack
sync.
- Item 22: a finding records the round that raised it, and the ledger
comment starts with one `Round <r>: <commit>` line per check, so a round
can be frozen and replayed from GitHub alone. `replay-freeze.mjs` checks
against those lines.
- Harness pieces 5 and 6: `instruction-reads.mjs` (how often each role
opens each rule, brief and manual) and `delivery-counters.mjs` (CI lines
sent to fix runs, stack syncs, empty builds, no-change fix runs, tests
per Tests line, per merged PR). `transcripts.mjs` holds the transcript
helpers the three measuring scripts share.

## Baseline the counters print today

PRs merged since 2026-10-20: 26 CI lines, 12 stack syncs, 2 empty
builds, 6 no-change fix runs, 200 tests over 128 Tests lines, test/src
LOC 1.4. Build implementers opened their brief in 23 of 38 runs and
`testing.md` in 5.

*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