Skip to content

recurring_failure_mode: roster two reds standing on main under the grandfathered roster - #13336

Merged
gunbai-bot[bot] merged 2 commits into
mainfrom
session/clever-raven-680-reds
Oct 5, 2026
Merged

gunbai-bot[bot] merged 2 commits into
mainfrom
session/clever-raven-680-reds

Conversation

@gunbai-bot

@gunbai-bot gunbai-bot Bot commented Oct 5, 2026

Copy link
Copy Markdown
Contributor

Asked for by clever-crane-847. These are two reds found while working on #13333. Both are rostered only in floor_grandfathered_roster, and neither had a failure-mode row. This PR rosters them and fixes neither.

Instrument: claim_batch on BuildBuddy against origin/main. Probe claims compared each claim's fatal refusal reason against all 423 reason-like symbols in src/v2/compiler and src/v2/std. The probes are not in this diff.

  • v2.test.claim_pipeline.resolve spine_resolve_accepts_normalized_tree: normalize rejects the hand-built tree with body_lowering_reason_unrecognised_lowered_shape, so resolve is never reached. The refusal comes from MQ-5 flip: body lowering refuses an unrecognised lowered shape instead of re-reading it as raw parse #12862 (MQ-5 flip), which was right to refuse that shape; the fixture is what went stale. Recorded as a receipt on a_designed_narrowing_stops_inhabiting_the_subject_it_narrowed.
  • v2.test.claim.body_lowering.anonymous_record ar_a_quoted_key_is_not_a_record_field_holds: normalize now accepts data ar_k: Bool = { "n": true }, where the claim expects body_lowering_reason_field_init_unlowered. I did not establish whether resolve's map-literal arm refuses it later; if it does, the claim's expectation is stale, and if nothing does, the source is wrongly accepted. Filed as the new row a_quoted_key_record_literal_refusal_left_body_lowering_unrostered, with that measurement as its trigger.

🤖 Generated with Claude Code

…andfathered roster

spine_resolve_accepts_normalized_tree: normalize refuses its hand-built tree
with body_lowering_reason_unrecognised_lowered_shape since #12862, so resolve
is never reached (receipt on a_designed_narrowing_stops_inhabiting_the_subject_it_narrowed).
ar_a_quoted_key_is_not_a_record_field_holds: normalize now accepts the
quoted-key brace; which later stage refuses it, if any, is not established
(new row).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

@briansrls briansrls left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

REQUEST_CHANGES at exact head 97b226306a2b609b354c6c96edb36af4cefef389, against DESIGN.md §§3, 4d, 5 and 6b. Two receipt-accuracy corrections only; neither requires fixing the compiler or the witnesses in this RFM-only PR.

Accepted: the positive spine claim's reported failure is at normalization, before resolve; retaining that distinction is correct. The quoted-key row also correctly separates observed normalization acceptance from the UNMEASURED downstream result. Do not promote that latter observation into a demonstrated end-to-end fail-open, and do not require the pending downstream experiment merely to file the finding.

  1. Both new receipts incorrectly attribute concealment to v2.workflow.floor_grandfathered_roster.

They say the claim was “hidden by” that roster. At this exact head, its authority selects the older eval-step budget rather than the new-witness budget; it is not a withholding or expected-red mechanism. claim_executor::required_floor_outcome_is_clean independently requires outcome.failures.is_empty() and does not exempt grandfathered identities. Membership therefore does not establish why either semantic failure escaped the required lane.

Keep grandfathered membership as a budget fact, not as the causal explanation. Name the actual execution selection/disposition or other masking mechanism only if a receipt establishes it; otherwise say that why the required lane did not expose the red remains unestablished. Do not substitute an assumed gate exclusion for the assumed grandfathering explanation. This correction applies to the appended spine specimen and the new quoted-key row.

  1. The appended spine specimen misdescribes its negative sibling's executed path.

It says spine_resolve_rejects_noncanonical_root_atom passes for the same reason the accepting claim fails. But in v2.test.claim_pipeline.resolve at this head, that sibling does NOT call normalize. It calls admit_normalized_tree directly, then calls resolve on admission success. Admission rejection returns false; only resolve's Rejected arm returns true. A reported pass therefore cannot be the positive claim's early body_lowering_reason_unrecognised_lowered_shape rejection at normalize.

The narrower concern is supported: the sibling accepts ANY resolve rejection and does not pin the intended refusal reason. State that fact and leave the actual resolve reason unmeasured unless it was independently observed. The proposed follow-up to assert the intended resolve reason is reasonable; the receipt must not claim the control was already shown to pass on the earlier normalization refusal. A passing sibling establishes that resolve was reached, though not which resolver wall fired.

Reviewed the complete two-file diff, both exact-head RFM rows, the complete spine witness, the quoted-key witness assertion, the grandfathered authority and the floor's final cleanliness predicate, plus DESIGN. The BuildBuddy measurements and #12862 attribution are author-reported; I did not run tests or repeat the bisection. No code, gate, budget, or fixture change is requested here. Exact-head witnesses run 37254832920 was queued; the requested head was unchanged immediately before submission.

…cause; spine sibling's executed path corrected

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

@briansrls briansrls left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

APPROVE at exact head 8b9fa157b697ed7178d751507f5cc37796c019b5, against DESIGN.md §§3, 4d, 5 and 6b. Both receipt-accuracy blockers from review 5409429850 are closed.

Both receipts now state grandfathered membership only as an eval-budget fact. They explicitly leave why the required lane did not expose the reds unestablished, rather than treating budget membership as a withholding mechanism or substituting another unmeasured masking explanation.

The spine specimen now distinguishes the two executed paths correctly. The positive claim's reported refusal is at normalize, before resolve. The negative sibling instead calls admit_normalized_tree, then resolve: admission failure returns false, and only resolve's Rejected arm returns true. Its pass therefore establishes that resolve was reached and refused, but the intended refusal reason is not asserted and the actual reason remains unmeasured. The revised receipt states exactly that, and its follow-up retains the reason-specific discriminator.

The quoted-key row continues to distinguish observed normalization acceptance from the unmeasured downstream outcome. It does not report a demonstrated end-to-end fail-open or claim that the compiler has been repaired. Its downstream measurement remains an obligation, not a prerequisite for recording this finding accurately.

Reviewed the complete two-file PR diff, the one-commit correction from 97b226306a2b609b354c6c96edb36af4cefef389, exact-head DESIGN and the complete unchanged spine witness. No compiler, witness, gate or budget behavior changes in this correction. This is RFM-only approval, not a passing verdict for the recorded reds or a CI exemption. The BuildBuddy measurements and #12862 attribution remain author-reported; I did not run tests or repeat the attribution experiment. Exact-head witnesses run 37257100813 is in progress; land after required exact-head checks pass. The requested head was unchanged immediately before submission.

@gunbai-bot
gunbai-bot Bot added this pull request to the merge queue Oct 5, 2026
Merged via the queue into main with commit 7b77314 Oct 5, 2026
4 checks passed
@gunbai-bot
gunbai-bot Bot deleted the session/clever-raven-680-reds branch October 5, 2026 07:08
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