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,64 @@
# Sourced from Divinum Officium's Monastic block ("[HymnusM Day4 Vespera]",
# Psalterium/Special/Major Special.txt): five substitutions against the
# base "[Hymnus Day4 Vespera]" text ("fértili natos aqua" -> "ex aquis
# ortum genus"; "relínquis" -> "remíttis"; "érigens" -> "írrigans";
# "répleant" -> "rápiant"; "éfferat" -> "levet"), applied by hand here —
# not live-query-verified (see TODO.md). English has no separate Monastic
# variant in the source.
id: vespers-hymn-thursday
text:
la: |
Magnæ Deus poténtiæ,
Qui ex aquis ortum genus
Partim remíttis gúrgiti,
Partim levas in áëra.
Demérsa lymphis ímprimens,
Subvécta cælis írrigans:
Ut stirpe ab una pródita,
Divérsa rápiant loca:
Largíre cunctis sérvulis,
Quos mundat unda Sánguinis,
Nescíre lapsus críminum,
Nec ferre mortis tǽdium.
Ut culpa nullum déprimat:
Nullum levet jactántia:
Elísa mens ne cóncidat:
Eláta mens ne córruat.
Præsta, Pater piíssime,
Patríque compar Únice,
Cum Spíritu Paráclito
Regnans per omne sǽculum.
Amen.
en: |
O sovereign Lord of nature's might,
Who bad'st the water's birth divide;
Part in the heavens to take their flight,
And part in ocean's deep to hide;
These low obscured, on airy wing
Exalted those, that either race,
Though from one element they spring,
Might serve thee in a different place.
Grant, Lord, that we thy servants all,
Saved by thy tide of cleansing blood,
No more 'neath sin's dominion fall,
Nor fear the thought of death's dark flood!
Thy varied love each spirit bless,
The humble cheer, the high control;
Check in each heart its proud excess,
But raise the meek and contrite soul!
This boon, O Father, we entreat,
This blessing grant, Eternal Son,
And Holy Ghost, the Paraclete,
Both now, and while the ages run.
Amen.
status:
la: draft
en: draft