Repository navigation
feat(grading): take the review-code reviews into the published selection and drop three setups - #132
Conversation
…hed selection and drop three setups The owner chose "Run review-code, drop three" on 2026-10-12. The run 2026-10-12-last-push-claude-review-code-sonnet now holds the ten re-cut tasks for review-code-sonnet-5-5, whose saved reviews of j-trpc-5017 stay. claude-builtin-sonnet-5, codex-builtin and codex-builtin-sol-high leave with their one task each. Nothing under bench/runs changes. selection/selection.py derives the registry from the selection the re-cut record staged and writes it with its inventory as one generation. It stops when a claim or a ruling on a single comment is left with no comment in the selection. None is, so nothing retires: three links and one closed candidate that name a review which left stay as they were. The selection has 16 tasks, 14 configurations, 41 source pairs, 37 runs, 631 scheduled cells, 663 attempts, 198 batches and 623 admitted reviews. Eight trials are pending: the four of codex-ce-luna-high and the four stops this run kept, which the inventory holds as stopped attempts awaiting replacement. The export publishes the 31 transcript archives of the run, so the Pages build fetches their manifest. test_last_push_move.py first puts its copy back to the selection the move published. Part of #30
… claims The 26 new reviews hold 55 comments. Eight of the ten tasks have a current claim, and their 49 comments were matched blind: one fresh Codex GPT-6.1 Sol session at high reasoning effort per task read only its packet folder, with the first round's prompt byte for byte. k-graphql-js-1582 and q-soba-195 have no claim, so their six comments have nothing to link to. selection/intake.v1.json proposes 19 links for 16 comments, 3 equivalent and 16 related. Three comments are linked to two claims each, and none of those links is equivalent. The three equivalent links were read against their claim's consequence and stand, so no link is narrowed by hand. selection.py files the links with the selection as one generation. The current claims hold 1,061 links, up from 1,042. The eight sessions used 147,930 uncached input tokens, 686,464 cached and 6,690 output, $0.43 at list price on the ChatGPT plan. Part of #30
The selection record says what entered and what left, the records that name a review which left and why each stays, how the inventory holds the four kept stops, the link intake by task, the sessions' usage and the checks that ran. README.md, docs/current-grading.md and the re-cut record give the counts of the published selection: 623 admitted reviews, 14 configurations, 663 attempts and 198 batches. The run's record no longer lists the selection and the links as not done. Part of #30
…its result The owner chose "Resolved, counts as zero" on 2026-10-12 for the four stops the review-code last-push run kept. A stopped terminal now resolves its trial without admission when the run's deviations folder holds exactly one diagnosis that names the attempt, with a reason and a cause the review queue keeps: skill-timeout or reviewer-stop. The trial's reason names the cause. A stop with no diagnosis, with two, or with a cause the queue replaces stays pending. current_grading.py states the two causes itself, so the grading queue's pinned runner file gains no import. test_current_grading.py requires the set to equal the keys of review_queue.KEPT. Four cells change from pending to resolved: n-ripgrep-2957 replicates 2 and 3, o-astro-16079 replicate 2 and r-base-ui-5460 replicate 3 of review-code-sonnet-5-5. No other run holds a diagnosis with a kept cause. The four codex-ce-luna-high stops stay pending, so the selection has 4 pending trials. No attempt, batch or grading input changes. src/lib/scoring.ts is unchanged and counts the four as failed trials. Part of #30
…y's text The version and note of review-code-sonnet-5-5 described the saved run. They now say what the selected reviews are, from the attempt records and the run's four diagnoses: the three reviews of j-trpc-5017 ran on Claude Code 2.1.284 and the reviews of the ten re-cut tasks on 2.1.294; 4 of the 33 trials delivered no review, each after the client refused one Bash command and the reviewer ended its session; 2 of the 29 reviews reported their own coverage incomplete; one attempt the harness stopped was replaced. The text is in the plan's configuration_text and selection.py writes it, so the registry is still rebuilt from the staged selection. The text of the other thirteen configurations is unchanged. Part of #30
…an last The checks table now covers the tree with the kept stops resolved and the registry's text changed: 971 bench tests with the one host failure, and the site build and type check. Part of #30
The kernel gave a trial that resolved without admission its terminal attempt's disposition as the reason, so the four stops the review-code run kept read "stopped: normalization exit 1: no artifacts/composition.json returned". It now carries the trial's reason from the export, and they read "Stopped attempt kept as the cell's result: reviewer-stop." in the scorecard's failed list and the delivery tab. No measure changes. For every other resolved trial the inventory's reason is the terminal's disposition: 623 of the 627 resolved trials in the export, and all 692 of the inventory published before the last-push move. The fixture's builder gave every resolved trial "valid completed", so it now gives the terminal's disposition unless the trial states a reason, as the inventory does. The existing assertions on failure reasons pass unchanged. Part of #30
… the key and read diagnoses by type A review of the selection change found three defects. Each fix has a test that fails without it. selection.py started from whatever stage_edition.staged_registry() returned. In the review, a staged registry with one source removed passed construction, inventory and validation and gave 628 cells and 197 batches where the selection has 631 and 198. It now stops before its first write unless the staged registry has the hash staged-edition.v2.json pins. collect.py checked only the part files it found. A keyed comment with no part file gave an intake with no link for it, and a part could hold an item the key lacks. It now refuses packets whose parts do not hold every keyed item exactly once, and an unmatched list that repeats an item. The committed intake.v1.json is rebuilt byte for byte from the saved outputs. The collectors of the earlier intakes have the same gap and are not changed here. current_grading.kept_stops tested an unvalidated cause for set membership, so a diagnosis with a list or object cause raised TypeError and broke the whole inventory, even when it named an unrelated attempt. It now keeps a stop only when the cause and the reason are text, and a non-text reason no longer counts as a reason. The inventory, the registry and the claims are unchanged. Part of #30
kamui
left a comment
There was a problem hiding this comment.
Approved (advisory) — no findings.
Reviewed 74ff8ca. All 27 changed files reviewed, including generated registry/inventory changes, all 19 claim links, selection and intake tools, stopped-trial accounting, scoring callers and changed tests. The data-integrity premises were independently challenged. Existing stale descriptions for thirteen other setups remain outside this change.
Review details
Intent: Publish the review-code source on the ten re-cut tasks, remove three setups, and count the four kept stops as resolved trials with no admitted review. No actionable findings remain.
Issue fit: Fits the selection step of #30. Grading, the evaluator audit, and final actual-data verification remain later work.
Reviewed: 74ff8ca against merge-base c6a13d4.
Checks:
- Ran
PYTHONPATH=bench/tools python3 -m unittest test_current_grading.KeptStopsat the archived head: 8 tests passed. - CI run 38225556004 passed with the same source tree as the reviewed head: 974 benchmark tests, with 18 skips outside the changed tests; 64 web tests; import, current-evidence and claim checks; build and typecheck. The new selection and rollback tests all passed.
- Independent checks upheld the kept-terminal admission gates and selection preservation/exception rollback. Local reconstruction lacked ignored upstream evidence and the scoring rerun lacked zod; matching CI supplied those checks. Rollback remains bounded to recoverable exceptions with working restore I/O, as the existing Generation helper specifies.
- Checked the full published dataset counts by tracing the exporter and hero count inputs: 16 tasks, 67 known problems, five methods and six models.
- The reported host-specific native-model catalog failure is historical environment evidence; the matching test passed in CI. Offline batch preflight and roster results were assessed by code trace and the supplied report, not rerun.
- The browser delivery view and original private matcher logs were not inspected. All new links were checked against saved source comments and current claims; the scoring reason was traced and covered by the passing test.
- No reviewing app is declared at the pinned base. Publication uses the authenticated author identity with COMMENT and no merge gate.
Why
The published selection held four setups on
j-trpc-5017alone. The owner chose on 2026-10-11 to runreview-code-sonnet-5-5on the ten re-cut tasks and take the other three out. The run is recorded (#131). This puts it in the selection, dropsclaude-builtin-sonnet-5,codex-builtinandcodex-builtin-sol-high, and links the new reviews' comments to the saved claims, so the regrade grades the selection that will be shown.Scope
bench/scoreboard.current.json,bench/grading/current/inventory.json: one source added, three setups removed. Written bydocs/research/last-push-review-code-2026-10-12/selection/selection.pyfromplan.v1.json, in one all-or-nothing generation that starts from the staged registry and refuses unless that registry has its recorded hash.bench/grading/current/claims.json: 19 links (3 equivalent, 16 related) from a blind matcher's output,selection/intake.v1.json, built bypackets.pyandcollect.py. The collector refuses unless every keyed comment appears exactly once in the matcher's output.bench/tools/current_grading.py:kept_stops. A stopped last attempt with exactly one diagnosis that names it with a kept cause (skill-timeout,reviewer-stop) resolves its trial with no admitted review. Anything else stays pending.src/lib/scoring.ts: a trial resolved without admission shows the trial's own reason.src/lib/fixture.tsgives a resolved trial its last attempt's disposition as the reason, as the inventory does.review-code-sonnet-5-5,README.mdand doc counts, and the CI step that restores the transcripts the export publishes.Known problems (67), decisions, claims, candidates and rulings on single comments are unchanged. The hero reads 16 tasks, 67 known problems, 5 methods and 6 models.
Tradeoffs
review-code-sonnet-5-5has reviews on 11 of the 16 tasks. The default comparison now covers 11 pull requests, up from 1.current_grading.py, held equal toreview_queue.KEPTby a test, so the grading queue's pinned file gains no import.readOnlykey). Nothing was created for them; a grader raises a candidate if they hold up.Blast Radius
The selection every later step reads: inventory, export, scorecard, the regrade plan and the audit's populations. No grade exists yet, so nothing is invalidated. The inventory rule changes the state of exactly four trials; every diagnosis in every run was scanned, and only those four carry a kept cause. Scoring values are unchanged; only the reason string of a failed trial differs. The registry text of the other thirteen setups is still stale from the last selection change and is left for a separate cleanup.
Verification
bun run verify:import,verify:current(0 of 623 admitted reviews assessed),verify:claims,calibration.py check,roster.py(output unchanged): pass.current_grading.py status: 631 trials, 627 resolved, 4 pending; 198 batches.bun run test:web(64 tests),typecheck,build: pass.bun tools/scorecard.ts --configuration review-code-sonnet-5-5: "29/33 trials admitted, 27 complete, 0 pending, 4 failed; 11/11 PRs."bun run test:bench: 974 tests, one failure,test_codex_grading.test_catalog_preserves_native_model_instructions, which also fails onmainon this host and passes in CI.grade.py preflight --offline: passes for the ten new batches and the changedj-trpc-5017batch.selection/usage.v1.json.Part of #30