Repository navigation
Conversation
Argon's finish/freeze driver plus Muse Wonder's reference install, built on a Subfleet lane (run 20261026-141122-pb-terra-driver; 164 tests passed, ruff clean there). Review r1 (GPT-6.1 Sol) requested changes; the fixes follow. Co-Authored-By: GPT-6.1 Sol (Subfleet) <noreply@openai.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
validate_verdicts checked the judge's requested and reported model, runner and timestamp only when a new model was among a case's wrong models. A case re-opened because the installed build moved its reference, with Terra right and only incumbents wrong, passed with any judge and no timestamp. Every verdict that is not carried over from the seed (and any verdict naming a new model) must now show JUDGE_MODEL requested and reported, the runner the judge step runs (JUDGE_RUNNER, scripts/run_audit_claude.sh) and an ISO 8601 judged_at_utc in UTC. The judge step runs JUDGE_RUNNER, so the two cannot drift apart. Tests cover a moved reference with Terra right and an incumbent wrong under a wrong judge, a missing or non-UTC timestamp and a wrong runner, in the driver and at the freeze, plus a property test of the identity gate. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The note finish_terra wrote into docs/terra/judge_provenance.json was release 20261014's: one setup-token login, effort xhigh, judges run "two at a time and then one at a time", and a retry history. A Terra run on another listed account or at AUDIT_EFFORT=high would have published those claims. provenance_note now builds the note from the entries alone: how many new verdicts there are, and tallies of the judge model each sidecar reports, the effort and template each records and whether each judge ran isolated, plus what the verifier checks of an isolated entry. Logins stay in the group counts. verify_judge_provenance refuses a record whose note is not the one its entries give, so export and the freeze reject a hand-edited or inherited note. Ports Argon's judge provenance and transcript tests (record keys, tallies, withheld addresses, token login, every transcript defect, the differential check against the GPT-6.1 Sol driver's port) against this driver, and adds tests that runs on each listed account at efforts high, xhigh and max get a note stating only what their sidecars record, a round-trip property for the note's tallies, and refusals of an inherited or edited note. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
freeze_terra read stage.json without its early and partial flags and
checked only the export receipt's partial field, so an audited stage marked
early, its receipt's stage hash refreshed, passed the freeze's own gates.
The driver's resume check read the flags by truthiness, so a missing flag
raised KeyError and a 0, null, [] or {} flag passed.
require_release_stage requires both flags to be the boolean False. The
driver's resumed steps and the freeze's verify_upgrade (before anything else
it reads) call it. Tests mutate each flag to True, missing and several
non-boolean values, at every resumed step and at the freeze, and a stage.json
that is not an object; the freeze fixtures now carry the two flags a real
prepare writes.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Each later step refuses a stage that overlaps a read-only input, holds a symlink, has changed staged inputs, or lacks the installed build or its exclusion record. The seed section exercises the real prepare_cases on a synthetic three-household board: a seed the committed digest does not record, an edited or removed carried verdict, prompt partitions moved between lists, a forged manifest the predictions contradict, bind-seed disagreement before and after prepare, and a moved reference without an installed build. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A synthetic Terra run on every reference key of release 20261014's snapshot (read from git) folds onto two synthetic incumbents. Each preparation gate gets a failing case: household completeness, unknown or missing outputs, synthetic run states, treatment fingerprints, provider identity, call and usage disclosures, registration and pricing, a stale by_model folder, a short fold and a snapshot off its pins. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The judge loop runs against a scripted runner on a prepared seeded stage with the real collect_audit: a verdict the identity, template or model gate refuses, or a hedged one, is set aside and re-judged; three empty or refused passes stop the step; an edited carried verdict or a missing seed binding stops it before any judge runs. The triage port covers missing, invalid and hedged verdicts, flags and unresolved rows, the case count, exclusion agreement, record edits and drops, hand-written restatements, date conventions and wording amendments. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A stage with the build installed and bound, Terra's pinned run and an empty provenance record exports a receipt binding the build copy, the run and the prepare-time hashes. Each refusal leaves no payload, data.json or receipt: a staged or committed reference off the build's pins, a run off its input pins, prepare-time hashes that no longer hold, Terra rows that differ from the run, a provenance record the stage does not give, a payload the dashboard schema refuses (also with the real validator), a roster other than the incumbents plus Terra, and scope drift. Early and partial exports never get a receipt. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The exact-build pins refuse any changed byte first, and those tests stay. These tests re-pin REFERENCE_BUILD, the sidecar's CSV and actions hashes and the audit's publication record to the mutated bytes, so each of 47 mutations is refused by its own gate: the sidecar revision, the CSV against its changed list, the actions, the traces, the explanations and the exclusion record. An unchanged build re-pinned the same way passes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Add section H to tests/test_freeze_terra.py: one synthetic stage, built by the real driver steps (triage, write_judge_provenance, export) on the pinned reference build, that freeze_terra.main accepts both as a dry run and as a real freeze. Every gate in main runs unpatched. The stand-ins are the data sources and the freezer's internals, each marked MOCK in the section's header: Terra's run and the incumbent's answers, the base payload, the two exporters' boards, the incumbent baseline rows, the seed digest, the input pins as committed at HEAD, and freezer.main with its serving and registry lookups. The driver's, freeze's and freezer's paths point at a temporary checkout. From that accepted stage, each test makes one change and asserts the freeze refuses it before writing anything: receipt identity and binding, the release spec and date, rehearsal flags, the provenance record and note, payload edits, the export scope check, the strict dashboard validator, roster and counts, verdicts, seed and prompt partitions, a forged wrong-model claim, prepare-time hashes, Terra's rows, input pins, annotation and adjudication record edits, the installed build's narratives, drops, exclusions and scoring, held references, incumbent prediction drift, incomplete run state, treatment off the registry, an answer before the response window, and each defect in what the freezer writes, which verify_frozen must catch. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Co-Authored-By: GPT-6.1 Sol (Subfleet) <noreply@openai.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: GPT-6.1 Sol (Subfleet) <noreply@openai.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: GPT-6.1 Sol (Subfleet) <noreply@openai.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: GPT-6.1 Sol (Subfleet) <noreply@openai.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Tighten the former unhardened-verdict acceptance test to require refusal. Co-Authored-By: GPT-6.1 Sol (Subfleet) <noreply@openai.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: GPT-6.1 Sol (Subfleet) <noreply@openai.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: GPT-6.1 Sol (Subfleet) <noreply@openai.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: GPT-6.1 Sol (Subfleet) <noreply@openai.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: GPT-6.1 Sol (Subfleet) <noreply@openai.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: GPT-6.1 Sol (Subfleet) <noreply@openai.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: GPT-6.1 Sol (Subfleet) <noreply@openai.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: GPT-6.1 Sol (Subfleet) <noreply@openai.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ation Supply hardened authentication and transcript evidence before each identity mutation, preserving the existing refusal assertions. Co-Authored-By: GPT-6.1 Sol (Subfleet) <noreply@openai.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Reject unlisted verdict directories before export or freeze and pass validated case IDs to the shared tally. Its historical default remains unchanged. Co-Authored-By: GPT-6.1 Sol (Subfleet) <noreply@openai.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Keep prediction discovery and writes out of audit consumers, including when a shadow appears after the entry guard. Preserve shared audit defaults for historical releases. Co-Authored-By: GPT-6.1 Sol (Subfleet) <noreply@openai.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Run the complete CLI export path in an independent stage copy and promote its diagnostics, annotations and payload only after every gate passes, with the receipt last. Exercise unresolved triage and downstream refusals against existing stage bytes. Co-Authored-By: GPT-6.1 Sol (Subfleet) <noreply@openai.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Describe checks that run after writes begin and distinguish invalidated repository bindings from pointer-only failures and identical repeated freezes. Preserve the freeze write order. Co-Authored-By: GPT-6.1 Sol (Subfleet) <noreply@openai.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Supply carried sidecars with identity fields for the real tally test, and refuse directory symlinks that can conceal unlisted nested verdicts. Co-Authored-By: GPT-6.1 Sol (Subfleet) <noreply@openai.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: GPT-6.1 Sol (Subfleet) <noreply@openai.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
List the numeric wrong rows and match verdict coverage so the existing isolation assertion reaches its original gate under the stricter inventory check. Co-Authored-By: GPT-6.1 Sol (Subfleet) <noreply@openai.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
docs/terra/input_pins.json records the sha256 of the supervised run's predictions.csv and run_state.json, written by finish_terra.py --step pin-inputs from terra-runs/terra/run. prepare copies those files into the stage, and export and the freeze refuse a staged copy whose bytes differ from these pins. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The release installs reference_audit/2026-10-22-engine-upgrade/reference-build/, which was computed on policyengine-us 2.60.0. pyproject.toml and uv.lock now pin that version (uv lock --upgrade-package policyengine-us; no other package moved), so the install step and the freeze check the build against the engine the repository declares. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Add schema enforcement to the fake CLI for StructuredOutput retries within one session. Cover case model bounds and IDs, a single-model case, and the exact schema digest in the sidecar. Keep malformed-answer injection available for the existing extraction and coverage tests. The five regressions fail against the runner at 0805c28. The fixture limits Git discovery above its temporary tree so workspace-local test directories retain the nested-repository isolation checks. Co-Authored-By: GPT-6.1 Sol (Subfleet) <noreply@openai.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Build the CLI schema in classify_one from the shared audit schema and the case manifest. Require the manifest model count and constrain model IDs to that case so schema refusals can be corrected within the same judge session. Record the exact per-case schema argument's SHA-256 in verdict.meta.json and describe the constraints in the runner header. Keep the shared schema and post-extraction validator authoritative for duplicate IDs and missing manifest cases. Update the isolation expectation and extractor fixture arguments for the per-case schema. Co-Authored-By: GPT-6.1 Sol (Subfleet) <noreply@openai.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The setup-token opt-in's token (sha256 6a6daf56361b) was declared by its opt-in date in releases 20261013b and 20261014. This release's launcher reads it from agent-secret's pb-judge and declares it that way, so provenance generation found no group for the declared account. Map the second declaration to the same isolated setup-token group, and test that both declarations tally as one login. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
Author
|
CI note at 9a3bd31: the one failing test, 🤖 Generated with Claude Code |
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
WIP draft. The driver passed review; the release is being staged. Nothing is frozen or published.
The next board release,
dashboard-data-20261027, adds OpenAI's GPT-6.1 Terra (card: #245, merged) todashboard-data-20261014, taking the board to 51 models. The same release installs the reviewed 2026-10-22 reference build (#242), which moves the references from policyengine-us 2.41.0 to 2.60.0.What this PR adds
scripts/finish_terra.py: the release driver. It is the Gemini 4 Argon driver (finish_argon.py) with Muse Wonder's install-references step. It prepares Terra's pinned run, installs the reference build, re-judges the cases that Terra or the moved references re-open, triages, and exports a hash-bound stage.scripts/freeze_terra.py: freezes that bound stage, re-running every gate.docs/terra/: the release spec, the seed digest of release 20261014's audit, and the design note. The design note's result lines are placeholders for the lead.tests/test_finish_terra.pyandtests/test_freeze_terra.py, on synthetic fixtures.Review so far
Round 1 (GPT-6.1 Sol): REQUEST_CHANGES. The commits after 9c3fa2e address its four findings:
stage.json, refuse a stage whoseearlyorpartialflag is anything but the booleanfalse. (install-referencesand a firstbind-seedrun before a stage receipt exists.)Rounds 2a and 2b (GPT-6.1 Sol): REQUEST_CHANGES. Round 2a agreed findings 1 to 3 are resolved and finding 4 is partial. Round 2b, a gate-coverage audit, found three more gaps. The 13 commits after d2027b5 address both rounds:
by_modelpath before reading predictions, so every reader uses the bound combinedpredictions.csv.parse_failure_onlyflag is derived from the predictions; a flag that disagrees in either direction stops export and the freeze.data.versions.jsonand the rendered paper), and scoring's spec and weights files must equal the base commit's.Each new gate has a reversal check: turning it off makes its new tests fail (10 reversals, 31 failures). The build also checked releases 20261014 and 20261013 against their committed records. Neither release has a
by_modelpath, a parse-only flag that disagrees with its predictions, or a verdict judged without isolation.Round 3 (GPT-6.1 Sol): REQUEST_CHANGES at 50f023d. It agreed the round-2 findings are fixed except two write-ordering paths, and found one new gap. The 7 commits after 50f023d address them:
by_modelfile that appears during the reference read is refused, and the combined file is left unchanged.Each fix has a reversal check: turning it off makes its new tests fail (4, 1 and 2 failures). The three shared modules gain keyword-only parameters whose defaults keep earlier releases' behaviour. At 8d01221,
tests/test_finish_terra.pyhas 670 passed and 1 skipped, andtests/test_freeze_terra.pyhas 221 passed, both run serially.Round 4 (GPT-6.1 Sol): AGREE at 8d01221, with no findings. It re-ran round 3's probes against the export and freeze gates, traced every audit consumer to the combined-only reader, checked the freeze's write order against the design note, and compared the shared modules' defaults with releases 20261014 and 20261013.
Staging so far
docs/terra/input_pins.jsonpins the board run's predictions and run state (b0cfa0d).pyproject.tomlanduv.lockpin policyengine-us 2.60.0, the reference build's engine (0805c28).Plan
Pass round 4.Done.Invariants the gates enforce
🤖 Generated with Claude Code