diff options
| author | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-08-18 12:11:05 +0200 |
|---|---|---|
| committer | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-08-18 12:11:05 +0200 |
| commit | a6daed7820a97f4032f21964b5b1bb30fe00b36b (patch) | |
| tree | fa8886ee97dba5a696fb2c7d8e62798f832ed538 /data/ef/expected-divergences.sexp | |
| parent | ca4287a6e99e14846f3560106156ef2b1c4b8cf2 (diff) | |
| download | colitur-a6daed7820a97f4032f21964b5b1bb30fe00b36b.tar.gz colitur-a6daed7820a97f4032f21964b5b1bb30fe00b36b.zip | |
fix(ef): ubaldus and didacus are III-class feasts, not commemorations
Both carried rank Class3 with status Commemoration_only, bootstrapped from
lectio, which inherits it from missalemeum, which is generated from Divinum
Officium. The Missal's own universal calendarium ranks both "III classis"
outright, with no commemoration rubric: "S. Ubaldi Ep. et Conf., III classis"
(16 May) and "S. Didaci Conf., III classis" (13 November), corroborated in
the second scan and in a published 1962 Ordo.
Universal by construction, not by assumption: the calendarium carries no "pro
aliquibus locis" marker in its 573 lines while the wider Missal carries 79 of
them elsewhere. Each saint also has his own Mass entry in the Proprium, which
a bare commemoration never has -- a commemoration carries an oration only.
Found by auditing ALL 290 fixed-date entries against that calendarium, day by
day, anchored on the Roman calends column because the arabic day column is
OCR-wrecked and the dominical-letter column vanishes in some months. These
two were the only status defects in the whole file. The 15 days the automated
pass could not cover were read by hand and all agree.
Neither needed a proper authored: each takes its Mass from a Common with only
its own Oratio proper, per its own rubric at its own date. ubaldus shares
patrick's Common exactly. didacus needed one newly transcribed --
common-of-a-confessor-not-a-bishop-2, the "Altera Missa" Iustus, 1 Cor 4:9-14
and Luke 12:32-34, read independently in both scans, which agree, so the
page-image third reading this file's method requires on disagreement was not
triggered.
Blast radius, full 1583-9999 sweep, every day classified: 13 036. That is
5 564 ubaldus observed, 7 196 didacus observed, and 276 where the Ascension
Vigil still wins on 16 May but its single RG 111(c) slot passes from
rogation-wednesday to ubaldus -- correct and already pinned, since the
Rogation days are the MINOR Litanies and so an ordinary commemoration, which
RG 113's table order ranks below a III-class feast. Cited as C38 (70 rows)
and M30 (3); C8, C17 and M18 shrink accordingly, each with the reason
recorded rather than the count silently adjusted.
Diffstat (limited to 'data/ef/expected-divergences.sexp')
| -rw-r--r-- | data/ef/expected-divergences.sexp | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/data/ef/expected-divergences.sexp b/data/ef/expected-divergences.sexp index a863604..9934ff6 100644 --- a/data/ef/expected-divergences.sexp +++ b/data/ef/expected-divergences.sexp @@ -90,8 +90,8 @@ Gated on the literal date window (month=12, day in {29,30,31}) AND colitur's own ((id C8) (citation "RG 87 (Minor Litanies/Rogations, Mon/Tue before Ascension); register ยง3c item 3") (verdict colitur) - (note "Rogation Monday and Tuesday exist as colitur's own ef-rogation-{monday,tuesday} slugs (violet) whenever no higher-ranked saint intervenes. lectio computes no Rogation days at all and shows the plain paschaltide-week-6 feria instead. REFRESHED (ef-rebootstrap fixture refresh, 2026-08-12): expected_rows UNCHANGED at 31 -- lectio's fix wave did not touch Rogation computation at all (not named in any of its seven defects), independently confirmed by re-deriving the count against the refreshed fixture (same Python cross-check as C1/C6, matched the OCaml comparator's own failure output before being set here).") - (expected_rows 31)) + (note "Rogation Monday and Tuesday exist as colitur's own ef-rogation-{monday,tuesday} slugs (violet) whenever no higher-ranked saint intervenes. lectio computes no Rogation days at all and shows the plain paschaltide-week-6 feria instead. REFRESHED (ef-rebootstrap fixture refresh, 2026-08-12): expected_rows UNCHANGED at 31 -- lectio's fix wave did not touch Rogation computation at all (not named in any of its seven defects), independently confirmed by re-deriving the count against the refreshed fixture (same Python cross-check as C1/C6, matched the OCaml comparator's own failure output before being set here). CORRECTED, ef-sanctoral-status: 31 -> 26. Five rows left this entry for C38 when `ubaldus` (16 May) was promoted to Feast on the Missal's own calendarium: 16 May can itself be a Rogation Monday or Tuesday, and a III-class feast outranks the Rogation feria, so on those five days colitur's observed office is now the saint and the divergence is C38's, not this entry's. The rows did not stop diverging; their CAUSE changed, and they are filed where the cause is cited.") + (expected_rows 26)) ((id C14) (citation "RG 95 (translation is a right of I-class feasts) + RG 96 (the general forward walk, \"the next following day that is not I or II class\") + RG 96's own Attamen (a) (\"festum Annuntiationis ... quando est transferendum post Pascha, transfertur, tamquam in sedem propriam, in feriam II post dominicam in albis\" -- the Annunciation's transferred target is its OWN PROPER SEAT, not a provisional landing spot subject to further re-ordering)") (verdict colitur) @@ -114,8 +114,8 @@ CORRECTED, Task 9 (branch ef-lectionary, layer-4 oracle): the 13-vs-7 coincident (verdict colitur) (note "ef-bvm-saturday task: colitur now builds RG 91 entry 27's votive Office of the BVM on every otherwise-unoccupied IV-class Saturday (Rite_ef.Temporal_ef's own [bvm_saturday_names] citation has the full argument) -- white (RG 431(e) -> RG 121(a) -> RG 120(b); RG 120(b) alone reads \"de festis\" and this Office is not a festum), unconditionally, overriding the season's own colour (violet in Septuagesima, green in Time after Epiphany/Time after Pentecost; Christmastide and ordinary Paschaltide already happened to be white). lectio builds no equivalent office at all -- checked directly against its own tridentine-calendar.ini/generator, no comparable rule exists there, the same genuine upstream gap C15/C16 above document for their own gaps, not a colitur bootstrap miss -- so it keeps showing the plain season colour on every one of these Saturdays. Season, slug and rank all still agree: temporal_ef.ml's own [bvm_saturday_names] citation (\"Slug\" paragraph) deliberately REUSES the ordinary <season>-<week>-saturday ferial slug rather than minting a new one (partly BECAUSE a bespoke uniform slug would itself have broken Colitur_kernel.Validate's own slug-uniqueness invariant, sighted on every otherwise-unoccupied Saturday in a year), so [Colour_f] alone is the complete diff set every one of these rows carries -- never [Slug_f] too. Gated on colitur's own [rank]=class-4, [weekday]=saturday and [colour]=white (test_differential.ml's own [is_bvm_saturday_row]) rather than a date list, unlike C14/C15/C16 above: RG 78's own condition (\"otherwise unoccupied IV-class Saturday\") reduces exactly to this triple, and the population is large (a substantial fraction of all Saturdays in the 2005-2050 window) and entirely formulaic, not a short, individually-interesting list. Derived directly from the OCaml comparator's own failure output (test_layer_c_counts_match_citations), not hand-counted first and cross-checked after. -NARROWED, task 8: expected_rows moved 416 -> 406. Not a regression -- 10 of the former 416 rows now ALSO carry [First_f]/[Gospel_f] (C19's own Time-after-Epiphany week-numbering-shift years, 2008/2013/2019/2030/2036/2041/2047, on the specific Saturdays where the BVM office and the week-shift coincide) and so no longer satisfy this entry's own EXACT [diffs = [ Colour_f ]] guard -- they move to C19 instead, which explains the SAME colour divergence plus the week-shift's own citation divergence together. This entry's own guard is intentionally NOT widened to `subset`: doing so would risk silently absorbing a future, unrelated citation bug on an otherwise-ordinary BVM Saturday. Re-derived directly from the OCaml comparator's own failure output: 406. NARROWED (movable-date-specs follow-up, 2026-08-17): 406 -> 397. Nine of these Saturdays are ALSO the Saturday of the week after Trinity Sunday, where colitur now resolves the printed Mass the Missal assigns that week (RG 299 escape clause -- see C35) while lectio still walks back to Trinity. Those rows carry a citation difference as well as this entry own colour one, so they belong to C35 now; split out to a cited entry rather than silently re-absorbed here, the same discipline C15 own split from C1 set. The colour cause is unchanged on all 397 that remain. WIDENED (BVM Saturday Mass, 2026-08-17): 397 -> 445, the entry's scope growing with its cause. colitur has built RG 78's OFFICE since the ef-bvm-saturday task, white where lectio (having no such office) is green. It now also says the MASS that office calls for, RG 309(a)'s iuxta temporum diversitatem selection among the five Missae de sancta Maria in sabbato, where lectio says the feria's. So these days differ on citations as well as colour. One cause, one entry: the predicate admits Colour/First/Gospel together, requires at least one, and keeps its subject=bvm guard, still the only field pinning WHICH celebration is observed since the office deliberately reuses the ferial slug. Rows absorbed from C1, C19 and C25 are those entries' own Saturdays, refiled here rather than left split across two ids for one divergence.") - (expected_rows 445)) +NARROWED, task 8: expected_rows moved 416 -> 406. Not a regression -- 10 of the former 416 rows now ALSO carry [First_f]/[Gospel_f] (C19's own Time-after-Epiphany week-numbering-shift years, 2008/2013/2019/2030/2036/2041/2047, on the specific Saturdays where the BVM office and the week-shift coincide) and so no longer satisfy this entry's own EXACT [diffs = [ Colour_f ]] guard -- they move to C19 instead, which explains the SAME colour divergence plus the week-shift's own citation divergence together. This entry's own guard is intentionally NOT widened to `subset`: doing so would risk silently absorbing a future, unrelated citation bug on an otherwise-ordinary BVM Saturday. Re-derived directly from the OCaml comparator's own failure output: 406. NARROWED (movable-date-specs follow-up, 2026-08-17): 406 -> 397. Nine of these Saturdays are ALSO the Saturday of the week after Trinity Sunday, where colitur now resolves the printed Mass the Missal assigns that week (RG 299 escape clause -- see C35) while lectio still walks back to Trinity. Those rows carry a citation difference as well as this entry own colour one, so they belong to C35 now; split out to a cited entry rather than silently re-absorbed here, the same discipline C15 own split from C1 set. The colour cause is unchanged on all 397 that remain. WIDENED (BVM Saturday Mass, 2026-08-17): 397 -> 445, the entry's scope growing with its cause. colitur has built RG 78's OFFICE since the ef-bvm-saturday task, white where lectio (having no such office) is green. It now also says the MASS that office calls for, RG 309(a)'s iuxta temporum diversitatem selection among the five Missae de sancta Maria in sabbato, where lectio says the feria's. So these days differ on citations as well as colour. One cause, one entry: the predicate admits Colour/First/Gospel together, requires at least one, and keeps its subject=bvm guard, still the only field pinning WHICH celebration is observed since the office deliberately reuses the ferial slug. Rows absorbed from C1, C19 and C25 are those entries' own Saturdays, refiled here rather than left split across two ids for one divergence. CORRECTED, ef-sanctoral-status: 445 -> 439. Six rows left this entry for C38 when `ubaldus` (16 May) and `didacus` (13 November) were promoted to Feast. RG 78's protasis is an UNOCCUPIED IV-class Saturday; a III-class feast occupies it, so on the six Saturdays those two dates fall on within 2005-2050 the BVM Office is no longer kept at all and the divergence is C38's. Same discipline as C8 above and as C25's own closure: an entry shrinks when its shape stops occurring, rather than silently absorbing rows whose cause has changed.") + (expected_rows 439)) ((id C18) (citation "RG 124 (\"XVIII - De coloribus paramentorum\", \"C) De colore rubro\"), both photographic scans word for word: 124(b) \"adhibetur color ruber in Officio et Missa de festis: ... Sanctorum Apostolorum et Evangelistarum, in eorum die natalicio, excepto festo S. Ioannis (27 decembris)\"; 124(e) \"Sanctorum Martyrum, quorum colitur aut martyrium\"; register's own audit rewrite, ef-sanctoral-audit task") (verdict colitur) @@ -252,3 +252,8 @@ CORRECTED, fix round 1 (coordinator review, Important 1): this note previously d (verdict colitur) (note "ef-oconnell-rubrics branch. The sharpest demonstration in the project of the lineage problem recorded in CLAUDE.md and register 6.20: lectio, missalemeum and colitur all carried the same two wrong colours, because colitur was bootstrapped from lectio, lectio's ini is generated from missalemeum, and missalemeum uses Divinum Officium's data files. Three sources agreeing is one source counted three times. The defect became visible only against witnesses outside that tree -- the Missal's own RG 128 (already transcribed in the register since 2026-08-11, and disagreeing with the shipped data all along), O'Connell, and a published 1962 Ordo. The Ordo is what first flagged the Assumption vigil; O'Connell is what found St Lawrence's, which the Ordo could not give because that source omits the vigil entirely. Gated on the two literal slugs and diffs = [Colour_f] exactly, so a future identity or rank divergence on either day would NOT be absorbed here. 77, not 92: over the fixture's 2005-2050 span each vigil has 46 possible occurrences, and 15 are impeded outright (the vigil yields when its own date falls on a Sunday), so those rows never reach this entry -- both engines agree on the Sunday. Derived from the OCaml comparator's own output, not hand-counted.") (expected_rows 77)) + ((id C38) + (citation "The 1962 Missal's own universal CALENDARIUM, which is the universal calendar of the Roman rite -- it carries no 'pro aliquibus locis' marker anywhere in its 573 lines, while the wider Missal carries 79 of them elsewhere, so an entry appearing in it is universal by construction. 16 May: 'S. Ubaldi Ep. et Conf., III classis' (docs/research/scan1.txt:2801), corroborated scan2.txt:3197 ('16 S. Ubaldi Ep. et Conf., III cl.'). 13 November: 'S. Didaci Conf., III classis' (scan1.txt:3091), corroborated scan2.txt:3532 ('S. Didaci Conf., III cl.'). Neither carries a Commemoratio rubric; both are bare III-class feasts. Each also has its own Mass entry in the Proprium Sanctorum -- 'Die 16 maii / S. Ubaldi Ep. et Conf. / III classis / Missa Statuit, de Communi Confessoris Pontificis I loco [19], praeter orationem sequentem' (scan1.txt:30196, scan2.txt:33448) and 'Die 13 novembris / S. Didaci Conf. / III classis / Missa Iustus, de Communi Confessoris non Pontificis II loco [25], praeter orationem sequentem' (scan1.txt:40276, scan2 printing the same with its own pagination, '2 loco (26)') -- which a mere commemoration never has, a commemoration carrying only an oration. The published 1962 Ordo (register 6.21) independently lists both as the day's III-class office") + (verdict colitur) + (note "ef-sanctoral-status branch. Both entries carried rank Class3 with status Commemoration_only, bootstrapped from lectio, which inherits it from missalemeum, which is generated from Divinum Officium -- the same single lineage C37 documents. Found by auditing ALL 290 fixed-date sanctoral entries against the Missal's own calendarium, day by day, anchored on the Roman calends column rather than the OCR-mangled arabic day numbers; ubaldus and didacus were the ONLY two status defects in the whole file, and the 10 days the automated pass could not cover were checked by hand and all agree. That result also narrows a standing register claim: the recorded 'wrongly Commemoration_only' defect was described as a cluster in 6 March - 5 April, and neither of these falls in it, so the cluster was an artefact of where someone looked rather than the defect's extent. Neither saint needed a proper authored: each takes its Mass from a Common with only its own Oratio proper, so this is an assignment in data/ef/commons.sexp, one of them to a Common newly transcribed for it (common-of-a-confessor-not-a-bishop-2, 1 Cor 4:9-14 / Luke 12:32-34, read independently in both scans). 70 rows over 2005-2050, in TWO exact diff shapes the predicate spells out separately rather than collapsing: 32 for ubaldus, where 16 May falls in Paschaltide and the ferial colour is ALREADY white so no colour difference arises, and 38 for didacus, where 13 November is green Time after Pentecost and the white confessor changes it. Not 46 each: the rest of the occurrences are impeded, or the saint loses to a competing office, and both engines then agree. Derived from the OCaml comparator's own output, not hand-counted.") + (expected_rows 70)) |
