All 9 January saints with a propers id: 5 authored fresh (Marcellus I, Paul the Hermit, Fabian & Sebastian, Vincent & Anastasius, John Chrysostom), 3 corrected (Chair of St. Peter at Rome, Agnes, Conversion of St. Paul -- each confirmed sourced from the Roman rite's raw [Ant 1] rather than a real Monastic 1617 rendering, same mistake as St. Lawrence's earlier fix), 1 left honestly missing (Hilary of Poitiers -- this app's calendar has him Jan 23, but Divinum Officium's own calendar has him Jan 14; flagged in TODO.md rather than guessed at). See TODO.md for the full remaining scope and the method this settled on after automated matching proved unreliable on real edge cases (shared dates, saints the reference engine doesn't carry at all). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
7.9 KiB
Open work
A real backlog, not scattered code comments. Update this file when something here gets done, and add to it when new gaps turn up — don't let it drift back into "only findable by reading commit messages."
Content gaps — mechanism built, data incomplete
Lauds psalmody overrides (duplex-majus+ per-feast psalms/antiphons/canticle)
Mechanism: src/hours/lauds-psalmody-overrides.ts, gated in
hours/lauds.ts's getPsalmodyOverrideFor. Only fires for a saint ranked
duplex-majus or higher (per direct instruction) or a named temporal feast
(marian-saturday, christ-the-king).
Authored (3): st-lawrence, marian-saturday, christ-the-king.
Not authored yet (32 duplex-majus+ saints, sorted roughly by calendar
order) — each needs a live command=prayLaudes query on the saint's own
date, Monastic Tridentinum 1617, same method as the three done so far:
conversion-of-st-paul, chair-of-st-peter-at-rome, apparition-of-st-michael, st-matthias, st-benedict*, st-mark, ss-philip-and-james, st-john-before-the-latin-gate, st-john-apostle (Dec 27, distinct from st-john-before-the-latin-gate May 6), st-barnabas, nativity-of-st-john-the-baptist, ss-peter-and-paul, chair-of-st-peter-at-antioch, st-james-the-greater, st-martin-of-tours, holy-innocents, st-thomas-apostle, all-saints, all-saints-of-the-benedictine-order*, st-andrew, st-stephen-protomartyr, ss-simon-and-jude, st-luke, st-matthew, st-michael*, st-maurus-abbot*, ss-placid-and-companions*, st-scholastica, st-bartholomew, st-peter-ad-vincula, assumption, nativity-bvm, immaculate-conception.
* = propers: null in the saint's own record — needs collect + antiphon
authored too, not just the psalmody override, before any of this is useful.
Lauds office-bundle overrides (capitulum/responsory/hymn/versicle)
Same override id, separate files (lauds-capitulum-<id>.yml etc. in
data/propers/common/) — falls back to the plain weekday bundle when
absent, independently of whether the psalmody override exists. Right now
only christ-the-king has this — St. Lawrence's own day shows his
proper psalms but the plain ferial capitulum/hymn, which is inconsistent
with what the live engine actually shows for him (2 Cor 9:6, his own
hymn). Worth fixing even before tackling the other 32.
Benedictus antiphons for temporal (non-sanctoral) days
<id>-benedictus-antiphon.yml in data/propers/temporal/ — only
marian-saturday and christ-the-king exist. Every plain numbered Sunday
(52 of them) and feria is missing. Real practice has a proper antiphon
for every one of these; not started, and it's a big pull if done exhaustively.
Octave collects
getDayCollects skips a kind: 'octave' commemoration entirely — no
collect has ever been authored for an octave (the octave-reading pull only
ever sourced Matins content). Every octave commemoration currently
contributes zero text to Lauds'/Vespers' collect sequence.
Benedictus antiphons for every sanctoral/temporal entry (in progress)
Full scope, corrected after actually enumerating it (an earlier pass here
under-counted): 109 sanctoral entries have propers set (a saint id
that both a collect and an antiphon key off) and need a real Benedictus
antiphon; 94 more saints have propers: null (no collect or antiphon
authored, ever) and are a separate, bigger prerequisite — see below. Plus
~52 temporal entries (every numbered Sunday/feria) need one too.
Confirmed systemic bug, not just "unverified"
Every pre-existing <saint>-antiphon.yml file (there were 17, pulled during
the original sanctoral-content sessions, months before Lauds existed) was
sourced from the Roman/secular rite's raw [Ant 1], not a live Monastic
1617 query. St. Lawrence's turned out wrong this way; going back and
correcting 3 more (Chair of St. Peter at Rome, St. Agnes, Conversion of St.
Paul) while working January confirms it's the same mistake every time, not
a one-off — treat all pre-existing antiphon files as wrong until
re-verified against a live Monastic query, not just flagged for a look.
Method, worked out the hard way this pass
A saint's raw per-date file (Latin/SanctiM/MM-DD.txt, falling back to
Latin/Sancti/MM-DD.txt) is not a reliable shortcut — Monastic doesn't
always compute the Benedictus antiphon from a literal [Ant 1] field (major
feasts like Lawrence draw it from elsewhere entirely), and a shared date
with two co-assigned saints only has one real file, which may belong to
whichever saint reliably loses the day, not the one this app's calendar
means to ask about. What actually works: a live command=prayLaudes query
on the saint's own date, checked by eye against 2-3 different years for a
title that plausibly names the saint and stays consistent — full automation
kept producing false positives/negatives on exactly these edge cases, so
each result needs a human read, not just a script.
Also found along the way: this app's calendar and the reference engine's own calendar don't always agree on dates. St. Hilary of Poitiers is assigned Jan 23 here, but Divinum Officium's actual calendar has him on Jan 14 (confirmed: nothing resembling Hilary appears under Jan 23 in any tested year). Not fixed — flagged. Worth a pass at some point checking whether any other already-authored saints have a similar date mismatch, since it would affect their existing collects too, not just a pending antiphon.
Progress
- January (9 total): done. 8 antiphons authored/corrected (St. Marcellus
I, Chair of St. Peter at Rome, St. Paul the Hermit, Ss. Fabian and
Sebastian, St. Agnes, Ss. Vincent and Anastasius, Conversion of St. Paul,
St. John Chrysostom). St. Hilary of Poitiers left
missing, see the date mismatch above. - February-December (100 saints): not started.
- ~52 temporal entries: not started.
- 94
propers: nullsaints: not started — need a collect authored (a bigger, separate task) before an antiphon id even has anywhere to attach.
Mechanism not built at all
- Vespers (
src/hours/vespers.tsis still a stub). First/Second Vespers overlap (DayWinner.vespersFrom) already exists as a type but nothing populates it for Vespers itself yet (only Compline usesresolveEveningDayso far). - Matins (
src/hours/matins.tsis still a stub) — needs its own resolution path (reading-candidate pool, nocturn structure), not the static parts-array pattern the other hours use. - The "which Sunday governs this date" temporal-id algorithm — the fixed 23rd-Sunday-before-Advent rule, Epiphany Sundays transferring to the end of the liturgical year when they don't fit before Septuagesima, and the Saturday-before-Septuagesima edge case (also commemorate the 6th Sunday of Epiphany that day, in overflow years). Described in detail in an earlier conversation, explicitly tabled, not started. Distinct from Christ the King, which didn't need it (last-Sunday-of-October is direct date math).
- Easter's own octave — explicitly tabled ("easter needs a whole different discussion").
Known, deliberate simplifications (not bugs — working as designed)
getDayCollects: each collect in a multi-collect day renders as its own complete "Let us pray ... Amen." block, not the more compressed real form (one "Let us pray," only the last collect's doxology).- Suffrage omission only checks
omitOnDouble(+ Marian Saturday's own Cross/BVM filter, + Christ the King's explicit id check). Real seasonal suppression (e.g. during Advent/Lent) isn't modeled. data/calendar/temporal-categories.yml's season→category reconstruction is from general knowledge of the pre-1955 tradition, not independently verified against a primary source for every entry (flagged inline where it matters).- St. Michael's Sep 29 date — kept as a deliberate simplification despite
the live engine showing nothing there across 6 tested years (documented
in
st-michael.ymlandsanctoral-calendar.yml).