diff options
| author | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-08-18 11:36:33 +0200 |
|---|---|---|
| committer | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-08-18 11:36:33 +0200 |
| commit | 0281a846ac7c22d22990a6664a37205930a94b7d (patch) | |
| tree | 3b3d4140d0b3feb005a1bf36b52458b662944e3c /data/ef | |
| parent | 01219763c87c84175fcfa469882c6f30a56720d5 (diff) | |
| download | colitur-0281a846ac7c22d22990a6664a37205930a94b7d.tar.gz colitur-0281a846ac7c22d22990a6664a37205930a94b7d.zip | |
fix(ef): the Assumption and St Lawrence vigils are violet (RG 128)
RG 128, transcribed in the rules register since 2026-08-11, gives violet to
"vigils of II and III class outside Paschaltide". The Vigil of the Assumption
(14 August, II class) carried White and the Vigil of St Lawrence (9 August,
III class) carried Red. Both are outside Paschaltide, so both are violet. The
Ascension's vigil is untouched: it is the one II-class vigil inside
Paschaltide and was already correctly white.
The rule had been sitting in the register, disagreeing with the shipped data,
since before the data was bootstrapped. It was invisible because colitur,
lectio and missalemeum all carried the same two wrong colours -- 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, and the differential and the oracle both went
green on the shared error. It surfaced only against witnesses outside that
tree: a published 1962 Ordo flagged the Assumption's, and O'Connell, The
Celebration of Mass 4th ed. (1964), section 4(c) and footnote 169, gave the
general rule and with it St Lawrence's, which the Ordo omits entirely.
Two golden pins added, in years where each vigil is actually observed rather
than impeded. The divergence this creates against every DO-lineage source is
cited in both allow-lists: C37 (lectio, 77 rows -- 92 possible minus 15 where
the vigil falls on a Sunday) and M29 (missalemeum, 3 rows in 2026-2027 and 2
in each of 2035 and 2038). Both gated on the exact slugs or dates and on
colour alone, so any other divergence on those days would still surface.
Also recorded, no code change: rose on Gaudete and Laetare stays. RG 131 is
permissive ("adhiberi possunt") and the Ordo prints violet, so the colour
field carries a permission rather than a requirement on those two Sundays a
year -- a decided position now, not an unexamined one.
Diffstat (limited to 'data/ef')
| -rw-r--r-- | data/ef/expected-divergences-missalemeum.sexp | 5 | ||||
| -rw-r--r-- | data/ef/expected-divergences.sexp | 5 | ||||
| -rw-r--r-- | data/ef/sanctoral.sexp | 4 |
3 files changed, 12 insertions, 2 deletions
diff --git a/data/ef/expected-divergences-missalemeum.sexp b/data/ef/expected-divergences-missalemeum.sexp index 593edf9..84b4f25 100644 --- a/data/ef/expected-divergences-missalemeum.sexp +++ b/data/ef/expected-divergences-missalemeum.sexp @@ -298,3 +298,8 @@ CORRECTED, fix round 1 (coordinator review): the remaining 352 were previously d (verdict colitur) (note "Task 9 (branch ef-lectionary, layer-4 oracle): 25 December, both years. colitur: Heb 1:1-12/John 1:1-14 (\"Missa in die\"); missalemeum's own entry[0]: Titus 2:11-15/Luke 2:1-14 (\"Missa in nocte\"). Both are real, correct, Missal-verifiable citations for 25 December -- this is not a rubric dispute or a data gap either engine is wrong about, a comparator/fixture-extraction artefact (which of several equally-real Masses a multi-Mass day's own JSON array entry[0] happens to be). NOT fixed by changing the extractor's own array-index convention: that convention is deliberate and already verified, in the extraction script's own header, for every OTHER field this fixture reads on a multi-Mass day (rank/colours/tempora/commemorations/displaced, confirmed IDENTICAL across a day's own multiple Masses on all 4 such days, Christmas and All Souls, both years) -- only the CITATION fields are not identical across a day's own Masses, discovered by this task, and changing the index for citations alone while keeping it for everything else would be a second, undeclared convention, not a fix. Derived directly from the OCaml comparator's own failure output, not hand-counted first and cross-checked after: 2.") (expected_rows 2)) + ((id M29) + (citation "RG 128, transcribed in docs/research/rules-register.md 3b: violet for vigils of II and III class outside Paschaltide. The Vigil of St Lawrence (9 August, III class) and the Vigil of the Assumption (14 August, II class) both qualify. missalemeum keeps red and white respectively. Corroborated against O'Connell, The Celebration of Mass, 4th ed. (1964, revised to the Codex Rubricarum 1960 and the 1962 Missal), section 4(c), whose footnote 169 names the sole exception -- the Ascension's vigil, inside Eastertide, white -- which colitur already emitted correctly") + (verdict colitur) + (note "ef-oconnell-rubrics branch. Unlike every other entry in this file, the oracle here is not an independent witness against colitur: it is colitur's own discarded ancestor. colitur was bootstrapped from lectio, lectio's ini is generated from missalemeum, and missalemeum uses Divinum Officium's data files, so all three carried the same two wrong colours and no layer sharing that lineage could see it (CLAUDE.md's own lineage note, register 6.20). The defect surfaced only against the Missal's own RG 128 -- transcribed in the register since 2026-08-11 and disagreeing with the shipped data all along -- plus O'Connell and a published 1962 Ordo. Same fix as C37 in the lectio differential, seen from the oracle side. 3 rows in this window: 2026-08-14, 2027-08-09, 2027-08-14. 2026-08-09 is absent because it is a Sunday that year and the vigil never occurs, checked with date -d. Gated on the exact dates and Colour_f alone, so any other divergence on these days would still surface unexplained.") + (expected_rows 3)) diff --git a/data/ef/expected-divergences.sexp b/data/ef/expected-divergences.sexp index d8c197b..a863604 100644 --- a/data/ef/expected-divergences.sexp +++ b/data/ef/expected-divergences.sexp @@ -247,3 +247,8 @@ CORRECTED, fix round 1 (coordinator review, Important 1): this note previously d (verdict colitur) (note "The ferias of the week after Trinity Sunday. Trinity is the temporal identity of its own Sunday, so a plain walkback to \"the preceding Sunday's Mass\" lands on Trinity's -- which is what colitur did until this fix and what lectio still does. But RG 299's rule carries an explicit exception, and this week is the clearest instance of it in the year: the Missal prints a NAMED formula for the week immediately after Trinity, precisely BECAUSE the feast has taken the Sunday's own Mass. colitur now resolves these ferias at step 2 from that formula and never reaches step 3's walkback at all. This is test_oracle.ml's own M26 shape 2(a), fixed rather than allow-listed there. Note what this does NOT cover: M26 shape 2(b), the ferias of Christ the King's week, where no proper Mass is assigned (checked directly -- no rubric precedes that Mass heading, scan1.txt:39163ff) and RG 299's DEFAULT therefore governs, making the preceding Sunday's Mass genuinely Christ the King's own. Gated on the literal 5-slug list, requiring the citation difference to be present, and admitting a colour difference only alongside it -- nine of these days are also unoccupied IV-class Saturdays carrying C17's own BVM-Office colour divergence, and a colour-only Saturday must still fall to C17 rather than be absorbed here. No Thursday in the list: Corpus Christi is Easter+60, which IS this week's Thursday every year, so the slug never exists -- the bootstrap's own reachability guard refuses to emit it. Derived from the comparator's own failure output, not hand-counted: 69.") (expected_rows 69)) + ((id C37) + (citation "RG 128, transcribed in docs/research/rules-register.md 3b: violet is used for Advent, Septuagesima to the Easter Vigil (with named exceptions), the September Ember days, and VIGILS OF II AND III CLASS OUTSIDE PASCHALTIDE. The Vigil of St Lawrence (9 August, III class) and the Vigil of the Assumption (14 August, II class) are both outside Paschaltide and are therefore both violet. colitur carried Red and White respectively, bootstrapped from lectio. Corroborated by O'Connell, The Celebration of Mass, 4th ed. (1964, revised throughout to the Codex Rubricarum 1960 and the 1962 Missal), section 4(c) -- violet 'on vigils of II and III class outside Eastertide' -- whose footnote 169 names the SOLE exception: 'the only vigil of II class within Eastertide is that of the Ascension and its colour is white', which colitur already emitted correctly and which is deliberately NOT in this entry's slug list") + (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)) diff --git a/data/ef/sanctoral.sexp b/data/ef/sanctoral.sexp index dd22754..dca4a9b 100644 --- a/data/ef/sanctoral.sexp +++ b/data/ef/sanctoral.sexp @@ -3173,7 +3173,7 @@ (names ((en "Vigil of St. Lawrence") (pl "Wigilia \197\155w. Wawrzy\197\132ca, M\196\153czennika"))) - (rank Class3) (status Feast) (colour Red) (subject Saint) + (rank Class3) (status Feast) (colour Violet) (subject Saint) (citations (((part First) (reference "Ecclus 51:1-8, 12")) ((part Gospel) (reference "Matt 16:24-27")))) @@ -3196,7 +3196,7 @@ (names ((en "Vigil of the Assumption") (pl "Wigilia Wniebowzi\196\153cia N. M. P."))) - (rank Class2) (status Feast) (colour White) (subject Saint) + (rank Class2) (status Feast) (colour Violet) (subject Saint) (citations (((part First) (reference "Sir 24:23-31")) ((part Gospel) (reference "Luke 11:27-28")))) |
