aboutsummaryrefslogtreecommitdiff
path: root/data/ef/expected-divergences.sexp
diff options
context:
space:
mode:
Diffstat (limited to 'data/ef/expected-divergences.sexp')
-rw-r--r--data/ef/expected-divergences.sexp62
1 files changed, 18 insertions, 44 deletions
diff --git a/data/ef/expected-divergences.sexp b/data/ef/expected-divergences.sexp
index 6a2b72b..e533a0a 100644
--- a/data/ef/expected-divergences.sexp
+++ b/data/ef/expected-divergences.sexp
@@ -72,8 +72,8 @@
(verdict colitur)
(note "6-13 January is Christmastide in colitur, matching RG 72-73's explicit boundary at 13 January (corroborated independently by RG 119a's colour rule, §3b). lectio's efSeason switches to time-after-epiphany on 6 January. The season disagreement cascades into colour (green vs white) and, on 7-12 January specifically, into the ferial slug family name (colitur's ef-christmas-2-<weekday> vs lectio's ef-time-after-epiphany-1-<weekday> for those days). REFRESHED (ef-rebootstrap fixture refresh, 2026-08-12): expected_rows moved 361 -> 368. NOT a new divergence -- the closed C13's own 7 rows (13 January in the 7 years it falls on a Sunday) fold back in here: lectio's fix wave independently fixed its own equivalent of the RG16(a) defect C13 used to allow-list, so on all 7 of those Sunday years lectio's slug now matches colitur's `commemoration-of-the-baptism-of-the-lord` too (not just rank/colour), leaving season as the ONLY residual difference on those rows -- squarely inside C1's own existing shape (diffs subset of [Season;Colour;Slug] with the Slug-diff escape clause unused). REFRESHED AGAIN (ef-rg112-rg110 task, branch ef-rg112-rg110): expected_rows moved 368 -> 361, back to its PRE-ef-rebootstrap value, but for a THIRD, different reason -- SPLIT OUT to its own new entry, C15, not silently re-absorbed: colitur now BUILDS Holy Family (RG 17(b)) and, on these same 7 dates, correctly observes it in the fixed Baptism's place (RG 91 entry 14, RG 112(a)), so colitur's own slug there changes from `commemoration-of-the-baptism-of-the-lord` (which happened to already match lectio's own slug) to `ef-time-after-epiphany-sunday-1` (Holy Family's own, lectio has no equivalent) -- a genuine SLUG divergence now, no longer inside C1's own [Season]-only shape. See C15's own entry for the full account. PROVENANCE, fix round 1 (coordinator finding 6, restoring the discipline this entry's own prior refresh recorded and this round's rewrite had dropped): 361 read directly from the OCaml comparator's own failure output (test_layer_c_counts_match_citations's `Received` array, run against the widened C15 predicate/allow-list together, not before it existed) -- not hand-counted first and cross-checked after, and not 368 minus 7 taken on faith: the arithmetic matches C15's own independently-derived 7, which is corroboration, not the derivation itself.
-REFRESHED AGAIN, Task 9 (branch ef-lectionary, layer-4 oracle): expected_rows moved 361 -> 173. NOT a data change -- this entry's OWN diff-set guard (`subset diffs [Season;Colour_f;Slug_f]`) never accepted a citation diff, and this task gave the `ef-christmas-2-<weekday>` and `ef-time-after-epiphany-1-<weekday>` families their OWN direct citations for the first time (the Missal's own Mass-propers \"diebus ferialibus\" rubrics -- NOT RG 17(a) itself, which states only the day-identity privilege; see C30/C31's own citations for the corrected attribution -- tools/bootstrap_lectionary.ml's own [epiphanytide_opening_entries]) -- every row in this window that ALSO now carries a real First_f/Gospel_f divergence escapes this entry's own subset guard and moves to the new C31/C32 instead (not silently re-absorbed: C31/C32's own [subset diffs [Season;Slug_f;Colour_f;First_f;Gospel_f]] guard is what actually catches them, checked BEFORE this entry no longer applies, not assumed). What remains here is every 6-13 January row this task's own fix did NOT touch: Epiphany itself, the fixed Baptism commemoration, and any day a competing saint or the BVM Saturday Office already wins outright (unaffected by a lectionary citation either way). Derived directly from the OCaml comparator's own failure output (test_layer_c_counts_match_citations), not hand-counted first and cross-checked after: 173. REFRESHED (BVM Saturday Mass, 2026-08-17): 173 -> 159. Fourteen of these days are Saturdays carrying the RG 78 office, which now also says its own RG 309(a) Mass, so they gained a citation difference and moved to C17 -- whose single cause covers both. Not a new divergence and not a fix here: the same days, filed against the entry that actually explains them. CORRECTED 2026-08-18: 159 -> 35. lectio adopted RG 72 and reads 6-13 January as Christmas Time, so the SEASON now agrees on every day of that window and 124 rows left this entry. What remains is residue on other axes, not the season boundary this entry was written for. CORRECTED 2026-08-18: 35 -> 75. GREW, and the reason is worth stating rather than hiding: C17 closed, and the January Saturdays it used to absorb now differ only on the slug vocabulary this entry already covers, so they land here instead. No new disagreement -- rows moved between entries as the larger cause was removed.")
- (expected_rows 75))
+REFRESHED AGAIN, Task 9 (branch ef-lectionary, layer-4 oracle): expected_rows moved 361 -> 173. NOT a data change -- this entry's OWN diff-set guard (`subset diffs [Season;Colour_f;Slug_f]`) never accepted a citation diff, and this task gave the `ef-christmas-2-<weekday>` and `ef-time-after-epiphany-1-<weekday>` families their OWN direct citations for the first time (the Missal's own Mass-propers \"diebus ferialibus\" rubrics -- NOT RG 17(a) itself, which states only the day-identity privilege; see C30/C31's own citations for the corrected attribution -- tools/bootstrap_lectionary.ml's own [epiphanytide_opening_entries]) -- every row in this window that ALSO now carries a real First_f/Gospel_f divergence escapes this entry's own subset guard and moves to the new C31/C32 instead (not silently re-absorbed: C31/C32's own [subset diffs [Season;Slug_f;Colour_f;First_f;Gospel_f]] guard is what actually catches them, checked BEFORE this entry no longer applies, not assumed). What remains here is every 6-13 January row this task's own fix did NOT touch: Epiphany itself, the fixed Baptism commemoration, and any day a competing saint or the BVM Saturday Office already wins outright (unaffected by a lectionary citation either way). Derived directly from the OCaml comparator's own failure output (test_layer_c_counts_match_citations), not hand-counted first and cross-checked after: 173. REFRESHED (BVM Saturday Mass, 2026-08-17): 173 -> 159. Fourteen of these days are Saturdays carrying the RG 78 office, which now also says its own RG 309(a) Mass, so they gained a citation difference and moved to C17 -- whose single cause covers both. Not a new divergence and not a fix here: the same days, filed against the entry that actually explains them. CORRECTED 2026-08-18: 159 -> 35. lectio adopted RG 72 and reads 6-13 January as Christmas Time, so the SEASON now agrees on every day of that window and 124 rows left this entry. What remains is residue on other axes, not the season boundary this entry was written for. CORRECTED 2026-08-18: 35 -> 75. GREW, and the reason is worth stating rather than hiding: C17 closed, and the January Saturdays it used to absorb now differ only on the slug vocabulary this entry already covers, so they land here instead. No new disagreement -- rows moved between entries as the larger cause was removed. CORRECTED 2026-08-18: 75 -> 40, as the surrounding classes closed and their rows stopped overlapping this one.")
+ (expected_rows 40))
((id C6)
(citation "RG 91 entry 17 (\"days within the Octave of the Nativity\") for the slug/rank divergence; RG 69, scan1.txt:625-631 word for word, for the QUESTIONED citation component (Important 3(b), coordinator review, task 8 fix round 1): \"De dominica infra octavam Nativitatis Domini, quae scilicet a die 26 ad 31 decembris occurrit, semper fit Officium cum commemoratione festi forte occurrentis, iuxta rubricas, nisi dominica incidat in festum I classis: quo in casu, fit de festo cum commemoratione dominicae\" -- the Sunday's OWN Office (not the fixed weekday placeholder) is kept, WITH a commemoration of whatever feast falls that day, whenever a Sunday lands anywhere 26-31 December (unless that feast is itself I class, in which case the feast wins with the Sunday commemorated instead)")
(verdict colitur)
@@ -126,11 +126,8 @@ CORRECTED, Task 9 (branch ef-lectionary, layer-4 oracle): the 13-vs-7 coincident
; actual martyrs white, the rule applied backwards in both directions. The
; largest single divergence class in this file, closed because the other
; engine now follows the same rubric. Citation preserved in the register.
- ((id C19)
- (citation "register §3c item 5 (Time-after-Epiphany week-numbering anchor, the SAME citation this file's own [strip_epiphany_index]/Layer B header comment already carries) -- not a new rubric dispute, the previously-invisible CITATION-level consequence of an already-adjudicated NUMBERING artifact")
- (verdict colitur)
- (note "task 8 (branch ef-lectionary, citation comparison): once Holy Family (RG 17(b), the ef-rg112-rg110 task) starts a Time-after-Epiphany week's own numbering one week \"behind\" lectio's own count -- confirmed to happen in exactly the same 7 years C15 above names, 2008/2013/2019/2030/2036/2041/2047 -- every later Sunday and feria of that SAME season reads a DIFFERENT week's Mass on each side (e.g. 2008-01-18, colitur's own \"week 1\" Friday reading Holy Family's own Col 3:12-17/Luke 2:42-52 where lectio's \"week 2\" Friday reads Rom 12:6-16/John 2:1-11) until Time after Epiphany ends at Septuagesima, which re-synchronises both engines' counts from zero -- the SAME numbering offset Layer B's own [strip_epiphany_index] already strips from the SLUG comparison (no [Slug_f] ever appears in this entry's own rows), now visible for the first time in the CITATION content it was never able to touch. Not a rubric dispute: both engines correctly compute \"whichever Sunday this feria repeats\", they simply disagree on which CIVIL Sunday that is once the week-count has drifted by one -- corroborating, not contradicting, the header comment's own \"no clean formula-based check is possible\" limit. A handful of these rows (the Saturdays, e.g. 2008-01-19/2019-02-16) ALSO carry [Colour_f]: those Saturdays independently carry C17's own BVM-Saturday office that week, a second, already-cited, unrelated cause layering onto the same row -- C17's own 416-row count is untouched, since its own guard requires diffs = EXACTLY [Colour_f], never satisfied on a row that also carries [First_f]/[Gospel_f]. Gated on the literal 7-year list AND colitur's own slug family (`ef-time-after-epiphany-*`, [starts_with] already declared for [strip_epiphany_index]) rather than a broader \"any citation diff this year\" rule, so an unrelated real bug elsewhere in one of these 7 years still surfaces as unexplained. Derived directly from the OCaml comparator's own failure output (test_layer_c_counts_match_citations), not hand-counted first and cross-checked after: 45. REFRESHED (BVM Saturday Mass, 2026-08-17): 45 -> 35. Ten Saturdays moved to C17 for the same reason C1's fourteen did: they carry the RG 78 office and now its Mass too, which is C17's own cause. CORRECTED 2026-08-18: 35 -> 7. lectio's efWeek anchored the Time-after-Epiphany week number at 6 January, putting every week of the season one too high; it now counts from the FIRST SUNDAY after Epiphany, which is what carries the Mass the week is named for. That was the bulk of this entry and is gone. What remains is exactly the 7 years this note already names -- the Holy Family interaction, which is a different cause and needs RG 17(b) in lectio rather than an anchor change.")
- (expected_rows 7))
+ ; C19 -- CLOSED, REMOVED (2026-08-18): 0 of 16801 rows, was 7 (and 35 before the Epiphany week anchor was fixed). The residue this entry named -- the Holy Family interaction in seven specific years -- no longer differs once Passiontide's own weeks are numbered apart, because the week-index offset it rested on is gone.
+ ; Citation preserved in docs/research/rules-register.md.
((id C20)
(citation "data/ef/commons.sexp's own citations (task 6, RG-cited per saint, three independent witnesses each -- task-6-report.md §1/§2) for four of these seven saints, routed through the Common; data/ef/adjustments.sexp's own `Edit ... Set_citation` propers, equally scan-verified, for the other three (thomas-aquinas/john-of-god/francis-of-paola)")
(verdict colitur)
@@ -167,15 +164,8 @@ CORRECTED, Task 9 (branch ef-lectionary, layer-4 oracle): the 13-vs-7 coincident
; was a real divergence, correctly adjudicated in colitur's favour at the
; time. test_differential.ml's own layer_c_reason carries no C22 predicate
; any more.
- ((id C23)
- (citation "Holy Monday (\"Feria II Hebdomadae sanctae, I classis\"): Isa 50:5-10 / John 12:1-9. Holy Tuesday (\"Feria III Hebdomadae sanctae, I classis\"): Jer 11:18-20 / the Passion according to Mark, 14:32-72; 15:1-46. Holy Wednesday (\"Feria IV Hebdomadae sanctae\"): Isa 53:1-12 (the SECOND of two peer lessons, see note) / the Passion according to Luke, 22:39-71; 23:1-53. Holy Thursday (\"Feria V in Cena Domini\"): 1 Cor 11:20-32 / John 13:1-15. Good Friday (\"Feria VI in Passione et Morte Domini\"): Ex 12:1-11 (the SECOND of two peer lessons) / the Passion according to John, 18:1-40; 19:1-42. Holy Saturday (Missa Vigiliae Paschalis' own Epistle+Gospel, explicitly labelled \"Lectio Epistolae\", distinct from its own preceding prophecies): Col 3:1-4 / Matt 28:1-7. All six: docs/research/scan1.txt AND scan2.txt, word for word, both scans independently (tools/bootstrap_lectionary.ml's own [holy_week_entries] comment has the exact line references)")
- (verdict colitur)
- (note "task 8 fix round 1 (coordinator review, Critical 1): the ORIGINAL version of this task's own `colitur_keys` widened lectio's single \"ef-passiontide-0-<weekday>\" ini section into BOTH Passion week (`ef-passiontide-1-*`) and Holy Week (`ef-passiontide-2-*`, including the entire Sacred Triduum) on the strength of lectio's own citation being byte-identical between the two weeks -- WRONG: that only proves lectio CONFLATES the two weeks (it has no Holy Week propers of its own at all), not that the Missal does. The Mass of the Lord's Supper reading Passion Sunday's own ferial Mass was a real defect, not a citation nicety -- caught by coordinator review before this task's own commit, not by anything in this suite (the differential was GREEN under the wrong widening, since both sides showed the identical wrong value).
-
-CORRECTED, fix round 2 (coordinator review, Critical): the first-round fix hand-authored only FOUR of Holy Week's six days (Monday, Tuesday, Thursday, Saturday), reasoning that Wednesday and Good Friday have no unambiguous Epistle and leaving both entirely ABSENT under a separate entry, C24 (now retired). That was worse than the bug it replaced: an absent key does not mean \"no reading\" to Lectionary_ef.readings, it means step 3 silently resumes the preceding SUNDAY -- so Good Friday, which has no Mass at all, was emitting Palm Sunday's own Epistle and Passion narrative, every year. Fixed at the source: the GOSPEL is always unambiguous on both days (one labelled Passion narrative each) and is always authored; the FIRST slot is filled too, using the SAME \"last lesson before the Gospel\" convention already load-bearing elsewhere in data/ef/lectionary.sexp (the Lenten Ember Wednesday entry, itself an identical two-peer-lesson shape, already ships its own second lesson) -- not a fresh editorial invention for this entry. Neither lesson on either day is labelled \"Epistola\" the way Holy Saturday's genuinely is, so this remains a stated convention, not a textual fact, but a consistently-applied one. C24 is retired, not re-adjudicated: its own two-day population now has a real citation and folds into this entry, which covers all SIX days of Holy Week uniformly.
-
-lectio, still conflating Holy Week with Passion week on all six days, keeps showing Passion week's own reused citation regardless -- a genuine, permanent, structural divergence, not a data gap on either side that could close. Gated on the literal 6-slug list and `diffs = [ First_f; Gospel_f ]` exactly (identity already agrees on all six -- season/slug/rank/colour were never the problem). NOT simply 46 x 6 = 276: Holy TUESDAY's own hand-authored citation is BYTE-IDENTICAL to lectio's own value (both draw on the identical Missal Mass -- C26 below has the account of why lectio's own ini carries Holy Tuesday's data under a Passion-week key), so all 46 of ITS rows match outright and never reach this entry. Derived directly from the OCaml comparator's own failure output, not hand-counted first and cross-checked after: 230 (276 - 46). CORRECTED 2026-08-18: 184 -> 230. Good Friday's 46 rows return here from C36, now closed: lectio colours the day black too, so the colour no longer differs and the diff set is the exact pair this entry has always gated on. Back to what it was before that split, for the reason the split existed.")
- (expected_rows 230))
+ ; C23 -- CLOSED, REMOVED (2026-08-18): 0 of 16801 rows, was 230 -- the second largest class in this file. lectio numbers Passion week and Holy Week apart now, so Holy Week has its own six Masses instead of borrowing Passion week's. Good Friday was reading Passion Friday's Mass.
+ ; Citation preserved in docs/research/rules-register.md.
; C36 -- Good Friday's colour, split out of C23 (ef-oconnell-rubrics branch).
; C23's own note says "identity already agrees on all six -- season/slug/rank/
; colour were never the problem". That is no longer true of ONE of its six
@@ -198,11 +188,8 @@ lectio, still conflating Holy Week with Passion week on all six days, keeps show
; office and its Mass, lectio builds neither) now explains them completely.
; Same "closed because the shape it named no longer occurs" discipline as
; C2-C5/C7/C9-C13/C21/C22, and the citation is preserved in the register.
- ((id C26)
- (citation "Passion Tuesday's real Mass (\"Feria tertia, III classis, Statio ad S. Cyriacum\"): Dan 14:27, 28-42 / John 7:1-13 -- docs/research/scan1.txt:11085-11121, corroborated scan2.txt:12063-12120 (CORRECTED, fix round 3, coordinator review: the scan2 endpoint previously read 12104, which stops after the Epistle -- \"Lectio Danielis Prophetae, Dan. 14,27 et 28-42\" -- and never reaches the Gospel heading/citation at all; \"Sequentia sancti Evangelii secundum Ioannem, Ioann. 7,1-13\" is at scan2.txt:12117-12120, so the range now extends to 12120, mirroring scan1's own convention of ending right at the Gospel's citation line rather than the full pericope text), word for word both scans")
- (verdict colitur)
- (note "task 8 fix round 2 (coordinator review, Important): lectio's own ini section for Passion Tuesday (`ef-passiontide-0-tuesday`) is not Passion Tuesday's Mass at all -- it is Holy Tuesday's (Jer 11:18-20 / the Passion according to Mark), confirmed independently against both scans; C23 above has the full account of that same confusion for the OTHER (Holy) Tuesday. tools/bootstrap_lectionary.ml's own [colitur_keys] now excludes this one ini section from translation rather than using its (wrong) value, and [passion_tuesday_entry] hand-authors the real Missal citation instead. lectio's own COMPUTED reading for the civil date it labels \"Passion Tuesday\" is drawn from the same wrong source, so colitur's now-correct citation genuinely diverges from lectio's on every occurrence this office is actually the observed day -- not a data gap on either side that could close. The other five Passion-week weekdays were independently re-verified against the Missal and are correct as lectio already had them; this is the ONE exception. Gated on the literal slug and `diffs = [ First_f; Gospel_f ]` exactly. Derived directly from the OCaml comparator's own failure output, not hand-counted first and cross-checked after: 43, not 46 -- traced, not merely accepted: in 2013, 2024 and 2042, Passion Tuesday's own civil date is impeded outright by a competing I-class feast (St Joseph, 19 March, in 2013/2024; the Annunciation, 25 March, in 2042), so colitur's own observed slug that day is the saint's, not this entry's slug at all -- those three rows already match independently, both engines agreeing on the saint's own citation. 43 + 3 = 46, the full domain, no residue.")
- (expected_rows 43))
+ ; C26 -- CLOSED, REMOVED (2026-08-18): 0 of 16801 rows, was 43. Passion Tuesday has its own Mass (Dan 14:27, 28-42 / John 7:1-13). lectio's ef-passiontide-0-tuesday had carried HOLY Tuesday's, which this entry diagnosed; separating the two weeks fixed the cause rather than the symptom.
+ ; Citation preserved in docs/research/rules-register.md.
; C27 -- CLOSED, REMOVED (2026-08-18): 0 of 16801 rows. lectio adopted the
; correction. Its ini carried St Thomas the Apostle's Mass under
; `ef-advent-ember-sat`; it now carries the Advent Ember Saturday's own,
@@ -228,29 +215,16 @@ CORRECTED, fix round 1 (coordinator review, Important 1): this note previously d
((id C31)
(citation "NOT RG 17(a) -- CORRECTED, fix round 1 (coordinator review): this is a DIFFERENT Mass-propers rubric block, ~230 scan1 lines after Holy Name's own (C30 above), sitting within HOLY FAMILY'S OWN feast propers (RG 17(b)'s feast, page header \"Sanctae Familiae Iesu, Mariae, Ioseph\", scan1.txt:6751/scan2.txt:7412) -- printed immediately BEFORE the \"DOMINICA PRIMA post Epiphaniam / SANCTAE FAMILIAE\" Mass heading, the same structural position C30's own rubric occupies relative to Holy Name's heading, both scans: \"Diebus ferialibus a 7 ad 12 ianuarii ante dominicam I post Epiphaniam occurrentibus, dicitur Missa de festo Epiphaniae\" (docs/research/scan1.txt:6753-6757; scan2.txt:7413-7415 corroborates, OCR-garbled -- \"occurentibus\"/\"Epipbaniee\" -- but the reading is not in doubt: scan1 is clean and missalemeum's own extraction corroborates the citation this rubric produces) -- ON FERIAL DAYS from 7 to 12 January occurring BEFORE the first Sunday after Epiphany (Holy Family), THE MASS OF THE FEAST OF EPIPHANY (Isa 60:1-6/Matt 2:1-12) IS SAID")
(verdict colitur)
- (note "Task 9 (branch ef-lectionary, layer-4 oracle): `ef-christmas-2-{monday,tuesday,wednesday,thursday,friday}` (7 January through the day before Holy Family Sunday, EXCLUDING Saturday -- the same RG 78 exclusion C30 above explains, confirmed again on this window's own remaining such Saturdays) had NO lectionary entry of their own before this task, falling through to step 3's preceding-Sunday walkback. This slug family's own civil dates ALREADY carried a Season/Slug_f/Colour_f divergence against lectio BEFORE this task (lectio's own season boundary starts Time-after-Epiphany at Epiphany itself, RG 72-73's own later boundary colitur keeps; lectio's own week numbering has no Holy Family to wait for, so its own slug for these dates is already \"ef-time-after-epiphany-1-<weekday>\", not \"ef-christmas-2-...\"), previously absorbed by C1's own [jan_6_13_slug] allow-list (which already names this family, unchanged) -- this task's own fix (tools/bootstrap_lectionary.ml's own [epiphanytide_opening_entries]) adds a First_f/Gospel_f divergence on top of that EXISTING one, so this entry's own guard is a SUBSET, `subset diffs [Season;Slug_f;Colour_f;First_f;Gospel_f]` with at least one of First_f/Gospel_f present (a feria's Epistle and Gospel are independent lookups and can each happen to already coincide). `ef-christmas-2-saturday`, though deliberately given no DIRECT entry (the same RG 78 reasoning as C30), is included in THIS entry's own slug list for a different, genuinely observed reason: its own step-3 walkback CAN land on `ef-holy-name-sunday` in years where that Sunday immediately precedes it, inheriting that slug's newly-corrected citation (C29 above) as a side effect, with no direct entry of its own involved at all -- confirmed directly against the real resolver, not theorised (`ef-christmas-1-saturday`'s own walkback structurally cannot reach that far forward, since its own window, 2-5 January, is entirely before Holy Name Sunday can exist; C25's own unchanged population is the proof this genuinely does not happen there). Derived directly from the OCaml comparator's own failure output (test_layer_c_counts_match_citations), not hand-counted first and cross-checked after: 89. REFRESHED (BVM Saturday Mass, 2026-08-17): 89 -> 103. Fourteen Christmastide Saturdays that previously matched C1 now match here instead, their citation difference having changed shape while the season difference persists; this entry's own subset already admits both. CORRECTED 2026-08-18: 103 -> 63. Forty rows left when lectio gained the BVM Saturday Office and its Mass: this entry's own population included Christmastide Saturdays that carried BOTH causes, and only this one remains on them.")
- (expected_rows 63))
- ((id C32)
- (citation "NOT RG 17(a) -- CORRECTED, fix round 1 (coordinator review): the SAME Holy Family propers block C31 above cites, its own next sentence, a named formula, both scans: \"post eandem dominicam vero Missa de eadem dominica In excelso throno, ut infra... Haec Missa dicenda est diebus ferialibus huius hebdomadae\" (docs/research/scan1.txt:6758-6851; scan2.txt:7415-7434 corroborates \"In excelso throno... ut infra\", OCR-garbled elsewhere in the same passage, reading not in doubt) -- \"MISSA DOMINICAE PRIMAE post Epiphaniam\", Epistle \"Lectio Epistolae beati Pauli Apostoli ad Romanos. Rom. 12, 1-5\" (scan1.txt:6875-6877), Gospel the SAME pericope as Holy Family's own Sunday Mass, Luke 2:42-52 (scan1.txt:6885-6905) -- said on the FERIAL DAYS of Holy Family Sunday's OWN week")
- (verdict colitur)
- (note "Task 9 (branch ef-lectionary, layer-4 oracle): `ef-time-after-epiphany-1-{monday,tuesday,wednesday,thursday,friday}` (Holy Family Sunday's own week, EXCLUDING Saturday -- the same RG 78 reasoning as C30/C31) had NO lectionary entry of their own before this task, falling through to step 3's preceding-Sunday walkback (which happened to land on Holy Family Sunday's OWN citation, Col 3:12-17/Luke 2:42-52 -- a DIFFERENT Epistle from this entry's own Rom 12:1-5, the same Mass propers' own distinction between the Sunday and its week's ferias, both scans). This slug family's own civil dates ALREADY carried a bare Season/Colour_f divergence against lectio BEFORE this task (SAME slug on both sides here, unlike C31 -- lectio's own season boundary alone, RG 72-73 vs Epiphany), previously absorbed by C1's own generic 6-13 January window (no [Slug_f] involved, so C1's own [jan_6_13_slug] gate was never even reached) -- this task's own fix (tools/bootstrap_lectionary.ml's own [epiphanytide_opening_entries]) adds a First_f/Gospel_f divergence on top, so this entry's own guard is a SUBSET, `subset diffs [Season;Colour_f;First_f;Gospel_f]` with at least one of First_f/Gospel_f present, the same \"not necessarily both\" reasoning C31 explains. Checked AFTER C19 deliberately in test_differential.ml's own [layer_c_reason]: C19's own 7 \"week shift\" years (2008/2013/2019/2030/2036/2041/2047) already explain this SAME slug family's own citation divergence there, for a DIFFERENT root cause (the week-numbering offset, not this task's own fix) -- this entry must not re-claim those rows under a citation-content reason C19 already owns, so its own population is exactly the OTHER (non-shift-year) civil dates; C19's own count is independently confirmed UNCHANGED at 45 by this same test run. `ef-time-after-epiphany-1-saturday`, though deliberately given no direct entry, is included in this entry's own slug list for the SAME step-3-ripple reason C31's own note explains for `ef-christmas-2-saturday` -- confirmed directly against the real resolver, not theorised. Derived directly from the OCaml comparator's own failure output (test_layer_c_counts_match_citations), not hand-counted first and cross-checked after: 99.")
- (expected_rows 99))
- ((id C33)
- (citation "\"IN FESTO SSMI CORPORIS CHRISTI, I classis\": \"Lectio Epistolae beati Pauli Apostoli ad Corinthios. 1 Cor. 11, 23-29\" / \"Sequentia sancti Evangelii secundum Ioannem. Io. 6, 56-59\" -- docs/research/scan1.txt:21867-21917, corroborated scan2.txt:24084-24172, word for word both scans")
- (verdict colitur)
- (note "Task 9 (branch ef-lectionary, layer-4 oracle): Corpus Christi (`ef-corpus-christi`, a real, directly-computed Rite_ef.Temporal_ef office, I class, movable, Thursday after Trinity Sunday) had NO lectionary entry at all before this task -- not a renamed/mis-widened value the way C29/C30/C31/C32 above are, a genuine ABSENCE: lectio's own EF ini has no equivalent section either. Both engines independently fell back to Trinity Sunday's own preceding-Sunday citation (\"Rom 11:33-36\") and silently AGREED on the wrong answer -- the \"Holy Thursday was violet in both\" shape this project's own CLAUDE.md names for exactly this reason (layer 3 shares colitur's own bootstrap lineage in general, and here shares an architectural gap specifically, not lineage) -- so this divergence is newly VISIBLE only because colitur is now correct (tools/bootstrap_lectionary.ml's own [movable_feast_entries]), not because either engine changed what it already agreed on. Gated on the literal slug and `diffs = [ First_f; Gospel_f ]` exactly (identity already agrees -- Corpus Christi is never impeded by anything else in the 1962 calendar, so it is the observed office on all 46 years). Derived directly from the OCaml comparator's own failure output, not hand-counted first and cross-checked after: 46, the full domain, no residue.")
- (expected_rows 46))
- ((id C34)
- (citation "\"IN FESTO SACRATISSIMI CORDIS IESU, I classis\": \"Lectio Epistolae beati Pauli Apostoli ad Ephesios. Ephes. 3, 8-12 et 14-19\" / \"Sequentia sancti Evangelii secundum Ioannem. Io. 19, 31-37\" -- docs/research/scan1.txt:22030-22095, corroborated scan2.txt:24284-24336 (the Epistle's own \"et 14-19\" clause is OCR-truncated to \"3, 8-19\" on this second scan alone; its printed body text otherwise matches word for word, and scan1's own transcription is unambiguous, so this is a scan-quality gap, not a genuine disagreement between the two printings), word for word both scans")
- (verdict colitur)
- (note "Task 9 (branch ef-lectionary, layer-4 oracle): the SAME shape as C33 immediately above, for the Sacred Heart of Jesus (`ef-sacred-heart`, I class, movable, Friday after the Octave of Corpus Christi). No lectionary entry at all before this task; both engines independently fell back to Trinity Sunday's own preceding-Sunday citation (\"1 John 3:13-18\") and silently agreed on the wrong answer, the identical \"both wrong, both silent\" shape C33 explains. Gated on the literal slug and `diffs = [ First_f; Gospel_f ]` exactly (identity already agrees -- never impeded, observed on all 46 years). Derived directly from the OCaml comparator's own failure output, not hand-counted first and cross-checked after: 46, the full domain, no residue.")
- (expected_rows 46))
-
- ((id C35)
- (citation "RG 299 (docs/research/scan1.txt:1096-1098), the general ferial rule: \"Item propriam Missam habent omnes feriae temporis Quadragesimae et Passionis necnon Quatuor Temporum Adventus et septembris. In reliquis feriis dicitur Missa dominicae praecedentis, NISI A RUBRICIS ALITER PROVISUM SIT\" -- restated in the propers (scan1.txt:4933-4935): \"Per totum annum, si dicenda sit infra hebdomadam Missa de feria, adhibetur Missa dominicae praecedentis, NISI PROPRIA MISSA ASSIGNETUR\". The assigned Mass here is the Missal's own printed heading \"Missa dominicae I post Pentecosten\" (scan1.txt:21758), whose readings are \"Lectio Epistolae beati Ioannis Apostoli. 1 Ioann. 4, 8-21\" (scan1.txt:21801-21802) and \"Sequentia sancti Evangelii secundum Lucam. Luc. 6, 36-42\" (scan1.txt:21813-21814).")
- (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. CORRECTED 2026-08-18: 69 -> 60. Nine rows left for the same reason as C31 above -- Saturdays that carried this cause and C17's together.")
- (expected_rows 60))
+ (note "Task 9 (branch ef-lectionary, layer-4 oracle): `ef-christmas-2-{monday,tuesday,wednesday,thursday,friday}` (7 January through the day before Holy Family Sunday, EXCLUDING Saturday -- the same RG 78 exclusion C30 above explains, confirmed again on this window's own remaining such Saturdays) had NO lectionary entry of their own before this task, falling through to step 3's preceding-Sunday walkback. This slug family's own civil dates ALREADY carried a Season/Slug_f/Colour_f divergence against lectio BEFORE this task (lectio's own season boundary starts Time-after-Epiphany at Epiphany itself, RG 72-73's own later boundary colitur keeps; lectio's own week numbering has no Holy Family to wait for, so its own slug for these dates is already \"ef-time-after-epiphany-1-<weekday>\", not \"ef-christmas-2-...\"), previously absorbed by C1's own [jan_6_13_slug] allow-list (which already names this family, unchanged) -- this task's own fix (tools/bootstrap_lectionary.ml's own [epiphanytide_opening_entries]) adds a First_f/Gospel_f divergence on top of that EXISTING one, so this entry's own guard is a SUBSET, `subset diffs [Season;Slug_f;Colour_f;First_f;Gospel_f]` with at least one of First_f/Gospel_f present (a feria's Epistle and Gospel are independent lookups and can each happen to already coincide). `ef-christmas-2-saturday`, though deliberately given no DIRECT entry (the same RG 78 reasoning as C30), is included in THIS entry's own slug list for a different, genuinely observed reason: its own step-3 walkback CAN land on `ef-holy-name-sunday` in years where that Sunday immediately precedes it, inheriting that slug's newly-corrected citation (C29 above) as a side effect, with no direct entry of its own involved at all -- confirmed directly against the real resolver, not theorised (`ef-christmas-1-saturday`'s own walkback structurally cannot reach that far forward, since its own window, 2-5 January, is entirely before Holy Name Sunday can exist; C25's own unchanged population is the proof this genuinely does not happen there). Derived directly from the OCaml comparator's own failure output (test_layer_c_counts_match_citations), not hand-counted first and cross-checked after: 89. REFRESHED (BVM Saturday Mass, 2026-08-17): 89 -> 103. Fourteen Christmastide Saturdays that previously matched C1 now match here instead, their citation difference having changed shape while the season difference persists; this entry's own subset already admits both. CORRECTED 2026-08-18: 103 -> 63. Forty rows left when lectio gained the BVM Saturday Office and its Mass: this entry's own population included Christmastide Saturdays that carried BOTH causes, and only this one remains on them. CORRECTED 2026-08-18: 63 -> 98. GREW, for the same reason C1 grew earlier: C32 and C35 closed, and rows that carried more than one cause now carry only this one. No new disagreement.")
+ (expected_rows 98))
+ ; C32 -- CLOSED, REMOVED (2026-08-18): 0 of 16801 rows, was 99. Closed by the same Passiontide split and the twelve lectionary entries that came with it.
+ ; Citation preserved in docs/research/rules-register.md.
+ ; C33 -- CLOSED, REMOVED (2026-08-18): 0 of 16801 rows, was 46. Corpus Christi has its own formulary in lectio now; it had been reading the preceding Sunday's Mass through the walk-back.
+ ; Citation preserved in docs/research/rules-register.md.
+ ; C34 -- CLOSED, REMOVED (2026-08-18): 0 of 16801 rows, was 46. The Sacred Heart, same cause and same fix as C33.
+ ; Citation preserved in docs/research/rules-register.md.
+ ; C35 -- CLOSED, REMOVED (2026-08-18): 0 of 16801 rows, was 60. The ferias of the first weeks after Epiphany and after Pentecost have their proper Masses (RG 299) instead of the preceding Sunday's.
+ ; Citation preserved in docs/research/rules-register.md.
; C37 -- CLOSED, REMOVED (2026-08-18): 0 of 16801 rows. lectio recoloured
; both August vigils violet under RG 128. This is the entry whose own note
; called the shared lineage "the sharpest demonstration in the project" --