# CIR fix ledger — CLOSED at commit, 10 August 2026

Per protocol condition 13: every change to the frozen package for the
Corrected-Instrument Replication, classified A0/A1/B, with authority, decision, and
consumer. The ledger CLOSES at this file's commit; no unlisted change rides along
(condition 14). Package hashes before/after are recorded in the applying commits.

| # | Finding (source) | Class | Decision | Consumed by (re-executing analyses) |
|---|---|---|---|---|
| L1 | 9 missing stone lod-ids with direct EAGLE-hierarchy proof (Lane A LUT-12) | A0 | **APPLY** — add 57, 82, 365, 736, 739, 743, 744, 745 + Kalksandstein chain per audit diff | none live (material feeds only parked 09-grok-r1); applied for record and future runs |
| L2 | Lapislazuli/93 (Lane A: A0-leaning, no direct id-chain) | A1 | **NO CHANGE** — the predeclared A1 rule (unresolved ⇒ no change) applies; 1 record; disclosed | none |
| L3 | EAGLE meta-ids 118 "ceterum" / 138 "ignoratur" absorbed as non-stone, 10,791 records (Lane A LUT-12 cont.) | A0 (the authority's own six-language labels entail non-material) | **APPLY** — new EAGLE_MATERIAL_INDETERMINATE_LOD_IDS={118,138} checked before the fallback, returning unmatched | none live; the single largest instrument correction, ledgered for record |
| L4 | Latin lapis/saxum/eburneus absent from text fallbacks; 1,174+140 records (Lane A LUT-13) | A0 (fixed lexicon determines one answer) | **APPLY** — add "lapis","saxum" to stone fallback; "eburneus" to non-stone | none live |
| L5 | "tin" substring colliding with Tiburtinus/triestina, 33 travertine records (Lane A LUT-13) | A0 (pure substring defect) | **APPLY** — word-boundary match for "tin" | none live |
| L6 | 14-codex-r2 code requires unanimity where the registration says majority (Lane A LUT-16; bundle §2.7 line verified at Lane A countersignature) | A0 — conformance to registration | **APPLY** — REFUTES iff stayed-majority; FAVORS iff shifted-majority; exact tie ⇒ INDETERMINATE (mixed), the registered A21-style completion. Alpha landed 13/14, outside the divergence band | **14-codex-r2 (live)** |
| L7 | jsonb single-arrow coercion hazard, real but empirically inert (Lane A SER-05/COE-05) | A0 (registered lossless-transport requirement) | **APPLY** — robust numeric coercion accepting decimal-formatted and string-typed JSON numbers | all live (defensive; zero rows trigger today) |
| L8 | Bare literal "has_image" vs named constant (Lane A FLD-13, cosmetic) | A0 cosmetic | **APPLY** | 18-grok-r2 is parked; cosmetic only |
| L9 | **Staged edition_text strips restored spans** (adjudicator finding; mechanism of the format confound; Lane B's 10/450 literal-bracket observation explained) | A0 — the EpiDoc source markup plus the Leiden convention determine the rendering (supplied → [text], gap → [---]); the alpha extraction dropped content, violating the registered lossless-ingestion premise | **APPLY** — new column edr_staging.edition_text_leiden, re-rendered from the frozen source XML for all eligible rows; 18-codex-r2's SQL reads the repaired column; the alpha column remains untouched beside it | **18-codex-r2 (live)** — the substantive repair of this replication |
| L10 | AGG-09: in-package docstrings claim Holm/TOST family machinery "implemented properly" that has no consumers (coverage certification, fact-level) | Documentation correction (its own class, per the certification countersignature) | **APPLY** — docstrings corrected to state what the code does (fixed-level TOST per comparison, 9 comparisons, no family-size adjustment; family constants are disclosure-only) | Pattern-3 arm (wording only; no computational change) |
| L11 | 06-codex-r3's None→0 EDH-rate default vs 18-codex-r2's exclusion handling — opposite missingness defaults for a missing EDH comparator (Lane A cross-rival note) | A1 — the bundle's registered per-rival missingness fields do not determine a uniform rule | **NO CHANGE** — the predeclared A1 rule preserves alpha behaviour; the asymmetry is DISCLOSED in the re-execution report and pre-registered for repair in any future battery | 06-codex-r3, 18-codex-r2 (disclosure only) |
| L12 | Dead code/constants DC-01..09 (Lane A + certification) | — | **DOCUMENT-AS-INERT** — no removals; inertness verified twice (Lane A + certifier) | none |
| L13 | Gate outcomes (quincunx_cir_gates_20260810.md): PXY-01, PXY-02, PXY-06 FAIL | Park rule (condition 12) | **PARK in re-execution:** 09-grok-r1, 09-grok-r2, 18-grok-r2 — emitted as PARKED-BY-VALIDATION-GATE results, alpha verdicts standing as the published record with their existing assessments | — |

## What re-executes

02-codex-r2, 02-grok-r2, 03-grok-r2, 06-codex-r3, 14-codex-r2, 18-codex-r2, and the
Pattern-3 triangulation arm — under L6, L7, L9, L10 (the only ledger items touching
live paths). Thresholds, verdict rules, d_dep values, populations, and the eligible
manifest are UNCHANGED from the frozen bundle (B-class, frozen without exception).

## Execution conditions restated

One official execution (condition 16; the A7 void-run precedent governs crashes);
pre-registered delta output (corrected minus alpha for every intermediate quantity,
threshold distance, and verdict, common-support where eligibility is untouched — it
is); 52-test suite plus Lane A's audit tests re-passed after the diffs and before the
run; execution bundle hashed. The corrected results publish whatever they show; the
alpha run retains permanent priority as the blind test.

*Ledger closed by the orchestrator. Applying commits follow; then the re-execution.*
