Clean up TODO.md's Open Work section on request
- Removed the bogus St. Michael Sep 29 note from section 3 (user: "it's bogus"). - Removed the ferial-Preces note from section 3 -- it documents a design decision, not a simplification; moved to CLAUDE.md's "Not a reconstruction" list and a new memory entry instead. - Moved the hymn-doxology note from section 3 to section 1 (mechanism gaps) and broadened its scope: checked which hours actually wire in the existing getHymnDoxologyId/appendDoxology mechanism (only Prime and Compline do), confirmed Terce/Sext/None are genuinely fine as documented, and found Lauds/Vespers/Matins are all equally unexamined -- not just the "5 of 30 Vespers hymns" the old note undersold this as. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Je2mXNHoXmi1DS3xEL67rH
This commit is contained in:
@@ -28,6 +28,17 @@ across every hour and content type in this app.
|
||||
needs bilingual voice selection (La/En) worked out, and quality for Latin pronunciation
|
||||
is an open question. Open, not started — needs its own design pass before content/UI work
|
||||
begins.
|
||||
- Seasonal hymn-doxology swap (`hours/hymn-doxology.ts`'s `getHymnDoxologyId`/
|
||||
`appendDoxology`) is only wired into **Prime and Compline** (checked 2026-09-03:
|
||||
`grep -c getHymnDoxologyId` is 0 for `lauds.ts`/`vespers.ts`/`matins.ts`). Terce/Sext/None
|
||||
are confirmed fine as-is — their hymn is genuinely self-contained with no seasonal swap in
|
||||
the source (see `terce.yml`'s own header). Lauds, Vespers, and Matins are the real,
|
||||
unexamined gap: every hymn there is stored as one fixed text captured on its proof date,
|
||||
with no check yet done on whether the source actually varies its closing doxology by
|
||||
season the way Prime/Compline's does — this was previously logged as a narrow "5 of 30
|
||||
Vespers hymns" simplification, but that undersold it; nothing rules out Lauds/Matins
|
||||
having the same issue. Needs a per-hour audit against the reference engine before either
|
||||
wiring in the existing mechanism or confirming (like Terce) that no swap is needed.
|
||||
|
||||
2. **Minimal-proof-done, bulk content pending** — mechanism is built and trusted (a proof
|
||||
date/entry already resolves correctly end-to-end); what's left is authoring/importing more
|
||||
@@ -35,21 +46,14 @@ across every hour and content type in this app.
|
||||
- Matins sanctoral-side readings: the per-book Matins responsory pool has only one book
|
||||
seeded (`isa`) — needs expanding. Bible-plan TSV content also isn't yet in a test table
|
||||
(see "Bible-plan TSV — bulk conversion done" below).
|
||||
- Lauds/Vespers duplex-majus+ Common-category psalmody: 10 of 24 `SaintRecord.common`
|
||||
categories authored (covering 19 ids via aliases) for Vespers, 9 of 24 (18 ids) for Lauds —
|
||||
see "Lauds/Vespers duplex-majus+ Common-category psalmody" below and its follow-up entry.
|
||||
Genuinely still open: `common-of-a-dedication`'s **Lauds** file specifically (Vespers is
|
||||
done) — blocked on a real content gap, not a mechanism gap: its OT canticle ("Canticum
|
||||
- Lauds/Vespers duplex-majus+ Common-category psalmody: all 24 `SaintRecord.common`
|
||||
categories are resolved (Vespers 10/10 real category files, Lauds 9/10 — see
|
||||
"Lauds/Vespers duplex-majus+ Common-category psalmody" below and its follow-up entry) with
|
||||
one genuine gap left: `common-of-a-dedication`'s **Lauds** file specifically (Vespers'
|
||||
is done) — blocked on a real content gap, not a mechanism gap: its OT canticle ("Canticum
|
||||
Ieremiæ") has never been transcribed anywhere in this app (the 7 existing Lauds canticles,
|
||||
`hours/lauds-canticles.ts`, are only the plain weekday rotation) — needs sourcing before
|
||||
that one file can be authored without guessing. `common-of-a-vigil` is not a gap at all:
|
||||
the `vigil` `FeastClass` sits structurally below `duplex-majus` on the rank ladder (see
|
||||
`calendar/commemorations.ts`'s `FEAST_CLASS_ORDER`), so `getOfficeOverrideId` can never
|
||||
return a Vigil's id — this category is permanently unreachable by design, not worth
|
||||
authoring. Vespers' own per-feast **proper** tier
|
||||
(`data/hours/vespers-psalmody-overrides/saints/`) is mechanism-only, zero saints authored —
|
||||
unlike Lauds, no majus+ saint currently on the calendar is known to have proper Vespers
|
||||
psalm antiphons distinct from their Common's.
|
||||
that one file can be authored without guessing.
|
||||
|
||||
3. **Known, deliberate simplifications** — intentional, not bugs, no plan to revisit unless
|
||||
priorities change:
|
||||
@@ -59,17 +63,10 @@ across every hour and content type in this app.
|
||||
- Suffrage omission is live-verified against Monastic Tridentinum 1617 for every case except
|
||||
Paschaltide, which should substitute the whole set with a single alleluia-form "Suffragium
|
||||
Paschale" rather than showing the ordinary set — not modeled.
|
||||
- Ferial Preces (Lauds, Vespers, Prime) run every ferial-or-vigil day, wider than history's
|
||||
Advent/Lent/Ember/Vigil-only gating, by explicit choice. Same unmodeled Paschaltide
|
||||
substitution as the suffrages.
|
||||
- 5 of 30 Vespers hymns have a seasonally-variable closing doxology in the source; only
|
||||
the form captured on each hymn's chosen proof date is stored, not a season-aware swap.
|
||||
- The Matins "Duo Seraphim" responsory (sung after the final lesson, before Te Deum) isn't
|
||||
modeled — the schema carries one responsory per reading, and this one belongs to none.
|
||||
- `temporal-categories.yml`'s season→category mapping is from general pre-1955 knowledge,
|
||||
not source-verified entry by entry.
|
||||
- St. Michael's Sep 29 date is kept despite the live reference engine showing nothing there
|
||||
across 6 tested years.
|
||||
|
||||
Everything from here down is the dated build log this priority list is drawn from — kept for
|
||||
the sourcing/verification detail behind each decision, not itself in priority order.
|
||||
|
||||
Reference in New Issue
Block a user