aboutsummaryrefslogtreecommitdiff
path: root/internal/caldata/of-lectionary.ini
Commit message (Collapse)AuthorAgeFilesLines
* fix(caldata): ten corrupt OF reading references, all Year IILukasz Kasprzak2026-09-021-11/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Nine end at verse 22 where the OLM ends them at 20; the tenth reads "Matthew 17:9a,10-135", a verse Matthew 17 does not have. Every one is in a Year II entry, or in advent-2-sat, which has no year cycle. Not one Year I entry is affected -- that distribution is what makes this a transcription fault rather than ten independent slips. ordinary-1-mon-II Mark 1:14-22 -> Mark 1:14-20 ordinary-3-wed-II Mark 4:1-22 -> Mark 4:1-20 ordinary-4-mon-II Mark 5:1-22 -> Mark 5:1-20 ordinary-12-wed-II Matthew 7:15-22 -> Matthew 7:15-20 ordinary-18-sat-II Matthew 17:14-22 -> Matthew 17:14-20 ordinary-19-wed-II Matthew 18:15-22 -> Matthew 18:15-20 ordinary-1-tue-II 1 Samuel 1:9-22 -> 1 Samuel 1:9-20 ordinary-1-wed-II 1 Samuel 3:1-10,19-22 -> 1 Samuel 3:1-10,19-20 ordinary-7-sat-II James 5:13-22 -> James 5:13-20 advent-2-sat (x2) Matthew 17:9a,10-135 -> Matthew 17:9a,10-13 Eight are confirmed verbatim against the Latin OLM 1981: "Mc 1, 14-20", "Mc 4, 1-20", "Mc 5, 1-20", "Mt 7, 15-20", "Mt 17, 14-20", "Mt 18, 15-20", "1 Sam 1, 9-20", "1 Sam 3, 1-10. 19-20", "Mt 17, 10-13". The two the OCR does not yield are impossible on their face: James ends at 5:20, and Matthew 17 has twenty-seven verses. litcal independently gives the corrected form for six of the ten. Found by two methods, neither sufficient alone. In Ordinary Time the OF weekday Gospel does not depend on the year of the cycle -- OLM n. 69 point 4 alternates the FIRST reading only -- so a -I/-II pair whose gospel differs is a defect by construction; that catches six. The other four are First readings and the Advent entry, which no such symmetry constrains, and they were caught by comparing against litcal. Found while building a readings-comparison layer in colitur, whose OF lectionary is generated from this file and had inherited all ten.
* fix(calendar): OF precedence/transfer + readings resolution; EF Pentecost octaveLukasz Kasprzak2026-07-281-44/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes found by validating the offline engine per-day vs the LiturgicalCalendar API (OF) and missalemeum (EF) across 2005-2050. OF calendar is now 0 real errors in the forward window (season/cycle already perfect). OF precedence/transfer (calendar): - Ash Wednesday and Holy Week Mon-Wed are band-2 privileged, so a coinciding feast (Chair of St Peter on Ash Wednesday) is suppressed, not observed. - Solemnities transfer out of Holy Week / the Easter octave: the Annunciation defers to the Monday after the 2nd Sunday of Easter; St Joseph is anticipated to the Saturday before Palm Sunday; the Nativity of St John the Baptist moves to Jun 23 when a Lord's solemnity (Sacred Heart / Corpus Christi) falls Jun 24. - Within a precedence band, a solemnity of the Lord/BVM outranks a saint's (dignity tiebreak) rather than losing an alphabetical slug tie. - Perpetua & Felicity corrected optional -> obligatory memorial. OF readings resolution (bible.OFRef + lectionary data): - Verse-accurate Hebrew->Vulgate psalm mapping incl. the split psalms (9/10, 114/115, 116, 147); "+" verse joins and abbreviated ranges ("127-28") normalized; single-chapter books (2/3 John, Jude) get chapter 1. - Cleaned harvest artifacts from of-lectionary.ini (descriptive-suffix gospels, "or Year A" alternates, "*"/"[Vulg.]"/bracket markers, slash abbreviations); Joel/Malachi/Zechariah/Esther book-versification citations fixed to Vulgate. - Split a merged Ps 15:10/11 row in vul.tsv. Result: 0 unresolvable OF readings over 2557 rendered days (cycles A/B/C, varied Easters). EF: the Octave of Pentecost (Whit Monday-Saturday) is red, not white.
* feat(of): Christmas-season weekday ferials from catholic-resources.org ↵Lukasz Kasprzak2026-07-281-0/+150
| | | | | | | | | | | | | | | (date-based) Completes the seasonal weekday lectionary. The Christmas-season weekdays sit on the AdventChristmas page in a SHIFTED 6-column layout (Day in c[1], not c[2] like Advent's 7-column) -- the generator now finds the Day column wherever it is. Adds date-based slugs to temporal.go: christmas-dec-<29..31> (octave), christmas-jan-<2..7> (before Epiphany), christmas-after-epiphany-<weekday> (before the Baptism). Fixes the christmas-octave-fri coverage gap and the by-date/by-week collision. 362/362 seasonal ferial-days render across 2026-2029 with 0 gaps. Extends TestOFSeasonalFerials. All of Advent/Lent/Easter/Christmas weekdays now CR-sourced; only the Commons remain (optional -- memorials default to the ferial).
* feat(of): seasonal weekday ferials from catholic-resources.org + date-based ↵Lukasz Kasprzak2026-07-281-343/+489
| | | | | | | | | | | | | | | | | | | | | | late Advent Re-sources the proper weekdays of Advent (weeks 1-3), Lent, and Eastertide from catholic-resources.org (scripts/genlect-of-season-ferials-cr.py; single-cycle, so both -I/-II keys get the same readings). The diff caught real niedziela defects: - Easter weekday first readings contaminated (easter-3-mon had 1 Cor 15 instead of Acts 6:8-15; easter-4-thu had Rev 12 instead of Acts 13:13-25). - The Easter octave weekdays (Easter Mon-Sat) had no readings at all. - Stray psalm-numbering artifacts (147A(146), Ps42(41)) cleared. Late Advent (Dec 17-24) is proper to the DATE, not the Advent week, so temporal.go now keys those days 'advent-dec-<day>' (fixing the same by-date/by-week collision as the OT numbering) and the generator supplies them (Dec 17 = the genealogy Matt 1:1-17; Dec 24 = the Benedictus). 157 seasonal ferial-days render across 2026-2028 with 1 residual gap (christmas-octave-fri). Adds TestOFSeasonalFerials, credits the source, bumps to 0.43.0. Christmas-season weekdays (Dec 29-31, Jan 2-5) remain niedziela-sourced (CR's shifted layout + Epiphany-dependent assignment -- a documented follow-up).
* feat(of): complete Sunday lectionary from catholic-resources.org (restore ↵Lukasz Kasprzak2026-07-281-308/+521
| | | | | | | | | | | | | | | | | | | | | | | | | | 2nd readings) The niedziela harvest had dropped the SECOND reading on 271 of ~299 Sunday-cycle entries (a Sunday Mass is first/psalm/second/gospel). scripts/genlect-of-sundays-cr.py re-sources the temporal Sunday & solemnity lectionary (Ordinary Time, Advent, Christmas, Lent, Easter, Trinity, Corpus Christi, Sacred Heart, Christ the King; all three cycles A/B/C) from catholic-resources.org, keyed by liturgical position, and merges the complete readings into of-lectionary.ini. - Also corrects ~6 contaminated Sunday first readings the niedziela by-date harvest had picked up (ordinary-sunday-21-B had a Marian Prov 8; advent-2-A had the Immaculate Conception's Gen 3; Christ the King B/C, Trinity C, Pentecost, Ascension/7th-of-Easter were wrong). - Content-validated: every changed first reading verified against the old one (all changes are correct fixes or the identical passage, book spelling aside). - Handles source quirks: hyphen/en-dash/ABC cycle markers, verbose Year-A solemnity names, 'opt:' cycle-proper alternates, '[2025: Corpus Christi]' displacement notes appended to names, Palm Sunday (cycle-independent first/second, per-cycle Passion gospel kept), and abbreviation variants (Jon/Is/Mt/Act/Zac...). 157/157 Sundays render first+psalm+second+gospel across 2026-2028. Adds TestOFSundayCompleteReadings, credits the source in NOTICE, bumps to 0.42.0.
* fix(of): canonical OT ferial week numbering + CR-sourced ferial lectionaryLukasz Kasprzak2026-07-281-964/+1022
| | | | | | | | | | | | | | | | | | | | | | The Ordinary Form ferial lectionary had two linked defects, both from harvesting niedziela.pl by date: (1) post-Pentecost Ordinary-Time ferial WEEK NUMBERS were one too high (temporal.go counted back from Christ the King using the weekday itself, not its preceding Sunday, so a ferial took the next week's number), and (2) ~17 ferial keys held a SAINT's readings (stored when a saint displaced the ferial on the queried date, e.g. week 22 smeared with a Marian Prov 8/John 2), plus 16 weekday slots were missing entirely. - temporal.go: number a span-2 ferial from its preceding Sunday. Verified 388/388 ferial-week agreement with calapi across 2026-2028. - scripts/genlect-of-cr.py: regenerate the Ordinary-Time ferial lectionary (first/psalm/gospel, both years, all 34 weeks) from catholic-resources.org (Fr. Felix Just, S.J.), which is keyed by liturgical position (immune to by-date contamination) and complete. Citations only; text still rendered from the public-domain corpora. of-lectionary.ini OT ferials now 408 (was 392). Fixes ~17 contaminated entries + 16 gaps + the week-numbering audit item. Psalms already share modern numbering, so no conversion. Adds TestOFOrdinaryTimeFerialWeek. Credits catholic-resources.org in NOTICE. Bumps to 0.40.0.
* chore(of): extend lectionary harvest to 2018-2025 (98.4% coverage)Lukasz Kasprzak2026-07-281-229/+296
| | | | | | | More true-ferial years per position; 359/365 days of 2026 now resolve. The 6 residual gaps are rare pre-Lent Ordinary-Time positions (weeks 3/4/9) that never occurred as a true ferial in the harvestable past (niedziela publishes no future years) -- an irreducible limit of date-based harvesting, documented.
* fix(of): correct memorial readings (ferial fallback) + Lord-feast classLukasz Kasprzak2026-07-281-636/+0
| | | | | | | | | | | | | | | | | | | Validation vs USCCB (Catholic Readings API) caught two bugs: - Obligatory memorials were keyed by their own slug, freezing ONE year's ferial (a memorial's fixed date lands in a different Ordinary-Time week each year), so most weekday memorials showed the wrong week's reading. Now memorials are skipped in the harvest and fall back to the day's ferial slug at runtime -> the correct week's reading. (Proper-reading memorials show the permitted ferial; their propers are a later refinement.) - gen-sanctoral classOf missed feasts of the Lord whose title says 'Holy Cross' (not 'of the Cross') etc., so the Exaltation of the Cross (and Transfiguration, Presentation) did not displace an Ordinary Sunday. Fixed the Lord/BVM class inference; the Cross now correctly displaces the Sunday and shows its proper. USCCB agreement on the sampled 2025 window rose to ~92%; residual diffs are proper-reading memorials (Guardian Angels/Sorrows gospels), citation-granularity (same reading, different verse range), and week numbering around feast-displaced Sundays -- documented as known refinements.
* feat(of): full sanctoral calendar + weekday/memorial readingsLukasz Kasprzak2026-07-281-168/+4033
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Populate the OF General Roman Calendar sanctoral and extend the OF readings to weekdays and sanctoral days. Sanctoral calendar (roman-calendar.ini: 29 -> 202 celebrations): - scripts/gen-sanctoral.go generates it from calapi.inadiutorium.cz (authoritative General Roman Calendar) -- English name/rank/colour from general-en, Latin from general-la, Polish from niedziela DayInfo (obligatory celebrations). Fixed dates the temporal engine already computes are excluded. VALIDATED: my engine's observed rank agrees with calapi on all 86 obligatory sanctoral days of 2026 (0 mismatches). Precedence fix (precedence.go): an optional memorial no longer displaces the weekday as the DEFAULT observed celebration (it sorts below the ferial, shown as an option) -- matching the General Roman Calendar / calapi. Readings (of-lectionary.ini: 254 -> 1018 entries) via genlect-of.go: - Weekday (ferial) 2-year cycle I/II, keyed <ferial-slug>-<WeekdayCycle>, harvested from niedziela over 2020-2025 (multiple years per cycle; retry-on-failure so a glitch year never poisons a key; only TRUE ferials + optional-memorial days, where niedziela shows the ferial). - Obligatory memorials keyed by their OWN slug (niedziela shows their proper, e.g. Barnabas -> Acts 11, or the ferial for memorials without a proper) -- never miskeyed to a ferial position. - caldata.Readings: OF resolves slug+SundayCycle | slug+WeekdayCycle, else a memorial falls back to the day's ferial readings. - Source-glitch normalisation (1J->1 J, PnP->Pnp). books.ini: canonical names "Song of Solomon" and "The Acts" added as their own [en] forms (ToEnglishRef emits the canonical; it must resolve). Fixes ~32 cross-chapter Song-of-Songs/Acts citations. Coverage: 359/365 days of 2026 render (98.4%); 6 residual ferial positions never a true-ferial in 2020-2025. EF sanctoral and OF psalm renumbering still pending.
* feat(caldata): generate OF Sunday/solemnity lectionary from niedzielaLukasz Kasprzak2026-07-271-9/+1283
| | | | | | | | | | | | | | | | | Task 2. scripts/genlect-of.go harvests niedziela over the PAST cycle-equivalent years 2023(A)/2024(B)/2025(C) -- niedziela only publishes ~6 weeks ahead, so the future 2025-2027 span was unfetchable; the 3-year cycle repeats, so a liturgical position's cycle-A readings are identical whether they fall in 2023 or 2026. Produces internal/caldata/of-lectionary.ini: 254 entries (A=86, B=87, C=81), keyed <slug>-<cycle>, citations English-canonical via ToEnglishRef. Also: books.ini [en] Matthew gains "Mat" (ToEnglishRef maps Polish Mt->Mat; now resolves and displays as Matt). of_test.go assertion relaxed to accept either spelling. KNOWN GAP: 8 cross-chapter range citations (e.g. Sirach 27:30-28:7, John 18:1-19:42) don't yet resolve -- the bible ref parser handles semicolon groups but not a dash-range spanning a chapter boundary. Fix next.
* feat(caldata): OF Sunday/solemnity readings by slug+cycle (seed table)Lukasz Kasprzak2026-07-271-0/+15