diff options
| author | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-08-15 04:48:59 +0200 |
|---|---|---|
| committer | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-08-15 04:48:59 +0200 |
| commit | 9947a28f3a40bd8ac36892dcf5aad59d9e6f847c (patch) | |
| tree | 0367842a8862a9bd7476bc06197276ab3cef9c54 /data | |
| parent | 96bf100a4de32bd5f3887ffdb15b59b8bbd0376b (diff) | |
| download | colitur-9947a28f3a40bd8ac36892dcf5aad59d9e6f847c.tar.gz colitur-9947a28f3a40bd8ac36892dcf5aad59d9e6f847c.zip | |
test(differential): fix round 3 -- two more Ember Saturdays, doc fixes
Two Ember Saturdays shipped an apostle's Mass verbatim from lectio's
own ini, the exact shape already found and fixed for Passion Tuesday
(C26): ef-advent-ember-sat carried St Thomas the Apostle's Mass (Eph
2:19-22 / John 20:24-29, 21 December) instead of the real "Sabbato
Quatuor Temporum Adventus" (2 Thess 2:1-8 / Luke 3:1-6); ef-september-
ember-sat carried St Matthew's Mass (Ezek 1:10-14 / Matt 9:9-13, 21
September) instead of the real "Sabbato Quatuor Temporum septembris"
(Heb 9:2-12 / Luke 13:6-17). Both verified against both primary-source
scans independently. Both readings are explicitly labelled "Lectio
Epistolae" in the Missal on both days, so neither needed the "last
lesson before the Gospel" convention Holy Wednesday/Good Friday relied
on -- a textual fact, not an editorial choice.
Fixed at the source in tools/bootstrap_lectionary.ml: colitur_keys
excludes both wrong ini sections; a new ember_saturday_corrections list
hand-authors the real citations. New allow-list entries C27/C28 (40
rows each, not the naive 46 -- traced to the identical 6 civil years
where 21 September and 21 December, always exactly 91 days apart, land
on a Saturday and the fixed saint's feast wins outright). Both values
pinned in test_lectionary.ml and mutation-tested.
Also: C25's per-weekday breakdown was mislabelled (right multiset,
rotated weekday labels) in both test_differential.ml and expected-
divergences.sexp -- corrected to Wednesday 6/Thursday 19/Friday
19/Saturday 13, and the claim that this split came directly from the
comparator's own output is narrowed to what's actually true (only the
total, 57, does). C26's scan2 citation range was extended to include
the Gospel (previously stopped after the Epistle).
lib/kernel/liturgical_day.mli's "citations always empty until Plan 4"
comment is now stale on this branch -- left untouched (Task 11's own
documentation pass), noted in the task report so it isn't lost.
dune test: 358 tests green; COLITUR_EXHAUSTIVE_SWEEP=1: 359 green.
Diffstat (limited to 'data')
| -rw-r--r-- | data/ef/expected-divergences.sexp | 16 | ||||
| -rw-r--r-- | data/ef/lectionary.sexp | 19 |
2 files changed, 24 insertions, 11 deletions
diff --git a/data/ef/expected-divergences.sexp b/data/ef/expected-divergences.sexp index c3c5f00..da80dbe 100644 --- a/data/ef/expected-divergences.sexp +++ b/data/ef/expected-divergences.sexp @@ -160,10 +160,22 @@ lectio, still conflating Holy Week with Passion week on all six days, keeps show (verdict open) (note "task 8 fix round 1 (coordinator review, Important 3(b)): colitur's `ef-christmas-1-{wednesday,thursday,friday,saturday}` (Holy Name week ferias with no proper of their own) resume, via Lectionary_ef.readings' step 3, the preceding Sunday's temporal identity -- which, on these specific dates, is one of the Nativity-Octave Sundays C6 above already names as RG-69-QUESTIONED (a Sunday landing 29-31 December, where colitur wrongly emits the fixed weekday formulary \"Titus 3:4-7\"/\"Luke 2:15-20\" instead of the Sunday's own distinct Office). Confirmed, not merely inferred: every single one of these 57 rows' colitur-side citation is exactly \"Titus 3:4-7\" -- the SAME wrong value C6's own 19 Sunday-landing rows carry, propagated one civil-date hop later, not a second, independent cause. A genuine [Temporal_ef] defect, out of this task's own scope (the same shared, multi-round-reviewed kernel-adjacent function C6's own note names) -- recorded here per the coordinator's own explicit instruction (\"record it prominently... for a follow-up task\"), not fixed and not left silently failing. -CORRECTED, fix round 2 (coordinator review, Minor): this entry's own reason for the literal 4-slug list (Wednesday/Thursday/Friday/Saturday, never Monday/Tuesday) previously claimed Monday and Tuesday \"are always claimed first by the Circumcision's or Holy Name's own direct entries\" -- FALSIFIED by 2028-01-03/04, real dates that genuinely exist as their own `ef-christmas-1-{monday,tuesday}` slugs and genuinely resume via step 3 (they are not \"claimed away\" from existing at all). Replaced with the directly OBSERVED fact, from an exhaustive sweep of every such occurrence 2004-2051 against the real resolver (not merely the slug, the resolved citation): `ef-christmas-1-monday` occurs 21 times and resolves to Holy Name Sunday's own citation (Gal 4:1-7/Luke 2:33-40) every time; `ef-christmas-1-tuesday` occurs 22 times and resolves to EITHER Holy Name Sunday's citation OR the Circumcision's (Titus 2:11-15/Luke 2:21) -- both real, correct, directly-cited entries, confirmed never the wrong Nativity-Octave-Sunday value. Both weekdays fall close enough to 1-2 January that their own preceding-Sunday walk stays within January; Wednesday/Thursday/Friday/Saturday are far enough that the same walk can reach past 2 January into December when Holy Name Sunday does not exist that year, landing on this entry's own wrong Sunday instead -- the general shape, not re-asserted as a proven arithmetic rule (a first attempted derivation was itself found wrong on a second reading and is not repeated). Gated on the literal 4-slug family and `diffs = [ First_f; Gospel_f ]` exactly (identity already agrees -- this is a pure content consequence one hop removed). Derived directly from the OCaml comparator's own failure output, not hand-counted first and cross-checked after: 57 (19 + 19 + 13 + 6, Wednesday/Thursday/Friday/Saturday respectively).") +CORRECTED, fix round 2 (coordinator review, Minor): this entry's own reason for the literal 4-slug list (Wednesday/Thursday/Friday/Saturday, never Monday/Tuesday) previously claimed Monday and Tuesday \"are always claimed first by the Circumcision's or Holy Name's own direct entries\" -- FALSIFIED by 2028-01-03/04, real dates that genuinely exist as their own `ef-christmas-1-{monday,tuesday}` slugs and genuinely resume via step 3 (they are not \"claimed away\" from existing at all). Replaced with the directly OBSERVED fact, from an exhaustive sweep of every such occurrence 2004-2051 against the real resolver (not merely the slug, the resolved citation): `ef-christmas-1-monday` occurs 21 times and resolves to Holy Name Sunday's own citation (Gal 4:1-7/Luke 2:33-40) every time; `ef-christmas-1-tuesday` occurs 22 times and resolves to EITHER Holy Name Sunday's citation OR the Circumcision's (Titus 2:11-15/Luke 2:21) -- both real, correct, directly-cited entries, confirmed never the wrong Nativity-Octave-Sunday value. Both weekdays fall close enough to 1-2 January that their own preceding-Sunday walk stays within January; Wednesday/Thursday/Friday/Saturday are far enough that the same walk can reach past 2 January into December when Holy Name Sunday does not exist that year, landing on this entry's own wrong Sunday instead -- the general shape, not re-asserted as a proven arithmetic rule (a first attempted derivation was itself found wrong on a second reading and is not repeated). Gated on the literal 4-slug family and `diffs = [ First_f; Gospel_f ]` exactly (identity already agrees -- this is a pure content consequence one hop removed). + +CORRECTED, fix round 3 (coordinator review): the TOTAL, 57, is derived directly from the OCaml comparator's own failure output (its own `expected_rows` pin, cross-checked against a real test run) -- that part was accurate. The PER-WEEKDAY split is NOT: the comparator reports per-id totals only, never a per-weekday breakdown, so that finer split came from a separate pass over the raw per-slug failure list, and a prior version of this note wrongly implied it came from the comparator directly. That prior version also rotated the labels: it read \"19 + 19 + 13 + 6, Wednesday/Thursday/Friday/Saturday respectively\" -- the right four numbers, each attached to the wrong weekday. Re-measured directly against the real resolver: Wednesday 6, Thursday 19, Friday 19, Saturday 13 (6 + 19 + 19 + 13 = 57, no residue).") (expected_rows 57)) ((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-12104, word for word both scans") + (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)) + ((id C27) + (citation "The Advent Ember Saturday's real Mass (\"Sabbato Quatuor Temporum Adventus\"): 2 Thess 2:1-8 / Luke 3:1-6 -- docs/research/scan1.txt:5425 (Gospel heading \"Sequentia sancti Evangelii secundum Lucam, Luc. 3,1-6\") and 5433 (Epistle heading \"Lectio Epistolae beati Pauli Apostoli ad Thessalonicenses, 2 Thess. 2,1-8\"), independently re-verified against scan2.txt:5904 (Gospel citation) and 5911 (Epistle citation), word for word both scans") + (verdict colitur) + (note "task 8 fix round 3 (coordinator review, Important): lectio's own ini value for `ef-advent-ember-sat` is not the Advent Ember Saturday's Mass at all -- it is St Thomas the Apostle's (Eph 2:19-22 / John 20:24-29, \"doubting Thomas\", 21 December), the identical shape C26 above documents for Passion Tuesday: a wrong value inherited verbatim from lectio's own ini, invisible to the differential because both engines carried the same wrong source before this fix. Both the real Epistle and the real Gospel are explicitly labelled in the Missal (\"Lectio Epistolae\" precedes 2 Thess 2:1-8, distinct from the prophecies before it), so this entry needed no \"last lesson before the Gospel\" convention judgement call the way Holy Wednesday/Good Friday (C23) did -- a textual fact, not an editorial choice. tools/bootstrap_lectionary.ml's own [colitur_keys] now excludes this ini section from translation rather than using its wrong value, and [ember_saturday_corrections] hand-authors the real Missal citation instead. Gated on the literal slug and `diffs = [ First_f; Gospel_f ]` exactly (identity already agrees). Derived directly from the OCaml comparator's own failure output, not hand-counted first and cross-checked after: 40, not 46 -- traced, not merely accepted: in 2013, 2019, 2024, 2030, 2041 and 2047, 21 December (St Thomas the Apostle) falls on a Saturday and coincides with the Advent Ember Saturday itself, so the SAINT wins outright (a real, correct occurrence result, both engines agreeing) and these six rows never reach this entry at all -- the same 6 civil years C28 below names, since 21 September and 21 December are always exactly 91 days (13 weeks) apart and so fall on the identical weekday every year, confirmed directly against `date -d`, not merely by arithmetic. This coincidence is also the likely origin of lectio's own wrong ini value in the first place: bootstrapped from a single calendar year that happened to be one of these six, generalising a real but year-specific coincidence into a permanent template value. 40 + 6 = 46, the full domain, no residue.") + (expected_rows 40)) + ((id C28) + (citation "The September Ember Saturday's real Mass (\"Sabbato Quatuor Temporum septembris\"): Heb 9:2-12 / Luke 13:6-17 -- docs/research/scan1.txt:23493 (Epistle heading \"Lectio Epistolae beati Pauli Apostoli ad Hebraeos, Hebr. 9, 2-12\") and 23545 (Gospel heading \"Sequentia sancti Evangelii secundum Lucam\", Luc. 13, 6-17 follows), independently re-verified against scan2.txt:26007 (Epistle citation) and 26013 (Gospel citation), word for word both scans") + (verdict colitur) + (note "task 8 fix round 3 (coordinator review, Important): lectio's own ini value for `ef-september-ember-sat` is not the September Ember Saturday's Mass at all -- it is St Matthew's (Ezek 1:10-14 / Matt 9:9-13, the calling of Matthew, 21 September), the identical shape C26/C27 document. Both the real Epistle and the real Gospel are explicitly labelled in the Missal (\"Lectio Epistolae\" precedes Heb 9:2-12), so this entry, like C27, needed no \"last lesson before the Gospel\" convention judgement call. tools/bootstrap_lectionary.ml's own [colitur_keys] now excludes this ini section from translation rather than using its wrong value, and [ember_saturday_corrections] hand-authors the real Missal citation instead. Gated on the literal slug and `diffs = [ First_f; Gospel_f ]` exactly (identity already agrees). Derived directly from the OCaml comparator's own failure output, not hand-counted first and cross-checked after: 40, not 46 -- the IDENTICAL 6 civil years C27 above names (2013, 2019, 2024, 2030, 2041, 2047), where 21 September (St Matthew) falls on a Saturday and coincides with the September Ember Saturday itself, so the SAINT wins outright and these six rows never reach this entry -- the same 91-day/13-week weekday coincidence between 21 September and 21 December that explains C27's own gap, confirmed against `date -d` for all six years, not merely by arithmetic. The other four Ember entries (Advent Wednesday/Friday, September Wednesday/Friday) were checked against both scans and are correct as lectio already had them -- these two Saturdays are the only Ember exceptions. 40 + 6 = 46, the full domain, no residue.") + (expected_rows 40)) diff --git a/data/ef/lectionary.sexp b/data/ef/lectionary.sexp index 893f878..3ec61bd 100644 --- a/data/ef/lectionary.sexp +++ b/data/ef/lectionary.sexp @@ -14,11 +14,12 @@ ; Temporal_ef vocabulary via [colitur_keys]; 1 hand-authored from a ; second source file [vigil_entries]; 6 hand-authored directly from ; the Missal [holy_week_entries]; 1 hand-authored directly from the -; Missal, one entry [passion_tuesday_entry]; 3 hand-authored directly -; from the Missal [nativity_octave_entries]; 1 derived from an -; already-translated entry above rather than re-typed -; [derived_entries] -- see this generator's own comments on all six). -; Regenerate with: +; Missal, one entry [passion_tuesday_entry]; 2 hand-authored directly +; from the Missal, two entries [ember_saturday_corrections]; 3 +; hand-authored directly from the Missal [nativity_octave_entries]; +; 1 derived from an already-translated entry above rather than +; re-typed [derived_entries] -- see this generator's own comments on +; all seven). Regenerate with: ; eval $(opam env) && dune exec tools/bootstrap_lectionary.exe -- ../lectio/internal/caldata/tridentine-lectionary.ini data/ef/lectionary.sexp ((ef-advent-2-monday (((part First) (reference "Rom 15:4-13")) @@ -36,8 +37,8 @@ (((part First) (reference "Isa 11:1-5")) ((part Gospel) (reference "Luke 1:39-47")))) (ef-advent-ember-sat - (((part First) (reference "Eph 2:19-22")) - ((part Gospel) (reference "John 20:24-29")))) + (((part First) (reference "2 Thess 2:1-8")) + ((part Gospel) (reference "Luke 3:1-6")))) (ef-advent-ember-wed (((part First) (reference "Isa 7:10-15")) ((part Gospel) (reference "Luke 1:26-38")))) @@ -309,8 +310,8 @@ (((part First) (reference "Osee 14:2-10")) ((part Gospel) (reference "Luke 7:36-50")))) (ef-september-ember-sat - (((part First) (reference "Ezek 1:10-14")) - ((part Gospel) (reference "Matt 9:9-13")))) + (((part First) (reference "Heb 9:2-12")) + ((part Gospel) (reference "Luke 13:6-17")))) (ef-september-ember-wed (((part First) (reference "2 Esd. 8:1-10")) ((part Gospel) (reference "Mark 9:16-28")))) |
