From 9108aee65dc72e7793aeb604c2e877f2898111c8 Mon Sep 17 00:00:00 2001 From: Lukasz Kasprzak Date: Wed, 12 Aug 2026 05:26:15 +0200 Subject: test(oracle): correct M11's citation and verdict (fix round 1, F3) M11 (the Nativity Octave's 26/27/28 December commemoration) previously read "No RG paragraph found to support this" with verdict colitur. Wrong on both counts, found by fix-round-1 review. RG 67 ("dies infra octavam sunt II classis") and RG 109(c) ("de diebus infra octavam Nativitatis Domini") both name this commemoration; the 1962 calendarium's own text confirms it directly, verbatim, under all three dates: "S. STEPHANI PROTOMARTYRIS, II classis. / Com. octavae Nativitatis." (same pattern for John the Evangelist and the Holy Innocents). It is also a genuine regression the previous commit's own commemoration-eligibility fix introduced: before that fix, colitur happened to commemorate the day's generic Christmastide loser unconditionally, which coincidentally kept presence agreeing with the oracle even though the reasoning was wrong; the fix correctly stopped that, but 26-28 December's own temporal candidate falls through to [ferial_rank]'s Christmastide catch-all, which gives it Class4 -- the wrong ferial rank for a day RG 67 says is II class. A naive fix would also get RG 69 backwards: when this window falls on a Sunday, RG 69 names the SUNDAY as observed with a commemoration of THE FEAST ITSELF (Stephen/John/the Innocents), never the generic octave placeholder -- so this needs a commemoration that attaches to whichever named feast is observed, not one more competing RG 92-95 candidate the way everything else in this engine is modelled. Out of this fix round's own scope. Verdict changed from colitur to open: neither side is confidently right without that fix, and the previous "colitur is correct, nothing to implement" framing was itself the risk under review. --- data/ef/expected-divergences-missalemeum.sexp | 6 ++--- test/test_oracle.ml | 34 +++++++++++++++------------ 2 files changed, 22 insertions(+), 18 deletions(-) diff --git a/data/ef/expected-divergences-missalemeum.sexp b/data/ef/expected-divergences-missalemeum.sexp index f4cfbce..5dbe3ed 100644 --- a/data/ef/expected-divergences-missalemeum.sexp +++ b/data/ef/expected-divergences-missalemeum.sexp @@ -81,9 +81,9 @@ (note "colitur commemorates the losing early-Advent feria (Monday after Advent I, 30 Nov; Tuesday/Wednesday after Advent II, 8 Dec) when a saint wins. missalemeum shows nothing on these 4 rows specifically, even though it DOES show equivalent later-Advent-feria commemorations elsewhere in the SAME window (2-21 December, matching colitur exactly there) -- read as a missalemeum-side inconsistency on these particular rows, not a textually narrower rule.") (expected_rows 4)) ((id M11) - (citation "No RG paragraph found to support this (see the note) -- not a citation, a documented absence of one") - (verdict colitur) - (note "missalemeum's own \"For Octave of the Nativity\" commemoration/displaced entry on 26, 27(2027)/28 December carries info.rank 4 in the raw JSON (checked directly) -- a generic, low-dignity placeholder its own data model seems to attach to every day within the Nativity Octave, distinct from RG 91 entry 17's real \"days within the Octave\" office (which colitur already models correctly, but only for 29-31 December -- 26-28 are the NAMED feasts Stephen/John/the Innocents themselves, sanctoral, temporal_ef.ml's own comment on [named]). Read as missalemeum's own bookkeeping artifact; the primary-source search for this specific point was not exhaustive, so flagged as an open item rather than confidently dismissed.") + (citation "CORRECTED, fix round 1 (F3): RG 67 (\"Dies infra octavam sunt II classis\" -- days within the Octave are II class) + RG 109(c) (\"de diebus infra octavam Nativitatis Domini\" -- privileged) + the 1962 calendarium's own explicit note under 26/27/28 December, primary-source-verified 2026-08-12: \"S. STEPHANI PROTOMARTYRIS, II classis. / Com. octavae Nativitatis.\" (same pattern, verbatim, under 27 and 28 December for John the Evangelist and the Holy Innocents) -- \"Commemoration of the Octave of the Nativity\", named explicitly, alongside each of the three named feasts") + (verdict open) + (note "This entry previously read \"No RG paragraph found to support this\" and verdict colitur -- WRONG, found by fix-round-1 review: RG 67/109(c) and the calendarium's own \"Com. octavae Nativitatis\" note both confirm a real commemoration is due here. It is ALSO a genuine REGRESSION Task 16's own commemoration-eligibility fix introduced: before that fix, colitur unconditionally commemorated the day's own losing temporal candidate (\"ef-christmas-0-\", the generic Christmastide ferial slug 26-28 December falls through to since temporal_ef.ml's [named] does not cover those three dates), which happened to keep commemoration PRESENCE agreeing with missalemeum even though the underlying reasoning was wrong (a Task 16 review-round-1 finding elsewhere, F1/F2 fixed it for the general case) -- and Task 16's fix (and this fix round's RG 23-26 correction of it) both correctly stop commemorating that generic candidate, since [ferial_rank]'s Christmastide catch-all gives it Class4, which RG 26 never commemorates. The catch: RG 67 says days WITHIN the octave are II class, not IV -- the generic ferial construction 26-28 December falls through to has the WRONG rank for this specific window (a rank bug, not merely a missing-candidate one; 29-31 December already get the correct Class2 via [named]'s own \"ef-nativity-octave-day-{5,6,7}\" branch, so this is narrowly a 26-28-December gap). Fixing it properly also has to get RG 69 right (\"De dominica infra octavam Nativitatis Domini... semper fit Officium cum commemoratione FESTI FORTE OCCURRENTIS\" -- when the Sunday falls in this window, the SUNDAY is observed with a commemoration of THE FEAST ITSELF, Stephen/John/the Innocents by name -- NOT the generic octave placeholder), so a naive \"treat the octave commemoration as one more competing candidate\" fix would get the Sunday case backwards (confirmed by working through it: it would make the octave placeholder outrank the named saint for the Sunday's own privileged slot, when RG 69 names the SAINT, not the octave, for that slot). This needs either new architecture (a commemoration that attaches to whichever of Stephen/John/the Innocents is observed, not a competing candidate the way RG 92-95's occurrence framework models everything else) or a more careful RG-69-aware fix than this task attempted -- out of scope for this fix round. Verdict changed from colitur to open: neither side is confidently right without that fix, and the previous entry's \"colitur is correct, nothing to implement\" framing was itself the risk this review flagged. Register ยง6 open item.") (expected_rows 4)) ((id M12) (citation "RG 110: \"In Officio et Missa S. Petri semper fit commemoratio S. Pauli, et vicissim\" -- in the Office and Mass of either Peter or Paul, a commemoration of the other is ALWAYS made (\"the inseparable commemoration\"), uncapped by RG 111's ordinary admission count") diff --git a/test/test_oracle.ml b/test/test_oracle.ml index 2cc9972..152464a 100644 --- a/test/test_oracle.ml +++ b/test/test_oracle.ml @@ -410,21 +410,25 @@ let m14_dates = [ "2027-05-14" ] Verdict colitur. *) let m10_dates = [ "2026-11-30"; "2027-11-30"; "2026-12-08"; "2027-12-08" ] -(* M11 -- missalemeum's own "For Octave of the Nativity" commemoration/ - displaced entry on 26, 27(2027)/28 December carries info.rank 4 in the - raw JSON (checked directly, not inferred) -- a generic, always-present, - lowest-dignity placeholder its OWN data model seems to attach to every - day within the Nativity Octave, distinct from RG 91 entry 17's real - "days within the Octave" office (which colitur already models correctly - -- but only for 29-31 December, since 26-28 are the NAMED feasts - Stephen/John/the Innocents themselves, sanctoral not temporal, - temporal_ef.ml's own comment on [named]). No RG paragraph found here - supports a SEPARATE rank-4 commemoration alongside Stephen/John/the - Innocents' own (much higher) offices. Verdict colitur: read as - missalemeum's own bookkeeping artifact, not a liturgical fact -- flagged - as an open item rather than confidently dismissed, since the primary- - source search for this specific point was not exhaustive (see the task - report). *) +(* M11 -- CORRECTED, fix round 1 (F3): this used to claim "no RG paragraph + found" and verdict colitur. WRONG. RG 67 ("dies infra octavam sunt II + classis") + RG 109(c) ("de diebus infra octavam Nativitatis Domini") + + the calendarium's own explicit note under 26/27/28 December ("S. + STEPHANI PROTOMARTYRIS, II classis. / Com. octavae Nativitatis.", same + pattern for John the Evangelist and the Holy Innocents) all confirm a + REAL commemoration is due here -- and it is a genuine regression: before + Task 16's own commemoration-eligibility fix, colitur happened to + commemorate the day's generic Christmastide loser unconditionally + (matching presence, for the wrong reason); the fix (correctly) stopped + that, but the 26-28 December window's own temporal candidate has the + WRONG ferial rank to begin with ([ferial_rank]'s Christmastide catch-all + gives it Class4; RG 67 says II) -- and a naive fix gets RG 69's Sunday + case backwards (the Sunday, when this window falls on one, commemorates + the NAMED feast, not the generic octave placeholder). Needs new + architecture (a commemoration attached to whichever named feast wins, + not a competing RG 92-95 candidate) or a more careful fix than this + round attempted. Verdict now OPEN, not colitur -- see the sexp entry's + own full note and the task report. *) let m11_dates = [ "2026-12-26"; "2026-12-28"; "2027-12-27"; "2027-12-28" ] (* M12 -- RG 110, primary text: "In Officio et Missa S. Petri semper fit -- cgit v1.3