Build the Vespers ordo: mechanism, weekday content, seasonal content

Wires resolveOrdo('vespers', ...) end to end: opening versicle,
weekday psalmody (4 groups, handling the joined Ps 115+116 and the
split Ps 138/143 via a PsalmRef-like shape), the chapter/responsory/
hymn/versicle office bundle, Magnificat, day-collects — reusing
resolveEveningDay so First/Second Vespers precedence and the cross-day
commemoration (both added in the previous commit) apply automatically
— and a closing that reuses Lauds' own conclusio, since no distinct
"Vespera" version of that exact text turned up in the source.

getMagnificatAntiphon mirrors getBenedictusAntiphon's saint/temporal-id
lookup order, but also falls back to real content Benedictus has no
equivalent of: the classic ferial set that quotes the Magnificat's own
text in sequence across the week, with the correct Monastic-rubric
variant picked for Tue/Thu/Fri/Sat (two of those needed a fresh
translation where the Monastic Latin diverges from the given English
in content, not just wording).

Also includes Vespers' own seasonal content (Advent/Lent/Passiontide/
Paschaltide chapter+responsory+hymn+versicle), transcribed from the
same source blocks as the weekday content, with the Monastic-specific
hymn variants hand-applied from the source's substitution notation
against each base Roman text (one transcription slip caught and fixed
mid-pass: the Passiontide hymn's closing lines had been copied from
the Roman text instead of the Monastic one actually being
transcribed). Passiontide's own responsory/hymn correctly omit the
Gloria Patri, matching real rubric and the source data as given.

All weekday/seasonal content marked `draft`, not `verified` — read
directly from the reference source, not cross-checked against a live
rendering per day the way the psalmody was.

Six other hours' resolvePart switches needed the three new HourPart
kinds ('vespers-psalmody', 'vespers-office', 'magnificat') added to
their exhaustive not-used lists so they still typecheck; three
pre-existing tests assumed Vespers was still "coming soon" and are
updated to exercise Matins (still the genuine stub) instead.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-13 20:14:19 -04:00
parent 979bbe6aa4
commit de83786793
45 changed files with 1649 additions and 12 deletions
@@ -0,0 +1,23 @@
# Sourced from Divinum Officium's Monastic block ("[Responsory Feria
# Vespera_]", the non-Cistercian branch "[Responsory Feria Vespera]"
# resolves to — Psalterium/Special/Major Special.txt). Shared Mon-Fri.
# Not live-query-verified (see TODO.md) — read directly from source.
id: vespers-responsory-ferial
text:
la: |
R.br. Benedícam Dóminum * In omni témpore.
R. Benedícam Dóminum * In omni témpore.
V. Semper laus ejus in ore meo.
R. In omni témpore.
V. Glória Patri, et Fílio, * et Spirítui Sancto.
R. Benedícam Dóminum * In omni témpore.
en: |
R.br. I will bless the Lord * at all times.
R. I will bless the Lord * at all times.
V. His praise shall be always in my mouth.
R. At all times.
V. Glory be to the Father, and to the Son, * and to the Holy Ghost.
R. I will bless the Lord * at all times.
status:
la: draft
en: draft