Update TODO.md: close Lauds/Vespers bundle item, log Circumcision hymn fix
Deploy / deploy (push) Successful in 1m22s

The top-of-file priority summary still said 10 Common categories were
open, but the dated build log below it already showed all 11 done and
the Matins hymn gap closed to match, both from the prior session -- the
summary had drifted out of sync. Also logs today's Circumcision hymn fix.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014axryJBrRswYh2niA7WCUc
This commit is contained in:
2026-08-26 16:47:28 -04:00
parent 4873c7a36a
commit 8b1c689269
+41 -7
View File
@@ -114,13 +114,16 @@ across every hour and content type in this app.
same stale mistake repeated six times — all six now added with real content; see "Our same stale mistake repeated six times — all six now added with real content; see "Our
Lady of the Snows added" and "Four more 'not modeled' fixed Lord's/BVM feasts added" Lady of the Snows added" and "Four more 'not modeled' fixed Lord's/BVM feasts added"
below. below.
- Lauds/Vespers chapter/responsory/hymn/versicle bundle (see "Lauds/Vespers chapter- - ~~Lauds/Vespers chapter/responsory/hymn/versicle bundle~~ — done (2026-08-26). Mechanism
responsory-hymn-versicle bundle" below): mechanism is now rank-agnostic (any sanctoral is rank-agnostic (any sanctoral winner falls back to their Common, not just duplex-majus+);
winner falls back to their Common, not just duplex-majus+); one category authored so far all 11 Common categories now have a real, live-verified bundle authored (see the dated log
(Common-of-a-Confessor-Not-Bishop, via St. Louis/St. Nicholas of Tolentino). The other 10 entries below, e.g. "Common-of-Several-Confessors Lauds/Vespers bundle authored — last
Common categories (Confessor-Pope, Confessor-Doctor, Virgin, Virgin-Martyr, Abbot, Holy Common category closed"), plus the individual proper-content fixes swept up alongside it
Woman, Widow, Angel, Evangelist, and the smaller one-off Commons) still fall back to the (Guardian Angels/Archangels reuse, Finding/Exaltation of the Holy Cross, Transfiguration,
plain seasonal/ferial default until their own bundle is authored. All Saints of the Benedictine Order). The same session also closed the *separate*
`resolveMatinsHymn` fallback chain's equivalent gap for every category/saint this pass
touched (see "Matins hymn gap closed for the same categories/saints" below) — Matins hymns
are a different mechanism from the Lauds/Vespers bundle and needed their own pass.
3. **Known, deliberate simplifications** — flagged as intentional, not a bug, no plan to 3. **Known, deliberate simplifications** — flagged as intentional, not a bug, no plan to
revisit unless priorities change: see "Known, deliberate simplifications" at the end of revisit unless priorities change: see "Known, deliberate simplifications" at the end of
@@ -3247,6 +3250,37 @@ poured out") — went through cleanly on the first attempt that way.
`npm test` (521 tests), `tsc --noEmit` both pass. `npm test` (521 tests), `tsc --noEmit` both pass.
### Circumcision's own Matins/Lauds/Vespers hymn authored (2026-08-26)
Closed the specific gap flagged in the Circumcision/Holy Name addition (memory
`vu-circumcision-holy-name-feasts`): Circumcision's rubric is "ex Sancti/12-25" (borrows
Christmas Day's own propers wholesale), but Christmas Day itself has no authored hymn files of
its own — Dec 25 doesn't resolve as its own winner id at all (`resolveTemporalId` maps every day
of Christmastide, Dec 25 included, to `christmas-octave-sunday` — a separate, larger, still-open
gap, see `day-label.test.ts`'s own comment on this). Rather than take on that larger mechanism
change, authored the hymn content directly under Circumcision's own id, which already wins the
day and already has its own Lauds/Vespers bundle (`lauds-capitulum-circumcision.yml` etc. were
already authored — only the hymn piece was missing):
- `lauds-hymn-circumcision.yml`: a direct copy of the already-verified `lauds-hymn-christmas-
octave-sunday.yml` text ("A solis ortus cárdine") — Christmas Day's own `[Hymnus Laudes]` is
byte-identical to the Octave Sunday's in the source. The Monastic form is only a handful of
word substitutions against this same text — not modeled, same "known, deliberate
simplification" as the doxology-substitution-only hymns below.
- `vespers-hymn-circumcision.yml` / `matins-hymn-circumcision.yml`: the Monastic Vespers/Matins
hymn is a genuinely separate text from the secular one here — "Christe Redémptor ómnium"
(`[HymnusM Vespera]`, Sancti/12-25.txt), not "Jesu, Redémptor ómnium" — same house preference
already applied to `vespers-hymn-advent.yml`'s "Cónditor alme síderum". No English exists
anywhere in the reference engine for this Monastic variant (only for the secular text, whose
wording differs enough stanza-by-stanza that reusing it outright would misrepresent the
Latin), so the English is a new translation here, `draft` — Latin is `verified` (sourced
directly). Closing doxology stanza reuses this project's already-verified standard English for
"Glória tibi Dómine, Qui natus es de Vírgine..." (`lauds-hymn-holy-innocents.yml`).
Verified end-to-end with a runtime smoke test resolving Matins/Lauds/Vespers for 2027-01-01
through the real `resolveOrdo` mechanism, confirming the hymn part is no longer `missing` in
either language. `npm test` (521 tests), `tsc --noEmit` both pass.
## Known, deliberate simplifications (not bugs — working as designed) ## Known, deliberate simplifications (not bugs — working as designed)
- `getDayCollects`: each collect in a multi-collect day renders as its own - `getDayCollects`: each collect in a multi-collect day renders as its own