compline: build the full hour, sharing Prime's resolver helpers
Deploy / deploy (push) Successful in 38s

Ordo is Monastic 1617 as a base, with deliberate Tridentine 1906
additions: the "In manus tuas" short responsory, the Nunc Dimittis
with its "Salva nos" antiphon, the fuller Preces (Monastic's own is
shorter), and Lent's "Christe, qui lux es et dies" hymn replacement
(English translation marked draft, pending a real historical one).
Psalms 4, 90, 133 are fixed daily with real verified text, unlike
Prime's weekday-rotated psalms.

The closing Marian antiphon now picks Alma Redemptoris Mater / Ave
Regina Caelorum / Regina Caeli / Salve Regina by real season, using
the calendar work from the previous commit — except Ave Regina
Caelorum's own window (Candlemas through the day before Maundy
Thursday) doesn't align to any single season value, so that one case
checks the real date directly instead of going through the by-season
table.

resolve-common.ts extracts the resolve/status/doxology/antiphon
helpers Prime already had into something Compline can share; a few
propers files lose their "prime-" prefix now that both hours use them.
This commit is contained in:
2026-08-10 05:27:40 -04:00
parent 67037469fc
commit ec448bc35b
41 changed files with 1270 additions and 93 deletions
+62
View File
@@ -0,0 +1,62 @@
# Ordo verified against Divinum Officium (Monastic Tridentinum 1617 *and*
# Tridentine 1906), 2026-08-25 runs — see src/hours/compline.ts for how
# each part resolves.
#
# Base is Monastic 1617, per explicit choice, with several deliberate
# additions from Tridentine 1906 (Monastic Compline has none of these):
# - The "In manus tuas" short responsory, right after the capitulum.
# - The Nunc Dimittis, framed by its "Salva nos" antiphon, right after
# the responsory's versicle.
# - The fuller Tridentine Preces, in place of Monastic's own shorter form
# (which drops the "Benedíctus es, Dómine..." triple exchange and the
# "Miserére nostri, Dómine.../Fiat misericórdia..." exchange — both
# marked "(sed rubrica ^Monastic omittitur)" in the source). Compline
# has no separate ferial/Sunday Preces text the way Prime does — one
# form, gated only by omitOnDouble (see calendar/isDoubleOrHigher).
# - Lent's distinct hymn replacement ("Christe, qui lux es et dies") —
# see hours/compline.ts's 'hymn' case for a caveat on how confident to
# be that this actually triggers automatically in real practice.
#
# Unlike Prime, Compline's psalms (4, 90, 133) are fixed every day — no
# weekday rotation — and have no antiphon of their own at all in ferial use.
# The capitulum and Preces are likewise not split Sunday-vs-ferial.
#
# The closing Marian antiphon is genuinely seasonal in real practice (Alma
# Redemptoris Mater / Ave Regina Caelorum / Regina Caeli / Salve Regina) —
# see hours/marian-antiphon.ts.
id: compline
parts:
- kind: preces
textRef: { source: common, id: compline-incipit }
- kind: lesson
textRef: { source: common, id: compline-lectio-brevis }
label: Short Reading
- kind: preces
textRef: { source: common, id: lesson-close }
- kind: preces
textRef: { source: common, id: compline-confiteor }
- kind: opening-versicle
- kind: psalm
psalmNumber: 4
- kind: psalm
psalmNumber: 90
- kind: psalm
psalmNumber: 133
- kind: hymn
textRef: { source: common, id: compline-hymn }
- kind: chapter
textRef: { source: common, id: compline-capitulum }
- kind: responsory
textRef: { source: common, id: compline-responsory }
- kind: versicle
textRef: { source: common, id: compline-versicle }
- kind: nunc-dimittis
- kind: preces
textRef: { source: common, id: compline-preces }
omitOnDouble: true
- kind: prayer
textRef: { source: common, id: compline-collect }
- kind: preces
textRef: { source: common, id: compline-conclusio }
label: Conclusion
- kind: marian-antiphon