diff options
| author | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-08-17 21:23:57 +0200 |
|---|---|---|
| committer | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-08-17 21:23:57 +0200 |
| commit | 6e42b2f524b283f43e05a967295e244e4083725f (patch) | |
| tree | 9ce11204a2b11d58b8dc25d027be30b69044d2d1 | |
| parent | dcce3a5936c2232aaabbb2e8552be24ea7decdbf (diff) | |
| download | colitur-6e42b2f524b283f43e05a967295e244e4083725f.tar.gz colitur-6e42b2f524b283f43e05a967295e244e4083725f.zip | |
feat(ef): the Seven Sorrows of Passion Friday, and M16 reversed
Not the II-class feast of 15 September, which colitur has had since the
bootstrap, but the other Seven Sorrows: the movable commemoration of
Passion Friday, of which colitur had no trace at all.
The 1962 calendarium lists it at the foot of March, below the fixed
dates, exactly where a movable entry belongs (LT.txt:5056): "Feria VI
post dominicam I Passionis: Commemoratio septem Dolorum B. Mariae Virg."
Note the word -- Commemoratio. Under the 1960 rubrics it is a
commemoration, not a feast, so it can never win the day.
Friday after Passion Sunday I is Easter-9, confirmed independently by
both dates the oracle allow-list already disputed: Easter 2026 is 5 April
and M16's date is 27 March; Easter 2027 is 28 March and M13's is 19
March. It could not be built before Date_spec grew Easter_offset -- the
same wall Rogation Wednesday hit, and the second entity that work has now
unblocked.
M16 is re-adjudicated and its verdict REVERSED, from missalemeum to
colitur. The entry existed because colitur admitted St John Damascene
where missalemeum showed the Seven Sorrows, colitur having no candidate
to admit. Both streams now name the Seven Sorrows and that mismatch is
gone. What remains runs the other way, and the rubric is explicit: RG
111(d) admits TWO commemorations on a III-class day, RG 113 puts the
seasonal one first, and RG 114 omits only what exceeds the number. 27
March 2026 is a III-class privileged Passiontide feria; colitur admits
exactly two, the Seven Sorrows and John Damascene, a real III-class
universal feast genuinely falling that day. missalemeum admits one and
reports John Damascene as displaced, dropping a commemoration the rubric
allows.
That makes four divergences adjudicated colitur where missalemeum drops
or mis-assigns something -- Monica's Epistle, Perpetua's Common, Christ
the King's week, and this. Recorded as a pattern rather than four
coincidences: the oracle stays a comparison instrument, but its error
rate on adjudicated cases is no longer negligible.
M13 is untouched and stays open: 19 March 2027 is a different dispute,
whether Joseph is displaced from Passion Friday at all, and on a I-class
day RG 111(a) admits one privileged commemoration which the feria takes.
Blast radius, full 1583-9999 sweep against the pre-change binary: 7874
days, every one carrying the new commemoration, zero unclassified, line
counts equal both sides.
Register: section 6.12.
| -rw-r--r-- | data/ef/adjustments.sexp | 40 | ||||
| -rw-r--r-- | data/ef/expected-divergences-missalemeum.sexp | 6 | ||||
| -rw-r--r-- | test/test_oracle.ml | 15 |
3 files changed, 56 insertions, 5 deletions
diff --git a/data/ef/adjustments.sexp b/data/ef/adjustments.sexp index 790665b..ea1fc48 100644 --- a/data/ef/adjustments.sexp +++ b/data/ef/adjustments.sexp @@ -257,6 +257,38 @@ ; rewrite (bucket recomputation) and .superpowers/sdd/2026-08-12-colitur- ; rg16a/sanctoral-audit-report.md. Two shapes of finding follow. ; +; `Add commemoration-of-the-seven-sorrows` -- NEW (2026-08-17). The OTHER +; Seven Sorrows: not the II-class feast of 15 September (which colitur has +; had since the bootstrap, slug `seven-sorrows-of-the-blessed-virgin-mary`) +; but the movable commemoration on the Friday of Passion Week, which colitur +; had no trace of at all. +; +; The 1962 calendarium lists it at the FOOT of March, below the fixed dates, +; exactly where a movable entry belongs (LT.txt:5056, verbatim): "Feria VI +; post dominicam I Passionis: Commemoratio septem Dolorum B. Mariae Virg." +; Note the word: Commemoratio. Under the 1960 rubrics this is a commemoration, +; not a feast -- hence `status Commemoration_only`, and hence it can never win +; the day (band returns `unclassified` for that status, checked first). +; +; Friday after Passion Sunday I is Easter-9 (Passion Sunday is the second +; Sunday before Easter, Easter-14; +5 for the Friday). Confirmed independently +; by BOTH dates the oracle allow-list already disputes: Easter 2026 is 5 April +; and M16's date is 27 March; Easter 2027 is 28 March and M13's is 19 March. +; +; This entity is the single root cause behind BOTH of those entries -- M13 +; (19 March 2027, where missalemeum commemorates the Seven Sorrows and colitur +; had nothing to commemorate) and M16 (27 March 2026, where colitur admits St +; John Damascene instead). It was recorded as "a known unimplemented office" +; and could not be built before Date_spec grew `Easter_offset`: there is no +; (month, day) pair for a Friday that moves with Easter, the same wall +; Rogation Wednesday hit. +; +; `subject Bvm` is accurate rather than conventional here -- this genuinely is +; a commemoration of the Blessed Virgin, unlike the Major Litanies and +; Rogation Wednesday which carry `Saint` by precedent. The one rule that reads +; it, RG 112(d)'s own BVM-Saturday exclusion, is structurally unreachable: +; Passion Friday is never a Saturday. +; ; `Add rogation-wednesday` -- NEW (movable-date-specs task, 2026-08-17). ; RG 87, primary-verified: "Litaniae minores seu Rogationes, per se, ; assignantur feriis II, III et IV ante festum Ascensionis Domini" @@ -373,6 +405,14 @@ (rank Class4) (status Commemoration_only) (colour Violet) (subject Saint) (citations ()) (layer ef-universal))))) (Add + ((date (Easter_offset -9)) + (cel + ((slug commemoration-of-the-seven-sorrows) + (names ((la "Commemoratio septem Dolorum B. Mariae Virginis") + (en "The Seven Sorrows of the Blessed Virgin Mary"))) + (rank Class3) (status Commemoration_only) (colour White) + (subject Bvm) (citations ()) (layer ef-universal))))) + (Add ((date (Easter_offset 38)) (cel ((slug rogation-wednesday) diff --git a/data/ef/expected-divergences-missalemeum.sexp b/data/ef/expected-divergences-missalemeum.sexp index effb7c9..2a21b25 100644 --- a/data/ef/expected-divergences-missalemeum.sexp +++ b/data/ef/expected-divergences-missalemeum.sexp @@ -237,9 +237,9 @@ WIDENED, Task 9 (branch ef-lectionary, layer-4 oracle): [First_mismatch]/[Gospel (note "`barbara` (4 December, data/ef/adjustments.sexp's own new `Add`, ef-sanctoral-audit task) is a genuine DATA GAP in missalemeum too: both years' own 4 December row shows only the Advent feria's own temporal commemoration, Barbara absent entirely, not even listed as displaced -- missalemeum never constructed a candidate for her either, the identical absence lectio's own tridentine-calendar.ini has. Identity-gated the same way [M19] is (coordinator finding F2, that entry's own note): the predicate requires colitur's own admitted set to be exactly the temporal feria plus `barbara`, not merely that some [Comm_count] diff exists on this date. Derived directly from the OCaml comparator's own failure output: 2 (both years in the window).") (expected_rows 2)) ((id M16) - (citation "1962 calendarium's March table (same primary text as M13's own citation): \"Feria VI post dominicam I Passionis: Commemoratio septem Dolorum B. Mariae Virg.\" -- a fixed commemoration of Our Lady's Seven Sorrows for the Friday of Passion Week, every year, confirmed real") - (verdict missalemeum) - (note "27 March 2026 (Friday of Passion Week): colitur admits \"St. John Damascene\" (a real Class3 universal feast that genuinely falls that day, data/ef/sanctoral.sexp's own john-damascene entry, 27 March); missalemeum shows \"For Our Lady of the Seven Sorrows\" instead. The SAME standing gap M13 already names: the Seven-Sorrows-of-Passion-Friday commemoration is confirmed real in the primary text but not implemented anywhere in temporal_ef.ml, so colitur has no candidate for it and falls back to whichever ordinary Class3 saint actually wins that Friday. Verdict missalemeum: colitur is missing a real, primary-cited office, not differently opinioned. Register ยง6 open item (the same one M13's own note already tracks). Only 2026 shows here as an IDENTITY mismatch -- 2027's Friday of Passion Week IS 19 March, M13's own date, where identity comparison cannot even be reached (M13's own rank/colour mismatch already excludes that day from count-matched identity comparison, folded into M13's own widened subset above). NOTE for whoever builds the office (fix round 1, coordinator finding 7): 27 March 2026 is a III-class day, where RG 111(d) admits TWO commemorations -- yet missalemeum admits only the Seven Sorrows and DISPLACES John Damascene entirely, not merely drops him to second place. A naive implementation (one more ordinary III-class commemoration competing for the day's two slots) would give colitur two commemorations where missalemeum shows one; whatever privilege the Seven Sorrows carries must itself explain the exclusion, not just win admission.") + (citation "RG 111(d) (LT.txt:1777-1778): \"in diebus liturgicis III et IV classis, duae tantum admittuntur commemorationes\" -- TWO commemorations are admitted on a III-class day. RG 113 (LT.txt:1800-1802): \"Commemoratio de Tempore fit primo loco. In admittendis et ordinandis aliis commemorationibus, servetur ordo tabellae praecedentiae.\" RG 114: only a commemoration EXCEEDING the day's number is omitted. Calendarium, LT.txt:5056: \"Feria VI post dominicam I Passionis: Commemoratio septem Dolorum B. Mariae Virg.\"") + (verdict colitur) + (note "RE-ADJUDICATED 2026-08-17, and the verdict is REVERSED. This entry previously read verdict missalemeum: colitur admitted St John Damascene where missalemeum showed the Seven Sorrows, because the Seven Sorrows commemoration of Passion Friday was a known unimplemented office -- colitur had no candidate to admit at all. It could not be built before Date_spec grew Easter_offset, the Friday after Passion Sunday being Easter-9 and so having no (month, day) pair to anchor to. It is built now. Both streams name the Seven Sorrows, and the old identity mismatch is gone. What remains is a COUNT difference running the OTHER way: 27 March 2026 is a III-class privileged Passiontide feria, RG 111(d) admits TWO commemorations there, and colitur admits exactly two -- the Seven Sorrows (de Tempore, first, per RG 113) and John Damascene, a real III-class universal feast genuinely falling that day. missalemeum admits only one and reports John Damascene as displaced entirely, dropping a commemoration the rubric allows. Read on the primary text colitur is right. Recorded honestly: this is the fourth divergence in this file adjudicated colitur where missalemeum drops or mis-assigns something (cf. Monica, Perpetua's Common, Christ the King's week), which is a pattern worth watching rather than four coincidences. 1 row: 2026-03-27 only. The 2027 instance is M13's own, a DIFFERENT dispute about whether St Joseph is displaced from Passion Friday at all, unchanged by this work.") (expected_rows 1)) ((id M18) (citation "test_oracle.ml's own header, \"COMMEMORATION IDENTITY\" section, restated for the OBSERVED axis (ef-rg112-rg110 task) -- not an RG citation, a comparator LIMIT: Rite_ef.Temporal_ef never sets an English [names] field on any candidate it builds, the SAME limit M15 already names for a commemoration, now visible for the OBSERVED day itself now that the observed-identity axis exists") diff --git a/test/test_oracle.ml b/test/test_oracle.ml index 656a437..0735cb6 100644 --- a/test/test_oracle.ml +++ b/test/test_oracle.ml @@ -1424,8 +1424,19 @@ let layer_m_reason (c : colitur_row) (o : oracle_row) diffs = temporal candidate outright at Class3 rank, register's own account of this date), so [Observed_identity_unresolved] now fires alongside the pre-existing [Comm_identity_mismatch]. *) - else if List.mem c.c_date m16_dates - && subset diffs [ Comm_identity_mismatch; Observed_identity_unresolved ] + (* M16 RE-ADJUDICATED (2026-08-17): the diff SHAPE changed because the cause + did. colitur now builds the Seven Sorrows commemoration of Passion Friday + (data/ef/adjustments.sexp), so the old [Comm_identity_mismatch] -- colitur + admitting John Damascene where missalemeum showed the Seven Sorrows -- is + gone: both streams now name the Seven Sorrows. What remains is a COUNT + difference running the other way, colitur admitting two commemorations + against missalemeum's one. [Comm_count] is REQUIRED so this cannot quietly + absorb a day whose only difference is the unresolved observed identity, + which is M18's own generic shape. *) + else if + List.mem c.c_date m16_dates + && subset diffs [ Comm_count; Observed_identity_unresolved ] + && List.mem Comm_count diffs then Some "M16" else if diffs = [ Observed_identity_unresolved ] then Some "M18" else if List.mem c.c_date m19_dates && diffs = [ Comm_presence ] && m19_commemoration_matches c then |
