From 0d061abc7cc5cdc51ded6ee69e00e187813f5e1b Mon Sep 17 00:00:00 2001 From: Lukasz Kasprzak Date: Mon, 24 Aug 2026 16:16:59 +0200 Subject: feat(ordo): wire the extraordinaryform.org preface column in as a third witness Extends the preface comparison (RG 482-499) with a third, independent publisher, extraordinaryform.org's three annual Ordo editions (2024-2025, 2025-2026, 2026-2027), previously declined for two reasons that are now resolved: - "Advent" is not a preface: RG 494(b) grants the Trinity preface on every Advent SUNDAY, RG 498 the residual Common on every Advent FERIA; this source's own "Advent" label covers both indiscriminately (confirmed live on all 11 non-impeded Advent Sundays in the corpus). Classified by the day's own civil weekday, not a static table. - The known Vigil-of-St-Lawrence gap is reconfirmed, with a nuance not present in the earlier audits: colitur's own RG33-third-trigger now omits the vigil in some years too, so the corpus's gap and colitur's answer coincide in 2025 (a full match, not a coincidence) while 2027 still shows the classic identity-wrong-but-preface-invisible shape. Re-derives the known menu-trap office filter (Requiem-skip, "and "-chain) against the live JSON and finds a second, general pattern: "Saturday of Our Lady" (RG78's BVM Saturday Office), whenever listed, is unconditionally the office -- checked exhaustively across all 38 instances in the corpus, zero counter-examples. A third, generic "absorption" rule was deliberately not built: it would resolve 2 of the 11 residual divergences but wrongly misfires on a structurally identical but semantically different shape (an optional Rogation-day Mass option). The JSON's own extraction carries a genuine classifier gap: parse_ordo.py's hardcoded PREFACES set omits "Christ the King", misfiling it into comms; recovered in the generator, not left blank. 11 of 1088 comparable rows diverge, resolving to 7 adjudicated root causes (E1-E7): two Commemoration_only Marian titles reduced to commemorations (Mt Carmel, Ransom), two genuine sanctoral data gaps cross-confirmed absent by the FIUV/LMS witnesses (Miraculous Medal, St John before the Latin Gate), two single-witnessed efdotorg outliers against FIUV/LMS agreement (St Michael's Dedication, All Saints on a Sunday), and one isolated source labelling slip. Mutation-tested: corrupting the RG495 BVM-Saturday clause reddens 9 tests across this new layer and both existing Ordo witnesses. Per-edition agreement: 358/363 (2024-2025), 358/363 (2025-2026), 361/362 (2026-2027). --- data/ef/expected-divergences-efdotorg.sexp | 175 +++++++++++++++++++++++++++++ 1 file changed, 175 insertions(+) create mode 100644 data/ef/expected-divergences-efdotorg.sexp (limited to 'data/ef') diff --git a/data/ef/expected-divergences-efdotorg.sexp b/data/ef/expected-divergences-efdotorg.sexp new file mode 100644 index 0000000..7c9eea7 --- /dev/null +++ b/data/ef/expected-divergences-efdotorg.sexp @@ -0,0 +1,175 @@ +; data/ef/expected-divergences-efdotorg.sexp -- efdotorg-preface task +; (2026-08-24-colitur-celebrant-rubrics-phase1)'s cited allow-list for the +; extraordinaryform.org Ordo preface comparison (test/test_efdotorg_ordo.ml), +; three editions (2024-2025, 2025-2026, 2026-2027), 1091 day-rows total. +; +; A SEPARATE file from data/ef/expected-divergences.sexp (lectio), +; data/ef/expected-divergences-missalemeum.sexp (missalemeum/Divinum- +; Officium lineage), data/ef/expected-divergences-lms.sexp (Latin Mass +; Society, England & Wales, Peter Day-Milne) and +; data/ef/expected-divergences-fiuv.sexp (FIUV, universal, Joseph Shaw): +; this is a FIFTH lineage, a third distinct publisher/compiler. +; +; Two things resolved BEFORE any divergence below was adjudicated, per the +; task's own "characterise first" discipline -- neither is an allow-list +; entry, because neither is a disagreement: +; - "Advent" is not a static mapping (RG 494(b) grants Trinity on every +; Advent SUNDAY, RG 498 the residual Common on every Advent FERIA) -- +; see tools/extract_efdotorg_ordo.py's own header, finding 3, and +; test_efdotorg_ordo.ml's own [classify_praef]. Zero mismatches. +; - The "Christ the King" classifier gap in parse_ordo.py's own hardcoded +; PREFACES set is RECOVERED in the fixture generator (finding 2), not +; allow-listed. +; +; Of 1088 comparable rows (1091 minus Good Friday x3 minus the one source +; gap, 2027-03-03), 11 diverge, all found ONLY after building +; tools/extract_efdotorg_ordo.py's own Rule A (finding 6: "Saturday of Our +; Lady", whenever listed, IS the office, checked exhaustively across all +; 38 instances in the corpus) -- without Rule A the apparent divergence +; count was far higher (dominated by the BVM-Saturday-Office population), +; which is why Rule A belongs in the generator, not the allow-list: it is +; a general, well-evidenced STRUCTURAL rule, not a per-date adjudication. +; +; The 11 residual rows resolve to exactly SEVEN root causes, E1-E7 below. + +; E1 -- colitur correct. "Our Lady of Mt. Carmel" (16 July) is +; `Commemoration_only` status in data/ef/sanctoral.sexp (confirmed +; directly: `grep our-lady-of-mt-carmel data/ef/sanctoral.sexp`, and +; already cited elsewhere in this codebase -- +; lib/rites/rite_ef/precedence_ef.ml's own `marian_slugs`/RG112(d) +; citation names it explicitly), so it can NEVER be the day's own +; OBSERVED office in colitur's model -- only ever a commemoration. This +; source nonetheless lists it as a standalone Mass option (the same +; "priest's menu, not office order" convention +; .superpowers/ordo-class-report.md already established for the votive +; Requiem population), with the day's real office (an ordinary feria/ +; resumed Sunday) listed alongside, its own `comms` field naming Mt +; Carmel as what IT commemorates -- exactly matching colitur's own +; `+our-lady-of-mt-carmel` commemoration on all three dates. Fires once +; per edition, unchanged: 2025-07-16, 2026-07-16, 2027-07-16. +((id E1) (citation "RG91 table (Commemoration_only has no table row); data/ef/sanctoral.sexp") + (verdict colitur) + (note "Our Lady of Mt Carmel (16 July) is Commemoration_only-status data, never the observed office; the corpus lists it as an optional votive Mass regardless. Fires 2025-07-16, 2026-07-16, 2027-07-16 (one row per edition).") + (expected_rows 1)) + + ; E2 -- colitur correct, the SAME shape as E1. "Our Lady of Ransom" (24 + ; September) is also `Commemoration_only` status + ; (data/ef/sanctoral.sexp), and CLAUDE.md's own record already notes it + ; "forces the September Ember Saturday every time, by construction" -- + ; confirmed live here: the true office on every instance checked (2025, + ; 2027) is the September Ember day itself (Ember Wednesday/Friday), with + ; Ransom correctly reduced to ITS OWN commemoration -- matching colitur + ; exactly and producing NO divergence those two years. Only 2026-09-24 + ; diverges, because that entry happens to be listed first in the + ; option list with an empty comms field of its own while the true + ; office (the Ember Saturday) is a separate, later entry -- the same + ; "named votive Mass listed ahead of the real office" shape as E1, just + ; without a Saturday-of-Our-Lady-style structural marker to catch it + ; generically. + ((id E2) (citation "RG91 table (Commemoration_only has no table row); data/ef/sanctoral.sexp; September Ember Saturday, RG26") + (verdict colitur) + (note "Our Lady of Ransom (24 September) is Commemoration_only-status data; the September Ember Saturday always wins the day outright. Fires once, 2026-09-24 (2025 and 2027's own 24 September already match colitur without needing this entry -- the Ember day is listed first there).") + (expected_rows 1)) + + ; E3 -- colitur correct (a genuine sanctoral DATA GAP, not a rule bug). + ; "Our Lady of the Miraculous Medal" (27 November) does not appear + ; anywhere in data/ef/sanctoral.sexp (`grep -i medal` / `grep -i + ; miraculous`: zero hits) -- CROSS-CONFIRMED independently by BOTH + ; already-validated witnesses on the identical civil date: the FIUV + ; Ordo (test/fixtures/fiuv-ordo-2025-2026.sexp, 2025-11-27: plain + ; "IV cl." feria, "comm.") and the LMS Ordo (both the 2023-2024 and + ; 2024-2025 editions, 2024-11-27/2025-11-27: "Mass of 24th & Last + ; Sunday After Pentecost", "Common Pr") show no such feast at all. Not a + ; feast of the UNIVERSAL 1962 General Roman Calendar (the Miraculous + ; Medal apparition, 1830, is a devotional/particular-calendar + ; commemoration in some places, never added to the GENERAL calendar) -- + ; worth flagging alongside CLAUDE.md's own existing list of missing + ; sanctoral entries (Agnes secundo, Boniface 14 May, Evaristus, + ; Theodore) as a FIFTH candidate, but NOT fixed here: out of this task's + ; own scope (preface-comparison wiring, not sanctoral completeness), and + ; unlike those four, this one is independently corroborated as + ; genuinely absent from the UNIVERSAL calendar, not merely missing from + ; colitur's own bootstrap. Fires 2025-11-27, 2026-11-27 (one row per + ; edition where it recurs; 2027-11-27 does not reach this entry at all). + ((id E3) (citation "data/ef/sanctoral.sexp (no entry); cross-confirmed absent in both the FIUV and LMS Ordos on the same civil date") + (verdict colitur) + (note "Our Lady of the Miraculous Medal (27 November) is genuinely absent from the universal 1962 calendar colitur models -- not merely a colitur bootstrap gap. Fires 2025-11-27, 2026-11-27.") + (expected_rows 1)) + + ; E4 -- colitur correct (a second genuine sanctoral DATA GAP). "St. John + ; before the Latin Gate" (6 May) is likewise absent from + ; data/ef/sanctoral.sexp entirely -- CROSS-CONFIRMED by the LMS Ordo on + ; the identical civil date in TWO separate editions + ; (test/fixtures/lms-ordo-2023-2024.sexp, 2024-05-06, and + ; lms-ordo-2024-2025.sexp, 2025-05-06): both show only "Mass of Nth + ; Sunday after Easter", "Pr of Easter" -- matching colitur's own answer + ; exactly, with no trace of this feast. A genuine SIXTH candidate for + ; CLAUDE.md's known-missing-sanctoral-entries list, not fixed here for + ; the same out-of-scope reason as E3. Fires 2025-05-06, 2026-05-06; + ; 2027-05-06 does not diverge (that date is a Saturday, and Rule A's own + ; "Saturday of Our Lady" preference resolves it correctly without ever + ; needing to know this feast is missing). + ((id E4) (citation "data/ef/sanctoral.sexp (no entry); cross-confirmed absent in the LMS Ordo (2024-05-06 and 2025-05-06) on the same civil date") + (verdict colitur) + (note "St John before the Latin Gate (6 May) is genuinely absent from the universal 1962 calendar colitur models. Fires 2025-05-06, 2026-05-06 (2027-05-06 is a Saturday and is resolved by Rule A instead).") + (expected_rows 1)) + + ; E5 -- colitur correct, extraordinaryform.org is the OUTLIER. St + ; Michael's Dedication (29 September) has no dedicated preface among RG + ; 484-497's fourteen, so RG 482's chain falls through to RG 498's Common + ; -- and this is DOUBLY corroborated already, in + ; lib/rites/rite_ef/rubrics_ef.ml's own [preface] header: the FIUV Ordo + ; reads "comm. vel de Angelis" and the LMS Ordo reads "Pr of the Angels + ; or Common Pr" for this exact feast ("of the Angels" being one of the + ; several non-RG-482 "extra" preface names both those sources are + ; already documented to carry, alongside the genuine Common answer). + ; extraordinaryform.org's bare "Holy Trinity" is a single, uncorroborated + ; reading against two independent, already-validated witnesses that both + ; agree with colitur. Fires once, 2025-09-29 (the only occurrence in + ; this corpus where 29 September is NOT itself a Sunday reaching RG + ; 494(b) by a different route -- see E6 for that shape). + ((id E5) (citation "RG482/RG498; lib/rites/rite_ef/rubrics_ef.ml's own [preface], corroborated by both the FIUV and LMS Ordos on this exact feast") + (verdict colitur) + (note "St Michael's Dedication (29 September 2025) has no dedicated preface; colitur's Common answer is independently confirmed by both the FIUV and LMS Ordos (\"... or Common Pr\"/\"comm. vel ...\"). extraordinaryform.org's bare \"Holy Trinity\" is single-witnessed and outvoted.") + (expected_rows 1)) + + ; E6 -- colitur correct, extraordinaryform.org is the OUTLIER, the SAME + ; shape as E5 but for RG 494(b)'s own Sunday grant rather than RG 498. + ; All Saints falls on a Sunday in 2026 (confirmed: the corpus's own + ; entry carries `comms: ["Twenty-third Sunday after Pentecost"]`, + ; matching colitur's own `+ef-time-after-pentecost-sunday-23`), so RG + ; 494(b) ("in omnibus dominicis II classis... praefatio de Ss.ma + ; Trinitate") grants the TRINITY preface -- independently confirmed by + ; the FIUV Ordo on the SAME civil date (test/fixtures/fiuv-ordo-2025- + ; 2026.sexp, 2026-11-01: "Trinit. vel de Omnibus Sanctis et Patronis.", + ; Trinity again being the genuine RG-482 answer and "of All Saints and + ; Patrons" the same kind of non-RG-482 extra E5 already documents). + ; extraordinaryform.org's bare "Common" is single-witnessed here too. + ; Fires once, 2026-11-01 (the only Sunday occurrence of All Saints this + ; corpus's own window covers). + ((id E6) (citation "RG494(b); test/fixtures/fiuv-ordo-2025-2026.sexp, 2026-11-01 (\"Trinit. vel de Omnibus Sanctis...\")") + (verdict colitur) + (note "All Saints falls on a Sunday in 2026, so RG494(b) grants the Trinity preface -- independently confirmed by the FIUV Ordo on the same date. extraordinaryform.org's bare \"Common\" is single-witnessed and outvoted.") + (expected_rows 1)) + + ; E7 -- a single-row SOURCE DATA INCONSISTENCY, not a rule question. + ; 2025-11-29 is a "Saturday of Our Lady" day like the other 37 in this + ; corpus (Rule A correctly selects it as the office, matching colitur's + ; own BVM answer on office IDENTITY), but this ONE row's own `preface` + ; field reads "Common" where every other "Saturday of Our Lady" entry + ; in the whole corpus reads "BVM" (checked directly: 37 of 38 read + ; "BVM", this is the sole exception) -- an isolated compiler slip in the + ; source, not a pattern. + ((id E7) (citation "internal corpus consistency check: 37 of 38 \"Saturday of Our Lady\" entries read \"BVM\"; this is the sole exception") + (verdict colitur) + (note "2025-11-29's own \"Saturday of Our Lady\" entry reads \"Common\" where every other instance in the corpus (37 of 38) reads \"BVM\" -- an isolated source labelling slip, not a rule disagreement.") + (expected_rows 1)) + +; Per-edition agreement, reported separately, never merged (each row count +; is 364 total minus that edition's own no-praef coverage bucket -- Good +; Friday plus, for 2026-2027 only, the known 2027-03-03 source gap): +; 2024-2025: 358/363 (E1 x1, E3 x1, E4 x1, E5 x1, E7 x1) +; 2025-2026: 358/363 (E1 x1, E2 x1, E3 x1, E4 x1, E6 x1) +; 2026-2027: 361/362 (E1 x1) +; Full account: .superpowers/sdd/2026-08-21-colitur-celebrant-rubrics- +; phase1/efdotorg-preface-report.md. -- cgit v1.3