Repository navigation
Conversation
…ned no value collect_audit already demotes a row-level parse_contract_failure to llm_error when the model has a prediction (_row_failure_source), but the judge-reviewed branch published the judge's case-level label as it came. So a case note could say parse_contract_failure while none of its rows did: at bc30579, scenario_012 child1_head_start_eligible, scenario_015 head_chip_eligible and scenario_044 spouse_medicare_eligible, each with a single wrong model that derived 0 and submitted 1. _case_failure_source applies the same scoping to the case note: under decision d1514's option 1 (CASE_PARSE_FAILURE_NEEDS_MISSING = "any") a judged case keeps parse_contract_failure only while at least one wrong model returned no value; "all" is option 2, which also demotes the mixed scenario_080 head_chip_eligible. Only the case note changes: a row the verdict leaves unlabelled still falls back to the judge's case class. Tests: example cases for both options, the sol_review_r3 counterexample (labelled intended), and a Hypothesis property that the rule changes only case_failure_source, only from parse_contract_failure to llm_error, and never leaves parse_contract_failure on a judged case with no missing wrong model. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
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.
Do not merge until Max rules on decision d1514 (his
cosdecision queue, deadline 2026-10-20). This PR implements option 1. If he picks option 2, change one line (below). If he picks option 3, close this PR unmerged.What changes
collect_auditalready demotes a row-levelparse_contract_failuretollm_errorwhen the model has a prediction (_row_failure_source: "Keep parse-contract labels scoped to genuinely missing predictions"). The judge-reviewed branch never applied that rule to the case note: it published the judge'scase_failure_sourceas it came. A case note could therefore sayparse_contract_failurewhile none of its rows did.The new
_case_failure_sourcehelper (beside_row_failure_source) applies the same scoping to the case note:parse_contract_failure, after the existing budget-exhaustion check. It leaves every other class and the deterministicparse_failure_onlybranch alone.CASE_PARSE_FAILURE_NEEDS_MISSING = "any", the default here): a judged case keepsparse_contract_failureonly while at least one wrong model is inmissing_models. Otherwise it becomesllm_error.CASE_PARSE_FAILURE_NEEDS_MISSING = "all". A case then keeps the label only when every wrong model is missing, which no judged case is. So every judged case-levelparse_contract_failurebecomesllm_error, including the mixed one.Published case notes that change
I rebuilt
us_case_notes.csvandus_audit_row_annotations.csvthe way the release driver's triage does:collect_auditon the frozen audit tree, then the committed adjudications, then the release's wording amendments.annotations/) and for Re-judge five audit verdicts the judge-isolation audit could not clear (release dashboard-data-20261013b) #218's 20261013b (6c44858).case_failure_sourceschanges in the case notes:otherand the case annotation text is unchanged.parse_contract_failurenotes are deterministicparse_failure_onlycases, and every row in them isparse_contract_failure. Neither option touches them.Nothing here edits a frozen audit tree or a release artifact. The change reaches publication only when a future release driver runs triage and freezes.
Evidence:
~/reviews/policybench-budget-line-20261013/pr-a-impact/holds the scripts, the rebuilt case notes per option and their sha256. Background is inREPORT.md("Separate findings" 1) andsol_review_r3.md(findings 4 and 6).Invariants
These are stated and tested with Hypothesis in
test_judged_case_parse_label_properties. It runs 300 generated cases: one to four wrong models, each with or without a value, a missing model sometimes recordingbudget_exhausted_at_ceiling, and any case class, row class and subtype the schema allows, with or without per-model entries.missing_models, the publishedcase_failure_sourceis neverparse_contract_failure.collect_auditwith the rule disabled, which is today's output. Under either option:case_failure_sourcediffers only asparse_contract_failure→llm_error, and only where the option's condition fails.Deliberately not asserted: "the case's class is among its rows' classes". Under option 1 it does not hold, by design.
test_case_label_may_match_no_row_while_a_model_is_missingpins the counterexample (sol_review_r3 finding 4) as intended behaviour:llm_error;budget_exhausted_at_ceiling;parse_contract_failurestands.Mutation check: the property alone catches each of five mutants, and so do the example tests. The mutants:
Tests
tests/test_audit.py:pytestpasses on test_audit, test_judge_template, test_adjudications, test_annotation_rewrites, and the three freeze and finish_musewonder suites: 1,393 passed, 19 skipped.ruff check .andruff format --check .are clean.axiom: n/a: benchmark annotation pipeline, no policy rule
🤖 Generated with Claude Code