diff options
| author | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-08-17 14:26:42 +0200 |
|---|---|---|
| committer | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-08-17 14:26:42 +0200 |
| commit | 1915f3bb9d74998a411bd55ae658cb3f58fd3477 (patch) | |
| tree | 072174590e6aef6a684b24960e8894e8bc5865bc /test | |
| parent | 3565ebd1608a7d87e0d890f9953845efcfe743ca (diff) | |
| download | colitur-1915f3bb9d74998a411bd55ae658cb3f58fd3477.tar.gz colitur-1915f3bb9d74998a411bd55ae658cb3f58fd3477.zip | |
docs(ef): fix round 2 -- three miscitations and a recorded blind spot
Comment and citation corrections found by review, plus one finding that
survived an attempt to reconstruct it. No behaviour change; the suite is
unchanged at 358 green.
The ferial rubric "Diebus ferialibus a 2 ad 5 ianuarii Missa dicitur ut
die 1 ianuarii" was attributed to RG 17(a) in three test comments. It is
not RG 17(a). RG 17(a) (LT.txt:843) fixes only WHEN the Holy Name is
kept -- "celebrandum dominica quae occurrit a die 2 ad 5 ianuarii; secus
die 2 ianuarii". The rubric quoted is a Mass-propers rubric printed
under the Sanctissimi Nominis Iesu heading (scan1:6523-6526, corroborated
scan2:7216), governing what the ordinary ferias of that window say when
they are not the feast at all. Two rules sharing a date window. Fix
round 1 had already corrected this on the data side; the generator's own
comment was right throughout. Only the test comments were stale.
test_differential.ml named bootstrap_lectionary.ml's derived_entries as
the source of ef-holy-name's citations. That binding no longer exists --
it was the mechanism that derived them from ef-holy-name-sunday's
wrongly-widened ini translation, removed in Task 9 because the
derivation was itself the error. They are hand-authored from the scans
now, as holy_name_entries.
M26's shape 1 described its 21 rows as votive Masses of the BVM "on an
otherwise-unoccupied feria, not only a Saturday", splitting them into 4
BVM-Saturday rows and 17 "ordinary weekday ferias". Every one of the 21
is a Saturday, each checked individually against date -d. The error was
not merely verbal: it made the gap look broader than a single cause and
pointed away from the one rule that explains all 21. The sub-groups
differ by season, not weekday, and only in what colitur shows in the
votive Mass's place. One gap -- the office is built (RG 91 entry 27),
the seasonal selection among the five Masses is not.
Recorded, not fixed: step 4 of the reading chain has no oracle witness
at all. This began as a note to write up a live-oracle confirmation for
Felicitas and Perpetua; the reconstruction contradicted its premise. The
sweep ran over 2028, where 6 March resolves as a Lenten feria with the
saint admitted only as a commemoration, so her own Mass is never read
that year. The finding underneath is firmer: only five saints route
through a Common, they are the observed office on five days in all of
2005-2050 (isidore-of-seville 2008/2035/2046, frances-rome and
sts-felicitas-perpetua both 2038), two are never observed in 46 years,
and none falls in layer 4's window. Layer 3 does not cover it either --
lectio resolves the literal "-"/"-" sentinel there, which is what C18 is
gated on, so it confirms only that colitur emits a citation where lectio
emits none, never that it is right. Closing it needs the oracle fixture
extended to 2035, 2038 or 2046; that is a fixture-scope decision.
Register: sections 6.6 and 6.7. CLAUDE.md's layer-blindness list gains
the step-4 entry.
Diffstat (limited to 'test')
| -rw-r--r-- | test/test_differential.ml | 34 | ||||
| -rw-r--r-- | test/test_lectionary.ml | 5 | ||||
| -rw-r--r-- | test/test_lectionary_ef.ml | 6 | ||||
| -rw-r--r-- | test/test_oracle.ml | 40 |
4 files changed, 62 insertions, 23 deletions
diff --git a/test/test_differential.ml b/test/test_differential.ml index 3ca24ca..31ae046 100644 --- a/test/test_differential.ml +++ b/test/test_differential.ml @@ -994,8 +994,18 @@ let september_ember_sat_slug = "ef-september-ember-sat" NARROWED, Task 9 (branch ef-lectionary, layer-4 oracle): three of the four weekdays (Wednesday/Thursday/Friday) now have their OWN direct lectionary entry (tools/bootstrap_lectionary.ml's own - [epiphanytide_opening_entries], RG 17(a)'s "diebus ferialibus a 2 ad 5 - ianuarii Missa dicitur ut die 1 ianuarii", both scans) -- they no + [epiphanytide_opening_entries], "Diebus ferialibus a 2 ad 5 ianuarii + Missa dicitur ut die 1 ianuarii, cum Gloria et praefatione de + Nativitate, sine Credo et Communicantes proprio" -- scan1.txt:6523-6526, + corroborated scan2.txt:7216 -- CORRECTED, fix round 2: this cited the + rubric as RG 17(a), which it is not. RG 17(a) (LT.txt:843) says only + WHEN the Holy Name is kept ("celebrandum dominica quae occurrit a die 2 + ad 5 ianuarii; secus die 2 ianuarii"). The text quoted here is a + MASS-PROPERS rubric, printed under the "Sanctissimi Nominis Iesu" + heading, governing what the ORDINARY FERIAS of 2-5 January say when + they are not the feast at all. Two different rules that happen to share + a date window; only the second one is what these three weekdays read) -- + they no longer reach step 3's one-hop walkback THIS entry's own citation describes at all, so keeping them here would misdescribe what actually happens on those three weekdays now. See [C30] below for @@ -1087,8 +1097,15 @@ let layer_c_reason (l : row) (c : row) diffs = List.mem l.date holy_name_fallback_dates_2005_2050 (* Task 8: [First_f; Gospel_f] joined the accepted set. Now that [ef-holy-name] carries its own citations (tools/bootstrap_lectionary.ml's - own [derived_entries], sourced from RG 17(a)'s single Mass heading - covering both shapes), most of these 20 rows already match lectio's + own [holy_name_entries], sourced from the Missal's single Mass + heading covering both of RG 17(a)'s shapes -- CORRECTED, fix round 2: + this named [derived_entries], a binding that no longer exists. That + was the mechanism which DERIVED [ef-holy-name] from + [ef-holy-name-sunday]'s own, then wrongly-widened, ini translation, + and it was removed in Task 9 precisely because the derivation WAS + the error; the citations are hand-authored from the scans now. See + that file's own note above [holy_name_citations]), most of these 20 + rows already match lectio's own citation by coincidence -- lectio's OWN plain-ferial fallback, on years with no Sunday 2-5 January, usually lands on a December Sunday whose slug collapses to the SAME "ef-christmas-sunday-0" key @@ -1116,9 +1133,12 @@ let layer_c_reason (l : row) (c : row) diffs = diffs = [ First_f; Gospel_f ] && String.equal c.slug holy_name_sunday_slug then Some "C29" else if - (* C30 -- Task 9: RG 17(a)'s own "diebus ferialibus a 2 ad 5 ianuarii" - rubric, the five non-Saturday weekdays (Saturday stays C25's own, - narrowed note above explains why). *) + (* C30 -- Task 9: the Missal's own Mass-propers "diebus ferialibus a 2 ad + 5 ianuarii" rubric (CORRECTED, fix round 2: this said RG 17(a)'s, + which it is not -- see the C25 note above, and this entry's own + citation in data/ef/expected-divergences.sexp, which fix round 1 + already corrected on the data side), the five non-Saturday weekdays + (Saturday stays C25's own, narrowed note above explains why). *) diffs = [ First_f; Gospel_f ] && List.mem c.slug christmas_1_weekday_slugs then Some "C30" else if diff --git a/test/test_lectionary.ml b/test/test_lectionary.ml index a6ca334..1f8ed75 100644 --- a/test/test_lectionary.ml +++ b/test/test_lectionary.ml @@ -149,7 +149,10 @@ let test_ef_data_file_loads () = check_entry "ef-holy-name-sunday" "Acts 4:8-12" "Luke 2:21"; check_entry "ef-christmas-sunday-0" "Gal 4:1-7" "Luke 2:33-40"; check_entry "ef-holy-name" "Acts 4:8-12" "Luke 2:21"; - (* Task 9: RG 17(a)'s own "diebus ferialibus" rubric (2-13 January, + (* Task 9: the Missal's own Mass-propers "diebus ferialibus" rubric + (CORRECTED, fix round 2: this said RG 17(a)'s, which it is not -- + RG 17(a) fixes only WHEN the Holy Name is kept; the rubric quoted + governs what the ordinary ferias say when it is not) (2-13 January, three 5-weekday families -- bootstrap_lectionary.ml's own [epiphanytide_opening_entries] comment has the full citations and the RG 78/BVM-Saturday reasoning for why Saturday is excluded from diff --git a/test/test_lectionary_ef.ml b/test/test_lectionary_ef.ml index 39e3cb8..3ed6987 100644 --- a/test/test_lectionary_ef.ml +++ b/test/test_lectionary_ef.ml @@ -159,8 +159,10 @@ let test_step3_advent_feria_resumes_sunday () = REPLACED AGAIN, Task 9 (branch ef-lectionary, layer-4 oracle): 2028-01-05 ("ef-christmas-1-wednesday") stopped exercising step 3 too, the SAME - fate as the 2025-12-29 case this comment already documents -- RG 17(a)'s - own "diebus ferialibus a 2 ad 5 ianuarii" rubric now gives it a direct + fate as the 2025-12-29 case this comment already documents -- the + Missal's own Mass-propers "diebus ferialibus a 2 ad 5 ianuarii" rubric + (CORRECTED, fix round 2: attributed to RG 17(a) here, which it is not -- + RG 17(a) fixes only WHEN the Holy Name is kept) now gives it a direct entry (tools/bootstrap_lectionary.ml's own [epiphanytide_opening_entries]), so it resolves at step 2. The three families this task's own fix closed (2-5 January, 7-12 January, Holy diff --git a/test/test_oracle.ml b/test/test_oracle.ml index 1e724b8..2d7060b 100644 --- a/test/test_oracle.ml +++ b/test/test_oracle.ml @@ -1230,19 +1230,33 @@ let m25_dates = [ "2026-03-09"; "2026-03-24"; "2027-03-01"; "2027-03-16" ] Mass... needs... a season-keyed selection among five formularies" -- RG 309(a), "iuxta temporum diversitatem"): - SHAPE 1 -- 21 rows: a rotating VOTIVE MASS OF THE BVM ("Missae de - sanctae Mariae in sabbato" I-V and their Time-after-Pentecost - siblings, missalemeum's own "II/III/V Mass of the B. V. M." titles) on - an otherwise-unoccupied feria, not only a Saturday -- 2026-01-03/ - 2026-01-10/2027-01-02/2027-01-09 are RG 78's own BVM SATURDAY Office - specifically (Task 6's own named open item; colitur's own step-3 - fallback, not the votive Mass, is what these four rows actually show - -- 2026-01-03/2027-01-09 are `ef-christmas-1-saturday`, C25's own - unchanged population in the sibling lectio differential; 2026-01-10/ - 2027-01-02 are `ef-christmas-2-saturday`); the other 17 of these 21 - are ordinary weekday ferias in Time after Pentecost showing the SAME - votive-Mass title (2026-02-14/06-20/06-27/07-04/07-11/08-01/10-31/ - 11-07/11-28; 2027-07-17/07-24/09-04/09-11/10-30/11-06/11-13/11-27). + SHAPE 1 -- 21 rows, EVERY ONE A SATURDAY: a rotating VOTIVE MASS OF THE + BVM ("Missae de sancta Maria in sabbato" I-V, missalemeum's own + "II/III/V Mass of the B. V. M." titles) on an otherwise-unoccupied + IV-class Saturday -- RG 78's own Office throughout, and RG 309(a)'s own + "iuxta temporum diversitatem" selection of WHICH of the five Masses it + says. + + CORRECTED, fix round 2: this read "on an otherwise-unoccupied feria, not + only a Saturday", and split the 21 into 4 BVM-Saturday rows plus "the + other 17 ... ordinary weekday ferias in Time after Pentecost". Both + halves of that are wrong, and the error was not merely verbal -- it made + the gap look BROADER than a single cause, and pointed the diagnosis away + from the one rule that actually explains all 21. Every date was checked + individually against `date -d`, not inferred: the 17 + (2026-02-14/06-20/06-27/07-04/07-11/08-01/10-31/11-07/11-28; + 2027-07-17/07-24/09-04/09-11/10-30/11-06/11-13/11-27) are Saturdays + exactly like the four January ones. The real distinction between the two + sub-groups is SEASON, not weekday, and it matters only for what colitur + shows in the votive Mass's place: the four Christmastide rows + (2026-01-03/2027-01-09, `ef-christmas-1-saturday`, C25's own unchanged + population in the sibling lectio differential; 2026-01-10/2027-01-02, + `ef-christmas-2-saturday`) show its own step-3 ferial fallback, the 17 + Time-after-Pentecost rows its own season fallback. ONE gap, not two: + colitur builds the Office itself (RG 91 entry 27, register ยง6.4) but not + the seasonal selection among the five Masses, which that task + deliberately deferred to the lectionary as a Mass-propers question + rather than an office question. SHAPE 2 -- 9 rows, a SECOND, DIFFERENT and DISTINCT gap: ferias of a week whose own Sunday was DISPLACED that year by a movable, named |
