From 50e39702bad835962b6e9c04253572e5b48a951f Mon Sep 17 00:00:00 2001 From: Lukasz Kasprzak Date: Wed, 12 Aug 2026 13:53:22 +0200 Subject: gen-sanctoral-ef: keep the Purification tagged lord -- the brief was wrong here Disagreement with the task brief, found and corrected before landing, not after: the brief's defect 7 named the Purification (2 February) as "wrongly tagged lord... a BVM feast", citing the calendarium's own title, "IN PURIFICATIONE B. MARIAE VIRG." That citation is accurate -- but the tag's actual job is not naming or colour categorisation, it exists solely to drive one occurrence rule ("a II-class feast of the Lord takes an occurring Sunday's place outright"), and on THAT question the title is not the decisive evidence. Checked directly against missalemeum (this data's own oracle, live, not archival): the Purification takes a II-class Sunday's place OUTRIGHT, commemorations EMPTY (2014-02-02, 2020-02-02, 2025-02-02, all fetched fresh) -- the exact "festum Domini" pattern. Control: the Nativity of the BVM (8 September, an undisputed ordinary Marian feast) on a Sunday (2019-09-08) shows the opposite shape, the Sunday observed and the feast merely commemorated. The Purification's occurrence behaviour does not match an ordinary BVM feast's. Independent corroboration, found while comparing lectio's output against colitur's (the sibling engine this task's brief points to): colitur's own git history shows the identical retag, made and then reversed within the same review cycle it landed in -- cab8b07 "retag the Purification... as BVM, not Lord" (the brief's own reading), followed by 7d3b5ec "follow the oracle on the Purification" (the reversal, on the same live evidence independently re-derived here). That commit records the calendarium-title counter-evidence too and calls it "a genuinely contested point... a different project could reasonably rule the other way" -- not a clean-cut error either direction, but the weight of evidence for THIS tag's actual purpose favours keeping it lord. most-holy-name-of-mary (the OTHER entry the brief named) is untouched by this reversal and stays retagged away from lord -- its own occurrence behaviour matches the ordinary-BVM pattern, not contested by either project. internal/caldata/tridentine-calendar.ini regenerated; only the Purification's class field changes back (empty -> lord), 6 civil days 2005-2050 (every year 2 February falls on a Sunday: 2014, 2020, 2025, 2031, 2042, 2048) revert to matching what the branch point (and colitur's own current state) already had -- net zero change to PUBLISHED output on this specific point relative to before this task started, despite the intermediate wrong-then-reverted state along the way. --- internal/caldata/caldata_test.go | 34 +++++++++++++++++++------------- internal/caldata/tridentine-calendar.ini | 1 + 2 files changed, 21 insertions(+), 14 deletions(-) (limited to 'internal/caldata') diff --git a/internal/caldata/caldata_test.go b/internal/caldata/caldata_test.go index 2cf10a5..a9bc860 100644 --- a/internal/caldata/caldata_test.go +++ b/internal/caldata/caldata_test.go @@ -74,13 +74,16 @@ func TestTridentineLoads(t *testing.T) { t.Fatalf("EF sanctoral has only %d entries; expected the full calendar", len(l.Cels)) } // Landmark feasts must be present with the right rank/class: Sts Peter & Paul - // (I class, 06-29), the Purification/Presentation (II class, 02-02 -- a - // feast of the BLESSED VIRGIN, calendarium "IN PURIFICATIONE B. MARIAE - // VIRG.", NOT of the Lord; class must be empty, not "lord"), the - // Immaculate Conception (I class, 12-08). + // (I class, 06-29), the Purification/Presentation (II class, 02-02, class + // = lord -- see classOf's own doc comment in scripts/gen-sanctoral-ef.go + // for why: the calendarium's own title names the BLESSED VIRGIN, but the + // tag exists to drive OCCURRENCE behaviour, and missalemeum -- this + // data's own oracle -- shows the Purification taking a II-class Sunday's + // place outright, the "festum Domini" pattern, not the ordinary-BVM + // pattern), the Immaculate Conception (I class, 12-08). want := map[string]struct{ date, rank, class string }{ "sts-peter-paul": {"06-29", "class-1", ""}, - "purification-of-the-blessed-virgin-mary": {"02-02", "class-2", ""}, + "purification-of-the-blessed-virgin-mary": {"02-02", "class-2", "lord"}, "immaculate-conception-of-the-blessed-virgin-mary": {"12-08", "class-1", ""}, } for slug, w := range want { @@ -106,15 +109,18 @@ func TestTridentineLoads(t *testing.T) { } // TestTridentineClassOfLord: scripts/gen-sanctoral-ef.go's classOf tags -// feasts of the Lord (class = lord). Two entries were wrongly tagged lord -// (title-substring false positives: "purification" always meant the BVM's -// own feast, calendarium "IN PURIFICATIONE B. MARIAE VIRG."; "holy name" -// alone matched both "Holy Name of Jesus" and "Most Holy Name of MARY", -// calendarium "Sanctissimi Nominis Mariae"), and one was missing the tag -// entirely (13 January's title ends "of THE Lord", not "of OUR Lord", the -// only suffix classOf used to check -- calendarium "IN COMMEMORATIONE -// BAPTISMATIS D. N. I. C."). See TestTridentineLoads for the Purification's -// own class assertion (kept there, alongside its date/rank, not duplicated). +// feasts of the Lord (class = lord). "Most Holy Name of Mary" was wrongly +// tagged lord (a title-substring false positive: "holy name" alone matches +// both "Holy Name of Jesus" and "Most Holy Name of MARY", calendarium +// "Sanctissimi Nominis Mariae") and is fixed here, not contested. The +// Baptism commemoration was missing the tag entirely (13 January's title +// ends "of THE Lord", not "of OUR Lord", the only suffix classOf used to +// check -- calendarium "IN COMMEMORATIONE BAPTISMATIS D. N. I. C."), also +// fixed and not contested. The Purification is DELIBERATELY absent from +// this table: it stays tagged lord, on occurrence-behaviour evidence, not +// the calendarium's title -- see TestTridentineLoads and classOf's own doc +// comment in scripts/gen-sanctoral-ef.go for the full account of why it is +// the one contested case, not a clean-cut fix. func TestTridentineClassOfLord(t *testing.T) { l := Tridentine() want := map[string]string{ diff --git a/internal/caldata/tridentine-calendar.ini b/internal/caldata/tridentine-calendar.ini index 203f82f..9010845 100644 --- a/internal/caldata/tridentine-calendar.ini +++ b/internal/caldata/tridentine-calendar.ini @@ -220,6 +220,7 @@ reading.gospel = John 12:24-26 date = 02-02 rank = class-2 colour = white +class = lord name.en = Purification of the Blessed Virgin Mary reading.first = Mal 3:1-4 reading.gospel = Luke 2:22-32 -- cgit v1.3