Model Trinity Sunday as a real feast, not just a cosmetic label

Trinity Sunday wasn't modeled at all: getDayLabel had a purely
cosmetic "Trinity Sunday" label overlay for the Sunday after
Pentecost, but resolveTemporalId just fell back to post-pentecost-01
(ordinary-sunday category), so any Duplex+ saint assigned that date
(e.g. the Queenship of the BVM, fixed May 31) won outright, real
Trinity Sunday content never appearing anywhere.

Added a real temporal-feasts/trinity-sunday.yml record (Easter+56,
Duplex II. classis, live-verified). Per direct instruction,
unconditional: true (same shape as christ-the-king.yml) -- a
principal Sunday shouldn't lose a same-rank fixed-date collision, and
the one real collision case (Queenship of the BVM) isn't
independently verifiable against Monastic 1617 at all (that calendar
doesn't carry the Queenship feast -- May 31 there is St. Petronilla
instead).

Authored the full office and registered trinity-sunday in
ALWAYS_OVERRIDE_TEMPORAL_IDS -- the same generic mechanism already
built for the Pentecost-cluster fix, no new code needed: collect,
Benedictus/Magnificat antiphons, Matins hymn ("Summæ Deus cleméntiæ"),
Lauds/Vespers chapter (shared, Rom 11:33) and hymn (shared, "O lux
beáta Trínitas", already the pre-Urban VIII text), each hour's own
distinct responsory/versicle -- all live-verified 2026-05-31.

Fixed 3 pre-existing tests written around the old cosmetic-label
behavior, two of which had never-verified guesses baked in as if
correct: day-label.test.ts's "names the anchor day itself" test and
its "outranks an active octave" test (was asserting "Duplex I Class",
a guess -- the real live-verified rank is Duplex II);
transfer.test.ts's St. Felix I test.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AGjUyhUZJaSjiniEmnLdak
This commit is contained in:
2026-09-04 14:50:31 -04:00
parent 2a611cc17b
commit aba89dc250
15 changed files with 387 additions and 32 deletions
@@ -0,0 +1,65 @@
# Trinity Sunday's own Lauds hymn ("O lux beáta Trínitas") — identical
# text to Vespers' own (vespers-hymn-trinity-sunday.yml). Already the
# pre-Urban VIII text (this project's own standing preference — see
# CLAUDE.md) as the reference source's own default, not a separate
# choice made here. Live-verified against Divinum Officium (Monastic
# Tridentinum 1617), Lauds live query, 2026-05-31 (Trinity Sunday
# itself). Self-contained — its own final stanza is a fixed, unique
# doxology, not the shared weekday one.
id: lauds-hymn-trinity-sunday
text:
la: >-
O lux beáta Trínitas,
Et principális Únitas,
Jam sol recédit ígneus,
Infúnde lumen córdibus.
Te mane laudum cármine,
Te deprecémur véspere:
Te nostra supplex glória
Per cuncta laudet sǽcula.
Deo Patri sit glória,
Ejúsque soli Fílio,
Cum Spíritu Paráclito,
Et nunc, et in perpétuum. Amen.
en: >-
O Trinity of blessed Light,
O Unity of sovereign might,
as now the fiery sun departs,
shed Thou Thy beams within our hearts.
To Thee our morning song of praise,
to Thee our evening prayer we raise;
Thee may our glory evermore
in lowly reverence adore.
All laud to God the Father be;
all praise, Eternal Son, to Thee;
all glory, as is ever meet,
to God the Holy Paraclete. Amen.
status:
la: verified
en: verified