feat(adr-0250): instrument routes Tier-2 (50/50) + ADR-0250 — Tier-2 arc closure #74
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/adr-0250-instrument-adr"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes the Tier-2 arc (spike #71, T2a #72, 2b #73 all merged): the instrument now measures the full capability, and ADR-0250 lands for ratification.
Instrument routes Tier-2 (measurement catches up to capability)
evals/generalized_lift_instrument.py— thearithmetic-chaindomain now routes each real GSM8K dev case to Tier-1 (single-accumulator) or Tier-2 (multi-register / summation) and compares the corridor to a symbolic fold of the same compiled program. Recorded coverage moves 26/50 → 50/50, 0 refused, PARITY (wrong=0 — the field matches arithmetic, it does not beat it). The scope note is corrected (full holdout closed; remaining frontier = derived-operand transfers + non-affine kinds + >5-atom deduction, all 0 on this holdout). The ADR-0249 instrument test pins are updated honestly (26→50, refused 24→0).ADR-0250 (Proposed — no self-Accept)
docs/adr/ADR-0250-*.mddocuments the Tier-2 arc: the multi-register product-of-lines model, coupled-translator transfers, the relative conservation hard-reject pin, prepare→validate→commit atomicity, the certified summation turn, and the chain-of-custody (operand_source_digest).docs/handoff/ADR-0250-Acceptance-Evidence.mdcollects the phase SHAs, the full-holdout result, and the in-tree verifications. §10 ruling record awaits your ratification.Headline
The reader→Hamiltonian compiler now solves the entire real GSM8K dev holdout — 50/50, wrong = 0 — by chained certified relaxation (26 Tier-1 + 18 T2a single-entity + 6 certified summation). Every step certified, conservation-gated, tamper-evidently recorded, off-serving.
Governance
Off-serving (A-04); no gate activated (ADR-0246 §3.7 stays uncalibrated); no manifold mutated (I-03); ratified contracts reused. Every phase smoke-gated green.
Tests
tests/test_adr_0249_arithmetic_lift.py(updated) +tests/test_generalized_lift_instrument.py— 10/10 green (50/50 coverage, PARITY, scope corrected, JSON-safe artifact).[Verification]:
uv run python -m pytest tests/test_adr_0249_arithmetic_lift.py tests/test_generalized_lift_instrument.py -q→ 10 passed;uv run core test --suite smoke -q→ 176 passed.Review — approve (nothing blocking).
Verified in review: instrument↔executor API match (
seeds/turns/answer_entity/.answer);_symbolic_multi_registeris semantically faithful toexecute_multi_register_program(affinescale·x+offset, transfer ∓k, seed-order summation onanswer_entity is None); conservation pin relative rtol=1e-6 matches ADR §3; prepare→validate→commit with an immutable register mapping matches §4; conditionaloperand_source_digestpayload matches §5; evidence SHAs line up (#7197b2f8b7, #72efd5335e, #733c3dcdbe= this PR's base). Test pins updated honestly (26→50, refused 24→0).Findings — non-blocking, for post-merge housekeeping:
evals/generalized_lift_instrument.pystill says "Three deterministic domains" and "GSM8K … NOT ingestible … there is no reader→Hamiltonian compiler". That contradicts the file's ownarithmetic-chaindomain since ADR-0249, and this is the "measurement catches up" PR — the header should catch up too. (The tests only pin the report'sscope_limitationstuple, not the docstring, which is how it slipped.)_corridor_and_baselinereturns bareNone; the old rows carried"refusal": reason/"no_graph". refused=0 on this holdout so no rows are affected today, but "recorded, never silently dropped" should stay literal the moment a derived-operand case appears: return/recordMultiRegisterError.reason(and distinguish graph-parse failures).except TurnProgramErrorwrapsexecute_turn_program+_symbolic_fold, not just compile.execute_turn_programnever raises it today (require_converged=False), but a future typed raise would silently reroute a Tier-1 execution failure into Tier-2 and mask a regression. Tighten to compile-only. Related one-line doc note worth adding: Tier-2 execution fails closed on non-convergence while Tier-1 records-only and the instrument reads.answerwithout.certified— the gold comparison is what binds wrong=0 on both paths.Erratum (label correction). This PR's description and my earlier evidence called
evals/gsm8k_math/dev/publicthe "real GSM8K dev holdout." Per ADR-0119.2 those are CORE-authored GSM8K-style problems, not real GSM8K. Corrected — reframe, not retraction: the mechanism results (wrong=0, PARITY, 50/50, 200/200) stand as the mechanism-correctness instrument; only the corpus label falls.Measured real-GSM8K reach (official
holdout_dev, 500): reader parses 5/500, corridor solves 0/500 — reader-gated. Prominent ERRATA sections added to ADR-0249, ADR-0250, and both acceptance-evidence docs in PR #75, with the full analysis indocs/research/dev2-frontier-measurement-spike-2026-07-18.md.