diff options
| author | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-08-17 14:13:02 +0200 |
|---|---|---|
| committer | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-08-17 14:13:02 +0200 |
| commit | 3565ebd1608a7d87e0d890f9953845efcfe743ca (patch) | |
| tree | 6b2d056475b4f36d041e3ef1522ca7c7c11110ec /data/ef/expected-divergences.sexp | |
| parent | 5d236c75c557a7e9ed4a8a852b8089aca48b594e (diff) | |
| download | colitur-3565ebd1608a7d87e0d890f9953845efcfe743ca.tar.gz colitur-3565ebd1608a7d87e0d890f9953845efcfe743ca.zip | |
fix(lectionary): two Judith citations wrong in both engines
A live-missalemeum sweep over a full liturgical year (2028, 364 days)
returned 333 matching and 31 differing days: 17 already-known or pure
notation, 3 new. All three now adjudicated against the photographic
scans of the 1962 Missal.
The Assumption's Epistle reads "Iudith 13, 22-25; 15, 10" (scan1:35357).
Both engines carried "Judith 13:22-25; 13:15; 13:10" -- a chapter
carry-over defect that re-applied chapter 13 to the second citation and
so invented two verses the Missal never cites. The Seven Sorrows reads
"Iudith 13, 22 et 23-25" (scan1:36938, corroborated at 28468); both
carried "Judith 13:22; 13:25", dropping the range. The third, St Monica,
resolves the other way: the Missal gives 1 Timothy (scan2:32679, heading
and incipit both legible; scan1:29524 agrees) where missalemeum serves
the Common of Holy Women's Proverbs -- colitur is right, no change.
Layer 3 could not have found either citation defect. colitur's data is
bootstrapped from lectio, and lectio is the other side of that
differential, so while both engines produced the identical wrong answer
the comparison held it against itself and reported agreement -- the
shared-lineage blindness CLAUDE.md names, now with a second live witness
beside Holy Thursday's colour. Only an external oracle could see it, and
only outside the committed fixture's own window.
Fixed upstream in lectio, re-bootstrapped here (provenance SHA-256 moved
to 54f6bfc5, verified against the source), fixture regenerated.
The upstream fix inverted layer 3 from blind to load-bearing here:
reverting the Assumption citation now reddens both layers, where before
it would have reddened neither. Verified by mutation, both directions.
Allow-lists:
- C22 closed and removed (128 rows -> 0), not re-adjudicated -- the other
engine was fixed to agree, the same shape as the C2-C5/C7/C9-C13/C21
closures. Its own note had already flagged the Lenten Ember dead-key
bug for upstream; lectio now also fails its build on any unreachable
lectionary key rather than serving a plausible wrong Mass.
- M28 opened (3 rows, verdict colitur), pinning both sides' citation
text rather than the date and diff shape alone, so a different
divergence landing on the same date cannot be swallowed.
- M8's gate widened, expected_rows unchanged at 2: 2027-08-15 carries
both its cause and M28's, and one entry is admitted per day. It stays
under M8, which now requires its own commemoration difference to be
present and admits the citation difference only when it satisfies
M28's two-sided predicate. Neither cause absorbs the other.
layer_m_reason's oracle-row parameter, kept named since M2 closed for
exactly such a future reader, is live again.
Register: docs/research/rules-register.md section 6.6.
Diffstat (limited to 'data/ef/expected-divergences.sexp')
| -rw-r--r-- | data/ef/expected-divergences.sexp | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/data/ef/expected-divergences.sexp b/data/ef/expected-divergences.sexp index 836ebed..e0a3fed 100644 --- a/data/ef/expected-divergences.sexp +++ b/data/ef/expected-divergences.sexp @@ -145,11 +145,25 @@ CORRECTED, task 8 fix round 1 (coordinator review, Minor): this note previously ; gap) -- test_differential.ml's own layer_c_reason carries no C21 ; predicate any more, the same discipline this file's own C2-C5/C7/ ; C9-C13 closures already established. - ((id C22) - (citation "RG 91 entry 18, scan1.txt:772-775 word for word, for the RANK (\"18. Feriae II classis, nempe: ... et feriae Quatuor Temporum Adventus, Quadragesimae et mensis septembris\" -- the Lenten Ember days are II-class ferias); MR1962 \"De anno et eius partibus\", scan1.txt:2084-2089 word for word, for the DATE-ANCHOR (\"Quatuor Tempora celebrantur... post primam dominicam Quadragesimae...\" -- WHEN they fall, register ยง3a, the same citation Rite_ef.Temporal_ef's own [ember] carries). CORRECTED, fix round 2 (coordinator review, Minor): the previous version of this citation quoted the date-anchor TEXT but attributed it to RG 91 entry 18 -- the two are different sections of the Missal answering different questions (rank vs date), both real, now cited separately and correctly.") - (verdict colitur) - (note "task 8 fix round 1 (coordinator review, Critical 2): the Lenten Ember days (colitur's own `ef-lent-ember-{wed,fri,sat}`) are reachable for the first time this fix round -- tools/bootstrap_lectionary.ml's own [colitur_keys] comment has the full account of the dead-key bug this closes (lectio's own ini keys this data under the generic \"ef-lent-1-<weekday>\" family, unreachable under colitur's own spelling until renamed). lectio's own SLUG for these three days already matched colitur's (\"ef-lent-ember-wed\" etc, both engines -- confirmed no [Slug_f] in this entry's own rows), but lectio's own READING resolution has the IDENTICAL internal mismatch colitur's used to have: its own [caldata.Readings] never reaches its own Ember data either, so it still falls back to Lent I Sunday's own Mass (e.g. \"2 Cor. 6:1-10\"/\"Matt 4:1-11\") on every one of these dates, where colitur now correctly shows the Ember day's own proper (e.g. \"3 Kgs. 19:3-8\"/\"Matt 12:38-50\"). A genuine LECTIO bug, reported here for upstream, NOT patched in this task (the brief's own triage rule). This is exactly the \"Holy Thursday was violet in both\" shape this project's own CLAUDE.md already names: layer 3 was STRUCTURALLY BLIND to this the whole time colitur also had the bug, since both engines independently produced the identical wrong answer -- a real illustration of why a passing differential means less here than it looks, not merely a citation elsewhere in this file's own header. Gated on the literal 3-slug list and `diffs = [ First_f; Gospel_f ]` exactly (slug/rank/colour already agree). Derived directly from the OCaml comparator's own failure output, not hand-counted first and cross-checked after: 128 (43 + 43 + 42 -- a few of the 46-year population are impeded by a competing sanctoral feast each year, so the Ember office itself is not always the observed day).") - (expected_rows 128)) + ; C22 -- CLOSED, Task 9 (branch ef-lectionary, 2026-08-17), REMOVED not + ; re-adjudicated to a different verdict: it stopped occurring entirely + ; (0 of 16801 rows), the same shape this file's own C2-C5/C7/C9-C13/C21 + ; closures already established, and for the same reason -- the OTHER + ; engine was fixed to agree, not colitur changed. The entry's own note + ; called this out explicitly at the time ("A genuine LECTIO bug, reported + ; here for upstream, NOT patched in this task"): lectio's own lectionary + ; keyed the three Lenten Ember days under the generic "ef-lent-1-<weekday>" + ; family while its calendar computed "ef-lent-ember-{wed,fri,sat}", so its + ; own [caldata.Readings] never reached them and it fell back to Lent I + ; Sunday's Mass. That is now fixed upstream (lectio v0.46.1, keys renamed, + ; plus a test there that fails the build on any unreachable lectionary key + ; rather than silently serving a plausible wrong Mass), and the fixture was + ; regenerated from it -- so both engines now show the Ember day's own + ; proper and there is nothing left to allow-list. The citation is preserved + ; in docs/research/rules-register.md's own closure record, not deleted: it + ; 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) |
