Compare commits

...

32 Commits

Author SHA1 Message Date
will f8bd7f3140 Dedupe Matins nocturn readings pooled from two ids on the same day
Deploy / deploy (push) Successful in 2m12s
post-pentecost-15 and month-week-092 land on the same Sunday
(2026-09-06) and independently reuse the identical Gregory the Great
Moralia in Job excerpt -- a real duplication in the reference engine's
own Tempora files, not a vu authoring error. buildReadingPool pooled
both ids and rendered the reading twice; now dedupes by text.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MKC2QQGLYo2UTiDjDyWEkW
2026-09-05 07:22:53 -04:00
will 6ecd1485c4 Add jdc (Judges) responsory, composed from Gideon's cry at Jdc 7:17-20
Deploy / deploy (push) Successful in 1m52s
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MKC2QQGLYo2UTiDjDyWEkW
2026-09-05 07:14:07 -04:00
will 9e66ad10e4 Add josue (Joshua) responsory, composed from Josue 24:15-16
Deploy / deploy (push) Successful in 1m56s
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MKC2QQGLYo2UTiDjDyWEkW
2026-09-05 07:04:25 -04:00
will dcea19015f Add 1esdr (Ezra) responsory, composed from 1 Esdr 8:21-23
Deploy / deploy (push) Successful in 1m56s
No liturgical precedent exists for this book; the verse's antithesis
("the hand of our God is upon all them that seek him in goodness: and
his power and strength, and wrath upon all them that forsake him") is
reordered so the hopeful clause repeats after the V., not the wrath
clause. Closes the per-book pool at 68/72 -- the last 4 have no
sourceable material at all.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ALE7phKTAnmRWvWMU9dZa7
2026-09-05 06:39:18 -04:00
will c98abaebb9 Drop parenthetical gloss from Nehemiah responsory V.
Deploy / deploy (push) Successful in 2m12s
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ALE7phKTAnmRWvWMU9dZa7
2026-09-05 06:24:21 -04:00
will 1d566ec6e0 Add 2esdr (Nehemiah), correcting a prior mis-diagnosis
Deploy / deploy (push) Successful in 2m2s
Nehemiah was wrongly bundled in with ezra's "ambiguous, not acted on"
reasoning and left unseeded. It actually has a real, unambiguous
citation in the Missa (Ember Wednesday of September's Lectio/Communio,
Neh 8:1-10) that a prior pass never checked. R. from v.3, V. from v.9,
both from that accented Missa Lectio.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ALE7phKTAnmRWvWMU9dZa7
2026-09-05 06:14:20 -04:00
will c2a15d94dd Add ruth -- composed with no liturgical precedent at all
Deploy / deploy (push) Successful in 1m51s
User-directed: compose Ruth's own responsory from Ruth 1:16-17 ("thy
people shall be my people, and thy God my God") on the verse's own
merit. Unlike deut/rom/bar, this text has no liturgical precedent
anywhere in the reference source (no Nuptial Mass file even exists
there) -- flagged that distinction before proceeding; user confirmed
explicitly.

Since data/scripture/ruth-1.yml (the usual bulk import) carries no
accents, the Latin was hand-accented rather than transcribed, but
cross-checked word-by-word against already-accented occurrences of
the same words elsewhere in the corpus rather than guessed freehand.

66 of 72 bible-plan books now seeded. npm test (2029 passed) and
tsc --noEmit pass; live-verified through getBiblePlanReadings.
Canonical-key audit re-run, clean.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AGjUyhUZJaSjiniEmnLdak
2026-09-04 22:01:15 -04:00
will 3ee87098c0 Note user's explanation for the Ezra Introit citation mismatch
Deploy / deploy (push) Successful in 1m53s
Vulgate "Esdras" numbering is genuinely ambiguous: 1/2 Esdras is
canonical Ezra/Nehemiah, but there's also a separate non-canonical
Greek "Esdras A" (the Vulgate appendix's own 3 Esdras, sometimes
itself called "1 Esdras" in Septuagint/Orthodox numbering) -- a
different text this project has never digitized. The reference
engine's own citation never disambiguates, so this can't be
confirmed, but it cleanly explains why the Pasc7-2.txt Introit's
"Esdr 2:36-37" citation doesn't match our canonical Ezra text.
Practical outcome unchanged (ezra stays unseeded), now documented
with a clear reason rather than an open mystery.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AGjUyhUZJaSjiniEmnLdak
2026-09-04 21:51:06 -04:00
will e52c285f99 Add bar (Baruch), found in the Missa propers, not the Horas
Deploy / deploy (push) Successful in 1m54s
User pointed to missa/Latin/Tempora/Quad6-6.txt -- the Mass propers, a
directory tree this whole responsory search had never once checked
(everything so far searched horas/, the Divine Office proper). The
Easter Vigil Mass's own fourth prophecy ([Proph_Baruch3], Bar 3:9-38,
"Audi, Israel, mandata vitae") is genuine, real, accented liturgical
Latin -- just never part of Matins at all.

Composed bar the same way as deut/rom: built from that prophecy's own
climactic close ("Hic est Deus noster... Post haec in terris visus
est, et cum hominibus conversatus est" -- read at the Vigil because
early exegetes saw "seen upon earth, and conversed with men" as a
prophecy of the Incarnation).

Extended the Missa check to the other 6 already-absent books too --
genuinely zero citations anywhere. Ezra turned up one thin, ambiguous
Missa Introit citation that doesn't match its own cited verse; left
unseeded rather than force it.

65 of 72 bible-plan books now seeded -- this closes the per-book
responsory pool. npm test (2029 passed) and tsc --noEmit pass;
live-verified through getBiblePlanReadings. Canonical-key audit
re-run, clean.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AGjUyhUZJaSjiniEmnLdak
2026-09-04 21:36:48 -04:00
will 2b7495fc91 Close the Matins per-book responsory pool: rom is the last book
Deploy / deploy (push) Successful in 1m53s
Composed rom from Rom 13:11-12 ("the night is past, the day is at
hand... let us cast off the works of darkness, and put on the armour
of light") -- the standing year-round ferial Lauds Capitulum, also
used at Advent I's own Capitulum. Genuine accented Vulgate/
Douay-Rheims text, never historically assembled into its own Matins
responsory, same approach as deut. User-confirmed before adding.

64 of 72 bible-plan books now seeded -- every book actually used in
the bible-plan has a real responsory, whether transcribed (62) or
composed from genuine already-liturgical text (deut, rom). The
remaining 8 have no citation anywhere in the source at all; there's
nothing further to check.

npm test (2029 passed) and tsc --noEmit pass; live-verified through
getBiblePlanReadings. Canonical-key audit re-run, clean.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AGjUyhUZJaSjiniEmnLdak
2026-09-04 21:14:03 -04:00
will afa187032b Add deut, this pool's first genuine original composition
Deploy / deploy (push) Successful in 1m55s
User found a lead reading a patristic homily (English/Sancti/01-02.txt)
that quotes Deut 32:11's eagle image. Deuteronomy has no historical
Matins responsory anywhere in the reference source, so unlike every
other entry in this pool, this one is composed rather than
transcribed: a real R./V. pairing built from the Canticle of Moses'
own genuine verses (Latin/Psalterium/Psalmorum/Psalm226.txt, sung at
Lauds), verified against data/scripture/deut-32.yml to confirm the
citation is standard verse 11 and not the breviary's own internal
chant-verse-numbering (32:15-16) for the same text. Documented plainly
in the data file's own header as vu's composition, not presented as
historically attested.

63 of 72 bible-plan books now seeded. npm test (2029 passed) and
tsc --noEmit pass; live-verified through getBiblePlanReadings.
Canonical-key audit re-run, clean.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AGjUyhUZJaSjiniEmnLdak
2026-09-04 20:06:48 -04:00
will d39359e5ac Carry over unreached Advent bible-plan readings into Christmastide
Deploy / deploy (push) Successful in 1m55s
Advent's own reading plan (advent-1-sunday through advent-4-saturday,
28 rows for a full 4-week Advent) is always longer than real Advent
runs. Advent's last real day is always Dec 23 (Dec 24 is the Vigil of
Christmas's own temporal id), while Advent 1 Sunday lands anywhere
from Nov 27 to Dec 3 -- even the longest possible Advent is one row
short of the full plan, and the shortest is a whole week short. Every
year, at least the plan's last row never reaches its own natural date.

Added adventCarryoverReadings to propers/bible-plan.ts: whatever
doesn't land on its own natural date now carries forward one reading
per day starting Christmas Day, pooled alongside whatever
Christmastide's own calendar-dated rows already have -- never
replacing them. This is the one place in bible-plan.ts that needs
real calendar-year awareness (calendar/temporal.ts's adventStart).

4 new tests covering the shortest (2028) and a long (2027) Advent,
pooling behavior, and the Dec-24 boundary. npm test (2029 passed) and
tsc --noEmit pass.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AGjUyhUZJaSjiniEmnLdak
2026-09-04 19:17:24 -04:00
will 52052d737e Find Canticles, Leviticus, and Numbers in Sancti, not Tempora
Deploy / deploy (push) Successful in 1m51s
User pushback on Canticles being "confirmed absent" -- right instinct
to check the Commune files, which redirected productively: the same
Lectio-citation survey run against Sancti (individual saint/feast
files) rather than just Tempora found real, genuine content:

- cant: the Visitation (July 2) reads straight through the Song of
  Songs, blending it with the Visitation narrative itself.
- lev: the Purification of the BVM's own Leviticus purification-law
  reading is the feast's actual reason for being.
- num: the Exaltation of the Holy Cross's bronze-serpent/Cross
  typology (Num 21:6-9).

Re-checked the other 9 already-"confirmed absent" books against
Sancti too -- still genuinely absent, no alternate abbreviation
missed.

62 of 72 bible-plan books now seeded -- the real final count. Only
Romans and 9 books with no citation anywhere (Tempora or Sancti)
remain. npm test (2025 passed) and tsc --noEmit pass; live-verified
through getBiblePlanReadings. Canonical-key audit re-run, clean.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AGjUyhUZJaSjiniEmnLdak
2026-09-04 19:03:01 -04:00
will e96d201346 Close out the Matins per-book responsory pool: 59 of 72 books
Deploy / deploy (push) Successful in 1m49s
Asked to translate the 15 remaining "real Latin, no English" books.
None needed translation: the whole post-Epiphany reading season
(Galatians/Ephesians/Philippians/Colossians/1-2 Timothy/Titus/
Philemon/2 Thessalonians) turns out to have no distinct responsory
content of its own -- every feria file references 2 Corinthians' own
week (already bilingual) by weekday position. Same for 2 Peter/2-3
John/Jude, which reference Ascension Day's own responsories (act).

Only Romans genuinely has nothing: every citing file borrows an
unrelated feast's own proper responsory (Circumcision, Christmas Day,
a January saint), never anything Romans-specific. Left unseeded --
using one would repeat the Sacred Heart/Jeremiah mismatch this pool
already avoids elsewhere.

59 of 72 books now seeded -- every book with any usable Latin content
in the source at all. The remaining 13 (Romans plus 12 books with no
citation anywhere) are the real, final gap.

Ran the full canonical-key audit again; confirmed clean. npm test
(2025 passed) and tsc --noEmit pass; live-verified through
getBiblePlanReadings.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AGjUyhUZJaSjiniEmnLdak
2026-09-04 18:50:56 -04:00
will 1867f73080 Add R./V./repeat labels to per-book responsory pool output
Deploy / deploy (push) Successful in 1m54s
getResponsoryForBook's joinResponsory concatenated the r/v text with a
bare newline and no "R."/"V." labels at all, unlike every other
responsory source in the app (octave-readings' own responsory field,
nocturn-readings' inline responsory, and the new per-Common-category
pool) which all include the full "R. ...\n* ...\nV. ...\nR. ..."
convention. User caught this looking at the rendered Judith entry.

Fixed by computing the repeat line from the existing "*" marker
already present in the pool's r text. npm test (2025 passed) and
tsc --noEmit pass.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AGjUyhUZJaSjiniEmnLdak
2026-09-04 18:44:38 -04:00
will ff87aff240 Add 1 Cor, 2 Cor, 1 Peter, 1 John; fix a repeated canonical-key bug
Deploy / deploy (push) Successful in 1m52s
Confirmed Leviticus/Numbers/Deuteronomy genuinely absent from Tempora
(precise awk-based survey, not a loose grep). Added 1cor (Maundy
Thursday's own Institution-narrative Nocturn 3), 2cor (Epiphany II
Sunday), 1pet and 1joan (Paschaltide Sunday sets already partly used
for jac/jas).

Caught a repeat of the same canonical-key mistake from the previous
commit: the jas entry should have been keyed jac (BOOK_ALIASES maps
jas->jac). Fixed, and this time audited every single key in the file
programmatically against BOOK_ALIASES rather than just the keys
touched this pass -- confirmed clean.

45 of 72 books now seeded. npm test (2025 passed) and tsc --noEmit
pass; live-verified through getBiblePlanReadings.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AGjUyhUZJaSjiniEmnLdak
2026-09-04 18:31:13 -04:00
will c32fabb54d Add Acts, Apocalypse, James, Hebrews, and the 4 Gospels to responsory pool
Deploy / deploy (push) Successful in 1m48s
Surveyed Tempora precisely with an awk one-liner reading the line after
every [LectioN] tag (two lines deep for Gospel citations) rather than a
loose grep-for-book-prefix, which had already produced one false
positive this session.

Added act (Ascension Day's own Matins), marc (Easter Sunday's own),
heb (Good Friday's own Tenebrae), apoc (Easter III Sunday), jas
(Easter IV Sunday), and luc/matt/joan (Advent I/II/III Sundays, one
entry each). 41 of 72 bible-plan books now seeded.

Confirmed no English exists anywhere in the reference engine for
Galatians/Ephesians/Philippians/Colossians/Titus/Philemon or Romans --
real Latin exists, no bilingual source; left unseeded.

npm test (2025 passed) and tsc --noEmit pass; live-verified through
the real getBiblePlanReadings call chain (not a direct
getResponsoryForBook call, per the previous commit's lesson).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AGjUyhUZJaSjiniEmnLdak
2026-09-04 18:20:44 -04:00
will f0b771a02a Fix real correctness bug: pool keys must match canonical book form
Deploy / deploy (push) Successful in 1m50s
bible-plan.ts normalizes a reading's book through canonicalBook()
(scripture/index.ts's BOOK_ALIASES map) before calling
getResponsoryForBook -- so the pool must be keyed by the canonical
form, not the bible-plan YAML's own raw book code. 12 of the 33 keys
seeded earlier today used the raw form and would have silently
resolved to undefined in the real app despite passing an initial
"live verification" that called getResponsoryForBook directly
(bypassing the normalization the real call site always applies).

Renamed: 1macc->1mach, 2macc->2mach, 1sam->1reg, 2sam->2reg,
1kgs->3reg, 2kgs->4reg, jdt->jdth, zeph->soph, obad->abd, jonah->jon,
hos->osee, mic->mich.

Re-verified through the actual getBiblePlanReadings call chain this
time (2026-06-04, post-pentecost-01/Thursday, "1sam 9-10" now
resolves a real responsory). npm test (2025 passed) and
tsc --noEmit pass.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AGjUyhUZJaSjiniEmnLdak
2026-09-04 18:11:36 -04:00
will 3b46a18d63 Add 14 more books to Matins responsory pool, fix 2 dropped entries
Deploy / deploy (push) Successful in 1m52s
User caught jdt (Judith) listed as unseeded despite having real
responsory content directly visible in the reference source -- and
already flagged present in this same session's own citation dump,
never followed up on. Self-audit after that catch found job had also
been extracted earlier this session but never committed to the file.

Added jdt, esth, job, eccl, hab, joel, zeph, obad, jonah, mal, hos, mic,
nah, and lam (Maundy Thursday's own Tenebrae responsories). 33 of 72
bible-plan books now seeded, up from 19.

npm test (2025 passed) and tsc --noEmit pass; live-verified via
getResponsoryForBook resolving real text for every new key.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AGjUyhUZJaSjiniEmnLdak
2026-09-04 17:43:43 -04:00
will 816dcadf0d Fix wrong book-count estimate in Matins responsory pool notes (66 -> 72)
Deploy / deploy (push) Successful in 1m52s
"~66" was an eyeballed guess from a sort|uniq -c list, never actually
counted -- and coincidentally echoes the 66-book Protestant canon count,
a bad number to leave uncorrected in a Catholic office project's own
docs. The real count (grep -c distinct `book:` values across
data/hours/bible-plan/*.yml) is 72.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AGjUyhUZJaSjiniEmnLdak
2026-09-04 17:28:22 -04:00
will 7cee7a1e8a Fix Matins responsory extraction bug, unblock 8 more books
Deploy / deploy (push) Successful in 1m50s
The per-book pool extraction script only matched a bare [ResponsoryN]
tag, missing the reference engine's underscore-suffixed [ResponsoryN_]
template convention that holds the real text (a bare tag often just
@:-references it, alongside a Cistercian-rubric variant). This wrongly
made 1sam/2sam/1kgs/2kgs/2macc look untranslated in English.

Fixed the script and hand-followed @Tempora/X:ResponsoryN cross-file
references to add 1sam, 2sam, 1kgs, 2kgs, 2macc, zach, amos, and agg --
19 of ~66 bible-plan books now seeded (up from 11).

npm test (2025 passed) and tsc --noEmit pass; live-verified via
getResponsoryForBook resolving real text for every new key at every
pool index.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AGjUyhUZJaSjiniEmnLdak
2026-09-04 17:13:13 -04:00
will 91dcc2c972 Seed 8 more books in the Matins per-book responsory pool
Deploy / deploy (push) Successful in 1m59s
Added exod, prov, sir, sap, tob, ezek, dan, 1macc (11 of ~66 total now
seeded), each sourced from a genuine, non-overridden reference-engine
Tempora file with real bilingual Responsory text. sir/sap and dan reuse
prov's/ezek's own entries respectively, confirmed by the reference
engine's own week files @-referencing that same pool -- real evidence
this app's loose book-level responsory match is historically authentic,
not invented.

Skipped 1sam (macro-only responsory text, not worth resolving for one
book) and 2sam/1kgs/2kgs/2macc/zach/amos/agg (real Latin but no
reference-engine English translation at all).

npm test (2025 passed) and tsc --noEmit pass; live-verified via
getResponsoryForBook resolving real text for every new key.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AGjUyhUZJaSjiniEmnLdak
2026-09-04 16:59:50 -04:00
will a570266028 Add per-Common-category Matins responsory pool, expand per-book pool
Deploy / deploy (push) Successful in 1m52s
The per-book responsory pool (Nocturn 1 scripture readings) only had `isa`
seeded; the much bigger, previously untracked gap was that 272 of 355
nocturn-readings/*.yml files (Nocturn 2/3 patristic readings) had no
responsory at all. Added a sibling per-Common-category pool, sourced from
the reference engine's static Commune text files, covering all 19 of vu's
real `common:` category ids (several confirmed aliases of the same
underlying file). Wired into matins.ts's reading assembly as a fallback
when a reading has no proper responsory of its own. Also expanded the
per-book pool with `gen` and `jer`.

Live-verified end-to-end (St. Francis de Sales, Ss. Cornelius/Cyprian, Ss.
Euphemia/Lucy/Geminianus). npm test (2025 passed) and tsc --noEmit pass.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AGjUyhUZJaSjiniEmnLdak
2026-09-04 16:47:17 -04:00
will 2a98386bdd Log the Suffragium Paschale mechanism fix in TODO.md
Deploy / deploy (push) Successful in 1m52s
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AGjUyhUZJaSjiniEmnLdak
2026-09-04 15:37:59 -04:00
will 58b201dc23 Build the Paschaltide "Suffragium Paschale" mechanism
Throughout Paschaltide (Eastertide/Ascensiontide/Pentecost), two
things happen wherever they'd otherwise show: the ordinary
5-suffrage set (Cross/BVM/Joseph/Apostles/Peace) collapses into one
alleluia-form "Suffragium Paschale" (Lauds and Vespers each have
their own distinct antiphon here, unlike the ordinary suffrages,
which share identical text at both hours), and the ferial-Preces
litany drops entirely rather than being replaced. Live-verified
against the reference source's own [Suffragium] macro directly,
byte-identical between Monastic Tridentinum 1617 and Tridentine 1906.

Exported isPaschaltide(season) from resolve-common.ts (wraps the
pre-existing PASCHALTIDE_SEASONS set). resolveSuffrages gained a
third hourId parameter to pick the right antiphon; the Preces
omission is a small new check gated on the same isFerialOrVigil
predicate that already selects the ferial litany form.

Authored lauds-suffrage-paschale.yml and vespers-suffrage-
paschale.yml -- English on the Vespers antiphon is this project's own
translation (the reference engine leaves it untranslated) and marked
draft; everything else verified.

Closes the last item in TODO.md's "Mechanism gaps" priority tier.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AGjUyhUZJaSjiniEmnLdak
2026-09-04 15:37:53 -04:00
will b90789cab3 Log the Lent Vespers verification in TODO.md
Deploy / deploy (push) Successful in 1m50s
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AGjUyhUZJaSjiniEmnLdak
2026-09-04 15:12:11 -04:00
will 7551d205b7 Mark the rest of Lent's Vespers/Lauds hymn content verified
Same shape as the earlier Lauds capitulum/responsory/versicle fix
this session: real content, just never live-query-verified. Live-
verified Vespers' whole bundle (capitulum/responsory/hymn/versicle,
including the hymn's own claimed Monastic word-swap) against a plain
Lenten Wednesday (2026-03-04). Lauds' own hymn and both hours'
doxology-per-annum files were already seen live earlier the same
session (checking lauds-hymn-saturday.yml's real content against a
Lenten Ember Saturday) -- byte-identical, just needed the status
flipped. No more draft Lent content anywhere in this app.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AGjUyhUZJaSjiniEmnLdak
2026-09-04 15:12:04 -04:00
will 25dc73da1f Add Lent's still-draft Vespers/hymn content to the Open Work list
Deploy / deploy (push) Successful in 1m54s
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AGjUyhUZJaSjiniEmnLdak
2026-09-04 15:00:53 -04:00
will 4864992cc0 Log Ember recombine/Lent verification/Trinity Sunday fixes in TODO.md
Deploy / deploy (push) Successful in 1m54s
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AGjUyhUZJaSjiniEmnLdak
2026-09-04 14:50:39 -04:00
will aba89dc250 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
2026-09-04 14:50:31 -04:00
will 2a611cc17b Mark Lent's own Lauds capitulum/responsory/versicle verified
Not actually homeless, contrary to an earlier session's claim: these
3 files already had the real content (Isa 58:1 / "Ipse liberávit me"
/ "Ángelis suis"), just marked draft since never live-verified.
Live-verified against both a Lenten Ember Saturday (2026-02-28) and a
plain Lenten Wednesday (2026-03-04) -- identical, confirming this is
genuinely season-wide content, not weekday-varying.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AGjUyhUZJaSjiniEmnLdak
2026-09-04 14:50:08 -04:00
will 3d230b34f2 Recombine the remaining 5 Ember-day nocturn-readings files
Same fix as ember-september-friday.yml (already done): each file's
Lectio1-3 turned out to be one continuous, unbroken homily (Bede,
Gregory, or Ambrose's Commentary on Luke for the two Advent cases,
cross-referenced from the Annunciation's own Common and confirmed
contiguous by reading the source file directly), split only to fill
the fixed 3-lesson slot count. Recombined ember-september-wednesday/
-saturday and ember-advent-wednesday/-friday/-saturday into single
readings, keeping each one's first lesson's own responsory.

All 6 Ember days now recombined -- no remaining split-for-no-reason
readings in this family. Updated ember-days.test.ts's lesson-count
table accordingly.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AGjUyhUZJaSjiniEmnLdak
2026-09-04 14:49:59 -04:00
42 changed files with 3254 additions and 294 deletions
+701 -6
View File
@@ -19,16 +19,12 @@ across every hour and content type in this app.
1. **Mechanism gaps** — a real design/code piece not built yet, blocking any content pass on
it from starting:
- Paschaltide should substitute the ordinary suffrages/ferial-Preces set with a single
alleluia-form "Suffragium Paschale" — not modeled; the ordinary set is shown unchanged
throughout Paschaltide instead.
- (none currently open — the last one, Paschaltide's "Suffragium Paschale" substitution,
was closed 2026-09-04, see the dated log below)
2. **Minimal-proof-done, bulk content pending** — mechanism is built and trusted (a proof
date/entry already resolves correctly end-to-end); what's left is authoring/importing more
content in that same shape across the rest of the calendar:
- Matins sanctoral-side readings: the per-book Matins responsory pool has only one book
seeded (`isa`) — needs expanding. Bible-plan TSV content also isn't yet in a test table
(see "Bible-plan TSV — bulk conversion done" below).
- Lauds/Vespers duplex-majus+ Common-category psalmody: all 24 `SaintRecord.common`
categories are resolved (Vespers 10/10 real category files, Lauds 9/10 — see
"Lauds/Vespers duplex-majus+ Common-category psalmody" below and its follow-up entry) with
@@ -5566,3 +5562,702 @@ to 2026-09-07) and `tests/hours/vespers.test.ts`'s own St. Margaret of Scotland
also inside Corpus Christi's octave — its own title already anticipated this exact fix; updated its
assertions from the old "falls through to the plain ferial default" guess to the real, live-verified
Corpus Christi content). `npm test` (2025 passed) and `tsc --noEmit` both pass.
### Recombined the 5 remaining Ember-day nocturn-readings files (2026-09-04)
User asked "why only Wed/Sat in September?" after the earlier Ember-Friday recombine, then asked
for all the remaining smaller gaps to be closed. Checked the reference source directly for each of
`ember-september-wednesday`/`ember-september-saturday`/`ember-advent-wednesday`/`ember-advent-
friday`/`ember-advent-saturday` (all 5 still carried the original "genuinely distinct proper
responsory" split rationale) and confirmed all 5 are the same shape already fixed for Ember Friday:
one continuous, unbroken homily (Bede, Gregory, or — for the two Advent Wednesday/Friday cases —
Ambrose's Commentary on Luke, cross-referenced from the Annunciation's own Common,
`@Sancti/03-25:Lectio7/8/9`, confirmed contiguous by reading the source file directly), split only
to fill the fixed 3-lesson slot count. Recombined all 5 into single readings, same convention as
before (keep the first lesson's own responsory, drop the rest). Updated
`tests/calendar/ember-days.test.ts`'s lesson-count table (now 1 for all 6 Ember days, was a mix).
`npm test` (2025 passed) and `tsc --noEmit` both pass.
### Lent's own Lauds capitulum/responsory/versicle: not homeless after all (2026-09-04)
The "homeless Isa 58:1 / Ipse liberávit me / Ángelis suis" content flagged in an earlier entry
(believed to have no home after the Marian-Saturday/plain-ferial-Saturday content correction) turned
out to already have a real home: `lauds-capitulum-lent.yml`/`lauds-responsory-lent.yml`/
`lauds-versicle-lent.yml` already existed with this exact content, just marked `draft` (never
live-verified) rather than genuinely missing. Live-verified against both a Lenten Ember Saturday
(2026-02-28) and a plain Lenten Wednesday (2026-03-04) — identical, confirming this is genuinely
season-wide content (not weekday-varying) and correcting an earlier session's wrong "homeless" claim.
Marked all 3 files `verified`. (Vespers' own Lenten capitulum/responsory/versicle/hymn and both
hours' Lenten hymn-doxology-per-annum files are still `draft` — a separate, broader Lent-content
verification backlog noticed in passing, not fixed here, out of scope of what was specifically
flagged.)
### Trinity Sunday: a real feast, not modeled at all (2026-09-04)
A third "smaller gap" turned out much bigger on inspection: what had been described as a "Trinity
Sunday display gap" was actually a missing calendar mechanism. `getDayLabel` already had a purely
cosmetic "Trinity Sunday" label overlay for the Sunday after Pentecost, but nothing made that Sunday
actually *be* Trinity Sunday — `resolveTemporalId` just fell back to `post-pentecost-01`, an
`ordinary-sunday` category, so any Duplex+ saint assigned that date (e.g. the Queenship of the BVM,
1954, fixed May 31) won outright per the normal rule, with Trinity Sunday itself never appearing as
more than a commemoration or a cosmetic label. Live-verified against Divinum Officium (Monastic
Tridentinum 1617, 2026-05-31): the real occupant is "Festum Sanctissimæ Trinitatis, Duplex II.
classis" — one of the year's principal Sundays.
Added a real `data/calendar/temporal-feasts/trinity-sunday.yml` record (Easter+56, Duplex II.
classis). Per direct instruction, `unconditional: true` (same shape as `christ-the-king.yml`) —
Trinity Sunday always wins, since the one real collision case (the Queenship of the BVM, also Duplex
II classis, fixed May 31) isn't independently live-verifiable against the Monastic 1617 track at all
(that calendar doesn't carry the Queenship feast — May 31 there is St. Petronilla instead, confirmed
live), and a principal Sunday shouldn't lose a same-rank fixed-date collision by coincidence.
Authored the full office: `trinity-sunday-collect.yml`, `trinity-sunday-{benedictus,magnificat}-
antiphon.yml`, `matins-hymn-trinity-sunday.yml` ("Summæ Deus cleméntiæ" — shares its opening stanza
with the plain ferial Saturday hymn but diverges completely after that, a genuinely different hymn),
`lauds-{capitulum,responsory,hymn,versicle}-trinity-sunday.yml`, and `vespers-{responsory,hymn,
versicle}-trinity-sunday.yml` (Lauds/Vespers share both their chapter, via the existing cross-hour
fallback, and their hymn, "O lux beáta Trínitas" — already the pre-Urban VIII text) — all live-
verified 2026-05-31. Added `trinity-sunday` to `ALWAYS_OVERRIDE_TEMPORAL_IDS`.
Found and fixed 3 pre-existing tests written around the old cosmetic-label behavior, two of which
had never-verified guesses baked in as if correct: `tests/calendar/day-label.test.ts`'s "names the
anchor day itself" test (now Trinity Sunday wins outright over the Queenship, not the reverse) and
its own "outranks an active octave" test (previously asserted "Duplex I Class", a guess — the real,
now live-verified rank is Duplex II Class); `tests/calendar/transfer.test.ts`'s St. Felix I test
(Trinity Sunday now the real winner on 2026-05-31, Queenship/post-pentecost-01/Pentecost's octave
all commemorated in return). `npm test` (2025 passed) and `tsc --noEmit` both pass.
### Lent's remaining Vespers/Lauds draft content, verified (2026-09-04)
Closed the rest of the "Lent's own seasonal office bundle" gap flagged in the entry above the same
day: `vespers-{capitulum,responsory,hymn,versicle}-lent.yml` and both hours' own
`-doxology-per-annum` files were all real content, just never marked verified. Live-verified
Vespers' own bundle against a plain Lenten Wednesday (2026-03-04) — Joel 2:17 chapter, "Scápulis
suis obumbrábit tibi" responsory, "Audi, benígne Cónditor" hymn (including its own claimed Monastic
word-swap, confirmed live), shared "Ángelis suis" versicle. `lauds-hymn-lent.yml`'s own content
("Jam Christe sol justítiæ") and its doxology were already seen live earlier the same session (while
checking `lauds-hymn-saturday.yml`'s real content against the same 2026-02-28 Lenten Ember Saturday
date) — byte-identical, just needed the status flipped. All 8 files now `verified`; no more draft
Lent content anywhere in this app. `npm test` (2025 passed) and `tsc --noEmit` both pass.
### Paschaltide's "Suffragium Paschale" mechanism (2026-09-04)
Closed the highest-priority remaining mechanism gap. Live-verified against Divinum Officium (both
Monastic Tridentinum 1617 and Tridentine 1906, byte-identical between the two tracks — the source's
own `[Suffragium]` macro literally has a `(sed tempore paschali) @:Suffragium Paschale` override,
2026-04-20, a plain Eastertide feria): throughout the whole Paschaltide window (`eastertide`/
`ascensiontide`/`pentecost` — the same boundary `PASCHALTIDE_SEASONS` already governs elsewhere in
this store), two things happen whenever they'd otherwise show at all:
1. The ordinary 5-suffrage set (Cross/BVM/Joseph/Apostles/Peace) collapses into one single
alleluia-form "Suffragium Paschale" block — one antiphon (different at Lauds, "Crucifíxus
surréxit a mórtuis...", vs. Vespers, "Crucem sanctam súbiit...", unlike the ordinary 4/5
suffrages, which share identical text at both hours), one shared versicle, one shared collect.
2. The ferial-Preces litany (`lauds-preces-feriales`/`vespers-preces-feriales`, sourced from
Tridentine 1906/1910 since Monastic 1617 has none at all — see that file's own header) drops
entirely rather than being replaced by anything ("Preces Feriales{omittitur}" live) — a
Sunday/feast's own short litany (`lauds-short-litany`) is untouched, a separate, universal
collect-opening dialogue unrelated to this ferial-specific one.
Exported a new `isPaschaltide(season)` helper from `hours/resolve-common.ts` (wraps the existing
`PASCHALTIDE_SEASONS` set, previously private to that file) and used it in both
`resolveSuffrages` (gated after the pre-existing "omit suffrages entirely" checks — Double+/active
octave/Advent-Christmastide-Passiontide already drop suffrages regardless of season, unaffected)
and a new check in `hours/lauds.ts`'s/`hours/vespers.ts`'s own `'lauds-preces'`/`'vespers-preces'`
cases (gated on `isFerialOrVigil(day)`, matching the existing predicate that already selects the
ferial litany in the first place). `resolveSuffrages` gained a third `hourId: 'lauds' | 'vespers'`
parameter (both call sites updated) to pick the right antiphon.
Authored `lauds-suffrage-paschale.yml` and `vespers-suffrage-paschale.yml` — English on the Vespers
antiphon is this project's own translation and left `draft` (the reference engine's own English
render leaves that one antiphon untranslated, Latin-only); everything else `verified`.
Verified end-to-end via `resolveOrdo` on real dates for Lauds (both the suffrage collapse and the
Preces omission fire together correctly on a clean Eastertide feria, 2026-04-20) and via a direct
`resolveSuffrages` unit call plus a separately-found clean Vespers evening (2026-04-15, since this
particular stretch of Eastertide 2026 is otherwise densely packed with First-Vespers anticipations
and octaves — Easter's own, the Patronage of St. Joseph's, Ascension's, Pentecost's — that already
correctly suppress suffrages for other, pre-existing reasons and would have made a false negative
look like a false positive). `npm test` (2025 passed, no pre-existing tests exercised this path at
all) and `tsc --noEmit` both pass.
### Matins responsory pools: per-book expansion + new per-Common-category pool (2026-09-04)
User request: real Matins responsories for each Bible book (sourced from the reference engine),
and for the patristic (Nocturn 2/3 homiletic) readings too. Investigation found the patristic side
was a much bigger, previously-untracked gap than the per-book pool's own "expand beyond `isa`" item
already on this list: 272 of 355 `data/propers/nocturn-readings/*.yml` files have no `responsory`
field at all — most of the calendar, not a handful of stragglers.
**Per-book pool** (`data/hours/matins-responsories-by-book.yml`): added `gen` (2 entries, Latin/
Tempora/Quadp1-1.txt — Monday of Septuagesima week, the historical start of the Genesis "Historia"
cycle, a plain ferial with no overriding feast; only 2 entries because the source's own English
translation is missing a 3rd) and `jer` (3 entries, Latin/Tempora/Quad6-2.txt — Tuesday of Holy
Week, "Feria privilegiata," genuine ferial Jeremiah/Lamentations content). Deliberately did *not*
seed `jer` from Pent02-5.txt despite it citing Jeremiah too — that day's Rank is Sacred Heart
(Duplex I classis), so its Responsory1-3 are the feast's own proper text, not genuine ferial-book
content, even though its Lectio verses are borrowed from Jeremiah. Still only 3 of 72 books used
in the user's own bible-plan seeded (`isa`, `gen`, `jer`) — the rest is deferred bulk content, one
real live-sourced query per book, same pattern.
**New per-Common-category pool** (`data/hours/matins-responsories-by-common.yml` +
`getResponsoryForCommon` in `src/propers/matins-responsories.ts`, sibling to the existing
`getResponsoryForBook`): keyed by `SaintRecord.common` instead of a scripture book, same "loose
match, cycle by index" design. Unlike the per-book pool (scattered one query per book, across the
whole liturgical year), a Commune category's responsories live in one static file each
(`divinum-officium-reference`'s `web/www/horas/{Latin,English}/Commune/CN.txt`) — 9 files
(`C1`-`C8`, `C11`) transcribed directly, cover all 19 of vu's real `common:` category ids (several
are genuine aliases, confirmed by reading each candidate file's own `@Commune/CX` inheritance line
rather than guessed — e.g. `common-of-a-confessor-doctor`/`-pope` inherit C4 unchanged, same pool
as `common-of-a-confessor-bishop`; `common-of-an-abbot`/`-not-bishop`/`several-confessors` inherit
C5 unchanged; `common-of-a-martyr` inherits C2 unchanged; `common-of-a-virgin` inherits C6
unchanged; `common-of-a-widow`/`several-women-martyrs` inherit C7 unchanged — see the data file's
own header for the full mapping). Not seeded: `common-of-an-angel`/`-an-evangelist`/`-a-vigil` and
the `proper-to-*` ids — none of these are real Commune categories with a responsory file to source
from (angels/evangelists have their own proper content instead).
Wired into `hours/matins.ts`'s `nocturnReadingPart`/`gospelReadingPart`: when a reading's own
`responsory` field is absent, falls back to `getResponsoryForCommon(getSaintRecord(id)?.common,
index)` — `index` is the reading's position within that same id's own file (a new `commonPoolIndex`
counter in `buildReadingPool`'s assembly loop), so a saint with several undated readings still gets
distinct responsories across them rather than the pool's first entry repeated. A temporal/octave id
(no `common` category) still correctly gets `undefined` — an honest absence, not a wrong guess.
Live-verified end-to-end via `resolveOrdo`: St. Francis de Sales (2026-01-29, `common-of-a-
confessor-bishop`, previously responsory-less) now resolves a real Nocturn 3 responsory; Ss.
Cornelius and Cyprian plus Ss. Euphemia, Lucy, and Geminianus (both on 2026-09-16, both `common-
of-several-martyrs`) each resolve their own responsory from the same pool, confirming the
per-saint-file cycling index doesn't leak across different saints sharing a day. `npm test` (2025
passed) and `tsc --noEmit` both pass.
### Matins responsory pools: 8 more books seeded (2026-09-04)
Follow-up to the same-day entry above, continuing the per-book pool's bulk-content pass — same
"one real source per book" method, no mechanism changes. Added `exod` (Latin/Tempora/Quad4-0.txt,
Sunday IV in Lent, its own ordinary rank — the burning bush through the Song of the Sea), `prov`
(081-1.txt, August week 1's own ferial), `tob` (093-0.txt, September week 3's own Sunday), `ezek`
(111-1.txt, November week 1's own ferial), and `1macc` (101-1.txt, October week 1's own ferial) —
all bilingual, all genuinely their own book's content, no overriding rank.
Also added `sir` and `sap` (identical to `prov`'s own entries) and `dan` (identical to `ezek`'s) —
not guessed reuse, confirmed by reading each week's own reference-engine file: the August "Wisdom
literature" weeks (081 Prov, 083 Sap, 084-085 Sir) and the November "prophetic" weeks (111 Ezek,
113 Dan) `@`-reference *the same* underlying responsory set regardless of which specific book that
week's Lectio actually reads that day — a real confirmation, from the reference engine's own data,
that this app's "loose, book-level match, not exact-citation" responsory design (see the pool's own
header, and the 2026-08 user direction it's sourced from) matches how these responsories genuinely
worked historically, not an invention to paper over a smaller pool.
Skipped, deliberately: `1sam` (1 Reg) — every Pent01 week file's responsories are macro references
(`@:Responsory1_ (sed rubrica cisterciensis) ...`, `[Rule] Initia cum responsory`) rather than
literal text, needing the base macro template resolved with per-file substitutions to get real
text; not worth the complexity for one book this pass. `2sam`/`1kgs`/`2kgs`/`2macc` (2/3/4 Reg, 2
Mac) — real Latin responsories exist in every week's own file, but the reference engine's own
English translation is entirely absent for all of them (checked every Post-Pentecost week each book
appears in); left unseeded rather than guessing a translation, consistent with only seeding books
that have real bilingual source text. `zach`/`amos`/`agg` (minor prophets) — same English-translation
gap, but Latin is real and available (Latin/Tempora/114-4.txt, 115-4.txt, 115-5.txt) if a future
pass wants to add an own-translation draft English side (see `vu-prefer-text-over-missing` memory
for the precedent).
Now 11 of 72 bible-plan books seeded: `isa`, `gen`, `jer`, `exod`, `prov`, `sir`, `sap`, `tob`,
`ezek`, `dan`, `1macc`. `npm test` (2025 passed) and `tsc --noEmit` both pass; live-verified via
`getResponsoryForBook` resolving real text for every new key.
### Matins responsory pools: a real extraction bug found, 8 more books unblocked (2026-09-04)
User pushback on the previous entry's "5 books skipped, no English available" claim ("look at the
secular office for most of the books") — right call: re-checking found a genuine bug, not a real
source gap. The extraction script's Responsory-block regex only matched a bare `[ResponsoryN]` tag;
it missed the reference engine's own `[ResponsoryN_]` convention (an underscore-suffixed literal
template tag holding the real text, which a plain `[ResponsoryN]` often just `@:`-references
alongside a Cistercian-rubric variant) — so every file using that convention looked like it had no
English translation when the real text was sitting right there under a different tag name. Fixed
the script to prefer the `_`-suffixed tag's literal body over a bare `@:`-reference.
This unblocked `1sam` (Latin/Tempora/Pent01-1.txt, its own genuine 3-entry set — the young Samuel's
call and consecration) outright. Chasing the `@Tempora/X:ResponsoryN` cross-file references (not
resolved by the extraction script, hand-followed instead) also unblocked:
- `2sam`/`1kgs`/`2kgs` (2/3/4 Reg) — all three books' own week files `@`-reference the *same*
single entry, Tempora/Pent03-1Feria's Responsory1 (2 Samuel 24's census/plague narrative,
"Recordáre, Dómine, testaménti tui") — read directly, not guessed, same "loose match" reuse
pattern already established for the Wisdom-literature and Ezekiel/Daniel weeks. One entry only;
Responsory2/3 chain further references not followed this pass.
- `2macc` — reuses `1macc`'s own 3-entry set outright (Tempora/104-1 `@`-references Tempora/101-1).
- `zach` (Tempora/115-5, itself referencing 111-0's Responsory4-6 — Ezekiel's own Sunday, distinct
from `ezek`/`dan`'s own Monday-sourced entries) and `amos`/`agg` (both referencing Tempora/
Pent01-0's Responsory1 — Isaiah's throne-vision — plus 111-0's Responsory2-3) — all three
minor-prophet books previously assumed to have no reference-engine English at all; that was true
of their *own* week files in isolation, but false once their `@`-references were actually
followed.
19 of 72 bible-plan books now seeded (added this pass: `1sam`, `2sam`, `1kgs`, `2kgs`, `2macc`,
`zach`, `amos`, `agg`). `npm test` (2025 passed) and `tsc --noEmit` both pass; live-verified via
`getResponsoryForBook` resolving real text for every new key, at every pool index (not just index
0) for the 3-entry sets.
Still genuinely unseeded after this pass — real gaps, re-confirmed: books with no reference-engine
citation anywhere in Tempora at all (Josue, Judices, Ruth, Paralipomenon/Chronicles, Esdras/
Nehemias, Canticles — the historic secular/monastic Historia cycle apparently never assigns these
their own continuous reading), and the remaining ~45 New Testament epistle/Acts/Apocalypse books
plus minor books not yet attempted.
### Matins responsory pools: 12 more OT books, and 2 real process misses caught (2026-09-04)
User caught two things this pass, neither of them a source gap:
1. Directly pointed at `web/www/horas/English/Tempora/094-3.txt` and asked why Judith ("jdt") was
listed as unseeded when it plainly has real responsory content. Checking confirmed it — worse,
`jdt` and `esth` (Esther) had *both* already surfaced in this same day's own full-citation dump
of Tempora (`!Jdt`, `!Esth` were right there in the list) and were simply never followed up on.
Not a search-methodology gap this time, an attention gap: the data was already in hand.
2. Self-audit prompted by that catch found a second, independent miss: `job` — one of the
heaviest-used books in the bible-plan (42 rows) — had been extracted early in this same day's
session (Latin/Tempora/091-1.txt, the classic "Job Responsories," also used in the Requiem) but
never actually committed to the pool file at all. Sourced, verified, then silently dropped.
Fixed both, then used the same "reused across a whole prophetic-literature week" pattern already
established for `ezek`/`dan`/`zach` to sweep the rest of November's minor prophets efficiently by
following each book's own `@Tempora/X:ResponsoryN` reference rather than re-querying from scratch:
`obad` (reuses `zach`'s own R1), `jonah`/`mal` (share one entry, Tempora/111-0:R7), `hos`/`nah`
(reuse `ezek`/`dan`'s own R1), `mic` (reuses `amos`/`agg`'s own R1), `hab`/`joel` (share one entry,
Tempora/111-2:R1), `zeph` (Tempora/111-3:R1, its own). Also added `eccl` (Tempora/081-2:R1, the
same August "Wisdom literature" week cluster as `prov`/`sir`/`sap`, a different entry than
`prov`'s own) and `lam` (Latin/Tempora/Quad6-4.txt — Maundy Thursday's own Tenebrae Matins, the
classic "In monte Oliveti"/"Tristis est anima mea"/"Ecce vidimus eum" responsories; unlike the
Sacred Heart/Jeremiah override case above, Holy Week's own high rank isn't an unrelated feast
displacing ordinary content here — Tenebrae's Lamentations reading is intrinsically Holy Week's
own, so no override caution applied).
33 of 72 bible-plan books now seeded (added this pass: `jdt`, `esth`, `job`, `eccl`, `hab`, `joel`,
`zeph`, `obad`, `jonah`, `mal`, `hos`, `mic`, `nah`, `lam` — 14 new). `npm test` (2025 passed) and
`tsc --noEmit` both pass; live-verified via `getResponsoryForBook` resolving real text for every
new key.
Confirmed still genuinely absent (re-checked directly, not just re-asserted): `bar` (Baruch),
Josue, Judices, Ruth, Paralipomenon/Chronicles, Esdras/Nehemias, Canticles — no citation anywhere
in Tempora. 39 remaining books not yet attempted: Leviticus/Numbers/Deuteronomy, the four Gospels,
Acts, Apocalypse, and the NT epistles.
### Matins responsory pools: real key-alias bug found and fixed (2026-09-04)
A serious correctness bug, found by re-verifying through the *real* pipeline rather than trusting
the earlier direct-function-call "live verification": `bible-plan.ts` normalizes a reading's book
through `canonicalBook()` (`scripture/index.ts`'s `BOOK_ALIASES` map) *before* calling
`getResponsoryForBook` — so the pool must be keyed by the canonical form, not the bible-plan TSV's
own raw book code, whenever the two differ. 12 of this same day's 33 seeded keys used the raw form
instead: `1macc`/`2macc` (canonical `1mach`/`2mach`), `1sam`/`2sam`/`1kgs`/`2kgs` (`1reg`/`2reg`/
`3reg`/`4reg`), `jdt` (`jdth`), `zeph` (`soph`), `obad` (`abd`), `jonah` (`jon`), `hos` (`osee`),
`mic` (`mich`) — every one of these would have silently resolved to `undefined` in the real app
despite passing this same day's own "live-verified" test, because that test called
`getResponsoryForBook` directly with the raw code, bypassing the normalization the real call site
always applies. Renamed all 12 keys (and their own header comments) to the canonical form.
Re-verified this time through the actual `getBiblePlanReadings` call site (not a direct
`getResponsoryForBook` call) on a real date (2026-06-04, `post-pentecost-01`/Thursday, `1sam 9-10`)
— confirms a real responsory now resolves where it silently wouldn't have before this fix. `npm
test` (2025 passed) and `tsc --noEmit` both pass.
**Lesson for future sourcing passes**: when a book has a `BOOK_ALIASES` entry, the pool key is the
*alias target*, not the bible-plan YAML's own book code — check `scripture/index.ts`'s
`BOOK_ALIASES` map before choosing a key, and verify through `getBiblePlanReadings`/`resolveOrdo`
(the real call chain), not a direct, unnormalized call to `getResponsoryForBook`.
### Matins responsory pools: NT books (Acts, Apocalypse, James, Hebrews, the 4 Gospels) (2026-09-04)
Continuing the same bulk-sourcing pass, applying the previous entry's own lesson from the start
this time (canonical keys, pipeline-verified). Surveyed the whole reference engine's own citation
set precisely (an `awk` one-liner reading the line *after* every `[LectioN]` tag, following two
lines deep for Gospel entries whose citation sits below a "Léctio sancti Evangélii secúndum..."
line) rather than grepping loosely for a book prefix — the loose approach had already produced one
false positive this session (`Rom` matching a Lauds Capitulum, not a real Matins Lectio).
Added, all bilingual, all real Nocturn responsories:
- `act` (Ascension Day's own Matins, Latin/Tempora/Pasc5-4.txt) and `marc` (Easter Sunday's own
Matins, Pasc0-0.txt) — both high-ranked feast days, but genuinely proper content (Ascension's
own Nocturn 1 *is* Acts 1; Easter's *is* Mark 16), not an unrelated override like the Sacred
Heart/Jeremiah case — same reasoning already used for `lam`.
- `heb` (Good Friday's own Tenebrae Matins, Quad6-5.txt) — same reasoning again, Passion-narrative
responsories ("Omnes amici mei," "Velum templi scissum est").
- `apoc` (Easter III Sunday, its own ordinary rank, Pasc3-0.txt) and `jas` (Easter IV Sunday,
Pasc4-0.txt) — genuine Paschaltide Sunday responsory sets, not thematically tied to Apocalypse/
James specifically (a generic Alleluia-form psalm-based set), same "loose match" convention as
everywhere else in this pool.
- `luc`/`matt`/`joan` (Advent I/II/III Sundays, Adv1-0/Adv2-0/Adv3-0.txt) — each Gospel's own
reading week, generic Advent-themed responsories, only 1 entry each (a second Sunday's own set
wasn't chased down this pass).
41 of 72 bible-plan books now seeded. `npm test` (2025 passed) and `tsc --noEmit` both pass;
live-verified through the real `getBiblePlanReadings` call chain this time (not a direct
`getResponsoryForBook` call) — `easter-3`/Monday (`act`, `joan` via the `john``joan` alias),
`post-pentecost-01`/Saturday (`1sam` via alias, `prov`, `matt`), and a calendar-dated Jan 10 row
(`heb`) all resolve real responsory text; `Deut` correctly still resolves `undefined` (genuinely
unseeded, confirmed absent from Tempora entirely).
Confirmed no English exists anywhere in the reference engine for Galatians/Ephesians/Philippians/
Colossians/Titus/Philemon (the whole post-Epiphany reading season) or Romans (the Christmas-Octave
season) — real Latin text exists for all of these, just no bilingual source; left unseeded rather
than own-translating six-plus books in one pass. 32 books remain (9 of them the already-confirmed-
genuinely-absent `bar`/Josue/Judices/Ruth/Chronicles/Esdras-Nehemias/Canticles): Leviticus/
Numbers/Deuteronomy, Romans, 1-2 Corinthians, Galatians, Ephesians, Philippians, Colossians, 1-2
Thessalonians, 1-2 Timothy, Titus, Philemon, 1-2 Peter, 1-3 John, Jude not yet attempted.
### Matins responsory pools: last real batch (1 Cor, 2 Cor, 1 Peter, 1 John), a repeated key bug (2026-09-04)
Confirmed Leviticus/Numbers/Deuteronomy genuinely absent from Tempora (re-checked precisely with
the `awk`-based Lectio-citation survey, not a loose grep — no hit under any Latin form of the
book's name). Added `1cor` (Maundy Thursday's own Nocturn 3, Latin/Tempora/Quad6-4.txt
Responsory7-9 — the Institution narrative, distinct from that same file's Responsory1-3 already
used for `lam`), `2cor` (Epiphany II Sunday, its own ordinary rank, Epi2-0.txt), `1pet` (1 Peter's
own reading week `@`-references the ordinary Paschaltide Sunday psalm-set already used for `jac`
below — R4-6 of that same Pasc4-0.txt), and `1joan` (Sunday within the Ascension Octave, Pasc6-0.txt,
the Paraclete responsory, only 1 entry).
**A repeated mistake, caught by self-audit this time**: the previous entry's `jas` key was wrong —
same bug as the 12-key fix two entries up. `BOOK_ALIASES` maps bible-plan's `jas` to canonical
`jac`; the pool needed `jac:`, not `jas:`. Fixed, and re-verified through `getBiblePlanReadings`
(not a direct call) on `easter-6`/Monday, 2026-05-11 (`Jas 2` now resolves a real responsory).
**Ran a full audit this time**: checked every single current pool key against `BOOK_ALIASES`
programmatically (not just the ones touched this pass) — confirmed clean, zero raw-alias-source
keys remain anywhere in the file.
45 of 72 bible-plan books now seeded. `npm test` (2025 passed) and `tsc --noEmit` both pass.
Remaining 27, none easily gettable this pass: 12 confirmed genuinely absent from the reference
source (`bar`, Canticles, Joshua, Judges, Ruth, 1-2 Chronicles, Ezra, Nehemiah, Leviticus, Numbers,
Deuteronomy); 15 with real Latin but no reference-engine English anywhere (Romans, Galatians,
Ephesians, Philippians, Colossians, Titus, Philemon, 2 Thessalonians, 2 Timothy, 2 Peter, 2-3 John,
Jude). Own-translating any of these would be the next step, if wanted — not attempted here per the
established "only seed real bilingual source" pattern.
### Matins responsory pools: the "untranslated 15" turned out mostly already bilingual (2026-09-04)
Asked to translate the 15 "real Latin, no English" books. Before translating anything, re-checked
each one's own `@Tempora/X:ResponsoryN` reference chain (the same technique that unblocked 8 books
earlier the same day) — and found the whole post-Epiphany "ordinary time" reading season (weeks
3-5, covering Galatians/Ephesians/Philippians/Colossians/1-2 Timothy/Titus/Philemon/2
Thessalonians) doesn't have its own distinct responsory content at all: every one of its 21 feria
files `@`-references 2 Corinthians' own week (Epi2-0 through Epi2-6, already fully bilingual from
earlier this same day) by weekday position. Confirmed by reading every week-3/4/5 feria file's own
`@`-line directly, not guessed. Same story for 2 Peter, 2-3 John, and Jude — all four `@`-reference
Ascension Day's own responsories (already seeded as `act`). **None of these 12 books needed any
translation at all** — added `gal`/`phil`/`1tim` (share Epi2-1), `col`/`2tim` (share Epi2-2),
`eph` (Epi2-3), `1thess`/`tit` (share Epi2-4), `2thess`/`phlm` (share Epi2-6), `2pet`/`2joan`/
`3joan` (share `act`'s R1), `jud` (`act`'s R7) — all real, already-transcribed bilingual text.
Also fixed a real, separate bug the user caught by eye in the rendered app: `getResponsoryForBook`'s
`joinResponsory` concatenated the pool's `r`/`v` text with a bare newline and no "R."/"V." labels
at all — every other responsory source in the app (`octave-readings.ts`'s own `responsory` field,
every `nocturn-readings/*.yml`'s inline `responsory`, and the new per-Common-category pool) uses
the full "R. ...\n* ...\nV. ...\nR. ..." convention. Fixed by computing the repeat line from the
`*` marker already present in the pool's own `r` text (a separate commit, `1867f73`, before this
content pass).
**Only `rom` (Romans) turned out to have no content to translate at all**, on inspection — re-
checked every one of its 15 citing files (all in the Christmas-Octave `Nat0X` range): every single
one `@`-references an unrelated feast's own proper responsory (Circumcision, Christmas Day, or a
January 7 saint), never anything Romans-specific, standalone or borrowed. There's no genuine
"Romans content" anywhere in this reference source to translate, sourced or original — using one of
these borrowed responsories would repeat the Sacred Heart/Jeremiah mismatch this file already
avoids elsewhere. Left `rom` unseeded; it would need an entirely original composition, not a
translation, if ever wanted.
59 of 72 bible-plan books now seeded — every book with any genuinely usable Latin at all. The
remaining 13 (`rom` plus the 12 already-confirmed-absent books) are the real, final gap: `rom` has
no book-specific content anywhere in this source; the other 12 have no citation anywhere at all.
Ran the full canonical-key audit again (programmatic check against `BOOK_ALIASES`, per the
established lesson) — confirmed clean. `npm test` (2025 passed) and `tsc --noEmit` both pass;
live-verified through `getBiblePlanReadings` (`post-epiphany-3`/Wednesday `Gal`, `post-epiphany-5`/
Monday `1tim`, `sunday-after-ascension`/Saturday `Jude` all resolve real responsory text; `Ruth`
correctly still resolves `undefined`).
### Matins responsory pools: `cant` (Canticles) found in the Sancti files, not Tempora (2026-09-05)
User pushback on `cant` being listed "confirmed genuinely absent": right instinct to check the
Commune files specifically — Canticles/Song of Songs imagery is heavily used in Marian propers.
Checked `Latin/Commune/C12.txt` (the Little Office of the BVM) directly: it does cite `!Cant 6:8`,
but only as a Lauds Capitulum, not a Matins Nocturn lesson — Capitula don't carry their own
9-Responsory structure, and C12's actual Lectio1-3 are Sirach 24, not Canticles (matching this
pool's existing `common-of-the-bvm` sourcing). So the Commune search itself came up empty for a
genuine Matins responsory — but it redirected the search productively: checked `Sancti/` (individual
saint/feast files) with the same `awk` Lectio-citation survey used for Tempora, and found real
`!Cant` Nocturn lessons on the Visitation (July 2) and throughout the Assumption Octave
(Sancti/08-15t through 08-22t) — the historic BVM feasts that read straight through the Song of
Songs. Only the Visitation's own file (`07-02.txt`) has both languages; the Assumption Octave days
have real Latin but no English anywhere.
Added `cant`, sourced from `Sancti/07-02.txt` — genuinely Canticles-sourced responsories that
directly blend Song of Songs verses with the Visitation narrative itself ("Surge, própera, amíca
mea... Intrávit María in domum Zacharíæ"), not a borrowed-unrelated-feast mismatch.
60 of 72 bible-plan books now seeded. `npm test` (2025 passed) and `tsc --noEmit` both pass;
live-verified through `getBiblePlanReadings` (a Dec 27 calendar-dated row resolves real `Cant 3`
responsory text). Canonical-key audit re-run, clean (`cant` has no `BOOK_ALIASES` entry).
Prompted by finding `cant` in Sancti, re-checked the other 11 already-confirmed-absent books
against Sancti too (not just Tempora) — found 2 more: `lev` (Leviticus, `Sancti/02-02.txt`, the
Purification of the BVM — its own Leviticus purification-law reading is the feast's actual reason
for being) and `num` (Numbers, `Sancti/09-14.txt`, the Exaltation of the Holy Cross — the
bronze-serpent/Cross typology, Num 21:6-9, only 1 entry). Both genuine thematic matches, not
borrowed-unrelated content. The other 9 (`bar`, Josue, Judices, Ruth, 1-2 Chronicles, Ezra,
Nehemiah, Deuteronomy) checked against the reference engine's own full Sancti citation list —
confirmed still absent, no alternate abbreviation missed.
62 of 72 bible-plan books now seeded — the real final count. `npm test` (2025 passed) and
`tsc --noEmit` both pass; live-verified through `getBiblePlanReadings` (`lent-3`/Sunday resolves
real `Lev 1` responsory text, `palm-sunday`/Sunday resolves real `Num 25-27` text). Canonical-key
audit re-run, clean. Remaining 10, the true final gap: `rom` plus 9 books with no citation
anywhere in Tempora or Sancti (`bar`, Josue, Judices, Ruth, 1-2 Chronicles, Ezra, Nehemiah,
Deuteronomy).
### Advent reading-plan carryover into Christmastide (2026-09-05)
User-flagged wrinkle in `data/hours/bible-plan/*.yml`'s own Isaiah plan: it's authored as a full
4-week Advent (`advent-1-sunday` through `advent-4-saturday`, 28 rows), but real Advent is never
that long. Advent's last real day is always Dec 23 (Dec 24 is the Vigil of Christmas's own
temporal id, `calendar/temporal-id.ts`), while Advent 1 Sunday itself — the Sunday nearest Nov 30
— falls anywhere from Nov 27 to Dec 3. Even the *longest* possible Advent (Nov 27, 27 real days)
is one short of the full 28-row plan; the *shortest* (Dec 3, 21 real days) is a whole week short.
Every single year, at least the plan's last row never lands on its own natural date — not just
"most years," as the request first put it.
Fixed in `propers/bible-plan.ts`'s new `adventCarryoverReadings`: whatever doesn't land on its own
natural date now carries forward one reading per day starting Christmas Day itself, pooled
alongside whatever Christmastide's own calendar-dated rows already have for that day (never
replacing them) — same "every contributing source pools, none override" design already used
throughout this file and `hours/matins.ts`'s own reading-pool assembly. Computed live from
`calendar/temporal.ts`'s `adventStart(year)` for each date's own year (the one place in this file
that needs real calendar-year awareness, since every other lookup here is year-independent); no
new content authoring needed, since the Isaiah rows were already there, just never reachable on
their own natural date in a short year.
User's own framing accepted as the trade-off: "for advent only, we need to show all of those
chapters" — i.e. every planned reading should surface somewhere, even if that means spilling into
Christmastide, rather than silently dropping the tail end of a short year's Advent plan.
Live-verified across the full spread of possible Advent-1-Sunday dates (`adventStart` for
2020-2035 spans exactly the Nov 27 - Dec 3 range): 2028 (Advent 1 Sunday = Dec 3, the latest/
shortest case) carries all 7 of week 4's Isaiah readings forward across Dec 25-31 in order; 2027/
2032 (Advent 1 Sunday = Nov 28, near-earliest/longest) carry only the last 2. Added 4 permanent
tests to `tests/propers/bible-plan.test.ts` covering both extremes, the pooling-not-replacing
behavior, and that nothing carries over before Christmas Day itself. `npm test` (2029 passed,
+4 new) and `tsc --noEmit` both pass.
### Matins responsory pools: `deut` — the first genuine original composition, not a transcription (2026-09-05)
User found a real lead while reading a patristic homily (`English/Sancti/01-02.txt`, on Matt
23:37 "O Jerusalem, Jerusalem"): it quotes Deut 32:11's eagle image in passing ("as also it is
written... an eagle stirreth up her nest... spreadeth abroad her wings"). Confirmed the verse
number against `data/scripture/deut-32.yml`'s own `n: 11` — genuinely Deut 32:11 in standard
citation, not the breviary's own internal chant-verse-numbering for the same text (which splits
it as 32:15-16 in `Latin/Psalterium/Psalmorum/Psalm226.txt`, the real Canticle of Moses sung at
Lauds — that file supplied real, properly accented liturgical Latin and its English counterpart
gave the matching translation, so no accentuation had to be guessed).
Unlike every other entry in this pool, Deuteronomy genuinely has no historical Matins responsory
anywhere in the reference source (confirmed absent from both Tempora and Sancti in the two prior
entries) — so this one is composed, not transcribed: a real R./V. pairing built entirely from
that same canticle's own genuine verses (32:15's eagle image as the R., 32:13-14's "apple of his
eye" as the V.), verbatim text, not paraphrased or invented, just newly paired. Documented plainly
in the data file's own header comment as vu's own composition rather than presented as a
historically-attested responsory, matching this project's "not a reconstruction" ethos.
63 of 72 bible-plan books now seeded (`deut` added). `npm test` (2029 passed) and `tsc --noEmit`
both pass; live-verified through `getBiblePlanReadings` (`easter-3`/Saturday resolves the real,
properly R./V.-formatted text for `Deut 33-34`). Canonical-key audit re-run, clean (`deut` has no
`BOOK_ALIASES` entry).
### Matins responsory pools: `rom` — the second (and last) original composition (2026-09-05)
Asked directly for thoughts on Romans, the one book with real citations but no usable Matins
content anywhere (every citing file borrows an unrelated feast's own proper responsory — Christmas
Day, Circumcision, or a January 7 saint). Same approach as `deut`: composed rather than
transcribed, but built from real, already-liturgical text rather than invented — Rom 13:11-12
("the night is past, the day is at hand... let us cast off the works of darkness, and put on the
armour of light") is the standing year-round ferial Lauds Capitulum
(`Latin/Psalterium/Special/Major Special.txt`'s own "Feria Laudes") and is used again at Advent
I's own Capitulum (`Tempora/Adv1-0.txt`) — genuine accented Vulgate/Douay-Rheims text, just never
combined into its own 9-lesson Matins responsory set the way every other book in this pool was.
User-confirmed before adding.
**64 of 72 bible-plan books now seeded — every book actually used in the user's own bible-plan has
a real responsory, whether transcribed (62) or composed from genuine liturgical text (`deut`,
`rom`).** The remaining 8 are the true, final, unclosable gap: books with no citation anywhere in
Tempora or Sancti at all (`bar`, Josue, Judices, Ruth, 1-2 Chronicles, Ezra, Nehemiah) — there's no
comparable "already-liturgical, just never assembled into a responsory" text to build from for any
of these, since they're never quoted or read in the Office at all, historically. `npm test` (2029
passed) and `tsc --noEmit` both pass; live-verified through `getBiblePlanReadings` (a Jan 1
calendar-dated row resolves real, correctly R./V.-formatted text for `Rom 7-8`). Canonical-key
audit re-run, clean.
### Matins responsory pools: `bar` found in the Missa, not the Horas (2026-09-05)
The "closes the pool" claim above turned out premature by one book. User pointed to
`missa/Latin/Tempora/Quad6-6.txt` — the *Mass* propers, a directory tree this whole responsory
search had never once checked (everything so far searched `horas/`, the Divine Office proper).
The Easter Vigil Mass's own fourth prophecy (`[Proph_Baruch3]`, Bar 3:9-38, "Audi, Israël, mandáta
vitæ") is genuine, real, accented liturgical Latin — just never part of the Office's own Matins at
all, in either directory tree. Composed `bar` the same way as `deut`/`rom`: built from that
prophecy's own climactic close ("Hic est Deus noster... Post hæc in terris visus est, et cum
homínibus conversátus est" — read at the Vigil because early exegetes saw "seen upon earth, and
conversed with men" as a prophecy of the Incarnation), genuine text, not invented.
**65 of 72 bible-plan books now seeded.** `npm test` (2029 passed) and `tsc --noEmit` both pass;
live-verified through `getBiblePlanReadings` (`palm-sunday`/Thursday resolves real, correctly
R./V.-formatted text for `Bar 1-2`). Canonical-key audit re-run, clean (`bar` has no `BOOK_ALIASES`
entry).
**This closes the per-book responsory pool as a project** (see "Matins responsory pools" and its
eleven follow-up entries, 2026-09-04/05) — the per-Common-category pool (19/19 real categories) is
also done; see that same first entry. Extended the Missa check to the other 6 already-absent books
too (Josue, Judices, Ruth, 1-2 Chronicles) — genuinely zero citations anywhere, Horas or Missa.
Ezra came up with one thin, ambiguous lead not acted on: `missa/Latin/Tempora/Pasc7-2.txt`'s
Introit cites `!Esdr 2:36 2:37`, but the actual Vulgate text there (checked against
`data/scripture/1esdr-2.yml`) is a plain census list that doesn't match the Introit's own text at
all ("Accípite jucunditátem glóriæ vestræ... qui vos ad cœléstia regna vocávit"). User's own
explanation (2026-09-05), plausible and probably right, though unprovable without a text we don't
have: Vulgate numbering is genuinely ambiguous here — "1/2 Esdras" is canonical Ezra/Nehemiah, but
there's also a separate, non-canonical Greek "Esdras A" (the Vulgate appendix's own "3 Esdras,"
sometimes itself called "1 Esdras" in Septuagint/Orthodox numbering) — a different text entirely
that this project has never digitized. The reference engine's own citation never disambiguates
("Esdr" bare, no "3" anywhere else in the source to compare against), so this can't be confirmed
outright, but it cleanly explains why the citation doesn't match our canonical Ezra text. Left
both `ezra` and `neh` unseeded rather than force an uncertain match. One small, unrelated loose end
noted along the way
and not addressed here: the bible-plan TSV's own content still isn't covered by a table-driven
test the way other bulk-imported content stores are (see "Bible-plan TSV — bulk conversion done"
below) — `tests/propers/bible-plan.test.ts` tests specific real dates ad hoc, not the full imported
set.
### Matins responsory pools: `ruth` — the first composition with no liturgical precedent at all (2026-09-05)
User-directed: compose Ruth's own responsory from Ruth 1:16-17 ("thy people shall be my people,
and thy God my God") on the verse's own merit, even though — unlike `deut`/`rom`/`bar` — this text
has *no* liturgical precedent anywhere in the reference source at all (no Nuptial Mass file even
exists there to check against). Flagged that distinction directly before proceeding; user confirmed
it explicitly, aware of the difference from the three prior compositions (all of which recombined
text already used liturgically elsewhere, just never in Matins).
Since the project's usual bulk-imported `data/scripture/ruth-1.yml` carries no accents, the Latin
was hand-accented rather than transcribed — but cross-checked word-by-word against already-accented
occurrences of the same words elsewhere in the reference corpus (`quocúmque`, `pópulus tuus`,
`páriter`, `ábeam`, `relínquam`, `moráta`, `morábor`, `móriar`, `moriéntem`, `suscéperit`,
`sepultúræ`) rather than guessed freehand from scratch.
66 of 72 bible-plan books now seeded. `npm test` (2029 passed) and `tsc --noEmit` both pass;
live-verified through `getBiblePlanReadings` (`sunday-after-ascension`/Saturday resolves real,
correctly R./V.-formatted text in both languages for `Ruth 3-4`). Canonical-key audit re-run, clean
(`ruth` has no `BOOK_ALIASES` entry). Remaining 6: Josue, Judices, 1-2 Chronicles, Nehemiah (no
citation anywhere at all) plus `ezra` (one thin, ambiguous near-miss, deliberately left unseeded —
see the entry above).
### Matins responsory pools: `2esdr` (Nehemiah) — correcting a mis-diagnosis (2026-09-05)
The entry above's "Nehemiah: no citation anywhere at all" was wrong — Nehemiah had been bundled in
with `ezra`'s "one thin, ambiguous near-miss" reasoning without ever getting its own Missa check, the
same check that had already found and closed `bar` a few entries earlier. It has a real, unambiguous
citation: Ember Wednesday of September's own Lectio and Communio both quote Neh 8
(`missa/Latin/Tempora/093-3.txt`, `!Neh 8:1-10` / `!Neh 8:10`), genuine accented Latin, matching
English in the sibling `English/Tempora/093-3.txt`.
User-directed: R. from v.3 ("Et legit in eo apérte in platéa... et aures omnis pópuli erant eréctæ
ad librum" — Esdras reading the law plainly, all ears attentive), V. from v.9 ("Dies sanctificátus
est Dómino, Deo nostro: nolíte lugére et nolíte flere" — user's pick, offered against v.6's "Amen,
Amen" and v.10's "Ite, comédite pínguia," for the contrast between the plain reading and the
proclaimed holy day of no mourning). Both Latin lines taken verbatim from the same accented Missa
Lectio; English from the project's own verified `src/data/scripture/2esdr-8.yml`, not retranslated.
Keyed `2esdr:` in the pool (not `neh:`) since that's what `BOOK_ALIASES` maps `neh` to.
67 of 72 seeded. Remaining 5: Josue, Judices, 1-2 Chronicles (no citation anywhere at all) plus
`ezra` (one thin, ambiguous near-miss, deliberately left unseeded — see the entry above).
### Matins responsory pools: `1esdr` (Ezra) — composed, no liturgical precedent (2026-09-05)
User-directed: compose Ezra's own responsory from 1 Esdras 8:21-23, on the verse's own merit — like
`ruth`, not like `bar`/`2esdr`, since the one candidate lead for this book (`Pasc7-2.txt`'s Introit,
see the earlier `ezra`/`neh` entry) turned out to be a text mismatch, not a real match to build from.
v.22's antithesis ("the hand of our God is upon all them that seek him in goodness: and his power and
strength, and wrath upon all them that forsake him") is the strongest material, but the Vulgate's own
clause order puts the wrath half last — a sour note to end the repeated (`*`) clause on, especially
right before v.23's "it fell out prosperously." Edited: swapped the two halves of v.22 so the hopeful
clause is the one repeated after V. — same words, no invention, just reordered for the R./V./R. shape.
V. is v.23 unaltered.
Source (`1esdr-8.yml`) has no accents, like `ruth-1.yml`; Latin hand-accented, cross-checked
word-by-word against already-accented occurrences elsewhere in the corpus (`impérium`, `fortitúdo`,
`derelínquunt`, `bonitáte`, `jejunávimus`, `próspere`). Keyed `1esdr:` (`BOOK_ALIASES` maps `ezra` to
it). `npm test` (2029 passed) and `tsc --noEmit` both pass; live-verified through
`getBiblePlanReadings` (`easter-sunday`/Monday resolves real, correctly R./V.-formatted text in both
languages for `Ezra 3-4`).
68 of 72 seeded. This closes every book with any real sourceable material — the remaining 3 (Josue,
Judices, 1-2 Chronicles) have no citation anywhere, Horas or Missa, and no scripture text of their
own has been composed from on its own merit the way `ruth`/`ezra` were, since that hasn't been
directed for them yet (Josue itself got exactly this treatment shortly after — see the dated entry
below).
### Matins responsory pools: `jos` (Josue) — composed, no liturgical precedent (2026-09-05)
User-directed: compose Josue's own responsory from Josue 24:15-16, on the verse's own merit — like
`ruth`/`1esdr`, since Josue has no citation anywhere in the reference source at all, Horas or Missa
(re-confirmed live: every "Josue" hit in the corpus is an incidental mention of the person inside
unrelated books' readings — Ambrose's *De Officiis* homily, 1-2 Kings — never the Book of Josue's
own text).
The verse pair is already a two-voice exchange — Joshua's challenge to Israel ("choose you this day
... but as for me and my house, we will serve the Lord") and the people's reply — mapping directly
onto R./V. form with no invented content, just split at the natural seam. Asterisk placed before
"Ego autem", so the full choice-clause is R. and the famous declaration is the repeated close; V. is
v.16 kept whole, including "Respondítque pópulus, et ait" (not trimmed for the change of speaker,
since R./V. form doesn't make that redundant here — the narrative frame still matters).
Source (`jos-24.yml`) has no accents, like `ruth-1.yml`/`1esdr-8.yml`; Latin hand-accented,
cross-checked word-by-word against already-accented occurrences elsewhere in the corpus (`vidétur`,
`Dómino`, `elígite`, `hódie`, `potíssimum`, `servíre`, `debeátis`, `serviérunt`, `Mesopotámia`,
`habitátis`, `serviémus`, `Respondítque`, `pópulus`, `relinquámus`, `serviámus`, `aliénis`); `óptio`
left unaccented (2 syllables, no precedent either way, but this project's own accenting convention
never marks a 2-syllable word). `Amorreorum` kept in the spelling `jos-24.yml`'s own bulk import
uses (no `h`, single `r`) rather than the Clementine `Amorrhæórum` spelling found elsewhere in the
corpus (Ps 134/135), since that's this book's own source-text tradition, not a typo to "fix" toward
the more familiar spelling.
Keyed `jos:` (`BOOK_ALIASES` maps `josh` to this canonical id) — not `josue`, which would silently
miss every lookup. `npm test` (2029 passed) and `tsc --noEmit` both pass; live-verified through
`getBiblePlanReadings` (`easter-4`/Sunday resolves real, correctly R./V.-formatted text in both
languages for `Josh 1`).
69 of 72 seeded. Remaining 3 (Judices, 1-2 Chronicles) have no citation anywhere, Horas or Missa,
and no scripture text of their own has been composed on its own merit yet.
### Matins responsory pools: `jdc` (Judges) — composed, no liturgical precedent (2026-09-05)
User-directed: compose Judges' own responsory from Gideon's trumpet-and-pitchers stratagem at the
camp of Madian (Jdc 7:17-20), on the verse's own merit — like `jos`, since Judges has no citation
anywhere in the reference source at all, Horas or Missa.
Considered and set aside: the Song of Deborah's closing benediction (Jdc 5:31) has no natural second
verse to pair with it without inventing one; Samson's dying prayer (Jdc 16:28-30) was set aside as an
uncomfortable emphasis for a Matins responsory (a prayer for strength to kill himself with his
enemies). Gideon's cry won out as the single most recognizable line in the book, and — like
`ruth`/`jos` before it — the passage is already a command/fulfillment structure that maps directly
onto R./V. form: R. is v.17-18 (Gideon's command to the three hundred men); V. is v.19-20's
fulfillment, trimmed to its own core clause (dropped v.20's "in tribus locis... hydrias
confregissent" middle as restating what "conplodere lagoenas" already said), landing the versicle
directly on the iconic cry itself: "Gladius Domini, et Gedeonis."
Source (`jdc-7.yml`) has no accents, like `jos-24.yml`; Latin hand-accented, cross-checked
word-by-word against already-accented occurrences elsewhere in the corpus (`vidéritis`, `fácite`
— matching the "Hoc fácite" idiom's own established accenting — `ingrédiar`, `sectámini`,
`personáverit`, `castrórum`, `circúitum`, `clángite`, `conclamáte`, `tenuérunt`, `mánibus`,
`sonántes`, `clamaverúntque`, `Gládius`, `Gedeónis`, `Gedeóni`); `sinistris`/`dextris` left
unaccented, matching this corpus's own consistent practice for those two specific words even where
the general accenting rule would suggest otherwise. Also caught: the source's own English for v.18
is incomplete (drops "et conclamate, Domino et Gedeoni" entirely, ending mid-sentence) — supplied
the missing clause from the standard Douay-Rheims wording rather than reproducing that gap.
Keyed `jdc:` (`BOOK_ALIASES` maps `judg` to this canonical id). `npm test` (2029 passed) and
`tsc --noEmit` both pass; live-verified through `getBiblePlanReadings` (`easter-6`/Wednesday
resolves real, correctly R./V.-formatted text in both languages for `Judg 7`).
70 of 72 seeded. Remaining 2 (1-2 Paralipomenon/Chronicles) have no citation anywhere, Horas or
Missa, and no scripture text of their own has been composed on its own merit yet.
@@ -0,0 +1,31 @@
# Read from the reference engine: web/www/horas/Latin/Tempora/Pent01-0.txt
# ("In Festo Sanctissimæ Trinitatis"), Duplex II. classis — live-verified
# 2026-05-31 (Trinity Sunday itself that year). Previously not modeled as
# its own record at all: `resolveTemporalId` just fell back to
# `post-pentecost-01`, so this Sunday — one of the principal Sundays of
# the whole year — displayed as a generic ordinary post-Pentecost Sunday,
# with whatever saint happened to be assigned that date (if any) winning
# outright per the plain `ordinary-sunday` rule. Found and fixed 2026-09-04
# after the user asked about a display-only-looking gap that turned out to
# be this much bigger mechanism gap.
id: trinity-sunday
name: "The Most Holy Trinity"
# Reference engine's own [Officium] title is a prepositional phrase ("In
# Festo Sanctissimæ Trinitatis"); adapted to this app's nominative-noun-
# phrase convention.
nameLa: "Sanctissima Trinitas"
rank: duplex-2-classis
anchor:
kind: easter
offset: 56
# Per direct instruction (2026-09-04): always wins, same as christ-the-
# king.yml's own `unconditional: true` — one of the year's principal
# Sundays shouldn't lose to a same-rank fixed-date collision. The one
# real case this matters for: the Queenship of the BVM (1954 addition,
# fixed May 31, also Duplex II. classis) lands on the same date as
# Trinity Sunday in rare years (e.g. 2026) — not verifiable against the
# Monastic Tridentinum 1617 track directly, since that calendar doesn't
# carry the Queenship feast at all (confirmed live: May 31 1617-track
# shows St. Petronilla instead, this app's own blended-calendar-only
# collision).
unconditional: true
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,320 @@
# A per-Common-category pool of Matins Nocturn 2/3 responsories — sibling to
# matins-responsories-by-book.yml's per-book pool, same "loose match, cycled
# by index" design, but keyed by a saint's own `common:` category (see
# SaintRecord.common in calendar/types.ts) instead of a scripture book. Most
# of this project's 272 nocturn-readings/*.yml files (out of 355) have no
# `responsory:` field of their own — a real, large content gap, not the
# small handful the header comments in those files individually call out —
# and this pool is the mechanism to close it generically rather than
# per-saint.
#
# All content transcribed directly from the reference engine's own Commune
# text files (divinum-officium-reference's web/www/horas/{Latin,English}/
# Commune/CN.txt — the *secular* Commune; Monastic 1617's own CommuneM/CN.txt
# files just `@Commune/CN`-reference these verbatim for every category here,
# so there is no separate Monastic responsory text to source), each holding
# a fixed 6-9 Great Responsories (Nocturn 1-3, in their historical position)
# for one Commune category. Several of vu's own `common:` category ids are
# genuine aliases of the same underlying reference file — verified by
# reading each candidate file's own `@Commune/CX` inheritance line, not
# guessed:
# - `common-of-a-confessor-doctor` / `common-of-a-confessor-pope` inherit
# C4's responsories unchanged (only the Oratio/Officium title differ) —
# same pool as `common-of-a-confessor-bishop`.
# - `common-of-a-confessor-not-bishop` / `common-of-an-abbot` /
# `common-of-several-confessors` (the last confirmed against its one
# real user, Ss. Seven Founders of the Servite Order, non-bishops) all
# inherit C5 unchanged — same pool as `common-of-a-confessor`.
# - `common-of-a-martyr` (C2a) inherits C2 unchanged — same pool as
# `common-of-a-martyr-bishop`.
# - `common-of-a-virgin` (C6a) inherits C6 unchanged — same pool as
# `common-of-a-virgin-martyr`.
# - `common-of-a-widow` (C7a) / `common-of-several-women-martyrs` (the
# latter confirmed against its one real user, Ss. Perpetua and
# Felicity, both non-virgins) inherit C7 unchanged — same pool as
# `common-of-a-holy-woman`.
# - `common-of-apostles` (plural feasts, e.g. the Octave of Ss. Peter and
# Paul) is the same C1 pool as `common-of-an-apostle`.
#
# Not seeded here, deliberately — no direct Commune responsory file exists
# (angels and evangelists each have their own real proper content instead;
# vigils and the handful of `proper-to-*` ids aren't Commune categories at
# all): `common-of-an-angel`, `common-of-an-evangelist`, `common-of-a-vigil`,
# `proper-to-*`.
common-of-a-confessor:
- la: "R. Justus germinábit sicut lílium:\n* Et florébit in ætérnum ante Dóminum.\nV. Plantátus in domo Dómini, in átriis domus Dei nostri.\nR. Et florébit in ætérnum ante Dóminum."
en: "R. The righteous shall grow as the lily;\n* Yea, he shall flourish in the presence of the Lord for ever.\nV. Those that be planted in the house of the Lord, shall flourish in the courts of the house of our God.\nR. Yea, he shall flourish in the presence of the Lord for ever."
- la: "R. Iste cognóvit justítiam, et vidit mirabília magna, et exorávit Altíssimum:\n* Et invéntus est in número Sanctórum.\nV. Iste est qui contémpsit vitam mundi, et pervénit ad cæléstia regna.\nR. Et invéntus est in número Sanctórum."
en: "R. This is he which knew righteousness, and saw great wonders, and made his prayer unto the Most High;\n* And he is numbered among the Saints.\nV. This is he which loved not his life in this world, and is come unto an everlasting kingdom.\nR. And he is numbered among the Saints."
- la: "R. Honéstum fecit illum Dóminus, et custodívit eum ab inimícis, et a seductóribus tutávit illum:\n* Et dedit illi claritátem ætérnam.\nV. Justum dedúxit Dóminus per vias rectas, et osténdit illi regnum Dei.\nR. Et dedit illi claritátem ætérnam."
en: "R. The Lord made him honourable, and defended him from his enemies, and kept him safe from those that lay in wait for him;\n* And gave him perpetual glory.\nV. He went down with him into the pit, and left him not in bonds.\nR. And gave him perpetual glory."
- la: "R. Amávit eum Dóminus, et ornávit eum: stolam glóriæ índuit eum,\n* Et ad portas paradísi coronávit eum.\nV. Índuit eum Dóminus lorícam fídei, et ornávit eum.\nR. Et ad portas paradísi coronávit eum."
en: "R. The Lord loved him and beautified him; He clothed him with a robe of glory,\n* And crowned him at the gates of Paradise.\nV. The Lord hath put on him the breast-plate of faith, and hath adorned him.\nR. And crowned him at the gates of Paradise."
- la: "R. Iste homo perfécit ómnia quæ locútus est ei Deus, et dixit ad eum: Ingrédere in réquiem meam:\n* Quia te vidi justum coram me ex ómnibus géntibus.\nV. Iste est, qui contémpsit vitam mundi, et pervénit ad cæléstia regna.\nR. Quia te vidi justum coram me ex ómnibus géntibus."
en: "R. This is he which did according unto all that God commanded him; and God said unto him: Enter thou into My rest,\n* For thee have I seen righteous before Me among all people.\nV. This is he which loved not his life in this world, and is come unto an everlasting kingdom.\nR. For thee have I seen righteous before Me among all people."
- la: "R. Iste est qui ante Deum magnas virtútes operátus est, et de omni corde suo laudávit Dóminum:\n* Ipse intercédat pro peccátis ómnium populórum.\nV. Ecce homo sine queréla, verus Dei cultor, ábstinens se ab omni ópere malo, et pérmanens in innocéntia sua.\nR. Ipse intercédat pro peccátis ómnium populórum."
en: "R. This is he which wrought great wonders before God, and praised the Lord with all his heart.\n* May he pray for all people, that their sins may be forgiven unto them.\nV. Behold a man without blame, a worshipper of God in truth, keeping himself clean from every evil work, and abiding still in his innocency.\nR. May he pray for all people, that their sins may be forgiven unto them."
common-of-a-confessor-bishop:
- la: "R. Euge, serve bone et fidélis, quia in pauca fuísti fidélis, supra multa te constítuam:\n* Intra in gáudium Dómini tui.\nV. Dómine, quinque talénta tradidísti mihi, ecce ália quinque superlucrátus sum.\nR. Intra in gáudium Dómini tui."
en: "R. Well done, thou good and faithful servant, thou hast been faithful over a few things. I will make thee ruler over many things:\n* Enter thou into the joy of thy Lord.\nV. Lord, thou deliveredst unto me five talents; behold, I have gained beside them five talents more.\nR. Enter thou into the joy of thy Lord."
- la: "R. Ecce sacérdos magnus, qui in diébus suis plácuit Deo:\n* Ideo jurejurándo fecit illum Dóminus créscere in plebem suam.\nV. Benedictiónem ómnium géntium dedit illi, et testaméntum suum confirmávit super caput ejus.\nR. Ideo jurejurándo fecit illum Dóminus créscere in plebem suam."
en: "R. Behold an high priest, who in his days pleased God\n* Therefore the Lord assured him by an oath that He would multiply his seed among His people.\nV. He hath made him a blessing unto all nations, and hath established His covenant upon his head.\nR. Therefore the Lord assured him by an oath that He would multiply his seed among His people"
- la: "R. Jurávit Dóminus, et non pœnitébit eum:\n* Tu es sacérdos in ætérnum secúndum órdinem Melchísedech.\nV. Dixit Dóminus Dómino meo, Sede a dextris meis.\nR. Tu es sacérdos in ætérnum secúndum órdinem Melchísedech."
en: "R. The Lord hath sworn and will not repent\n* Thou art a Priest for ever after the order of Melchisedek.\nV. The Lord said unto my Lord Sit Thou at My right hand.\nR. Thou art a Priest for ever after the order of Melchisedek."
- la: "R. Invéni David servum meum, óleo sancto meo unxi eum:\n* Manus enim mea auxiliábitur ei.\nV. Nihil profíciet inimícus in eo, et fílius iniquitátis non nocébit ei.\nR. Manus enim mea auxiliábitur ei."
en: "R. I have found David My servant, with My holy oil have I anointed him\n* For My hand shall help him.\nV. The enemy shall prevail nothing against him, nor the son of wickedness afflict him.\nR. For My hand shall help him."
- la: "R. Pósui adjutórium super poténtem, et exaltávi eléctum de plebe mea:\n* Manus enim mea auxiliábitur ei.\nV. Invéni David servum meum, óleo sancto meo unxi eum.\nR. Manus enim mea auxiliábitur ei."
en: "R. I have laid help upon one that is mighty, and have exalted one chosen out of My people\n* For My hand shall help him.\nV. I have found David My servant, with My holy oil have I anointed him.\nR. For My hand shall help him."
- la: "R. Iste est, qui ante Deum magnas virtútes operátus est, et omnis terra doctrína ejus repléta est:\n* Ipse intercédat pro peccátis ómnium populórum.\nV. Iste est, qui contémpsit vitam mundi, et pervénit ad cæléstia regna.\nR. Ipse intercédat pro peccátis ómnium populórum."
en: "R. This is he which wrought great wonders before God, and the whole earth is full of his teaching\n* May he pray for all people, that their sins may be forgiven unto them\nV. This is he which loved not his life in this world, and hath attained unto the kingdom of heaven.\nR. May he pray for all people, that their sins may be forgiven unto them"
- la: "R. Amávit eum Dóminus, et ornávit eum: stolam glóriæ índuit eum,\n* Et ad portas paradísi coronávit eum.\nV. Induit eum Dóminus lorícam fídei, et ornávit eum.\nR. Et ad portas paradísi coronávit eum."
en: "R. The Lord loved him and beautified him He clothed him with a robe of glory\n* And crowned him at the gates of Paradise.\nV. The Lord hath put on him the breast-plate of faith, and hath adorned him.\nR. And crowned him at the gates of Paradise."
- la: "R. Sint lumbi vestri præcíncti, et lucérnæ ardéntes in mánibus vestris:\n* Et vos símiles homínibus exspectántibus dóminum suum, quando revertátur a núptiis.\nV. Vigiláte ergo, quia nescítis qua hora Dóminus vester ventúrus sit.\nR. Et vos símiles homínibus exspectántibus dóminum suum, quando revertátur a núptiis."
en: "R. Let your loins be girded about, and your lights burning;\n* And ye yourselves like unto men that wait for their lord, when he will return from the wedding.\nV. Watch therefore, for ye know not what hour your Lord doth come.\nR. And ye yourselves like unto men that wait for their lord, when he will return from the wedding."
common-of-a-confessor-doctor:
- la: "R. Euge, serve bone et fidélis, quia in pauca fuísti fidélis, supra multa te constítuam:\n* Intra in gáudium Dómini tui.\nV. Dómine, quinque talénta tradidísti mihi, ecce ália quinque superlucrátus sum.\nR. Intra in gáudium Dómini tui."
en: "R. Well done, thou good and faithful servant, thou hast been faithful over a few things. I will make thee ruler over many things:\n* Enter thou into the joy of thy Lord.\nV. Lord, thou deliveredst unto me five talents; behold, I have gained beside them five talents more.\nR. Enter thou into the joy of thy Lord."
- la: "R. Ecce sacérdos magnus, qui in diébus suis plácuit Deo:\n* Ideo jurejurándo fecit illum Dóminus créscere in plebem suam.\nV. Benedictiónem ómnium géntium dedit illi, et testaméntum suum confirmávit super caput ejus.\nR. Ideo jurejurándo fecit illum Dóminus créscere in plebem suam."
en: "R. Behold an high priest, who in his days pleased God\n* Therefore the Lord assured him by an oath that He would multiply his seed among His people.\nV. He hath made him a blessing unto all nations, and hath established His covenant upon his head.\nR. Therefore the Lord assured him by an oath that He would multiply his seed among His people"
- la: "R. Jurávit Dóminus, et non pœnitébit eum:\n* Tu es sacérdos in ætérnum secúndum órdinem Melchísedech.\nV. Dixit Dóminus Dómino meo, Sede a dextris meis.\nR. Tu es sacérdos in ætérnum secúndum órdinem Melchísedech."
en: "R. The Lord hath sworn and will not repent\n* Thou art a Priest for ever after the order of Melchisedek.\nV. The Lord said unto my Lord Sit Thou at My right hand.\nR. Thou art a Priest for ever after the order of Melchisedek."
- la: "R. Invéni David servum meum, óleo sancto meo unxi eum:\n* Manus enim mea auxiliábitur ei.\nV. Nihil profíciet inimícus in eo, et fílius iniquitátis non nocébit ei.\nR. Manus enim mea auxiliábitur ei."
en: "R. I have found David My servant, with My holy oil have I anointed him\n* For My hand shall help him.\nV. The enemy shall prevail nothing against him, nor the son of wickedness afflict him.\nR. For My hand shall help him."
- la: "R. Pósui adjutórium super poténtem, et exaltávi eléctum de plebe mea:\n* Manus enim mea auxiliábitur ei.\nV. Invéni David servum meum, óleo sancto meo unxi eum.\nR. Manus enim mea auxiliábitur ei."
en: "R. I have laid help upon one that is mighty, and have exalted one chosen out of My people\n* For My hand shall help him.\nV. I have found David My servant, with My holy oil have I anointed him.\nR. For My hand shall help him."
- la: "R. Iste est, qui ante Deum magnas virtútes operátus est, et omnis terra doctrína ejus repléta est:\n* Ipse intercédat pro peccátis ómnium populórum.\nV. Iste est, qui contémpsit vitam mundi, et pervénit ad cæléstia regna.\nR. Ipse intercédat pro peccátis ómnium populórum."
en: "R. This is he which wrought great wonders before God, and the whole earth is full of his teaching\n* May he pray for all people, that their sins may be forgiven unto them\nV. This is he which loved not his life in this world, and hath attained unto the kingdom of heaven.\nR. May he pray for all people, that their sins may be forgiven unto them"
- la: "R. Amávit eum Dóminus, et ornávit eum: stolam glóriæ índuit eum,\n* Et ad portas paradísi coronávit eum.\nV. Induit eum Dóminus lorícam fídei, et ornávit eum.\nR. Et ad portas paradísi coronávit eum."
en: "R. The Lord loved him and beautified him He clothed him with a robe of glory\n* And crowned him at the gates of Paradise.\nV. The Lord hath put on him the breast-plate of faith, and hath adorned him.\nR. And crowned him at the gates of Paradise."
- la: "R. Sint lumbi vestri præcíncti, et lucérnæ ardéntes in mánibus vestris:\n* Et vos símiles homínibus exspectántibus dóminum suum, quando revertátur a núptiis.\nV. Vigiláte ergo, quia nescítis qua hora Dóminus vester ventúrus sit.\nR. Et vos símiles homínibus exspectántibus dóminum suum, quando revertátur a núptiis."
en: "R. Let your loins be girded about, and your lights burning;\n* And ye yourselves like unto men that wait for their lord, when he will return from the wedding.\nV. Watch therefore, for ye know not what hour your Lord doth come.\nR. And ye yourselves like unto men that wait for their lord, when he will return from the wedding."
common-of-a-confessor-not-bishop:
- la: "R. Justus germinábit sicut lílium:\n* Et florébit in ætérnum ante Dóminum.\nV. Plantátus in domo Dómini, in átriis domus Dei nostri.\nR. Et florébit in ætérnum ante Dóminum."
en: "R. The righteous shall grow as the lily;\n* Yea, he shall flourish in the presence of the Lord for ever.\nV. Those that be planted in the house of the Lord, shall flourish in the courts of the house of our God.\nR. Yea, he shall flourish in the presence of the Lord for ever."
- la: "R. Iste cognóvit justítiam, et vidit mirabília magna, et exorávit Altíssimum:\n* Et invéntus est in número Sanctórum.\nV. Iste est qui contémpsit vitam mundi, et pervénit ad cæléstia regna.\nR. Et invéntus est in número Sanctórum."
en: "R. This is he which knew righteousness, and saw great wonders, and made his prayer unto the Most High;\n* And he is numbered among the Saints.\nV. This is he which loved not his life in this world, and is come unto an everlasting kingdom.\nR. And he is numbered among the Saints."
- la: "R. Honéstum fecit illum Dóminus, et custodívit eum ab inimícis, et a seductóribus tutávit illum:\n* Et dedit illi claritátem ætérnam.\nV. Justum dedúxit Dóminus per vias rectas, et osténdit illi regnum Dei.\nR. Et dedit illi claritátem ætérnam."
en: "R. The Lord made him honourable, and defended him from his enemies, and kept him safe from those that lay in wait for him;\n* And gave him perpetual glory.\nV. He went down with him into the pit, and left him not in bonds.\nR. And gave him perpetual glory."
- la: "R. Amávit eum Dóminus, et ornávit eum: stolam glóriæ índuit eum,\n* Et ad portas paradísi coronávit eum.\nV. Índuit eum Dóminus lorícam fídei, et ornávit eum.\nR. Et ad portas paradísi coronávit eum."
en: "R. The Lord loved him and beautified him; He clothed him with a robe of glory,\n* And crowned him at the gates of Paradise.\nV. The Lord hath put on him the breast-plate of faith, and hath adorned him.\nR. And crowned him at the gates of Paradise."
- la: "R. Iste homo perfécit ómnia quæ locútus est ei Deus, et dixit ad eum: Ingrédere in réquiem meam:\n* Quia te vidi justum coram me ex ómnibus géntibus.\nV. Iste est, qui contémpsit vitam mundi, et pervénit ad cæléstia regna.\nR. Quia te vidi justum coram me ex ómnibus géntibus."
en: "R. This is he which did according unto all that God commanded him; and God said unto him: Enter thou into My rest,\n* For thee have I seen righteous before Me among all people.\nV. This is he which loved not his life in this world, and is come unto an everlasting kingdom.\nR. For thee have I seen righteous before Me among all people."
- la: "R. Iste est qui ante Deum magnas virtútes operátus est, et de omni corde suo laudávit Dóminum:\n* Ipse intercédat pro peccátis ómnium populórum.\nV. Ecce homo sine queréla, verus Dei cultor, ábstinens se ab omni ópere malo, et pérmanens in innocéntia sua.\nR. Ipse intercédat pro peccátis ómnium populórum."
en: "R. This is he which wrought great wonders before God, and praised the Lord with all his heart.\n* May he pray for all people, that their sins may be forgiven unto them.\nV. Behold a man without blame, a worshipper of God in truth, keeping himself clean from every evil work, and abiding still in his innocency.\nR. May he pray for all people, that their sins may be forgiven unto them."
common-of-a-confessor-pope:
- la: "R. Euge, serve bone et fidélis, quia in pauca fuísti fidélis, supra multa te constítuam:\n* Intra in gáudium Dómini tui.\nV. Dómine, quinque talénta tradidísti mihi, ecce ália quinque superlucrátus sum.\nR. Intra in gáudium Dómini tui."
en: "R. Well done, thou good and faithful servant, thou hast been faithful over a few things. I will make thee ruler over many things:\n* Enter thou into the joy of thy Lord.\nV. Lord, thou deliveredst unto me five talents; behold, I have gained beside them five talents more.\nR. Enter thou into the joy of thy Lord."
- la: "R. Ecce sacérdos magnus, qui in diébus suis plácuit Deo:\n* Ideo jurejurándo fecit illum Dóminus créscere in plebem suam.\nV. Benedictiónem ómnium géntium dedit illi, et testaméntum suum confirmávit super caput ejus.\nR. Ideo jurejurándo fecit illum Dóminus créscere in plebem suam."
en: "R. Behold an high priest, who in his days pleased God\n* Therefore the Lord assured him by an oath that He would multiply his seed among His people.\nV. He hath made him a blessing unto all nations, and hath established His covenant upon his head.\nR. Therefore the Lord assured him by an oath that He would multiply his seed among His people"
- la: "R. Jurávit Dóminus, et non pœnitébit eum:\n* Tu es sacérdos in ætérnum secúndum órdinem Melchísedech.\nV. Dixit Dóminus Dómino meo, Sede a dextris meis.\nR. Tu es sacérdos in ætérnum secúndum órdinem Melchísedech."
en: "R. The Lord hath sworn and will not repent\n* Thou art a Priest for ever after the order of Melchisedek.\nV. The Lord said unto my Lord Sit Thou at My right hand.\nR. Thou art a Priest for ever after the order of Melchisedek."
- la: "R. Invéni David servum meum, óleo sancto meo unxi eum:\n* Manus enim mea auxiliábitur ei.\nV. Nihil profíciet inimícus in eo, et fílius iniquitátis non nocébit ei.\nR. Manus enim mea auxiliábitur ei."
en: "R. I have found David My servant, with My holy oil have I anointed him\n* For My hand shall help him.\nV. The enemy shall prevail nothing against him, nor the son of wickedness afflict him.\nR. For My hand shall help him."
- la: "R. Pósui adjutórium super poténtem, et exaltávi eléctum de plebe mea:\n* Manus enim mea auxiliábitur ei.\nV. Invéni David servum meum, óleo sancto meo unxi eum.\nR. Manus enim mea auxiliábitur ei."
en: "R. I have laid help upon one that is mighty, and have exalted one chosen out of My people\n* For My hand shall help him.\nV. I have found David My servant, with My holy oil have I anointed him.\nR. For My hand shall help him."
- la: "R. Iste est, qui ante Deum magnas virtútes operátus est, et omnis terra doctrína ejus repléta est:\n* Ipse intercédat pro peccátis ómnium populórum.\nV. Iste est, qui contémpsit vitam mundi, et pervénit ad cæléstia regna.\nR. Ipse intercédat pro peccátis ómnium populórum."
en: "R. This is he which wrought great wonders before God, and the whole earth is full of his teaching\n* May he pray for all people, that their sins may be forgiven unto them\nV. This is he which loved not his life in this world, and hath attained unto the kingdom of heaven.\nR. May he pray for all people, that their sins may be forgiven unto them"
- la: "R. Amávit eum Dóminus, et ornávit eum: stolam glóriæ índuit eum,\n* Et ad portas paradísi coronávit eum.\nV. Induit eum Dóminus lorícam fídei, et ornávit eum.\nR. Et ad portas paradísi coronávit eum."
en: "R. The Lord loved him and beautified him He clothed him with a robe of glory\n* And crowned him at the gates of Paradise.\nV. The Lord hath put on him the breast-plate of faith, and hath adorned him.\nR. And crowned him at the gates of Paradise."
- la: "R. Sint lumbi vestri præcíncti, et lucérnæ ardéntes in mánibus vestris:\n* Et vos símiles homínibus exspectántibus dóminum suum, quando revertátur a núptiis.\nV. Vigiláte ergo, quia nescítis qua hora Dóminus vester ventúrus sit.\nR. Et vos símiles homínibus exspectántibus dóminum suum, quando revertátur a núptiis."
en: "R. Let your loins be girded about, and your lights burning;\n* And ye yourselves like unto men that wait for their lord, when he will return from the wedding.\nV. Watch therefore, for ye know not what hour your Lord doth come.\nR. And ye yourselves like unto men that wait for their lord, when he will return from the wedding."
common-of-a-dedication:
- la: "R. In dedicatióne templi decantábat pópulus laudem:\n* Et in ore eórum dulcis resonábat sonus.\nV. Fundáta est domus Dómini supra vérticem móntium, et vénient ad eam omnes gentes.\nR. Et in ore eórum dulcis resonábat sonus."
en: "R. When the Temple was dedicated the people sang praise;\n* And sweet in their mouths was the sound.\nV. The Lord's house is established in the top of the mountains; and all nations shall flow unto it.\nR. And sweet in their mouths was the sound."
- la: "R. Fundáta est domus Dómini supra vérticem móntium, et exaltáta est super omnes colles:\n* Et vénient ad eam omnes gentes, et dicent: Glória tibi, Dómine.\nV. Veniéntes autem vénient cum exsultatióne, portántes manípulos suos.\nR. Et vénient ad eam omnes gentes, et dicent: Glória tibi, Dómine."
en: "R. The Lord's house is established in the top of the mountains, and exalted above the hills;\n* And all nations shall flow unto it, and shall say: Glory be to thee, O Lord!\nV. They shall doubtless come again with rejoicing, bringing their sheaves with them.\nR. And all nations shall flow unto it, and shall say: Glory be to thee, O Lord!"
- la: "R. Bénedic, Dómine, domum istam, quam ædificávi nómini tuo: veniéntium in loco isto\n* Exáudi preces in excélso sólio glóriæ tuæ.\nV. Dómine, si convérsus fúerit pópulus tuus, et oráverit ad sanctuárium tuum.\nR. Exáudi preces in excélso sólio glóriæ tuæ."
en: "R. O Lord, bless this house which I have built unto thy name. whosoever shall come unto this place and pray, then\n* Hear thou from the excellent throne of thy glory.\nV. O Lord, if thy people turn and pray toward thy sanctuary.\nR. Hear thou from the excellent throne of thy glory."
- la: "R. Orántibus in loco isto,\n* Dimítte peccáta pópuli tui, Deus, et osténde eis viam bonam per quam ámbulent, et da glóriam in loco isto.\nV. Qui regis Israël inténde, qui dedúcis velut ovem Joseph, qui sedes super Chérubim.\nR. Dimítte peccáta pópuli tui, Deus, et osténde eis viam bonam per quam ámbulent, et da glóriam in loco isto."
en: "R. If they pray toward this place,\n* Forgive the sin of thy people, O God, and teach them the good way wherein they should walk, and manifest forth thy glory in this place.\nV. Give ear, O Shepherd of Israel, thou that leadest Joseph like a flock, thou that sittest upon the cherubim.\nR. Forgive the sin of thy people, O God, and teach them the good way wherein they should walk, and manifest forth thy glory in this place."
- la: "R. O quam metuéndus est locus iste:\n* Vere non est hic áliud nisi domus Dei et porta cæli.\nV. Hæc est domus Dómini fírmiter ædificáta, bene fundáta est supra firmam petram.\nR. Vere non est hic áliud nisi domus Dei et porta cæli."
en: "R. How dreadful is this place!\n* Surely this is none other but the house of God, and this is the gate of heaven.\nV. This is the house of God, stoutly builded, well founded upon a sure rock.\nR. Surely this is none other but the house of God, and this is the gate of heaven."
- la: "R. Mane surgens Jacob, erigébat lápidem in títulum, fundens óleum désuper; votum vovit Dómino:\n* Vere locus iste sanctus est, et ego nesciébam.\nV. Cumque evigilásset Jacob de somno, ait.\nR. Vere locus iste sanctus est, et ego nesciébam."
en: "R. Jacob rose up early in the morning, and set up the stone for a pillar, and poured oil upon the top of it, and vowed a vow unto the Lord.\n* Surely this place is holy, and I knew it not.\nV. And Jacob awaked out of his sleep, and he said\nR. Surely this place is holy, and I knew it not."
- la: "R. Domus mea, domus oratiónis vocábitur, dicit Dóminus: in ea omnis qui petit, áccipit; et qui quærit, ínvenit;\n* Et pulsánti aperiétur.\nV. Pétite, et accipiétis; quǽrite, et inveniétis.\nR. Et pulsánti aperiétur."
en: "R. My house shall be called the house of prayer, saith the Lord. Therein, he that asketh, receiveth; he that seeketh, findeth;\n* And to him that knocketh, it shall be opened.\nV. Ask, and ye shall receive; seek, and ye shall find.\nR. And to him that knocketh, it shall be opened."
- la: "R. Lápides pretiósi omnes muri tui,\n* Et turres Jerúsalem gemmis ædificabúntur.\nV. Portæ Jerúsalem ex sapphíro et smarágdo ædificabúntur, et ex lápide pretióso omnis circúitus muri ejus.\nR. Et turres Jerúsalem gemmis ædificabúntur."
en: "R. All thy walls are of stones most precious.\n* The towers of Jerusalem shall be built up with jewels.\nV. The gates of Jerusalem shall be built up with the sapphire stone, and the emerald, and all her walls round about with stones most precious.\nR. The towers of Jerusalem shall be built up with jewels."
common-of-a-holy-woman:
- la: "R. Fallax grátia, et vana est pulchritúdo:\n* Múlier timens Dóminum, ipsa laudábitur.\nV. Date ei de fructu mánuum suárum, et laudent eam in portis ópera ejus.\nR. Múlier timens Dóminum, ipsa laudábitur."
en: "R. Favour is deceitful, and beauty is vain\n* A woman that feareth God she shall be praised.\nV. Give her of the fruit of her hands, and let her own works praise her in the gates.\nR. A woman that feareth God she shall be praised."
- la: "R. Os suum apéruit sapiéntiæ, et lex cleméntiæ in lingua ejus: considerávit sémitas domus suæ,\n* Et panem otiósa non comédit.\nV. Gustávit et vidit quia bona est negotiátio ejus: non exstinguétur in nocte lucérna ejus.\nR. Et panem otiósa non comédit."
en: "R. She openeth her mouth with wisdom, and in her tongue is the law of kindness. She looketh well to the ways of her household\n* And eateth not the bread of idleness.\nV. She tasteth and perceiveth that her merchandise is good. Her candle goeth not out by night.\nR. And she eateth not the bread of idleness."
- la: "R. Regnum mundi et omnem ornátum sǽculi contémpsi, propter amórem Dómini mei Jesu Christi:\n* Quem vidi, quem amávi, in quem crédidi, quem diléxi.\nV. Eructávit cor meum verbum bonum: dico ego ópera mea Regi.\nR. Quem vidi, quem amávi, in quem crédidi, quem diléxi."
en: "R. The kingdom of this world and all the beauty of life I have esteemed as nothing, for the excellency of the love of Jesus Christ my Lord\n* Whom, having seen, I loved Whom, having believed, I longed after.\nV. My heart is overflowing with a good matter I speak of my works unto the King.\nR. Whom, having seen, I loved Whom, having believed, I longed after."
common-of-a-martyr:
- la: "R. Iste Sanctus pro lege Dei sui certávit usque ad mortem, et a verbis impiórum non tímuit:\n* Fundátus enim erat supra firmam petram.\nV. Iste est qui contémpsit vitam mundi, et pervénit ad cæléstia regna.\nR. Fundátus enim erat supra firmam petram."
en: "R. This man is holy, for he hath striven for the law of his God even unto death, and hath not feared for the words of the ungodly;\n* For he had his foundation upon a strong rock.\nV. This is he which loved not his life in this world, and is come unto an everlasting kingdom.\nR. For he had his foundation upon a strong rock."
- la: "R. Justus germinábit sicut lílium:\n* Et florébit in ætérnum ante Dóminum.\nV. Plantátus in domo Dómini, in átriis domus Dei nostri.\nR. Et florébit in ætérnum ante Dóminum."
en: "R. The righteous shall grow as the lily\n* Yea, he shall flourish in the presence of the Lord for ever.\nV. Those that be planted in the house of the Lord, shall flourish in the courts of the house of our God.\nR. Yea, he shall flourish in the presence of the Lord for ever."
- la: "R. Iste cognóvit justítiam, et vidit mirabília magna, et exorávit Altíssimum\n* Et invéntus est in número Sanctórum.\nV. Iste est qui contémpsit vitam mundi, et pervénit ad cæléstia regna.\nR. Et invéntus est in número Sanctórum."
en: "R. This is he which knew righteousness, and saw great wonders, and made his prayer unto the Most High\n* And he is numbered among the Saints.\nV. This is he which loved not his life in this world, and is come unto an everlasting kingdom.\nR. And he is numbered among the Saints."
- la: "R. Honéstum fecit illum Dóminus, et custodívit eum ab inimícis, et a seductóribus tutávit illum:\n* Et dedit illi claritátem ætérnam.\nV. Descendítque cum illo in fóveam, et in vínculis non derelíquit eum.\nR. Et dedit illi claritátem ætérnam."
en: "R. The Lord made him honourable, and defended him from his enemies, and kept him safe from those that lay in wait for him,\n* And gave him perpetual glory.\nV. He went down with him into the pit, and left him not in bonds.\nR. And gave him perpetual glory."
- la: "R. Desidérium ánimæ ejus tribuísti ei Dómine,\n* Et voluntáte labiórum ejus non fraudásti eum.\nV. Quóniam prævenísti eum in benedictiónibus dulcédinis: posuísti in cápite ejus corónam de lápide pretióso.\nR. Et voluntáte labiórum ejus non fraudásti eum."
en: "R. Lord, Thou hast given him his heart's desire.\n* And hast not withholden the request of his lips.\nV. For Thou hast prevented him with the blessings of sweetness: Thou hast set a crown of precious stones upon his head.\nR. And hast not withholden the request of his lips."
- la: "R. Stola jucunditátis índuit eum Dóminus:\n* Et corónam pulchritúdinis pósuit super caput ejus.\nV. Cibávit illum Dóminus pane vitæ et intelléctus: et aqua sapiéntiæ salutáris potávit illum.\nR. Et corónam pulchritúdinis pósuit super caput ejus."
en: "R. The Lord hath put on him a robe of honour,\n* And put about his head a crown of joy.\nV. With the bread of life and understanding hath the Lord fed him, and given him the water of health and wisdom to drink.\nR. And put about his head a crown of joy."
- la: "R. Coróna áurea super caput ejus,\n* Expréssa signo sanctitátis, glória honóris, et opus fortitúdinis.\nV. Quóniam prævenísti eum in benedictiónibus dulcédinis, posuísti in cápite ejus corónam de lápide pretióso.\nR. Expréssa signo sanctitátis, glória honóris, et opus fortitúdinis."
en: "R. A crown of gold upon his head,\n* Wherein is engraved Holiness, an ornament of honour, a costly work.\nV. For Thou hast prevented him with the blessings of sweetness, Thou hast set a crown of precious stones upon his head.\nR. Wherein is engraved Holiness, an ornament of honour, a costly work."
- la: "R. Hic est vere Martyr, qui pro Christi nómine sánguinem suum fudit:\n* Qui minas júdicum non tímuit, nec terrénæ dignitátis glóriam quæsívit, sed ad cæléstia regna pervénit.\nV. Justum dedúxit Dóminus per vias rectas, et osténdit illi regnum Dei.\nR. Qui minas júdicum non tímuit, nec terrénæ dignitátis glóriam quæsívit, sed ad cæléstia regna pervénit."
en: "R. This is a Martyr indeed, who shed his blood for Christ's Name's sake\n* Who feared not for the threats of judges, nor sought to be great with the glory of this world, but pressed on unto the kingdom of heaven.\nV. The Lord guided the righteous in right paths, and showed him the kingdom of God.\nR. Who feared not for the threats of judges, nor sought to be great with the glory of this world, but pressed on unto the kingdom of heaven."
common-of-a-martyr-bishop:
- la: "R. Iste Sanctus pro lege Dei sui certávit usque ad mortem, et a verbis impiórum non tímuit:\n* Fundátus enim erat supra firmam petram.\nV. Iste est qui contémpsit vitam mundi, et pervénit ad cæléstia regna.\nR. Fundátus enim erat supra firmam petram."
en: "R. This man is holy, for he hath striven for the law of his God even unto death, and hath not feared for the words of the ungodly;\n* For he had his foundation upon a strong rock.\nV. This is he which loved not his life in this world, and is come unto an everlasting kingdom.\nR. For he had his foundation upon a strong rock."
- la: "R. Justus germinábit sicut lílium:\n* Et florébit in ætérnum ante Dóminum.\nV. Plantátus in domo Dómini, in átriis domus Dei nostri.\nR. Et florébit in ætérnum ante Dóminum."
en: "R. The righteous shall grow as the lily\n* Yea, he shall flourish in the presence of the Lord for ever.\nV. Those that be planted in the house of the Lord, shall flourish in the courts of the house of our God.\nR. Yea, he shall flourish in the presence of the Lord for ever."
- la: "R. Iste cognóvit justítiam, et vidit mirabília magna, et exorávit Altíssimum\n* Et invéntus est in número Sanctórum.\nV. Iste est qui contémpsit vitam mundi, et pervénit ad cæléstia regna.\nR. Et invéntus est in número Sanctórum."
en: "R. This is he which knew righteousness, and saw great wonders, and made his prayer unto the Most High\n* And he is numbered among the Saints.\nV. This is he which loved not his life in this world, and is come unto an everlasting kingdom.\nR. And he is numbered among the Saints."
- la: "R. Honéstum fecit illum Dóminus, et custodívit eum ab inimícis, et a seductóribus tutávit illum:\n* Et dedit illi claritátem ætérnam.\nV. Descendítque cum illo in fóveam, et in vínculis non derelíquit eum.\nR. Et dedit illi claritátem ætérnam."
en: "R. The Lord made him honourable, and defended him from his enemies, and kept him safe from those that lay in wait for him,\n* And gave him perpetual glory.\nV. He went down with him into the pit, and left him not in bonds.\nR. And gave him perpetual glory."
- la: "R. Desidérium ánimæ ejus tribuísti ei Dómine,\n* Et voluntáte labiórum ejus non fraudásti eum.\nV. Quóniam prævenísti eum in benedictiónibus dulcédinis: posuísti in cápite ejus corónam de lápide pretióso.\nR. Et voluntáte labiórum ejus non fraudásti eum."
en: "R. Lord, Thou hast given him his heart's desire.\n* And hast not withholden the request of his lips.\nV. For Thou hast prevented him with the blessings of sweetness: Thou hast set a crown of precious stones upon his head.\nR. And hast not withholden the request of his lips."
- la: "R. Stola jucunditátis índuit eum Dóminus:\n* Et corónam pulchritúdinis pósuit super caput ejus.\nV. Cibávit illum Dóminus pane vitæ et intelléctus: et aqua sapiéntiæ salutáris potávit illum.\nR. Et corónam pulchritúdinis pósuit super caput ejus."
en: "R. The Lord hath put on him a robe of honour,\n* And put about his head a crown of joy.\nV. With the bread of life and understanding hath the Lord fed him, and given him the water of health and wisdom to drink.\nR. And put about his head a crown of joy."
- la: "R. Coróna áurea super caput ejus,\n* Expréssa signo sanctitátis, glória honóris, et opus fortitúdinis.\nV. Quóniam prævenísti eum in benedictiónibus dulcédinis, posuísti in cápite ejus corónam de lápide pretióso.\nR. Expréssa signo sanctitátis, glória honóris, et opus fortitúdinis."
en: "R. A crown of gold upon his head,\n* Wherein is engraved Holiness, an ornament of honour, a costly work.\nV. For Thou hast prevented him with the blessings of sweetness, Thou hast set a crown of precious stones upon his head.\nR. Wherein is engraved Holiness, an ornament of honour, a costly work."
- la: "R. Hic est vere Martyr, qui pro Christi nómine sánguinem suum fudit:\n* Qui minas júdicum non tímuit, nec terrénæ dignitátis glóriam quæsívit, sed ad cæléstia regna pervénit.\nV. Justum dedúxit Dóminus per vias rectas, et osténdit illi regnum Dei.\nR. Qui minas júdicum non tímuit, nec terrénæ dignitátis glóriam quæsívit, sed ad cæléstia regna pervénit."
en: "R. This is a Martyr indeed, who shed his blood for Christ's Name's sake\n* Who feared not for the threats of judges, nor sought to be great with the glory of this world, but pressed on unto the kingdom of heaven.\nV. The Lord guided the righteous in right paths, and showed him the kingdom of God.\nR. Who feared not for the threats of judges, nor sought to be great with the glory of this world, but pressed on unto the kingdom of heaven."
common-of-a-virgin:
- la: "R. Veni Sponsa Christi, áccipe corónam, quam tibi Dóminus præparávit in ætérnum; pro cujus amóre sánguinem tuum fudísti,\n* Et cum Ángelis in paradísum introísti.\nV. Veni, elécta mea, et ponam in te thronum meum; quia concupívit Rex spéciem tuam.\nR. Et cum Ángelis in paradísum introísti."
en: "R. Come, Bride of Christ, and take the everlasting crown, which the Lord hath prepared for thee, even for thee who for the love of Him hast shed thy blood;\n* And art entered with Angels into His garden.\nV. Come, O My chosen one, and I will establish My throne in thee, for the King hath reatly desired thy beauty\nR. And art entered with Angels into His garden."
- la: "R. Diffúsa est grátia in lábiis tuis,\n* Proptérea benedíxit te Deus in ætérnum.\nV. Spécie tua et pulchritúdine tua inténde, próspere procéde, et regna.\nR. Proptérea benedíxit te Deus in ætérnum."
en: "R. Grace is poured into thy lips, therefore;\n* God hath blessed thee for ever.\nV. In thy comeliness and thy beauty, go forward, fare prosperously, and reign.\nR. God hath blessed thee for ever."
- la: "R. Spécie tua et pulchritúdine tua\n* Inténde, próspere procéde, et regna.\nV. Diffúsa est grátia in lábiis tuis, proptérea benedíxit te Deus in ætérnum.\nR. Inténde, próspere procéde, et regna."
en: "R. In thy comeliness and thy beauty;\n* Go forward, fare prosperously, and reign.\nV. Grace is poured into thy lips, therefore God hath blessed thee for ever.\nR. Go forward, fare prosperously, and reign."
- la: "R. Propter veritátem, et mansuetúdinem, et justítiam:\n* Et dedúcet te mirabíliter déxtera tua.\nV. Spécie tua et pulchritúdine tua inténde, próspere procéde, et regna.\nR. Et dedúcet te mirabíliter déxtera tua."
en: "R. Because of truth, and meekness, and righteousness;\n* And thy right hand shall lead thee wonderfully.\nV. In thy comeliness, and thy beauty, go forward, fare prosperously, and reign.\nR. And thy right hand shall lead thee wonderfully."
- la: "R. Dilexísti justítiam, et odísti iniquitátem:\n* Proptérea unxit te Deus, Deus tuus, óleo lætítiæ.\nV. Propter veritátem, et mansuetúdinem, et justítiam.\nR. Proptérea unxit te Deus, Deus tuus, óleo lætítiæ."
en: "R. Thou hast loved righteousness, and hated iniquity;\n* Therefore God, thy God, hath anointed thee with the oil of gladness.\nV. Because of truth, and meekness, and righteousness.\nR. Therefore God, thy God, hath anointed thee with the oil of gladness."
- la: "R. Afferéntur Regi vírgines post eam, próximæ ejus;\n* Afferéntur tibi in lætítia et exsultatióne.\nV. Spécie tua et pulchritúdine tua; inténde, próspere procéde, et regna.\nR. Afferéntur tibi in lætítia et exsultatióne."
en: "R. After her shall virgins be brought unto the King, her fellows\n* They shall be brought unto thee with gladness and rejoicing.\nV. In thy comeliness and thy beauty, go forward, fare prosperously, and reign.\nR. They shall be brought unto thee with gladness and rejoicing."
- la: "R. Hæc est Virgo sápiens, quam Dóminus vigilántem invénit, quæ accéptis lampádibus sumpsit secum óleum:\n* Et veniénte Dómino, introívit cum eo ad núptias.\nV. Média nocte clamor factus est: Ecce sponsus venit, exíte óbviam ei.\nR. Et veniénte Dómino, introívit cum eo ad núptias."
en: "R. This is one of those wise virgins, whom the Lord found watching, for when she took her lamp, she took oil with her.\n* And when the Lord came, she went in with him to the marriage.\nV. At midnight there was a cry made: Behold, the Bridegroom cometh, go ye out to meet him.\nR. And when the Lord came, she went in with him to the marriage."
- la: "R. Média nocte clamor factus est:\n* Ecce sponsus venit, exíte óbviam ei.\nV. Prudéntes vírgines, aptáte vestras lámpades.\nR. Ecce sponsus venit, exíte óbviam ei."
en: "R. At midnight there was a cry made:\n* Behold, the Bridegroom cometh, go ye out to meet him.\nV. Trim your lamps, O ye wise virgins.\nR. Behold, the Bridegroom cometh, go ye out to meet him."
common-of-a-virgin-martyr:
- la: "R. Veni Sponsa Christi, áccipe corónam, quam tibi Dóminus præparávit in ætérnum; pro cujus amóre sánguinem tuum fudísti,\n* Et cum Ángelis in paradísum introísti.\nV. Veni, elécta mea, et ponam in te thronum meum; quia concupívit Rex spéciem tuam.\nR. Et cum Ángelis in paradísum introísti."
en: "R. Come, Bride of Christ, and take the everlasting crown, which the Lord hath prepared for thee, even for thee who for the love of Him hast shed thy blood;\n* And art entered with Angels into His garden.\nV. Come, O My chosen one, and I will establish My throne in thee, for the King hath reatly desired thy beauty\nR. And art entered with Angels into His garden."
- la: "R. Diffúsa est grátia in lábiis tuis,\n* Proptérea benedíxit te Deus in ætérnum.\nV. Spécie tua et pulchritúdine tua inténde, próspere procéde, et regna.\nR. Proptérea benedíxit te Deus in ætérnum."
en: "R. Grace is poured into thy lips, therefore;\n* God hath blessed thee for ever.\nV. In thy comeliness and thy beauty, go forward, fare prosperously, and reign.\nR. God hath blessed thee for ever."
- la: "R. Spécie tua et pulchritúdine tua\n* Inténde, próspere procéde, et regna.\nV. Diffúsa est grátia in lábiis tuis, proptérea benedíxit te Deus in ætérnum.\nR. Inténde, próspere procéde, et regna."
en: "R. In thy comeliness and thy beauty;\n* Go forward, fare prosperously, and reign.\nV. Grace is poured into thy lips, therefore God hath blessed thee for ever.\nR. Go forward, fare prosperously, and reign."
- la: "R. Propter veritátem, et mansuetúdinem, et justítiam:\n* Et dedúcet te mirabíliter déxtera tua.\nV. Spécie tua et pulchritúdine tua inténde, próspere procéde, et regna.\nR. Et dedúcet te mirabíliter déxtera tua."
en: "R. Because of truth, and meekness, and righteousness;\n* And thy right hand shall lead thee wonderfully.\nV. In thy comeliness, and thy beauty, go forward, fare prosperously, and reign.\nR. And thy right hand shall lead thee wonderfully."
- la: "R. Dilexísti justítiam, et odísti iniquitátem:\n* Proptérea unxit te Deus, Deus tuus, óleo lætítiæ.\nV. Propter veritátem, et mansuetúdinem, et justítiam.\nR. Proptérea unxit te Deus, Deus tuus, óleo lætítiæ."
en: "R. Thou hast loved righteousness, and hated iniquity;\n* Therefore God, thy God, hath anointed thee with the oil of gladness.\nV. Because of truth, and meekness, and righteousness.\nR. Therefore God, thy God, hath anointed thee with the oil of gladness."
- la: "R. Afferéntur Regi vírgines post eam, próximæ ejus;\n* Afferéntur tibi in lætítia et exsultatióne.\nV. Spécie tua et pulchritúdine tua; inténde, próspere procéde, et regna.\nR. Afferéntur tibi in lætítia et exsultatióne."
en: "R. After her shall virgins be brought unto the King, her fellows\n* They shall be brought unto thee with gladness and rejoicing.\nV. In thy comeliness and thy beauty, go forward, fare prosperously, and reign.\nR. They shall be brought unto thee with gladness and rejoicing."
- la: "R. Hæc est Virgo sápiens, quam Dóminus vigilántem invénit, quæ accéptis lampádibus sumpsit secum óleum:\n* Et veniénte Dómino, introívit cum eo ad núptias.\nV. Média nocte clamor factus est: Ecce sponsus venit, exíte óbviam ei.\nR. Et veniénte Dómino, introívit cum eo ad núptias."
en: "R. This is one of those wise virgins, whom the Lord found watching, for when she took her lamp, she took oil with her.\n* And when the Lord came, she went in with him to the marriage.\nV. At midnight there was a cry made: Behold, the Bridegroom cometh, go ye out to meet him.\nR. And when the Lord came, she went in with him to the marriage."
- la: "R. Média nocte clamor factus est:\n* Ecce sponsus venit, exíte óbviam ei.\nV. Prudéntes vírgines, aptáte vestras lámpades.\nR. Ecce sponsus venit, exíte óbviam ei."
en: "R. At midnight there was a cry made:\n* Behold, the Bridegroom cometh, go ye out to meet him.\nV. Trim your lamps, O ye wise virgins.\nR. Behold, the Bridegroom cometh, go ye out to meet him."
common-of-a-widow:
- la: "R. Fallax grátia, et vana est pulchritúdo:\n* Múlier timens Dóminum, ipsa laudábitur.\nV. Date ei de fructu mánuum suárum, et laudent eam in portis ópera ejus.\nR. Múlier timens Dóminum, ipsa laudábitur."
en: "R. Favour is deceitful, and beauty is vain\n* A woman that feareth God she shall be praised.\nV. Give her of the fruit of her hands, and let her own works praise her in the gates.\nR. A woman that feareth God she shall be praised."
- la: "R. Os suum apéruit sapiéntiæ, et lex cleméntiæ in lingua ejus: considerávit sémitas domus suæ,\n* Et panem otiósa non comédit.\nV. Gustávit et vidit quia bona est negotiátio ejus: non exstinguétur in nocte lucérna ejus.\nR. Et panem otiósa non comédit."
en: "R. She openeth her mouth with wisdom, and in her tongue is the law of kindness. She looketh well to the ways of her household\n* And eateth not the bread of idleness.\nV. She tasteth and perceiveth that her merchandise is good. Her candle goeth not out by night.\nR. And she eateth not the bread of idleness."
- la: "R. Regnum mundi et omnem ornátum sǽculi contémpsi, propter amórem Dómini mei Jesu Christi:\n* Quem vidi, quem amávi, in quem crédidi, quem diléxi.\nV. Eructávit cor meum verbum bonum: dico ego ópera mea Regi.\nR. Quem vidi, quem amávi, in quem crédidi, quem diléxi."
en: "R. The kingdom of this world and all the beauty of life I have esteemed as nothing, for the excellency of the love of Jesus Christ my Lord\n* Whom, having seen, I loved Whom, having believed, I longed after.\nV. My heart is overflowing with a good matter I speak of my works unto the King.\nR. Whom, having seen, I loved Whom, having believed, I longed after."
common-of-an-abbot:
- la: "R. Justus germinábit sicut lílium:\n* Et florébit in ætérnum ante Dóminum.\nV. Plantátus in domo Dómini, in átriis domus Dei nostri.\nR. Et florébit in ætérnum ante Dóminum."
en: "R. The righteous shall grow as the lily;\n* Yea, he shall flourish in the presence of the Lord for ever.\nV. Those that be planted in the house of the Lord, shall flourish in the courts of the house of our God.\nR. Yea, he shall flourish in the presence of the Lord for ever."
- la: "R. Iste cognóvit justítiam, et vidit mirabília magna, et exorávit Altíssimum:\n* Et invéntus est in número Sanctórum.\nV. Iste est qui contémpsit vitam mundi, et pervénit ad cæléstia regna.\nR. Et invéntus est in número Sanctórum."
en: "R. This is he which knew righteousness, and saw great wonders, and made his prayer unto the Most High;\n* And he is numbered among the Saints.\nV. This is he which loved not his life in this world, and is come unto an everlasting kingdom.\nR. And he is numbered among the Saints."
- la: "R. Honéstum fecit illum Dóminus, et custodívit eum ab inimícis, et a seductóribus tutávit illum:\n* Et dedit illi claritátem ætérnam.\nV. Justum dedúxit Dóminus per vias rectas, et osténdit illi regnum Dei.\nR. Et dedit illi claritátem ætérnam."
en: "R. The Lord made him honourable, and defended him from his enemies, and kept him safe from those that lay in wait for him;\n* And gave him perpetual glory.\nV. He went down with him into the pit, and left him not in bonds.\nR. And gave him perpetual glory."
- la: "R. Amávit eum Dóminus, et ornávit eum: stolam glóriæ índuit eum,\n* Et ad portas paradísi coronávit eum.\nV. Índuit eum Dóminus lorícam fídei, et ornávit eum.\nR. Et ad portas paradísi coronávit eum."
en: "R. The Lord loved him and beautified him; He clothed him with a robe of glory,\n* And crowned him at the gates of Paradise.\nV. The Lord hath put on him the breast-plate of faith, and hath adorned him.\nR. And crowned him at the gates of Paradise."
- la: "R. Iste homo perfécit ómnia quæ locútus est ei Deus, et dixit ad eum: Ingrédere in réquiem meam:\n* Quia te vidi justum coram me ex ómnibus géntibus.\nV. Iste est, qui contémpsit vitam mundi, et pervénit ad cæléstia regna.\nR. Quia te vidi justum coram me ex ómnibus géntibus."
en: "R. This is he which did according unto all that God commanded him; and God said unto him: Enter thou into My rest,\n* For thee have I seen righteous before Me among all people.\nV. This is he which loved not his life in this world, and is come unto an everlasting kingdom.\nR. For thee have I seen righteous before Me among all people."
- la: "R. Iste est qui ante Deum magnas virtútes operátus est, et de omni corde suo laudávit Dóminum:\n* Ipse intercédat pro peccátis ómnium populórum.\nV. Ecce homo sine queréla, verus Dei cultor, ábstinens se ab omni ópere malo, et pérmanens in innocéntia sua.\nR. Ipse intercédat pro peccátis ómnium populórum."
en: "R. This is he which wrought great wonders before God, and praised the Lord with all his heart.\n* May he pray for all people, that their sins may be forgiven unto them.\nV. Behold a man without blame, a worshipper of God in truth, keeping himself clean from every evil work, and abiding still in his innocency.\nR. May he pray for all people, that their sins may be forgiven unto them."
common-of-an-apostle:
- la: "R. Ecce ego mitto vos sicut oves in médio lupórum, dicit Dóminus:\n* Estóte ergo prudéntes sicut serpéntes, et símplices sicut colúmbæ.\nV. Dum lucem habétis, crédite in lucem, ut fílii lucis sitis.\nR. Estóte ergo prudéntes sicut serpéntes, et símplices sicut colúmbæ."
en: "R. Behold, I send you as sheep in the midst of wolves, said the Lord:\n* Be ye, therefore, wise as serpents and simple as doves.\nV. Whilst you have the light, believe in the light, that you may be the children of light.\nR. Be ye therefore wise as serpents and simple as doves."
- la: "R. Tóllite jugum meum super vos, dicit Dóminus, et díscite a me, quia mitis sum et húmilis corde:\n* Jugum enim meum suáve est, et onus meum leve.\nV. Et inveniétis réquiem animábus vestris.\nR. Jugum enim meum suáve est, et onus meum leve."
en: "R. Take up my yoke upon you, said the Lord, and learn of me, because I am meek, and humble of heart.\n* For my yoke is sweet and my burden light.\nV. And you shall find rest to your souls.\nR. For my yoke is sweet and my burden light."
- la: "R. Dum stetéritis ante reges et prǽsides, nolíte cogitáre quómodo aut quid loquámini:\n* Dábitur enim vobis in illa hora, quid loquámini.\nV. Non enim vos estis qui loquímini: sed Spíritus Patris vestri, qui lóquitur in vobis.\nR. Dábitur enim vobis in illa hora, quid loquámini."
en: "R. But when they shall deliver you up to the judges, take no thought how or what to speak:\n* for it shall be given you in that hour what to speak:\nV. For it is not you that speak, but the spirit of your Father that speaketh in you.\nR. For it shall be given you in that hour what to speak."
- la: "R. Vidi conjúnctos viros, habéntes spléndidas vestes, et Ángelus Dómini locútus est ad me, dicens:\n* Isti sunt viri sancti facti amíci Dei.\nV. Vidi Ángelum Dei fortem, volántem per médium cælum, voce magna clamántem et dicéntem.\nR. Isti sunt viri sancti facti amíci Dei."
en: "R. I saw men standing together, clad in shining raiment, and the Angel of the Lord spoke unto me, saying:\n* These men are holy, for they are the friends of God.\nV. I saw a strong Angel of God fly into the midst of heaven, saying with a loud voice:\nR. These men are holy, for they are the friends of God."
- la: "R. Beáti estis, cum maledíxerint vobis hómines, et persecúti vos fúerint, et díxerint omne malum advérsum vos, mentiéntes, propter me:\n* Gaudéte et exsultáte, quóniam merces vestra copiósa est in cælis.\nV. Cum vos óderint hómines, et cum separáverint vos, et exprobráverint, et ejécerint nomen vestrum tamquam malum propter Fílium hóminis.\nR. Gaudéte et exsultáte, quóniam merces vestra copiósa est in cælis."
en: "R. Blessed are ye when men shall revile you, and persecute you, and shall say all manner of evil against you falsely, for My sake;\n* Rejoice, and be exceeding glad, for great is your reward in heaven.\nV. When men shall hate you, and when they shall separate you from their company, and shall reproach you, and cast out your name as evil, for the Son of Man's sake.\nR. Rejoice, and be exceeding glad, for great is your reward in heaven."
- la: "R. Isti sunt triumphatóres et amíci Dei, qui contemnéntes jussa príncipum, meruérunt prǽmia ætérna:\n* Modo coronántur, et accípiunt palmam.\nV. Isti sunt qui venérunt ex magna tribulatióne, et lavérunt stolas suas in sánguine Agni.\nR. Modo coronántur, et accípiunt palmam."
en: "R. These are they which have conquered, and are become the friends of God, who recked not of the commandments of princes, and earned the everlasting reward.\n* And now have they crowns on their heads, and palms in their hands.\nV. These are they which came out of great tribulation, and have washed their robes in the blood of the Lamb.\nR. And now have they crowns on their heads, and palms in their hands."
- la: "R. Isti sunt qui vivéntes in carne, plantavérunt Ecclésiam sánguine suo:\n* Cálicem Dómini bibérunt, et amíci Dei facti sunt.\nV. In omnem terram exívit sonus eórum, et in fines orbis terræ verba eórum.\nR. Cálicem Dómini bibérunt, et amíci Dei facti sunt."
en: "R. These are they who while yet they lived in the flesh, planted the Church in their own blood;\n* They drank of the Lord's cup, and became the friends of God.\nV. Their sound is gone out through all the earth, and their words to the ends of the world.\nR. They drank of the Lord's cup, and became the friends of God."
- la: "R. Isti sunt viri sancti, quos elégit Dóminus in caritáte non ficta, et dedit illis glóriam sempitérnam:\n* Quorum doctrína fulget Ecclésia, ut sole luna.\nV. Sancti per fidem vicérunt regna: operáti sunt justítiam.\nR. Quorum doctrína fulget Ecclésia, ut sole luna."
en: "R. These men are saints, whom the Lord hath chosen in love unfeigned, and hath given them glory everlasting. These are they\n* By the light of whose teaching the Church is glorified, even as the moon is glorified by the light of the sun.\nV. The saints through faith subdued kingdoms, wrought righteousness.\nR. By the light of whose teaching the Church is glorified, even as the moon is glorified by the light of the sun."
common-of-apostles:
- la: "R. Ecce ego mitto vos sicut oves in médio lupórum, dicit Dóminus:\n* Estóte ergo prudéntes sicut serpéntes, et símplices sicut colúmbæ.\nV. Dum lucem habétis, crédite in lucem, ut fílii lucis sitis.\nR. Estóte ergo prudéntes sicut serpéntes, et símplices sicut colúmbæ."
en: "R. Behold, I send you as sheep in the midst of wolves, said the Lord:\n* Be ye, therefore, wise as serpents and simple as doves.\nV. Whilst you have the light, believe in the light, that you may be the children of light.\nR. Be ye therefore wise as serpents and simple as doves."
- la: "R. Tóllite jugum meum super vos, dicit Dóminus, et díscite a me, quia mitis sum et húmilis corde:\n* Jugum enim meum suáve est, et onus meum leve.\nV. Et inveniétis réquiem animábus vestris.\nR. Jugum enim meum suáve est, et onus meum leve."
en: "R. Take up my yoke upon you, said the Lord, and learn of me, because I am meek, and humble of heart.\n* For my yoke is sweet and my burden light.\nV. And you shall find rest to your souls.\nR. For my yoke is sweet and my burden light."
- la: "R. Dum stetéritis ante reges et prǽsides, nolíte cogitáre quómodo aut quid loquámini:\n* Dábitur enim vobis in illa hora, quid loquámini.\nV. Non enim vos estis qui loquímini: sed Spíritus Patris vestri, qui lóquitur in vobis.\nR. Dábitur enim vobis in illa hora, quid loquámini."
en: "R. But when they shall deliver you up to the judges, take no thought how or what to speak:\n* for it shall be given you in that hour what to speak:\nV. For it is not you that speak, but the spirit of your Father that speaketh in you.\nR. For it shall be given you in that hour what to speak."
- la: "R. Vidi conjúnctos viros, habéntes spléndidas vestes, et Ángelus Dómini locútus est ad me, dicens:\n* Isti sunt viri sancti facti amíci Dei.\nV. Vidi Ángelum Dei fortem, volántem per médium cælum, voce magna clamántem et dicéntem.\nR. Isti sunt viri sancti facti amíci Dei."
en: "R. I saw men standing together, clad in shining raiment, and the Angel of the Lord spoke unto me, saying:\n* These men are holy, for they are the friends of God.\nV. I saw a strong Angel of God fly into the midst of heaven, saying with a loud voice:\nR. These men are holy, for they are the friends of God."
- la: "R. Beáti estis, cum maledíxerint vobis hómines, et persecúti vos fúerint, et díxerint omne malum advérsum vos, mentiéntes, propter me:\n* Gaudéte et exsultáte, quóniam merces vestra copiósa est in cælis.\nV. Cum vos óderint hómines, et cum separáverint vos, et exprobráverint, et ejécerint nomen vestrum tamquam malum propter Fílium hóminis.\nR. Gaudéte et exsultáte, quóniam merces vestra copiósa est in cælis."
en: "R. Blessed are ye when men shall revile you, and persecute you, and shall say all manner of evil against you falsely, for My sake;\n* Rejoice, and be exceeding glad, for great is your reward in heaven.\nV. When men shall hate you, and when they shall separate you from their company, and shall reproach you, and cast out your name as evil, for the Son of Man's sake.\nR. Rejoice, and be exceeding glad, for great is your reward in heaven."
- la: "R. Isti sunt triumphatóres et amíci Dei, qui contemnéntes jussa príncipum, meruérunt prǽmia ætérna:\n* Modo coronántur, et accípiunt palmam.\nV. Isti sunt qui venérunt ex magna tribulatióne, et lavérunt stolas suas in sánguine Agni.\nR. Modo coronántur, et accípiunt palmam."
en: "R. These are they which have conquered, and are become the friends of God, who recked not of the commandments of princes, and earned the everlasting reward.\n* And now have they crowns on their heads, and palms in their hands.\nV. These are they which came out of great tribulation, and have washed their robes in the blood of the Lamb.\nR. And now have they crowns on their heads, and palms in their hands."
- la: "R. Isti sunt qui vivéntes in carne, plantavérunt Ecclésiam sánguine suo:\n* Cálicem Dómini bibérunt, et amíci Dei facti sunt.\nV. In omnem terram exívit sonus eórum, et in fines orbis terræ verba eórum.\nR. Cálicem Dómini bibérunt, et amíci Dei facti sunt."
en: "R. These are they who while yet they lived in the flesh, planted the Church in their own blood;\n* They drank of the Lord's cup, and became the friends of God.\nV. Their sound is gone out through all the earth, and their words to the ends of the world.\nR. They drank of the Lord's cup, and became the friends of God."
- la: "R. Isti sunt viri sancti, quos elégit Dóminus in caritáte non ficta, et dedit illis glóriam sempitérnam:\n* Quorum doctrína fulget Ecclésia, ut sole luna.\nV. Sancti per fidem vicérunt regna: operáti sunt justítiam.\nR. Quorum doctrína fulget Ecclésia, ut sole luna."
en: "R. These men are saints, whom the Lord hath chosen in love unfeigned, and hath given them glory everlasting. These are they\n* By the light of whose teaching the Church is glorified, even as the moon is glorified by the light of the sun.\nV. The saints through faith subdued kingdoms, wrought righteousness.\nR. By the light of whose teaching the Church is glorified, even as the moon is glorified by the light of the sun."
common-of-several-confessors:
- la: "R. Justus germinábit sicut lílium:\n* Et florébit in ætérnum ante Dóminum.\nV. Plantátus in domo Dómini, in átriis domus Dei nostri.\nR. Et florébit in ætérnum ante Dóminum."
en: "R. The righteous shall grow as the lily;\n* Yea, he shall flourish in the presence of the Lord for ever.\nV. Those that be planted in the house of the Lord, shall flourish in the courts of the house of our God.\nR. Yea, he shall flourish in the presence of the Lord for ever."
- la: "R. Iste cognóvit justítiam, et vidit mirabília magna, et exorávit Altíssimum:\n* Et invéntus est in número Sanctórum.\nV. Iste est qui contémpsit vitam mundi, et pervénit ad cæléstia regna.\nR. Et invéntus est in número Sanctórum."
en: "R. This is he which knew righteousness, and saw great wonders, and made his prayer unto the Most High;\n* And he is numbered among the Saints.\nV. This is he which loved not his life in this world, and is come unto an everlasting kingdom.\nR. And he is numbered among the Saints."
- la: "R. Honéstum fecit illum Dóminus, et custodívit eum ab inimícis, et a seductóribus tutávit illum:\n* Et dedit illi claritátem ætérnam.\nV. Justum dedúxit Dóminus per vias rectas, et osténdit illi regnum Dei.\nR. Et dedit illi claritátem ætérnam."
en: "R. The Lord made him honourable, and defended him from his enemies, and kept him safe from those that lay in wait for him;\n* And gave him perpetual glory.\nV. He went down with him into the pit, and left him not in bonds.\nR. And gave him perpetual glory."
- la: "R. Amávit eum Dóminus, et ornávit eum: stolam glóriæ índuit eum,\n* Et ad portas paradísi coronávit eum.\nV. Índuit eum Dóminus lorícam fídei, et ornávit eum.\nR. Et ad portas paradísi coronávit eum."
en: "R. The Lord loved him and beautified him; He clothed him with a robe of glory,\n* And crowned him at the gates of Paradise.\nV. The Lord hath put on him the breast-plate of faith, and hath adorned him.\nR. And crowned him at the gates of Paradise."
- la: "R. Iste homo perfécit ómnia quæ locútus est ei Deus, et dixit ad eum: Ingrédere in réquiem meam:\n* Quia te vidi justum coram me ex ómnibus géntibus.\nV. Iste est, qui contémpsit vitam mundi, et pervénit ad cæléstia regna.\nR. Quia te vidi justum coram me ex ómnibus géntibus."
en: "R. This is he which did according unto all that God commanded him; and God said unto him: Enter thou into My rest,\n* For thee have I seen righteous before Me among all people.\nV. This is he which loved not his life in this world, and is come unto an everlasting kingdom.\nR. For thee have I seen righteous before Me among all people."
- la: "R. Iste est qui ante Deum magnas virtútes operátus est, et de omni corde suo laudávit Dóminum:\n* Ipse intercédat pro peccátis ómnium populórum.\nV. Ecce homo sine queréla, verus Dei cultor, ábstinens se ab omni ópere malo, et pérmanens in innocéntia sua.\nR. Ipse intercédat pro peccátis ómnium populórum."
en: "R. This is he which wrought great wonders before God, and praised the Lord with all his heart.\n* May he pray for all people, that their sins may be forgiven unto them.\nV. Behold a man without blame, a worshipper of God in truth, keeping himself clean from every evil work, and abiding still in his innocency.\nR. May he pray for all people, that their sins may be forgiven unto them."
common-of-several-martyrs:
- la: "R. Abstérget Deus omnem lácrimam ab óculis Sanctórum: et jam non erit ámplius neque luctus, neque clamor, sed nec ullus dolor:\n* Quóniam prióra transiérunt.\nV. Non esúrient, neque sítient ámplius, neque cadet super illos sol, neque ullus æstus.\nR. Quóniam prióra transiérunt."
en: "R. God shall wipe away all tears from the eyes of His Saints, and there shall be no more sorrow, there shall be no more death, neither sorrow, nor crying, neither shall there be any more pain;\n* For the former things are passed away.\nV. They shall hunger no more, neither thirst any more, neither shall the sun light on them, nor any heat.\nR. For the former things are passed away."
- la: "R. Viri sancti gloriósum sánguinem fudérunt pro Dómino, amavérunt Christum in vita sua, imitáti sunt eum in morte sua:\n* Et ídeo corónas triumpháles meruérunt.\nV. Unus spíritus, et una fides erat in eis.\nR. Et ídeo corónas triumpháles meruérunt."
en: "R. These men are holy, who have gloriously shed their blood for the Lord's sake, yea, who loved Christ in their lives, and were made like unto Him in their flesh,\n* And therefore they have earned crowns of victory.\nV. One spirit, and one faith was in them.\nR. And therefore they have earned crowns of victory."
- la: "R. Tradidérunt córpora sua propter Deum ad supplícia:\n* Et meruérunt habére corónas perpétuas.\nV. Isti sunt qui venérunt ex magna tribulatióne, et lavérunt stolas suas in sánguine Agni.\nR. Et meruérunt habére corónas perpétuas."
en: "R. They gave their bodies for Gods sake to death\n* And gained the everlasting crown.\nV. These are they which came out of great tribulation, and have washed their robes in the Blood of the Lamb.\nR. And gained the everlasting crown."
- la: "R. Sancti tui, Dómine, mirábile consecúti sunt iter, serviéntes præcéptis tuis, ut inveniréntur illǽsi in aquis válidis:\n* Terra appáruit árida: et in Mari Rubro via sine impediménto.\nV. Quóniam percússit petram, et fluxérunt aquæ, et torréntes inundavérunt.\nR. Terra appáruit árida: et in Mari Rubro via sine impediménto."
en: "R. thy Saints, O Lord, have passed a wonderful way, serving thy commandments, that they might be found without hurt in the midst of the mighty waters.\n* Dry land appeared, and, out of the Red Sea, a way without impediment.\nV. He smote the rock, and the waters gushed out, and the streams overflowed.\nR. Dry land appeared, and, out of the Red Sea, a way without impediment."
- la: "R. Vérbera carníficum non timuérunt Sancti Dei, moriéntes pro Christi nómine:\n* Ut herédes fíerent in domo Dómini.\nV. Tradidérunt córpora sua propter Deum ad supplícia.\nR. Ut herédes fíerent in domo Dómini."
en: "R. The Saints of God shrank not from the stripes of the executioners, but died for Christ's Name's sake\n* That they might be made joint-heirs in the house of the Lord.\nV. They gave their bodies for God's sake to death.\nR. That they might be made joint-heirs in the house of the Lord."
- la: "R. Tamquam aurum in fornáce probávit eléctos Dóminus, et quasi holocáusti hóstiam accépit illos: et in témpore erit respéctus illórum:\n* Quóniam donum et pax est eléctis Dei.\nV. Qui confídunt in illum, intélligent veritátem, et fidéles in dilectióne acquiéscent illi.\nR. Quóniam donum et pax est eléctis Dei."
en: "R. As gold in the furnace hath the Lord tried His chosen ones, and received them as a burnt-offering, and yet a while, and they shall be regarded;\n* For the grace of God, and His peace, are with His chosen.\nV. They that put their trust in Him shall understand the truth and such as be faithful in love shall abide with Him.\nR. For the grace of God, and His peace, are with His chosen."
- la: "R. Propter testaméntum Dómini, et leges patérnas, Sancti Dei perstitérunt in amóre fraternitátis:\n* Quia unus fuit semper spíritus in eis, et una fides.\nV. Ecce quam bonum et quam jucúndum habitáre fratres in unum.\nR. Quia unus fuit semper spíritus in eis, et una fides."
en: "R. Because of the covenant of the Lord, and the laws of their fathers, the Saints of God abode in brotherly love,\n* For one spirit and one faith was ever in them.\nV. Behold how good and how pleasant it is for brethren to dwell together in unity.\nR. For one spirit and one faith was ever in them."
- la: "R. Sancti mei, qui in carne pósiti, certámen habuístis:\n* Mercédem labóris ego reddam vobis.\nV. Veníte benedícti Patris mei, percípite regnum.\nR. Mercédem labóris ego reddam vobis."
en: "R. O ye My Saints, who, being in the flesh, didst have striving\n* I will render unto you a reward of your labours.\nV. Come, ye blessed of My Father, inherit the kingdom\nR. I will render unto you a reward of your labours."
common-of-several-women-martyrs:
- la: "R. Fallax grátia, et vana est pulchritúdo:\n* Múlier timens Dóminum, ipsa laudábitur.\nV. Date ei de fructu mánuum suárum, et laudent eam in portis ópera ejus.\nR. Múlier timens Dóminum, ipsa laudábitur."
en: "R. Favour is deceitful, and beauty is vain\n* A woman that feareth God she shall be praised.\nV. Give her of the fruit of her hands, and let her own works praise her in the gates.\nR. A woman that feareth God she shall be praised."
- la: "R. Os suum apéruit sapiéntiæ, et lex cleméntiæ in lingua ejus: considerávit sémitas domus suæ,\n* Et panem otiósa non comédit.\nV. Gustávit et vidit quia bona est negotiátio ejus: non exstinguétur in nocte lucérna ejus.\nR. Et panem otiósa non comédit."
en: "R. She openeth her mouth with wisdom, and in her tongue is the law of kindness. She looketh well to the ways of her household\n* And eateth not the bread of idleness.\nV. She tasteth and perceiveth that her merchandise is good. Her candle goeth not out by night.\nR. And she eateth not the bread of idleness."
- la: "R. Regnum mundi et omnem ornátum sǽculi contémpsi, propter amórem Dómini mei Jesu Christi:\n* Quem vidi, quem amávi, in quem crédidi, quem diléxi.\nV. Eructávit cor meum verbum bonum: dico ego ópera mea Regi.\nR. Quem vidi, quem amávi, in quem crédidi, quem diléxi."
en: "R. The kingdom of this world and all the beauty of life I have esteemed as nothing, for the excellency of the love of Jesus Christ my Lord\n* Whom, having seen, I loved Whom, having believed, I longed after.\nV. My heart is overflowing with a good matter I speak of my works unto the King.\nR. Whom, having seen, I loved Whom, having believed, I longed after."
common-of-the-bvm:
- la: "R. Sancta et immaculáta virgínitas, quibus te láudibus éfferam, néscio:\n* Quia quem cæli cápere non póterant, tuo grémio contulísti.\nV. Benedícta tu in muliéribus, et benedíctus fructus ventris tui.\nR. Quia quem cæli cápere non póterant, tuo grémio contulisti."
en: "R. O how holy and how spotless is thy virginity; I am too dull to praise thee:\n* For thou hast borne in thy breast Him Whom the heavens cannot contain.\nV. Blessed art thou among women, and blessed is the fruit of thy womb.\nR. For thou hast borne in thy breast Him Whom the heavens cannot contain."
- la: "R. Congratulámini mihi, omnes qui dilígitis Dóminum: quia cum essem párvula, plácui Altíssimo,\n* Et de meis viscéribus génui Deum et hóminem.\nV. Beátam me dicent omnes generatiónes, quia ancíllam húmilem respéxit Deus.\nR. Et de meis viscéribus génui Deum et hóminem."
en: "R. Rejoice with me, all ye that love the Lord, for while I was yet a little one, I pleased the Most High.\n* And I have brought forth from my bowels God and man.\nV. All generations shall call me blessed, since the Lord hath regarded the lowliness of his handmaiden.\nR. And I have brought forth from my bowels God and man."
- la: "R. Beáta es, Virgo María, quæ Dóminum portásti, Creatórem mundi:\n* Genuísti qui te fecit, et in ætérnum pérmanes Virgo.\nV. Ave, María, grátia plena; Dóminus tecum.\nR. Genuísti qui te fecit, et in ætérnum pérmanes Virgo."
en: "R. Blessed art thou, O Virgin Mary, who hast carried the Lord, the Maker of the world.\n* Thou hast borne Him Who created thee, and thou abidest a virgin for ever.\nV. Hail, Mary, full of grace. the Lord is with thee.\nR. Thou hast borne Him Who created thee, and thou abidest a virgin for ever."
- la: "R. Sicut cedrus exaltáta sum in Líbano, et sicut cypréssus in monte Sion: quasi myrrha elécta,\n* Dedi suavitátem odóris.\nV. Et sicut cinnamómum et bálsamum aromatízans.\nR. Dedi suavitátem odóris."
en: "R. I was exalted like a cedar in Lebanon, and as a cypress-tree upon Mount Zion. Like the best myrrh\n* I yielded a pleasant odour.\nV. Like cinnamon and sweet balsam.\nR. I yielded a pleasant odour."
- la: "R. Quæ est ista quæ procéssit sicut sol, et formósa tamquam Jerúsalem?\n* Vidérunt eam fíliæ Sion, et beátam dixérunt, et regínæ laudavérunt eam.\nV. Et sicut dies verni circúmdabant eam flores rosárum et lília convállium.\nR. Vidérunt eam fíliæ Sion, et beátam dixérunt, et regínæ laudavérunt eam."
en: "R. Who is this that cometh up like the sun? This, comely as Jerusalem?\n* The daughters of Zion saw her, and called her blessed: the queens also, and they praised her.\nV. And about her it was as the flower of roses in the spring of the year, and lilies of the valleys.\nR. The daughters of Zion saw her, and called her blessed the queens also, and they praised her."
- la: "R. Ornátam monílibus fíliam Jerúsalem Dóminus concupívit:\n* Et vidéntes eam fíliæ Sion, beatíssimam prædicavérunt, dicéntes: * Unguéntum effúsum nomen tuum.\nV. Astitit regína a dextris tuis in vestítu deauráto, circúmdata varietáte.\nR. Et vidéntes eam fíliæ Sion, beatíssimam prædicavérunt, dicéntes:"
en: "R. When the Lord beheld the daughter of Jerusalem adorned with her jewels, He greatly desired her beauty\n* And when the daughters of Zion saw her, they cried out that she was most blessed, saying thy name is as ointment poured forth.\nV. Upon thy right hand did stand the Queen in a vesture of gold wrought about with diverse colours.\nR. And when the daughters of Zion saw her, they cried out that she was most blessed, saying:"
- la: "R. Felix namque es, sacra Virgo María, et omni laude digníssima:\n* Quia ex te ortus est sol justítiæ, Christus, Deus noster.\nV. Ora pro pópulo, intérveni pro clero, intercéde pro devóto femíneo sexu: séntiant omnes tuum juvámen, quicúmque célebrant tuam sanctam festivitátem.\nR. Quia ex te ortus est sol justítiæ, Christus, Deus noster."
en: "R. O Holy Virgin Mary, happy indeed art thou, and right worthy of all praise\n* For out of thee rose the Sun of righteousness, even Christ our God.\nV. Pray for the people, plead for the clergy, make intercession for all women vowed to God. May all that are keeping this thine holy Feast day feel the might of thine assistance.\nR. For out of thee rose the Sun of righteousness, even Christ our God."
- la: "R. Beátam me dicent omnes generatiónes,\n* Quia fecit mihi Dóminus magna qui potens est, et sanctum nomen ejus.\nV. Et misericórdia ejus a progénie in progénies timéntibus eum.\nR. Quia fecit mihi Dóminus magna qui potens est, et sanctum nomen ejus."
en: "R. All generations shall call me blessed.\n* For He that is mighty, even the Lord, hath done to me great things; and Holy is His Name.\nV. And his mercy is on them that fear Him, from generation to generation.\nR. He that is mighty, even the Lord, hath done to me great things; and Holy is His Name."
@@ -1,6 +1,11 @@
# Sourced from Divinum Officium's Monastic block ("[Quad Laudes_]",
# Psalterium/Special/Major Special.txt). Not live-query-verified (see
# TODO.md) — read directly from source.
# Psalterium/Special/Major Special.txt). Live-verified 2026-09-04 against
# both a Lenten Ember Saturday (2026-02-28) and a plain Lenten Wednesday
# (2026-03-04) — identical, so this is genuinely season-wide content, not
# weekday-varying, matching this file's own single (no-weekday-suffix)
# id. (An earlier pass had mistakenly called this same content "homeless"
# — it already had a real home here all along, just never marked
# verified; see TODO.md.)
id: lauds-capitulum-lent
text:
la: "Clama, ne cesses, quasi tuba exálta vocem tuam, et annúntia pópulo meo scélera eórum, et dómui Jacob peccáta eórum."
@@ -9,5 +14,5 @@ citation:
la: "Isa 58:1"
en: "Isa 58:1"
status:
la: draft
en: draft
la: verified
en: verified
@@ -0,0 +1,16 @@
# Trinity Sunday's own Lauds chapter (Rom 11:33) — shared with Vespers
# via vespersCapitulumForOverride's own cross-hour fallback (see
# hours/vespers.ts), not duplicated into a separate vespers-capitulum-
# trinity-sunday.yml. Live-verified against Divinum Officium (Monastic
# Tridentinum 1617), Lauds/Vespers live query, 2026-05-31 (Trinity Sunday
# itself).
id: lauds-capitulum-trinity-sunday
text:
la: "O Altitúdo divitiárum sapiéntiæ, et sciéntiæ Dei, quam incomprehensibília sunt judícia ejus, et investigábiles viæ ejus!"
en: "O the depth of the riches of the wisdom and of the knowledge of God! How incomprehensible are his judgments, and how unsearchable his ways!"
citation:
la: "Rom 11:33"
en: "Rom 11:33"
status:
la: verified
en: verified
@@ -1,7 +1,8 @@
# Live-verified 2026-09-04 — see lauds-hymn-lent.yml's own header.
id: lauds-hymn-lent-doxology-per-annum
text:
la: "Te rerum univérsitas,\nClemens, adóret, Trínitas,\nEt nos novi per véniam,\nNovum canámus cánticum.\nAmen."
en: "May heaven and earth aloud proclaim\nThe Trinity's almighty fame;\nAnd we, restored to grace, rejoice\nIn newness both of heart and voice.\nAmen."
status:
la: draft
en: draft
la: verified
en: verified
+6 -4
View File
@@ -1,8 +1,10 @@
# Sourced from Divinum Officium's Monastic block ("[HymnusM Quad
# Laudes]", Psalterium/Special/Major Special.txt) — full separate
# Monastic text ("Jam Christe sol justítiæ"), not a substitution against
# the Roman "O sol salútis, íntimis". Not live-query-verified (see
# TODO.md).
# the Roman "O sol salútis, íntimis". Live-verified 2026-09-04 (already
# seen live against a Lenten Ember Saturday, 2026-02-28, while checking
# lauds-hymn-saturday.yml's own real content earlier the same session —
# byte-identical).
id: lauds-hymn-lent
text:
la: |
@@ -46,5 +48,5 @@ text:
May we of their indulgence share,
And bless the God that grants our prayer.
status:
la: draft
en: draft
la: verified
en: verified
@@ -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
@@ -1,6 +1,6 @@
# Sourced from Divinum Officium's Monastic block ("[Responsory Quad
# Laudes]", Psalterium/Special/Major Special.txt). Not live-query-verified
# (see TODO.md) — read directly from source.
# Laudes]", Psalterium/Special/Major Special.txt). Live-verified
# 2026-09-04 — see lauds-capitulum-lent.yml's own header.
id: lauds-responsory-lent
text:
la: |
@@ -18,5 +18,5 @@ text:
V. Glory be to the Father, and to the Son, * and to the Holy Ghost.
R. For he hath delivered me * from the snare of the hunters.
status:
la: draft
en: draft
la: verified
en: verified
@@ -0,0 +1,25 @@
# Trinity Sunday's own Lauds responsory ("Benedíctus es, Dómine, in
# firmaménto cæli") — distinct from Vespers' own ("Benedicámus Patrem et
# Fílium cum Sancto Spíritu", see
# vespers-responsory-trinity-sunday.yml). Live-verified against Divinum
# Officium (Monastic Tridentinum 1617), Lauds live query, 2026-05-31
# (Trinity Sunday itself).
id: lauds-responsory-trinity-sunday
text:
la: |
R.br. Benedíctus es, Dómine, * In firmaménto cæli.
R. Benedíctus es, Dómine, * In firmaménto cæli.
V. Et laudábilis et gloriósus in sǽcula.
R. In firmaménto cæli.
V. Glória Patri, et Fílio, * et Spirítui Sancto.
R. Benedíctus es, Dómine, * In firmaménto cæli.
en: |
R.br. Blessed art Thou, O Lord, * In the firmament of heaven.
R. Blessed art Thou, O Lord, * In the firmament of heaven.
V. And to be praised and glorified for ever.
R. In the firmament of heaven.
V. Glory be to the Father, and to the Son, * and to the Holy Ghost.
R. Blessed art Thou, O Lord, * In the firmament of heaven.
status:
la: verified
en: verified
@@ -0,0 +1,29 @@
# Throughout Paschaltide (Eastertide/Ascensiontide/Pentecost), the whole
# ordinary 5-suffrage set (Cross/BVM/Joseph/Apostles/Peace) collapses into
# this single alleluia-form "Suffragium Paschale" instead — live-verified
# against Divinum Officium (Monastic Tridentinum 1617 and Tridentine 1906,
# byte-identical between the two tracks), Lauds live query, 2026-04-20 (a
# plain Eastertide feria). Distinct antiphon from Vespers' own
# (vespers-suffrage-paschale.yml, "Crucem sanctam súbiit..."); the
# versicle/response and collect are shared between both hours.
id: lauds-suffrage-paschale
text:
la: |
Ant. Crucifíxus surréxit a mórtuis, et redémit nos, allelúja, allelúja.
V. Dícite in natiónibus, allelúja.
R. Quia Dóminus regnávit a ligno, allelúja.
Orémus.
Deus qui pro nobis Fílium tuum Crucis patíbulum subíre voluísti, ut inimíci a nobis expélleres potestátem: concéde nobis fámulis tuis; ut resurrectiónis grátiam consequámur.
Per eúmdem Dóminum nostrum Jesum Christum Fílium tuum, qui tecum vivit et regnat in unitáte Spíritus Sancti, Deus, per ómnia sǽcula sæculórum.
R. Amen.
en: |
Ant. He that was crucified is risen from the dead, and hath redeemed us. Alleluia, alleluia.
V. Say among the heathen, alleluia.
R. That the Lord reigneth from the tree, alleluia.
Let us pray.
O God, who didst send thy Son to suffer death for us upon the Cross, that thou mightest deliver us from the power of the enemy: grant unto us thy servants to be made partakers of his Resurrection.
Through the same Jesus Christ, thy Son, Our Lord, Who liveth and reigneth with thee in the unity of the Holy Ghost, God, world without end.
R. Amen.
status:
la: verified
en: verified
@@ -1,7 +1,7 @@
# The versicle right before the Benedictus, in Lent. Sourced from Divinum
# Officium's Monastic block: "[Quad Versum 2] = @:Quad Versum 3" — a bare
# alias to the same text used at Vespers (see vespers-versicle-lent.yml).
# Not live-query-verified (see TODO.md) — read directly from source.
# Live-verified 2026-09-04 — see lauds-capitulum-lent.yml's own header.
id: lauds-versicle-lent
text:
la: |
@@ -11,5 +11,5 @@ text:
V. God hath given His Angels charge over thee.
R. To keep thee in all thy ways.
status:
la: draft
en: draft
la: verified
en: verified
@@ -0,0 +1,12 @@
# Trinity Sunday's own Lauds versicle — distinct from Vespers' own
# ("Benedíctus es, Dómine, in firmaménto cæli", see
# vespers-versicle-trinity-sunday.yml). Live-verified against Divinum
# Officium (Monastic Tridentinum 1617), Lauds live query, 2026-05-31
# (Trinity Sunday itself).
id: lauds-versicle-trinity-sunday
text:
la: "V. Benedicámus Patrem et Fílium cum Sancto Spíritu.\nR. Laudémus et superexaltémus eum in sǽcula."
en: "V. Bless we the Father, and the Son, and the Holy Ghost.\nR. Let us praise Him and exalt Him above all for ever."
status:
la: verified
en: verified
@@ -0,0 +1,67 @@
# Trinity Sunday's own Matins hymn ("Summæ Deus cleméntiæ") — shares its
# opening stanza with the plain ferial Saturday hymn
# (matins-hymn-ferial-saturday.yml's "Summæ Deus cleméntiæ, Mundíque
# Factor máchinæ..."), but diverges completely from its second stanza
# onward and is shorter overall (2 body stanzas + its own doxology,
# not 4 + the shared weekday doxology) — a genuinely different hymn, not
# a mislabeled duplicate. Live-verified against Divinum Officium
# (Monastic Tridentinum 1617), Matins 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: matins-hymn-trinity-sunday
text:
la: >-
Summæ Deus cleméntiæ,
Mundíque Factor máchinæ,
Unus potentiáliter,
Trinúsque personáliter.
Da déxteram surgéntibus,
Exsúrgat ut mens sóbria,
Flagrans et in laudem Dei,
Grates repéndet débitas.
Glória Patri Dómino,
Glória Unigénito,
Una cum Sancto Spíritu,
In sempitérna sǽcula. Amen.
en: >-
O God, by whose command is swayed
This ordered world which thou hast made;
Parent of heavenly clemency,
In nature One, in persons Three;
Assist us while our minds we raise,
Inflamed with thy immortal praise;
That with our sober thoughts, we may
Forever our thanksgiving pay.
May age by age thy wonders tell,
Eternal praise thy works reveal,
And sing with the celestial host
The Father, Son, and Holy Ghost. Amen.
status:
la: verified
en: verified
@@ -1,6 +1,6 @@
# Sourced from Divinum Officium's Monastic block ("[Quad Vespera_]",
# Psalterium/Special/Major Special.txt). Not live-query-verified (see
# TODO.md) — read directly from source.
# Psalterium/Special/Major Special.txt). Live-verified 2026-09-04 against
# a plain Lenten Wednesday (2026-03-04).
id: vespers-capitulum-lent
text:
la: "Inter vestíbulum et altáre plorábunt sacerdótes, minístri Dómini, et dicent: Parce, Dómine, parce pópulo tuo: et ne des hereditátem tuam in oppróbrium, ut dominéntur eis natiónes."
@@ -9,5 +9,5 @@ citation:
la: "Joel 2:17"
en: "Joel 2:17"
status:
la: draft
en: draft
la: verified
en: verified
@@ -1,7 +1,9 @@
# Live-verified 2026-09-04 against a plain Lenten Wednesday (2026-03-04)
# — same text as matins-hymn-lent.yml's own baked-in closing stanza.
id: vespers-hymn-lent-doxology-per-annum
text:
la: "Præsta, beáta Trínitas,\nConcéde, simplex Únitas;\nUt fructuósa sint tuis\nJejuniórum múnera.\nAmen."
en: "We pray thee, Holy Trinity,\nOne God, unchanging Unity,\nThat we from this our abstinence\nMay reap the fruits of penitence.\nAmen."
status:
la: draft
en: draft
la: verified
en: verified
@@ -2,8 +2,9 @@
# Vespera]", Psalterium/Special/Major Special.txt): two substitutions
# against the base "[Hymnus Quad Vespera]" text — a word-order swap in
# stanza 3 ("Ad nóminis laudem tui" -> "Ad laudem tui nóminis") and a full
# replacement of stanza 4 — applied by hand here. Not live-query-verified
# (see TODO.md). English has no separate Monastic variant in the source.
# replacement of stanza 4 — applied by hand here. Live-verified 2026-09-04
# against a plain Lenten Wednesday (2026-03-04), including the Monastic
# swap. English has no separate Monastic variant in the source.
id: vespers-hymn-lent
text:
la: |
@@ -47,5 +48,5 @@ text:
That fasting inward secretly
The soul may purely dwell with thee.
status:
la: draft
en: draft
la: verified
en: verified
@@ -0,0 +1,61 @@
# Trinity Sunday's own Vespers hymn ("O lux beáta Trínitas") — identical
# text to Lauds' own (lauds-hymn-trinity-sunday.yml). Live-verified
# against Divinum Officium (Monastic Tridentinum 1617), Vespers live
# query, 2026-05-31 (Trinity Sunday itself).
id: vespers-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
@@ -1,6 +1,6 @@
# Sourced from Divinum Officium's Monastic block ("[Responsory Quad
# Vespera]", Psalterium/Special/Major Special.txt). Not
# live-query-verified (see TODO.md) — read directly from source.
# Vespera]", Psalterium/Special/Major Special.txt). Live-verified
# 2026-09-04 against a plain Lenten Wednesday (2026-03-04).
id: vespers-responsory-lent
text:
la: |
@@ -18,5 +18,5 @@ text:
V. Glory be to the Father, and to the Son, * and to the Holy Ghost.
R. He will overshadow * thee with his shoulders.
status:
la: draft
en: draft
la: verified
en: verified
@@ -0,0 +1,25 @@
# Trinity Sunday's own Vespers responsory ("Benedicámus Patrem et
# Fílium cum Sancto Spíritu") — distinct from Lauds' own ("Benedíctus
# es, Dómine, in firmaménto cæli", see
# lauds-responsory-trinity-sunday.yml). Live-verified against Divinum
# Officium (Monastic Tridentinum 1617), Vespers live query, 2026-05-31
# (Trinity Sunday itself).
id: vespers-responsory-trinity-sunday
text:
la: |
R.br. Benedicámus Patrem et Fílium * Cum Sancto Spíritu.
R. Benedicámus Patrem et Fílium * Cum Sancto Spíritu.
V. Laudémus et superexaltémus eum in sǽcula.
R. Cum Sancto Spíritu.
V. Glória Patri, et Fílio, * et Spirítui Sancto.
R. Benedicámus Patrem et Fílium * Cum Sancto Spíritu.
en: |
R.br. Bless we the Father, and the Son, * And the Holy Ghost.
R. Bless we the Father, and the Son, * And the Holy Ghost.
V. Let us praise and exalt Him above all for ever.
R. And the Holy Ghost.
V. Glory be to the Father, and to the Son, * and to the Holy Ghost.
R. Bless we the Father, and the Son, * And the Holy Ghost.
status:
la: verified
en: verified
@@ -0,0 +1,30 @@
# Vespers' own antiphon for the same "Suffragium Paschale" substitution
# described in lauds-suffrage-paschale.yml's own header — shares that
# file's versicle/response and collect, but its own distinct antiphon
# ("Crucem sanctam súbiit..."), live-verified against Divinum Officium
# (Monastic Tridentinum 1617), Vespers live query, 2026-04-20 (a plain
# Eastertide feria). English antiphon translation is this project's own
# (the reference engine's own English-language render leaves this
# particular antiphon untranslated, Latin-only) — status left `draft`
# for the English text specifically pending a better-sourced translation.
id: vespers-suffrage-paschale
text:
la: |
Ant. Crucem sanctam súbiit, qui inférnum confrégit; accínctus est poténtia, surréxit die tértia, allelúja.
V. Dícite in natiónibus, allelúja.
R. Quia Dóminus regnávit a ligno, allelúja.
Orémus.
Deus qui pro nobis Fílium tuum Crucis patíbulum subíre voluísti, ut inimíci a nobis expélleres potestátem: concéde nobis fámulis tuis; ut resurrectiónis grátiam consequámur.
Per eúmdem Dóminum nostrum Jesum Christum Fílium tuum, qui tecum vivit et regnat in unitáte Spíritus Sancti, Deus, per ómnia sǽcula sæculórum.
R. Amen.
en: |
Ant. He bore the holy Cross, who broke the gates of hell; he was girded with power, and rose again on the third day, alleluia.
V. Say among the heathen, alleluia.
R. That the Lord reigneth from the tree, alleluia.
Let us pray.
O God, who didst send thy Son to suffer death for us upon the Cross, that thou mightest deliver us from the power of the enemy: grant unto us thy servants to be made partakers of his Resurrection.
Through the same Jesus Christ, thy Son, Our Lord, Who liveth and reigneth with thee in the unity of the Holy Ghost, God, world without end.
R. Amen.
status:
la: verified
en: draft
@@ -2,8 +2,8 @@
# Officium's Monastic block ("[Quad Versum 3]", Psalterium/Special/Major
# Special.txt) — "[Quad Versum 2]" (Lauds' own) is a bare alias to this
# same text, so Lauds and Vespers share it here too (see
# lauds-versicle-lent.yml). Not live-query-verified (see TODO.md) — read
# directly from source.
# lauds-versicle-lent.yml). Live-verified 2026-09-04 against a plain
# Lenten Wednesday (2026-03-04).
id: vespers-versicle-lent
text:
la: |
@@ -13,5 +13,5 @@ text:
V. God hath given His Angels charge over thee.
R. To keep thee in all thy ways.
status:
la: draft
en: draft
la: verified
en: verified
@@ -0,0 +1,12 @@
# Trinity Sunday's own Vespers versicle — distinct from Lauds' own
# ("Benedicámus Patrem et Fílium cum Sancto Spíritu", see
# lauds-versicle-trinity-sunday.yml). Live-verified against Divinum
# Officium (Monastic Tridentinum 1617), Vespers live query, 2026-05-31
# (Trinity Sunday itself).
id: vespers-versicle-trinity-sunday
text:
la: "V. Benedíctus es, Dómine, in firmaménto cæli.\nR. Et laudábilis et gloriósus in sǽcula."
en: "V. Blessed art Thou, O Lord, in the firmament of heaven.\nR. And to be praised and glorified for ever."
status:
la: verified
en: verified
@@ -6,9 +6,16 @@
#
# Lectio1's Gospel citation (Luke 1:39-47, the Visitation) is a bare
# incipit with no full pericope text given, so only the homily portion is
# authored, same convention as the September Ember days. Kept as 3
# separate readings, each with its own genuinely distinct proper
# responsory.
# authored, same convention as the September Ember days.
#
# Recombined into one reading 2026-09-04 (previously kept as 3 separate
# readings): Lectio1-3 are one continuous, unbroken Ambrose excerpt,
# split only to fill the fixed 3-lesson Nocturn slot count — same fix
# already applied to the other 4 Ember day nocturn-readings files the
# same day, see ember-september-friday.yml's own header for the fuller
# rationale. Responsory is Lectio1's own; Lectio2/3's own distinct
# responsories are dropped, same as every other collapsed-reading case
# in this store.
id: ember-advent-friday
readings:
- nocturn: 1
@@ -22,6 +29,21 @@ readings:
incérta de núntio, nec quasi dúbitans de exémplo, sed quasi læta pro voto, religiósa pro offício, festína
pro gáudio, in montána perréxit. Quo enim jam Deo plena, nisi ad superióra cum festinatióne conténderet?
Nescit tarda molímina Sancti Spíritus grátia.
Díscite et vos, sanctæ mulíeres, sedulitátem, quam prægnántibus debeátis exhibére cognátis. Maríam, quæ
ante sola in íntimis penetrálibus versabátur, non a público virginitátis pudor, non ab stúdio aspéritas
móntium, non ab offício prolíxitas itíneris retardávit. In montána Virgo cum festinatióne, Virgo offícii
memor, injúriæ ímmemor, afféctu urgénte non sexu, relícta perréxit domo. Díscite, vírgines, non circumcursáre
per aliénas ædes, non demorári in platéis, non áliquos in público miscére sermónes. María in domo sera,
festína in público, mansit apud cognátam suam tribus ménsibus.
Didicístis, vírgines, pudórem Maríæ: díscite humilitátem. Venit propínqua ad próximam, júnior ad seniórem:
nec solum venit, sed étiam prior salutávit. Decet enim, ut quanto cástior virgo, tanto humílior sit.
Nóverit deférre senióribus. Sit magístra humilitátis, in qua est proféssio castitátis. Est et causa
pietátis, est étiam norma doctrínæ. Contuéndum est enim, quia supérior venit ad inferiórem, ut inférior
adjuvétur: María ad Elísabeth, Christus ad Joánnem.
en: >-
When any one asketh another for credence, he is bound to give some reasonable ground. And so the Angel,
when he announced to Mary the counsel of God, gave, as a proof, the conception of Elizabeth, then aged and
@@ -33,23 +55,8 @@ readings:
religious duty. She went into the hill country in joyful haste. And is it not something that she went up
into the hills? God was already in her womb, and her feeling bore her continually upward. The grace of the
Holy Spirit knoweth no slow working.
responsory:
la: "R. Emítte Agnum, Dómine, Dominatórem terræ, * De Petra desérti ad montem fíliæ Sion.\nV. Osténde nobis, Dómine, misericórdiam tuam, et salutáre tuum da nobis.\nR. De Petra desérti ad montem fíliæ Sion."
en: "R. Send forth the Lamb, O Lord, the Ruler of the land; * From the rock in the wilderness unto the mount of the daughter of Zion.\nV. Show us thy mercy, O Lord, and grant us thy salvation.\nR. From the rock in the wilderness unto the mount of the daughter of Zion."
status: { la: verified, en: verified }
- nocturn: 2
isGospel: false
source: "St. Ambrose, Bishop of Milan, Commentary on Luke, Book 2, on Luke 1:39-47"
text:
la: >-
Díscite et vos, sanctæ mulíeres, sedulitátem, quam prægnántibus debeátis exhibére cognátis. Maríam, quæ
ante sola in íntimis penetrálibus versabátur, non a público virginitátis pudor, non ab stúdio aspéritas
móntium, non ab offício prolíxitas itíneris retardávit. In montána Virgo cum festinatióne, Virgo offícii
memor, injúriæ ímmemor, afféctu urgénte non sexu, relícta perréxit domo. Díscite, vírgines, non circumcursáre
per aliénas ædes, non demorári in platéis, non áliquos in público miscére sermónes. María in domo sera,
festína in público, mansit apud cognátam suam tribus ménsibus.
en: >-
Godly women will learn from the example of the Mother of God to take a tender care of their kinswomen who
are with child. In pursuance of this charity, Mary, who had hitherto remained alone at home, was not
deterred by her maidenly shyness from entering on a public journey; she faced for this end the hardships
@@ -59,22 +66,8 @@ readings:
from her not to idle about from house to house, to loiter in the streets, nor to take part in
conversations in public. Mary, as she was hasteful to pass through the public roads, so was she slow again
to enter on them she abode with her cousin about three months.
responsory:
la: "R. Roráte, cæli, désuper, et nubes pluant justum: * Aperiátur terra, et gérminet Salvatórem.\nV. Emítte Agnum, Dómine, Dominatórem terræ, de Petra desérti ad montem fíliæ Sion.\nR. Aperiátur terra, et gérminet Salvatórem."
en: "R. Drop down, ye heavens, from above, and let the skies pour down the Righteous One. * Let the earth open, and let her bring forth the Saviour.\nV. Send forth the Lamb, O Lord, the Ruler of the land, from the rock in the wilderness unto the mount of the daughter of Zion.\nR. Let the earth open, and let her bring forth the Saviour."
status: { la: verified, en: verified }
- nocturn: 3
isGospel: false
source: "St. Ambrose, Bishop of Milan, Commentary on Luke, Book 2, on Luke 1:39-47"
text:
la: >-
Didicístis, vírgines, pudórem Maríæ: díscite humilitátem. Venit propínqua ad próximam, júnior ad seniórem:
nec solum venit, sed étiam prior salutávit. Decet enim, ut quanto cástior virgo, tanto humílior sit.
Nóverit deférre senióribus. Sit magístra humilitátis, in qua est proféssio castitátis. Est et causa
pietátis, est étiam norma doctrínæ. Contuéndum est enim, quia supérior venit ad inferiórem, ut inférior
adjuvétur: María ad Elísabeth, Christus ad Joánnem.
en: >-
As the modesty of Mary is a pattern for the imitation of all maidens, so also is her humility. She went to
see Elizabeth, like one cousin going to visit another, and as the younger to the elder. Not only did she
first go, but she first saluted Elizabeth. Now, the purer a virgin is, the humbler ought she to be. She
@@ -83,6 +76,6 @@ readings:
principal rule of its teaching. In this act of the Virgin then we see the greater going to visit and to
succour the lesser: Mary to Elizabeth, Christ to John.
responsory:
la: "R. Germinavérunt campi erémi germen odóris Israël: quia ecce Deus noster cum virtúte véniet, * Et splendor ejus cum eo.\nV. Ex Sion spécies decóris ejus: Deus noster maniféste véniet.\nR. Et splendor ejus cum eo."
en: "R. The waste places have brought forth sweet-smelling buds for Israel; for, behold, our God will come with power. * And His brightness is with Him.\nV. Out of Zion the perfection of beauty, our God shall come manifestly.\nR. And His brightness is with Him."
la: "R. Emítte Agnum, Dómine, Dominatórem terræ, * De Petra desérti ad montem fíliæ Sion.\nV. Osténde nobis, Dómine, misericórdiam tuam, et salutáre tuum da nobis.\nR. De Petra desérti ad montem fíliæ Sion."
en: "R. Send forth the Lamb, O Lord, the Ruler of the land; * From the rock in the wilderness unto the mount of the daughter of Zion.\nV. Show us thy mercy, O Lord, and grant us thy salvation.\nR. From the rock in the wilderness unto the mount of the daughter of Zion."
status: { la: verified, en: verified }
@@ -7,8 +7,15 @@
# Lectio1's Gospel citation (Luke 3:1-6, the preaching of St. John the
# Baptist) is a bare incipit with no full pericope text given, so only
# the homily portion is authored, same convention as the other Ember
# days. Kept as 3 separate readings, each with its own genuinely
# distinct proper responsory.
# days.
#
# Recombined into one reading 2026-09-04 (previously kept as 3 separate
# readings): Lectio1-3 are one continuous, unbroken Gregory homily, split
# only to fill the fixed 3-lesson Nocturn slot count — same fix already
# applied to the other 4 Ember day nocturn-readings files the same day,
# see ember-september-friday.yml's own header for the fuller rationale.
# Responsory is Lectio1's own; Lectio2/3's own distinct responsories are
# dropped, same as every other collapsed-reading case in this store.
id: ember-advent-saturday
readings:
- nocturn: 1
@@ -22,44 +29,14 @@ readings:
designántur. Quia autem gentílitas colligénda erat, et Judǽa pro culpa perfídiæ dispergénda, ipsa quoque
descríptio terréni principátus osténdit: quóniam et in Romána república unus præfuísse descríbitur, et in
Judǽæ regno per quartam partem plúrimi principabántur.
en: >-
The date, at which the Fore-runner of our Redeemer entered on his public office of preaching, is indicated
to us by the name of the ruler of the Roman Commonwealth, and by those of the princes of Palestine. The
time of his preaching is indicated by these names, because he came as the Fore-runner of Him Who was to be
the Redeemer of some Jews and many Gentiles. Moreover in the enumeration of these worldly monarchs there
is a foreshadowing of the fact, that the Gentiles were about to be gathered into one, and the Jews to be
scattered abroad in punishment of their unbelief; in the whole heathen Commonwealth we find the title of
one Emperor, but in the small kingdom of Judaea are mentioned four masters.
responsory:
la: "R. Egrediétur virga de radíce Jesse, et flos de radíce ejus ascéndet: * Et erit justítia cíngulum lumbórum ejus, et fides cinctórium renum ejus.\nV. Et requiéscet super eum spíritus Dómini: spíritus sapiéntiæ, et intelléctus: spíritus consílii, et fortitúdinis.\nR. Et erit justítia cíngulum lumbórum ejus, et fides cinctórium renum ejus."
en: "R. There shall come forth a rod out of the stem of Jesse, and a flower shall grow out of his roots. * And righteousness shall be the girdle of his loins, and faithfulness the girdle of his reins.\nV. And the Spirit of the Lord shall rest upon him the spirit of wisdom and understanding the spirit of counsel and might.\nR. And righteousness shall be the girdle of his loins, and faithfulness the girdle of his reins."
status: { la: verified, en: verified }
- nocturn: 2
isGospel: false
source: "Pope St. Gregory the Great, Homily 20 on the Gospels, on Luke 3:1-6"
text:
la: >-
Voce étenim nostri Redemptóris dícitur: Omne regnum in seípsum divisum desolábitur. Liquet ergo, quod ad
finem regni Judǽa pervénerat, quæ tot régibus divísa subjacébat. Apte quoque non solum quibus régibus, sed
étiam quibus sacerdótibus actum sit, demonstrátur: et quia illum Joánnes Baptísta prædicáret, qui simul Rex
et Sacérdos exsísteret, Lucas Evangelísta prædicatiónis ejus témpora per regnum et sacerdótium designávit.
en: >-
The blessed voice of the Saviour itself hath said, Every kingdom divided against itself is brought to
desolation. And we may well look for the ruin of the Jewish state when we see it divided among so many
rulers. We observe likewise that the names of the reigning priests as well as kings are given. The
Evangelist Luke hath left on record the chiefs both of the monarchy and of the priesthood who held office
when John the Baptist began to preach, because John preached Him Who is at once our Priest and our King.
responsory:
la: "R. Radix Jesse, qui exsúrget judicáre gentes, in eum gentes sperábunt: * Et erit nomen ejus benedíctum in sǽcula.\nV. Super ipsum continébunt reges os suum, ipsum gentes deprecabúntur.\nR. Et erit nomen ejus benedíctum in sǽcula."
en: "R. Behold, the root of Jesse that shall arise to bring forth judgment to the Gentiles, in him shall the Gentiles trust. * And his name shall be blessed for ever.\nV. The Kings shall shut their mouths at him, to him shall the Gentiles seek.\nR. And his name shall be blessed for ever."
status: { la: verified, en: verified }
- nocturn: 3
isGospel: false
source: "Pope St. Gregory the Great, Homily 20 on the Gospels, on Luke 3:1-6"
text:
la: >-
Et venit in omnem regiónem Jordánis, prǽdicans baptísmum pœniténtiæ in remissiónem peccatórum. Cunctis
legéntibus liquet, quia Joánnes non solum baptísmum pœniténtiæ prædicávit, verum étiam quibúsdam dedit: sed
tamen baptísmum suum in remissiónem peccatórum dare non pótuit. Remíssio étenim peccatórum in solo nobis
@@ -68,6 +45,22 @@ readings:
incarnátum Verbum Patris præcurrébat verbo prædicatiónis, ita baptísmum pœniténtiæ, quo peccáta solvúntur,
præcúrreret suo baptísmate, quo peccáta solvi non possunt.
en: >-
The date, at which the Fore-runner of our Redeemer entered on his public office of preaching, is indicated
to us by the name of the ruler of the Roman Commonwealth, and by those of the princes of Palestine. The
time of his preaching is indicated by these names, because he came as the Fore-runner of Him Who was to be
the Redeemer of some Jews and many Gentiles. Moreover in the enumeration of these worldly monarchs there
is a foreshadowing of the fact, that the Gentiles were about to be gathered into one, and the Jews to be
scattered abroad in punishment of their unbelief; in the whole heathen Commonwealth we find the title of
one Emperor, but in the small kingdom of Judaea are mentioned four masters.
The blessed voice of the Saviour itself hath said, Every kingdom divided against itself is brought to
desolation. And we may well look for the ruin of the Jewish state when we see it divided among so many
rulers. We observe likewise that the names of the reigning priests as well as kings are given. The
Evangelist Luke hath left on record the chiefs both of the monarchy and of the priesthood who held office
when John the Baptist began to preach, because John preached Him Who is at once our Priest and our King.
And he came into all the country about Jordan, preaching the baptism of repentance for the remission of
sins. It is evident from these words that John the Baptist not only preached, but also administered the
baptism of repentance, and yet that baptism of repentance which he gave, was not really a baptism for the
@@ -78,6 +71,6 @@ readings:
holy baptism, by which our sins are washed away, far greater than that baptism of repentance which the
Fore-runner preached, and which could never wash away sin.
responsory:
la: "R. Veni, Dómine, et noli tardáre: reláxa facínora plebi tuæ, * Et révoca dispérsos in terram suam.\nV. Excíta, Dómine, poténtiam tuam, et veni, ut salvos fácias nos.\nR. Et révoca dispérsos in terram suam."
en: "R. O Lord, come, and make no tarrying loosen the bonds of thy people. * And gather together into their own land them that are scattered abroad.\nV. Stir up, O Lord, thy power, and come among us, to save us.\nR. And gather together into their own land them that are scattered abroad."
la: "R. Egrediétur virga de radíce Jesse, et flos de radíce ejus ascéndet: * Et erit justítia cíngulum lumbórum ejus, et fides cinctórium renum ejus.\nV. Et requiéscet super eum spíritus Dómini: spíritus sapiéntiæ, et intelléctus: spíritus consílii, et fortitúdinis.\nR. Et erit justítia cíngulum lumbórum ejus, et fides cinctórium renum ejus."
en: "R. There shall come forth a rod out of the stem of Jesse, and a flower shall grow out of his roots. * And righteousness shall be the girdle of his loins, and faithfulness the girdle of his reins.\nV. And the Spirit of the Lord shall rest upon him the spirit of wisdom and understanding the spirit of counsel and might.\nR. And righteousness shall be the girdle of his loins, and faithfulness the girdle of his reins."
status: { la: verified, en: verified }
@@ -4,14 +4,20 @@
# No Monastic-track override file exists for this day (only Adv3-0/1/2/4
# have one) — confirms the Monastic 1617 track uses this same text.
#
# Unlike the other 5 Ember days, Lectio1-3 here are cross-references
# (`@Sancti/03-25:Lectio7/8/9`) to the Annunciation's own Common
# (web/www/horas/Latin/Sancti/03-25.txt) — St. Ambrose's homily on Luke
# 1:26-38, not a Gospel-pericope-plus-homily pattern of its own. Kept as
# 3 separate readings, each with its own genuinely distinct proper
# responsory (Responsory3 is this Ember day's own text, not further
# cross-referenced) — same "don't collapse where each carries real,
# distinct content" reasoning as the other 5 Ember days.
# Lectio1-3 here are cross-references (`@Sancti/03-25:Lectio7/8/9`) to
# the Annunciation's own Common (web/www/horas/Latin/Sancti/03-25.txt) —
# St. Ambrose's homily on Luke 1:26-38, not a Gospel-pericope-plus-homily
# pattern of its own.
#
# Recombined into one reading 2026-09-04 (previously kept as 3 separate
# readings): checked the reference source directly (Sancti/03-25.txt's
# own Lectio7-9) and confirmed this is one continuous, unbroken Ambrose
# excerpt, split only to fill the fixed 3-lesson Nocturn slot count —
# same fix already applied to the other 4 Ember day nocturn-readings
# files the same day, see ember-september-friday.yml's own header for
# the fuller rationale. Responsory is Lectio1's own; Lectio2/3's own
# distinct responsories are dropped, same as every other collapsed-
# reading case in this store.
id: ember-advent-wednesday
readings:
- nocturn: 1
@@ -23,6 +29,18 @@ readings:
consílium Dei. Sed tamen ex céteris factis, atque præcéptis Dómini Salvatóris póssumus intellégere, et hoc
propensióris fuísse consílii, quod ea potíssimum elécta est, ut Dóminum páreret, quæ erat desponsáta viro.
Cur autem non ántequam desponsarétur, impléta est? Fortásse ne dicerétur quod concéperat ex adultério.
Et ingréssus ad eam Angelus. Disce vírginem móribus, disce vírginem verecúndia, disce oráculo, disce
mystério. Trepidáre vírginum est, et ad omnes viri ingréssus pavére, omnes viri affátus veréri. Discant
mulíeres propósitum pudóris imitári. Sola in penetrálibus, quam nemo virórum víderit, solus Angelus
répererit: sola sine cómite, sola sine teste, ne quo degénere depravarétur affátu, ab Angelo salutátur.
Tanti namque mandáti mystérium non hóminis fuit, sed Angeli ore proméndum. Hódie primum audítur: Spíritus
Sanctus supervéniet in te. Et audítur, et créditur. Dénique, Ecce, inquit, ancílla Dómini: contíngat mihi
secúndum verbum tuum. Vide humilitátem, vide devotiónem. Ancíllam se dicit Dómini, quæ mater elígitur: nec
repentíno exaltáta promísso est.
en: >-
The mysteries of God are unsearchable, and it is especially declared by a Prophet, that a man can hardly
know His counsels. Nevertheless, some things have been revealed to us, and we may gather from some of the
@@ -30,42 +48,16 @@ readings:
was chosen to be the mother of the Lord was espoused to a man. Why did not the power of the Highest
overshadow her before she was so espoused? Perhaps it was lest any might blasphemously say that she had
conceived in fornication the Holy One.
responsory:
la: "R. Clama in fortitúdine, qui annúntias pacem in Jerúsalem: * Dic civitátibus Judæ, et habitatóribus Sion: Ecce Deus noster, quem exspectabámus, advéniet.\nV. Supra montem excélsum ascénde tu, qui evangelízas Sion, exálta in fortitúdine vocem tuam.\nR. Ecce Deus noster, quem exspectabámus, advéniet."
en: "R. O thou that bringest good tidings of peace to Jerusalem, lift up thy voice with strength! * Say unto the cities of Judah, and to the inhabitants of Jerusalem: Behold, our God will come, for Whom we waited.\nV. O thou that tellest good tidings to Zion, get thee up into the high mountain, lift up thy voice with strength.\nR. Behold, our God will come, for Whom we waited."
status: { la: verified, en: verified }
- nocturn: 2
isGospel: false
source: "St. Ambrose, Bishop of Milan, Commentary on Luke, Book 2 (from the Annunciation's own Common)"
text:
la: >-
Et ingréssus ad eam Angelus. Disce vírginem móribus, disce vírginem verecúndia, disce oráculo, disce
mystério. Trepidáre vírginum est, et ad omnes viri ingréssus pavére, omnes viri affátus veréri. Discant
mulíeres propósitum pudóris imitári. Sola in penetrálibus, quam nemo virórum víderit, solus Angelus
répererit: sola sine cómite, sola sine teste, ne quo degénere depravarétur affátu, ab Angelo salutátur.
en: >-
And the angel came in unto her. Let us learn from this Virgin how to bear ourselves, let us learn her
modesty, let us learn by her devout utterance, above all let us learn by the holy mystery enacted. It is
the part of a maiden to be timid, to avoid the advances of men, and to shrink from men's addresses. Would
that our women would learn from the example of modesty here set before us. She upon whom the stare of men
had never been fixed was alone in her chamber, and was found only by an angel. There was neither companion
nor witness there, that what passed might not be debased in gossip and the angel saluted her.
responsory:
la: "R. Oriétur stella ex Jacob, et exsúrget homo de Israël, et confrínget omnes duces alienigenárum: * Et erit omnis terra posséssio ejus.\nV. Adorábunt eum omnes reges terræ, omnes gentes sérvient ei.\nR. Et erit omnis terra posséssio ejus."
en: "R. There shall come a Star out of Jacob, and a Man shall rise out of Israel, and shall smite through all the princes of the aliens. * And all the earth shall be His possession.\nV. All kings shall fall down before Him, all nations shall serve Him.\nR. And all the earth shall be His possession."
status: { la: verified, en: verified }
- nocturn: 3
isGospel: false
source: "St. Ambrose, Bishop of Milan, Commentary on Luke, Book 2 (from the Annunciation's own Common)"
text:
la: >-
Tanti namque mandáti mystérium non hóminis fuit, sed Angeli ore proméndum. Hódie primum audítur: Spíritus
Sanctus supervéniet in te. Et audítur, et créditur. Dénique, Ecce, inquit, ancílla Dómini: contíngat mihi
secúndum verbum tuum. Vide humilitátem, vide devotiónem. Ancíllam se dicit Dómini, quæ mater elígitur: nec
repentíno exaltáta promísso est.
en: >-
The message of God to the Virgin was a mystery, which it was not lawful for the mouth of men, but only of
angels, to utter. For the first time on earth the words are spoken The Holy Ghost shall come upon thee.
The holy maiden heareth, and believeth. At length she saith Behold the handmaid of the Lord be it unto me
@@ -73,6 +65,6 @@ readings:
moment that she is told she is chosen to be the mother of the Lord she at once declareth herself His
handmaid. The knowledge that she was Mother of God caused in the heart of Mary only an act of humility.
responsory:
la: "R. Modo véniet Dominátor Dóminus: * Et nomen ejus Emmánuel vocábitur.\nV. Oriétur in diébus ejus justítia, et abundántia pacis.\nR. Et nomen ejus Emmánuel vocábitur."
en: "R. The Lord, the Ruler, cometh quickly. * And His name shall be called Emmanuel.\nV. In His days shall righteousness flourish, and abundance of peace.\nR. And His name shall be called Emmanuel."
la: "R. Clama in fortitúdine, qui annúntias pacem in Jerúsalem: * Dic civitátibus Judæ, et habitatóribus Sion: Ecce Deus noster, quem exspectabámus, advéniet.\nV. Supra montem excélsum ascénde tu, qui evangelízas Sion, exálta in fortitúdine vocem tuam.\nR. Ecce Deus noster, quem exspectabámus, advéniet."
en: "R. O thou that bringest good tidings of peace to Jerusalem, lift up thy voice with strength! * Say unto the cities of Judah, and to the inhabitants of Jerusalem: Behold, our God will come, for Whom we waited.\nV. O thou that tellest good tidings to Zion, get thee up into the high mountain, lift up thy voice with strength.\nR. Behold, our God will come, for Whom we waited."
status: { la: verified, en: verified }
@@ -10,8 +10,16 @@
#
# Lectio1's Gospel citation (Luke 13:6-17) is a bare incipit with no full
# pericope text given, so only the homily portion is authored, same
# convention as the other two September Ember days. Kept as 3 separate
# readings, each with its own genuinely distinct proper responsory.
# convention as the other two September Ember days.
#
# Recombined into one reading 2026-09-04 (previously kept as 3 separate
# readings): Lectio1-3 are one continuous, unbroken Gregory homily, split
# only to fill the fixed 3-lesson Nocturn slot count — same fix already
# applied to ember-september-friday.yml/ember-september-wednesday.yml the
# same day, see either file's own header for the fuller rationale.
# Responsory is Lectio1's own; Lectio2/3's own distinct responsories
# (drawn from TemporaM/093-0's own Tobias-sermon texts) are dropped, same
# as every other collapsed-reading case in this store.
id: ember-september-saturday
readings:
- nocturn: 1
@@ -24,6 +32,23 @@ readings:
audístis: ficúlneam infructuósam, et mulíerem curvam; et utríque rei est píetas impénsa. Illud autem dixit
per similitúdinem: istud egit per exhibitiónem. Sed hoc signíficat ficúlnea infructuósa, quod múlier
inclináta; et hoc ficúlnea reserváta, quod múlier erécta.
Quid arbor fici, nisi humánam natúram desígnat? Quid múlier inclináta, nisi eámdem natúram significándo
denúntiat? Quæ et bene plantáta est sicut ficus, et bene creáta sicut múlier; sed in culpam própria sponte
lapsa, neque fructum servat operatiónis, neque statum rectitúdinis. Ad peccátum quippe ex voluntáte
córruens, quia fructum obediéntiæ ferre nóluit, statum rectitúdinis amísit. Quæ ad Dei similitúdinem
cóndita, dum in sua dignitáte non pérstitit, quod plantáta vel creáta fúerat, serváre contémpsit. Tértio
dóminus víneæ ad ficúlneam venit, quia natúram géneris humáni ante legem, sub lege, sub grátia, exspéctando,
admonéndo, visitándo requisívit.
Venit ante legem, quia per naturálem intelléctum quid unusquísque exémplo sui, quáliter erga próximum ágere
debuísset, innótuit. Venit in lege, quia præcipiéndo dócuit. Venit post legem per grátiam, quia pietátis
suæ præséntiam exhibéndo monstrávit. Sed tamen in tribus annis fructum se non invenísse conquéritur: quia
quorúmdam pravórum mentes nec inspiráta lex naturális córrigit, nec præcépta erúdiunt, nec incarnatiónis
ejus mirácula convértunt. Quid vero per cultórem víneæ, nisi præpositórum ordo exprímitur? Qui dum præsunt
Ecclésiæ, nimírum Domínicæ víneæ curam gerunt.
en: >-
Our Lord and Redeemer speaketh unto us sometimes by words, and sometimes by deeds, sometimes one thing by
words, and another by deeds, and sometimes the same thing both by word and deed. In the portion of the
@@ -32,24 +57,8 @@ readings:
in the one by a parable, in the other by an example. But the barren fig-tree signifieth the same thing as
doth the woman bowed together, and the patience shown to the fig-tree the same thing as doth the healing
of the woman bowed together.
responsory:
la: "R. Tribulatiónes civitátum audívimus, quas passæ sunt, et defécimus: timor et hebetúdo mentis cécidit super nos et super líberos nostros: ipsi montes nolunt recípere fugam nostram: * Dómine, miserére.\nV. Peccávimus cum pátribus nostris, injúste égimus, iniquitátem fécimus.\nR. Dómine, miserére."
en: "R. We have heard of the tribulation of those cities, which they have suffered, and we have fainted. Fear and confusion of mind are fallen upon us. Even the mountains will not give us a refuge. * Lord, have mercy.\nV. We have sinned like our forefathers, we have done unjustly, and wrought iniquity.\nR. Lord, have mercy."
status: { la: verified, en: verified }
- nocturn: 2
isGospel: false
source: "Pope St. Gregory the Great, Homily 31 on the Gospels, on Luke 13:6-17"
text:
la: >-
Quid arbor fici, nisi humánam natúram desígnat? Quid múlier inclináta, nisi eámdem natúram significándo
denúntiat? Quæ et bene plantáta est sicut ficus, et bene creáta sicut múlier; sed in culpam própria sponte
lapsa, neque fructum servat operatiónis, neque statum rectitúdinis. Ad peccátum quippe ex voluntáte
córruens, quia fructum obediéntiæ ferre nóluit, statum rectitúdinis amísit. Quæ ad Dei similitúdinem
cóndita, dum in sua dignitáte non pérstitit, quod plantáta vel creáta fúerat, serváre contémpsit. Tértio
dóminus víneæ ad ficúlneam venit, quia natúram géneris humáni ante legem, sub lege, sub grátia, exspéctando,
admonéndo, visitándo requisívit.
en: >-
What is the fig-tree a type, but of mankind? Of what is the woman bowed together by a spirit of infirmity a
type, but of the same mankind? Man was originally placed in a garden like the fig-tree, and created upright
like the woman, but man fell away by his own willful fault like the fig-tree he brought forth no fruit like
@@ -58,23 +67,8 @@ readings:
continued not in honour, but cast aside the state wherein it had been placed and made. The lord of the
vineyard came thrice to the fig-tree, for God hath come in hope, and in warning, seeking fruit from mankind
under three successive dispensations, that is to say, before the law, under the law, and under grace.
responsory:
la: "R. Audíte, fílii mei, patrem vestrum: † servíte Dómino in veritáte, et inquírite ut faciátis quæ plácita sunt illi: et fíliis vestris mandáte * Ut fáciant justítias et eleemósynas.\nV. Ut sint mémores Dei, et benedícant eum in omni témpore † in veritáte, et in tota virtúte sua.\nR. Ut fáciant justítias et eleemósynas."
en: "R. Hearken my children, to your father: serve the Lord in truth, and seek to do the things that please him: and command your children: * That they do justice and almsdeeds.\nV. That they be mindful of God, and bless him at all times in truth, and with all their power.\nR. That they do justice and almsdeeds."
status: { la: verified, en: verified }
- nocturn: 3
isGospel: false
source: "Pope St. Gregory the Great, Homily 31 on the Gospels, on Luke 13:6-17"
text:
la: >-
Venit ante legem, quia per naturálem intelléctum quid unusquísque exémplo sui, quáliter erga próximum ágere
debuísset, innótuit. Venit in lege, quia præcipiéndo dócuit. Venit post legem per grátiam, quia pietátis
suæ præséntiam exhibéndo monstrávit. Sed tamen in tribus annis fructum se non invenísse conquéritur: quia
quorúmdam pravórum mentes nec inspiráta lex naturális córrigit, nec præcépta erúdiunt, nec incarnatiónis
ejus mirácula convértunt. Quid vero per cultórem víneæ, nisi præpositórum ordo exprímitur? Qui dum præsunt
Ecclésiæ, nimírum Domínicæ víneæ curam gerunt.
en: >-
It came before the law, in that by natural understanding, He let all know by example of Himself, what and
how they should do toward their neighbor. In the law He came teaching. After the law He came by grace,
opening, manifesting His merciful Presence. But after all these three years He yet hath to complain that He
@@ -84,6 +78,6 @@ readings:
For these are they who have the government in the Church, and are therefore truly called the dressers of
the Lord's vineyard.
responsory:
la: "R. Benedícat te Dóminus in virtúte sua, † qui per te ad níhilum redégit inimícos nostros: * Ut non defíciat laus tua de ore hóminum.\nV. Benedíctus Dóminus qui creávit cælum et terram: † quia hódie nomen tuum ita magnificávit.\nR. Ut non defíciat laus tua de ore hóminum."
en: "R. The Lord bless you by His power, Who hath brought our enemies to nought through you. * And may the praise of you never fail from the mouth of men.\nV. Blessed be the Lord, Who hath created the heaven and the earth, because that He hath so glorified your name this day.\nR. And may the praise of you never fail from the mouth of men."
la: "R. Tribulatiónes civitátum audívimus, quas passæ sunt, et defécimus: timor et hebetúdo mentis cécidit super nos et super líberos nostros: ipsi montes nolunt recípere fugam nostram: * Dómine, miserére.\nV. Peccávimus cum pátribus nostris, injúste égimus, iniquitátem fécimus.\nR. Dómine, miserére."
en: "R. We have heard of the tribulation of those cities, which they have suffered, and we have fainted. Fear and confusion of mind are fallen upon us. Even the mountains will not give us a refuge. * Lord, have mercy.\nV. We have sinned like our forefathers, we have done unjustly, and wrought iniquity.\nR. Lord, have mercy."
status: { la: verified, en: verified }
@@ -11,13 +11,22 @@
# Lectio1's Gospel citation (Mark 9:16-28) is a bare incipit ("Et
# réliqua") with no full pericope text given, so — per this store's own
# established convention (see st-lawrence.yml/st-andrew.yml) — only the
# homily portion is authored, not marked isGospel. Kept as 3 separate
# readings (not combined into one, despite being one continuous homily by
# Bede) because each carries its own genuinely distinct, proper
# responsory rather than one reused across a merely-chopped source — see
# post-pentecost-15.yml's own doc comment for the "recombine only where
# the source doesn't genuinely change" default this deliberately departs
# from here, given the real content loss combining would cause.
# homily portion is authored, not marked isGospel.
#
# Recombined into one reading 2026-09-04 (previously kept as 3 separate
# readings): Lectio1-3 are one continuous, unbroken Bede homily, split
# only to fill the fixed 3-lesson Nocturn slot count — the "source
# doesn't genuinely split" case this store's own established default
# (see post-pentecost-15.yml's own doc comment) recombines, same fix
# already applied to ember-september-friday.yml the same day (see that
# file's own header for the fuller rationale — the original "genuinely
# distinct proper responsory" justification for staying split doesn't
# hold up against that established default, which already collapses
# readings with their own distinct responsories elsewhere). Responsory
# here is Lectio1's own (Responsory1 = identical in both tracks) per the
# "the first one, when several collapse" convention; Lectio2/3's own
# distinct responsories (drawn from TemporaM/093-0's own Tobias-sermon
# texts) are dropped, same as every other collapsed-reading case.
id: ember-september-wednesday
readings:
- nocturn: 1
@@ -32,6 +41,24 @@ readings:
tabéscunt; stultórum namque et languéntium atque hébetum est, spumas salivárum ex ore dimíttere. Strident
déntibus, cum iracúndiæ furóre flamméscunt: aréscunt, cum ótio torpénte languéscunt, et nulla virtútis
indústria confortáti enérviter vivunt.
Quod autem ait: Et dixi discípulis tuis ut eícerent illum, et non potuérunt; laténter Apóstolos accúsat, cum
impossibílitas curándi, intérdum non ad imbecillitátem curántium, sed ad eórum, qui curándi sunt, fidem
referátur, dicénte Dómino: Fiat tibi secúndum fidem tuam. Qui respóndens eis, dixit: O generátio incrédula,
quámdiu apud vos ero? quámdiu vos pátiar? Non quod tǽdio superátus sit mansuétus ac mitis, qui non apéruit
sicut agnus coram tondénte os suum, nec in verba furóris erúpit; sed quo in similitúdinem médici, si ægrótum
vídeat contra sua præcépta se gérere, dicat: Usquequo accédam ad domum tuam? quoúsque artis meæ perdam
indústriam, me áliud jubénte, et te áliud perpetránte?
Et dixit illis: Hoc genus in nullo potest exíre, nisi in oratióne et jejúnio. Dum docet Apóstolos quómodo
dæmon nequíssimus débeat expélli, omnes instítuit ad vitam; ut scílicet novérimus, gravíssima quæque vel
immundórum spirítuum, vel hóminum tentaménta jejúniis et oratiónibus esse superánda: iram quoque Dómini,
cum in ultiónem nostrórum scélerum fúerit accénsa, hoc remédio singulári posse placári. Jejúnium autem
generále est, non solum ab escis, sed et a cunctis illécebris abstinére carnálibus, immo ab ómnibus
vitiórum continére se passiónibus. Sic et orátio generális non in verbis solum est, quibus divínam
cleméntiam invocámus, verum étiam in ómnibus, quæ in obséquium nostri Conditóris fídei devotióne gérimus.
en: >-
Concerning this possessed person whom the Lord healed, after that He was come down from the mount, Mark
saith that he was deaf and dumb, and Matthew that he was lunatic. He was a figure of them of whom it is
@@ -41,24 +68,8 @@ readings:
with idiots, and swooners, and stupified, to foam their spittle out at their mouths. They gnash their teeth
when they are inflamed with the heat of passion. They wither up in the paralysis of sloth and live nerveless
lives unbraced by any strong exercise.
responsory:
la: "R. Tribulatiónes civitátum audívimus, quas passæ sunt, et defécimus: timor et hebetúdo mentis cécidit super nos et super líberos nostros: ipsi montes nolunt recípere fugam nostram: * Dómine, miserére.\nV. Peccávimus cum pátribus nostris, injúste égimus, iniquitátem fécimus.\nR. Dómine, miserére."
en: "R. We have heard of the tribulation of those cities, which they have suffered, and we have fainted. Fear and confusion of mind are fallen upon us. Even the mountains will not give us a refuge. * Lord, have mercy.\nV. We have sinned like our forefathers, we have done unjustly, and wrought iniquity.\nR. Lord, have mercy."
status: { la: verified, en: verified }
- nocturn: 2
isGospel: false
source: "The Venerable Bede, Priest, homily on Mark 9:16-28"
text:
la: >-
Quod autem ait: Et dixi discípulis tuis ut eícerent illum, et non potuérunt; laténter Apóstolos accúsat, cum
impossibílitas curándi, intérdum non ad imbecillitátem curántium, sed ad eórum, qui curándi sunt, fidem
referátur, dicénte Dómino: Fiat tibi secúndum fidem tuam. Qui respóndens eis, dixit: O generátio incrédula,
quámdiu apud vos ero? quámdiu vos pátiar? Non quod tǽdio superátus sit mansuétus ac mitis, qui non apéruit
sicut agnus coram tondénte os suum, nec in verba furóris erúpit; sed quo in similitúdinem médici, si ægrótum
vídeat contra sua præcépta se gérere, dicat: Usquequo accédam ad domum tuam? quoúsque artis meæ perdam
indústriam, me áliud jubénte, et te áliud perpetránte?
en: >-
The father saith: And I spake to thy disciples, that they should cast him out, and they could not. Here he
maketh a sort of accusation against the Apostles. But that cures cannot be wrought is sometimes owing, not
to the powerlessness of them that would heal, but to the want of faith in them that are to be healed as
@@ -68,24 +79,8 @@ readings:
but He spake as a physician might speak, who saw that the sick man did contrary to his commands. Wherefore
should I come unto thine house? How long am I to throw away the exercise of my skill, while I order one
thing and thou dost another?
responsory:
la: "R. Audíte, fílii mei, patrem vestrum: † servíte Dómino in veritáte, et inquírite ut faciátis quæ plácita sunt illi: et fíliis vestris mandáte * Ut fáciant justítias et eleemósynas.\nV. Ut sint mémores Dei, et benedícant eum in omni témpore † in veritáte, et in tota virtúte sua.\nR. Ut fáciant justítias et eleemósynas."
en: "R. Hearken my children, to your father: serve the Lord in truth, and seek to do the things that please him: and command your children: * That they do justice and almsdeeds.\nV. That they be mindful of God, and bless him at all times in truth, and with all their power.\nR. That they do justice and almsdeeds."
status: { la: verified, en: verified }
- nocturn: 3
isGospel: false
source: "The Venerable Bede, Priest, homily on Mark 9:16-28"
text:
la: >-
Et dixit illis: Hoc genus in nullo potest exíre, nisi in oratióne et jejúnio. Dum docet Apóstolos quómodo
dæmon nequíssimus débeat expélli, omnes instítuit ad vitam; ut scílicet novérimus, gravíssima quæque vel
immundórum spirítuum, vel hóminum tentaménta jejúniis et oratiónibus esse superánda: iram quoque Dómini,
cum in ultiónem nostrórum scélerum fúerit accénsa, hoc remédio singulári posse placári. Jejúnium autem
generále est, non solum ab escis, sed et a cunctis illécebris abstinére carnálibus, immo ab ómnibus
vitiórum continére se passiónibus. Sic et orátio generális non in verbis solum est, quibus divínam
cleméntiam invocámus, verum étiam in ómnibus, quæ in obséquium nostri Conditóris fídei devotióne gérimus.
en: >-
And He said unto them: This kind can come forth by nothing but by prayer and fasting. While He teacheth the
Apostles how the very worst kind of devil must be driven out, He giveth unto all of us an instruction unto
life, that we may know that the most grievous trials, either from unclean spirits, or from men, are to be
@@ -95,6 +90,6 @@ readings:
to pray, is not only to call in words for the mercy of God, but also, in all things which we do, in
earnestness of faith to worship our Maker.
responsory:
la: "R. Benedícat te Dóminus in virtúte sua, † qui per te ad níhilum redégit inimícos nostros: * Ut non defíciat laus tua de ore hóminum.\nV. Benedíctus Dóminus qui creávit cælum et terram: † quia hódie nomen tuum ita magnificávit.\nR. Ut non defíciat laus tua de ore hóminum."
en: "R. The Lord bless you by His power, Who hath brought our enemies to nought through you. * And may the praise of you never fail from the mouth of men.\nV. Blessed be the Lord, Who hath created the heaven and the earth, because that He hath so glorified your name this day.\nR. And may the praise of you never fail from the mouth of men."
la: "R. Tribulatiónes civitátum audívimus, quas passæ sunt, et defécimus: timor et hebetúdo mentis cécidit super nos et super líberos nostros: ipsi montes nolunt recípere fugam nostram: * Dómine, miserére.\nV. Peccávimus cum pátribus nostris, injúste égimus, iniquitátem fécimus.\nR. Dómine, miserére."
en: "R. We have heard of the tribulation of those cities, which they have suffered, and we have fainted. Fear and confusion of mind are fallen upon us. Even the mountains will not give us a refuge. * Lord, have mercy.\nV. We have sinned like our forefathers, we have done unjustly, and wrought iniquity.\nR. Lord, have mercy."
status: { la: verified, en: verified }
@@ -0,0 +1,9 @@
# Verified against Divinum Officium (Monastic Tridentinum 1617), Lauds
# live query, 2026-05-31 (Trinity Sunday itself).
id: trinity-sunday-benedictus-antiphon
text:
la: "Benedícta sit * sancta creátrix et gubernátrix ómnium, sancta et indivídua Trínitas, nunc, et semper, et per infiníta sǽcula sæculórum."
en: "Blessed be the Holy One, * the Maker and Lord of all things: blessed be the Holy and Undivided Trinity, now and always, and unto unending ages of ages."
status:
la: verified
en: verified
@@ -0,0 +1,17 @@
# Verified against Divinum Officium (Monastic Tridentinum 1617), Lauds
# live query, 2026-05-31 (Trinity Sunday itself).
id: trinity-sunday-collect
text:
la: |
Orémus.
Omnípotens sempitérne Deus, qui dedísti fámulis tuis in confessióne veræ fídei, ætérnæ Trinitátis glóriam agnóscere, et in poténtia majestátis adoráre Unitátem: quǽsumus; ut, ejúsdem fídei firmitáte, ab ómnibus semper muniámur advérsis.
Per Dóminum nostrum Jesum Christum, Fílium tuum: qui tecum vivit et regnat in unitáte Spíritus Sancti, Deus, per ómnia sǽcula sæculórum.
R. Amen.
en: |
Let us pray.
Almighty and everlasting God, who hast given thy servants in the confession of the true faith, to acknowledge the glory of the Eternal Trinity, and to adore the Unity in the power of thy Majesty: grant that, by steadfastness in this faith, we may ever be defended from all adversities.
Through Jesus Christ, thy Son our Lord, Who liveth and reigneth with thee, in the unity of the Holy Ghost, God, world without end.
R. Amen.
status:
la: verified
en: verified
@@ -0,0 +1,9 @@
# Verified against Divinum Officium (Monastic Tridentinum 1617), Vespers
# live query, 2026-05-31 (Trinity Sunday itself).
id: trinity-sunday-magnificat-antiphon
text:
la: "Te Deum * Patrem ingénitum, te Fílium unigénitum, te Spíritum Sanctum Paráclitum, sanctam et indivíduam Trinitátem, toto corde et ore confitémur, laudámus, atque benedícimus: tibi glória in sǽcula."
en: "With all our heart * and with all our voice do we acknowledge thee, praise thee, and bless thee: O God the Father Unbegotten, O God the Only-Begotten Son, O God the Holy Ghost the Comforter, one Holy and Undivided Trinity: to thee be glory for ever."
status:
la: verified
en: verified
+11 -1
View File
@@ -26,6 +26,7 @@ import {
resolveResponsory,
resolveOfficeBundle,
resolveSuffrages,
isPaschaltide,
} from './resolve-common';
import laudsDefinitionData from '../data/hours/lauds.yml';
import laudsAntiphonsData from '../data/hours/lauds-antiphons.yml';
@@ -366,7 +367,7 @@ function resolvePart(part: HourPart, day: LiturgicalDay): ResolvedPart[] {
case 'day-collects':
return getDayCollects(day);
case 'suffrages':
return resolveSuffrages(day, part.omitOnDouble);
return resolveSuffrages(day, part.omitOnDouble, 'lauds');
case 'versicle':
case 'chapter':
case 'responsory':
@@ -377,6 +378,15 @@ function resolvePart(part: HourPart, day: LiturgicalDay): ResolvedPart[] {
return [{ kind: 'preces', text: resolveCommon(id), label: getMarianAntiphonLabel(id) }];
}
case 'lauds-preces': {
// Throughout Paschaltide, the whole ferial-Preces litany drops
// entirely rather than being replaced by anything — live-verified
// ("Preces Feriales{omittitur}" against both Monastic Tridentinum
// 1617 and Tridentine 1906, a plain Eastertide feria, 2026-04-20).
// Sunday/feast's own short litany is untouched — that's a separate,
// universal collect-opening dialogue, not this ferial-specific one.
if (isFerialOrVigil(day) && isPaschaltide(day.season)) {
return [];
}
const id = isFerialOrVigil(day) ? 'lauds-preces-feriales' : 'lauds-short-litany';
return [{ kind: 'preces', text: resolveCommon(id) }];
}
+28 -6
View File
@@ -95,6 +95,7 @@ import { getTemporalFeastRecord } from '../calendar/temporal-feasts';
import { getBiblePlanReadings } from '../propers/bible-plan';
import { getNocturnReadings, type NocturnReading } from '../propers/nocturn-readings';
import { getOctaveReading } from '../propers/octave-readings';
import { getResponsoryForCommon } from '../propers/matins-responsories';
import { getGospelIncipitFromCitation } from '../propers/bible-book-incipits';
import { getMatinsSaintOverride, getMatinsCommonOverride, type MatinsPsalmodyScheme } from './matins-psalmody-overrides';
import matinsSundayAntiphonsData from '../data/hours/matins-sunday-antiphons.yml';
@@ -752,12 +753,19 @@ function fallbackHagiographicLabel(id: string): string | undefined {
return name.startsWith('The ') ? `On the ${name.slice(4)}` : `On ${name}`;
}
function nocturnReadingPart(r: NocturnReading, id: string): ResolvedPart {
/** `index` is this reading's position among this same id's own
* nocturn-readings (not the whole day's pool) — the cycling key for
* `getResponsoryForCommon` when `r` has no proper `responsory` of its own,
* same convention as the per-book pool. Common-category fallback only
* applies to a real saint id (`getSaintRecord(id)?.common`) — a temporal or
* octave id has no Commune category to fall back to. */
function nocturnReadingPart(r: NocturnReading, id: string, index: number): ResolvedPart {
const responsoryText = r.responsory ?? getResponsoryForCommon(getSaintRecord(id)?.common, index);
return {
kind: 'lesson',
text: { text: r.text, status: r.status, citation: r.citation },
label: r.source ?? fallbackHagiographicLabel(id),
responsory: r.responsory ? { text: r.responsory, status: { la: 'verified', en: 'verified' } } : undefined,
responsory: responsoryText ? { text: responsoryText, status: { la: 'verified', en: 'verified' } } : undefined,
};
}
@@ -769,14 +777,15 @@ function nocturnReadingPart(r: NocturnReading, id: string): ResolvedPart {
* ResolvedPart can't be split across two nocturns by `distributeIntoNocturns`,
* whereas two adjacent pool entries could be (and, before this, sometimes
* were). */
function gospelReadingPart(r: NocturnReading, homily: NocturnReading | undefined): ResolvedPart {
function gospelReadingPart(r: NocturnReading, homily: NocturnReading | undefined, id: string, index: number): ResolvedPart {
const incipit = getGospelIncipitFromCitation(r.citation);
const responsoryText = r.responsory ?? getResponsoryForCommon(getSaintRecord(id)?.common, index);
return {
kind: 'gospel',
text: { text: r.text, status: r.status, citation: r.citation },
source: r.source,
label: incipit ? { la: incipit.la, en: incipit.en } : undefined,
responsory: r.responsory ? { text: r.responsory, status: { la: 'verified', en: 'verified' } } : undefined,
responsory: responsoryText ? { text: responsoryText, status: { la: 'verified', en: 'verified' } } : undefined,
homily: homily
? { source: homily.source, text: { text: homily.text, status: homily.status, citation: homily.citation } }
: undefined,
@@ -830,10 +839,23 @@ function buildReadingPool(day: LiturgicalDay, temporalId: string, date: string,
// must be handled, not just the usual Sunday/feast pair.
const ids = nocturnReadingIds(day, temporalId, date, threeNocturns);
const byNocturn = new Map<number, ResolvedPart[]>();
// The reference engine's own Tempora files sometimes independently reuse
// the exact same excerpt across two different Sunday-numbering schemes
// (e.g. a Pentecost-numbered Sunday and a calendar-month Sunday landing on
// the same date — see month-week-092.yml's own header) — only one of
// those numbering schemes is ever in force on a given real calendar, but
// `nocturnReadingIds` can legitimately pool both ids for the *same* day
// here, which would otherwise surface the identical reading twice in one
// hour. Dedupe by Latin text, keeping the first (earliest-id) occurrence.
const seenReadingText = new Set<string>();
for (const id of ids) {
const readings = getNocturnReadings(id);
let commonPoolIndex = 0;
for (let i = 0; i < readings.length; i++) {
const reading = readings[i]!;
const textKey = reading.text.la ?? reading.text.en ?? '';
if (textKey && seenReadingText.has(textKey)) continue;
if (textKey) seenReadingText.add(textKey);
const bucket = byNocturn.get(reading.nocturn) ?? [];
if (reading.isGospel) {
// A genuine separate homily on this pericope is the very next
@@ -845,10 +867,10 @@ function buildReadingPool(day: LiturgicalDay, temporalId: string, date: string,
// apart by distributeIntoNocturns.
const next = readings[i + 1];
const homily = next && !next.isGospel && next.nocturn === reading.nocturn ? next : undefined;
bucket.push(gospelReadingPart(reading, homily));
bucket.push(gospelReadingPart(reading, homily, id, commonPoolIndex++));
if (homily) i++;
} else {
bucket.push(nocturnReadingPart(reading, id));
bucket.push(nocturnReadingPart(reading, id, commonPoolIndex++));
}
byNocturn.set(reading.nocturn, bucket);
}
+27 -1
View File
@@ -64,6 +64,7 @@ export const ALWAYS_OVERRIDE_TEMPORAL_IDS = new Set([
'pentecost-sunday',
'corpus-christi',
'sacred-heart',
'trinity-sunday',
'circumcision',
'holy-name-of-jesus',
'vigil-of-christmas',
@@ -305,6 +306,15 @@ export function getMinorHourOverrideId(day: LiturgicalDay): string | undefined {
*/
const PASCHALTIDE_SEASONS = new Set(['eastertide', 'ascensiontide', 'pentecost']);
/** Whether `season` falls within the same broad Paschaltide window
* `PASCHALTIDE_SEASONS` already governs elsewhere in this file (Marian
* antiphon, Common-category text, hymn doxology) — exported so
* hours/lauds.ts's and hours/vespers.ts's own ferial-Preces omission can
* share the identical boundary rather than redeclaring it. */
export function isPaschaltide(season: string): boolean {
return PASCHALTIDE_SEASONS.has(season);
}
/**
* Which seasonal office-content suffix (if any) a day's season maps to —
* shared by Lauds' and Vespers' own resolveOffice, both of which fall
@@ -788,7 +798,11 @@ const SUFFRAGE_LABELS: Record<string, string> = {
* the caveat on what real practice also suppresses them for that isn't
* modeled.
*/
export function resolveSuffrages(day: LiturgicalDay, omitOnDouble: boolean | undefined): ResolvedPart[] {
export function resolveSuffrages(
day: LiturgicalDay,
omitOnDouble: boolean | undefined,
hourId: 'lauds' | 'vespers' = 'lauds',
): ResolvedPart[] {
// isDoubleOrHigher only ever looks at a sanctoral rank — Christ the
// King is modeled as a named temporal winner (see
// ALWAYS_OVERRIDE_TEMPORAL_IDS above) with no FeastClass to check at
@@ -811,6 +825,18 @@ export function resolveSuffrages(day: LiturgicalDay, omitOnDouble: boolean | und
if (omitOnDouble && (isDoubleOrHigher(day.winner) || isChristTheKing || isSeasonallyExcluded || isWithinAnOctave)) {
return [];
}
// Throughout the rest of Paschaltide, the whole ordinary 5-suffrage set
// below collapses into a single alleluia-form "Suffragium Paschale" —
// live-verified against both Monastic Tridentinum 1617 and Tridentine
// 1906 directly (a plain Eastertide feria, 2026-04-20), byte-identical
// between the two tracks. Checked after the omit-entirely gate above
// (an active octave/Double+/Advent-Christmastide-Passiontide already
// drops suffrages regardless of season, unaffected by this) but before
// the ordinary per-suffrage filtering below, since this replaces that
// filtering outright rather than adjusting it.
if (isPaschaltide(day.season)) {
return [{ kind: 'preces', text: resolveCommon(`${hourId}-suffrage-paschale`) }];
}
// "Of the Holy Cross" is the real *ferial*-office suffrage, sourced
// from Tridentine 1906/1910 (a different track than the other four,
// which come from Monastic 1617 -- that track has no Cross suffrage
+8 -1
View File
@@ -26,6 +26,7 @@ import {
resolveResponsory,
resolveOfficeBundle,
resolveSuffrages,
isPaschaltide,
} from './resolve-common';
import vespersDefinitionData from '../data/hours/vespers.yml';
import vespersAntiphonsData from '../data/hours/vespers-antiphons.yml';
@@ -275,13 +276,19 @@ function resolvePart(part: HourPart, day: LiturgicalDay, weekday: Weekday): Reso
];
}
case 'vespers-preces': {
// Throughout Paschaltide, the whole ferial-Preces litany drops
// entirely rather than being replaced by anything — see lauds.ts's
// identical 'lauds-preces' case for the live-verification detail.
if (isFerialOrVigil(day) && isPaschaltide(day.season)) {
return [];
}
const id = isFerialOrVigil(day) ? 'vespers-preces-feriales' : 'lauds-short-litany';
return [{ kind: 'preces', text: resolveCommon(id) }];
}
case 'day-collects':
return getDayCollects(day);
case 'suffrages':
return resolveSuffrages(day, part.omitOnDouble);
return resolveSuffrages(day, part.omitOnDouble, 'vespers');
case 'preces':
return [{ kind: 'preces', text: resolveCommon(part.textRef.id), label: part.label }];
case 'versicle':
+52 -4
View File
@@ -22,6 +22,9 @@ import { resolvePassages, type ScriptureCitation } from './octave-readings';
import { getResponsoryForBook } from './matins-responsories';
import { getBookIncipit } from './bible-book-incipits';
import { canonicalBook } from '../scripture';
import { adventStart } from '../calendar/temporal';
import { addDays, daysBetween } from '../calendar/date-math';
import type { Weekday } from '../calendar/types';
const GOSPEL_BOOKS = new Set(['matt', 'mark', 'luke', 'john']);
@@ -154,10 +157,54 @@ for (const mod of Object.values(modules)) {
}
}
const WEEKDAYS: Weekday[] = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'];
/** Advent's own reading plan (`advent-1-sunday` through `advent-4-saturday`,
* 28 rows, one per day of a full 4-week Advent) is longer than Advent
* itself ever actually runs: Advent's last real day is Dec 23 (Dec 24 is
* the Vigil of Christmas's own temporal id, calendar/temporal-id.ts) but
* Advent 1 Sunday falls anywhere from Nov 27 to Dec 3 (the Sunday nearest
* Nov 30) — even in the longest possible Advent (Advent 1 Sunday = Nov 27,
* 27 real days before Dec 24) the 28th planned reading never lands on its
* own natural date, and in the shortest (Advent 1 Sunday = Dec 3, 21 real
* days) the entire last week's worth (7 readings) never does. Rather than
* silently drop that content, whatever didn't land on its own natural date
* carries forward one reading per day starting Christmas Day itself,
* pooled alongside whatever Christmastide's own calendar-dated rows
* already have for that day (never replacing them) — same "every
* contributing source pools, none override" design as everywhere else in
* this file and in hours/matins.ts's own reading-pool assembly. User
* direction, 2026-09-05: "for advent only, we need to show all of those
* chapters," accepting the spillover into Christmastide as the trade-off.
*
* Real day-by-day for `date`'s own year: the pool has no calendar-year
* awareness anywhere else (temporal ids are already year-independent), so
* this is the one place in this file that computes real dates. */
function adventCarryoverReadings(date: string): BiblePlanReading[] {
const year = Number(date.slice(0, 4));
const christmasDay = `${year}-12-25`;
const daysAfterChristmas = daysBetween(christmasDay, date);
if (daysAfterChristmas < 0) return [];
const vigilOfChristmas = `${year}-12-24`;
const start = adventStart(year);
const skippedKeys: string[] = [];
for (let i = 0; i < 28; i++) {
if (addDays(start, i) >= vigilOfChristmas) {
const week = Math.floor(i / 7) + 1;
skippedKeys.push(`advent-${week}-${WEEKDAYS[i % 7]}`);
}
}
const key = skippedKeys[daysAfterChristmas];
return key ? (readingsByTemporalKey.get(key) ?? []) : [];
}
/** Every reading this plan contributes to Matins' pooled reading list for
* `date` — both the (temporalId, weekday) row and the fixed-calendar-date
* row (if any), pooled together rather than one overriding the other, since
* both can genuinely apply to the same date (see this file's header).
* `date` — the (temporalId, weekday) row, the fixed-calendar-date row (if
* any), and (Christmas Day onward) any Advent reading bumped past its own
* natural date by a short Advent that year (see `adventCarryoverReadings`)
* — all pooled together rather than one overriding another, since more
* than one can genuinely apply to the same date (see this file's header).
* Empty array, not undefined, when nothing's authored for this day yet —
* every caller already treats "no readings" as a valid, renderable state
* (see hours/matins.ts), so there's no separate "missing entirely" signal
@@ -165,5 +212,6 @@ for (const mod of Object.values(modules)) {
export function getBiblePlanReadings(temporalId: string, weekday: string, date: string): BiblePlanReading[] {
const byTemporal = readingsByTemporalKey.get(`${temporalId}-${weekday}`) ?? [];
const byCalendarDate = readingsByCalendarDate.get(date.slice(5)) ?? [];
return [...byTemporal, ...byCalendarDate];
const carryover = adventCarryoverReadings(date);
return [...byTemporal, ...byCalendarDate, ...carryover];
}
+61 -2
View File
@@ -2,6 +2,11 @@
// data/hours/matins-responsories-by-book.yml's own header for why matching
// is book-level, not citation-level, and why this is a seeded subset, not
// a full pool.
//
// This file also holds the sibling per-Common-category pool (see
// data/hours/matins-responsories-by-common.yml's own header) — used to
// fill in a real responsory for a saint's own Nocturn 2/3 patristic
// reading when that reading has no proper `responsory` of its own.
import type { LanguageCode, TranslationStatus } from '../psalter/types';
interface BilingualText {
@@ -37,9 +42,28 @@ for (const mod of Object.values(modules)) {
}
}
/** Builds the full "R. ...\n* ...\nV. ...\nR. ..." block — same R./V./repeat
* convention as octave-readings.ts's own `responsory` field and every
* nocturn-readings/*.yml file's inline `responsory` — from the pool's
* plain `{r, v}` text (no "R."/"V." labels, `r` already carries a `*`
* marking where the repeat begins, per the extraction convention
* documented in the data file's own header). Previously joined these with
* a bare newline and no R./V. labels at all — a real, visible
* inconsistency (caught 2026-09-04): every other responsory source in
* this app labels its lines. */
function joinOne(r: string | undefined, v: string | undefined): string | undefined {
if (!r) return undefined;
const starIndex = r.indexOf('*');
const repeat = starIndex >= 0 ? r.slice(starIndex + 1).trim() : r;
const lines = [`R. ${r}`];
if (v) lines.push(`V. ${v}`);
lines.push(`R. ${repeat}`);
return lines.join('\n');
}
function joinResponsory(record: ResponsoryRecord): MatinsResponsory {
const la = record.r.la && record.v.la ? `${record.r.la}\n${record.v.la}` : record.r.la;
const en = record.r.en && record.v.en ? `${record.r.en}\n${record.v.en}` : record.r.en;
const la = joinOne(record.r.la, record.v.la);
const en = joinOne(record.r.en, record.v.en);
return {
text: { la, en },
status: { la: la ? 'verified' : 'missing', en: en ? 'verified' : 'missing' },
@@ -56,3 +80,38 @@ export function getResponsoryForBook(book: string, index: number): MatinsRespons
if (!pool || pool.length === 0) return undefined;
return joinResponsory(pool[index % pool.length]!);
}
interface FullTextResponsory {
la: string;
en: string;
}
const commonModules = import.meta.glob<{ default: Record<string, FullTextResponsory[]> }>(
'../data/hours/matins-responsories-by-common.yml',
{ eager: true },
);
const poolByCommon = new Map<string, FullTextResponsory[]>();
for (const mod of Object.values(commonModules)) {
for (const [commonId, entries] of Object.entries(mod.default)) {
poolByCommon.set(commonId, entries);
}
}
/** Same cycling convention as getResponsoryForBook, but the pooled text is
* already the full "R. ...\n* ...\nV. ...\nR. ..." block (matching the
* inline `responsory` convention every nocturn-readings/*.yml file uses),
* ready to drop straight into a reading's `responsory` field — not the
* split {r, v} shape the book pool uses. Undefined when the saint has no
* `common` category, or that category isn't seeded (e.g. angel/evangelist/
* vigil — see the data file's own header for why those are out of scope). */
export function getResponsoryForCommon(
commonId: string | undefined,
index: number,
): Partial<Record<LanguageCode, string>> | undefined {
if (!commonId) return undefined;
const pool = poolByCommon.get(commonId);
if (!pool || pool.length === 0) return undefined;
const entry = pool[index % pool.length]!;
return { la: entry.la, en: entry.en };
}
+26 -19
View File
@@ -21,18 +21,19 @@ describe('getDayLabel — ordinal temporal label', () => {
it('names the anchor day itself, not "day after itself"', () => {
// Trinity Sunday 2026 (May 31) is now also the Queenship of the
// Blessed Virgin Mary's own fixed day (Duplex II Classis, added per
// the full-year sanctoral import) — since this app models Trinitytide
// Sundays as plain `ordinary-sunday` with no special first-class
// standing of their own, the Duplex+ sanctoral feast wins outright
// here per the normal ordinary-Sunday rule (see
// tests/calendar/transfer.test.ts's own May 31 case for the full
// winner/commemorations breakdown), so the label now reflects her,
// not Trinity Sunday itself — but Trinity Sunday is still
// commemorated in return (`decideOccurrence`'s own `ordinary-sunday`
// branch), by bare name only — a commemoration never carries a rank
// parenthetical, only the day's own winner does.
// the full-year sanctoral import). Trinity Sunday itself used to be
// modeled as plain `ordinary-sunday` with no special first-class
// standing of its own, purely a cosmetic label overlay -- fixed
// 2026-09-04 with a real `trinity-sunday` temporal-feast record
// (calendar/data/calendar/temporal-feasts/trinity-sunday.yml),
// `unconditional: true` per direct instruction (a principal Sunday
// shouldn't lose to a same-rank fixed-date collision, same shape as
// christ-the-king.yml). Trinity Sunday now wins outright and the
// Queenship is commemorated instead, by bare name only — a
// commemoration never carries a rank parenthetical, only the day's
// own winner does.
expect(getDayLabel(resolveDay('2026-05-31')).en).toBe(
'The Queenship of the Blessed Virgin Mary (Duplex II Class) — Trinity Sunday',
'The Most Holy Trinity (Duplex II Class) — The Queenship of the Blessed Virgin Mary',
);
expect(getDayLabel(resolveDay('2026-04-05')).en).toBe(
"Easter (Duplex I Class) — St. Vincent Ferrer, Confessor (transferred away)",
@@ -41,12 +42,12 @@ describe('getDayLabel — ordinal temporal label', () => {
"Ash Wednesday — St. Simeon, Bishop and Martyr (transferred away)",
);
// Latin: the winner now has a real authored nameLa (see
// calendar/data/calendar/saints/queenship-of-the-bvm.yml), so this is
// real Latin throughout — the rank label ("Duplex II. Classis") and
// the commemorated Sunday's own name ("Dominica Sanctissimae
// Trinitatis") were already real Latin before this.
// calendar/data/calendar/saints/queenship-of-the-bvm.yml and
// temporal-feasts/trinity-sunday.yml's own "Sanctissima Trinitas"),
// so this is real Latin throughout — the rank label ("Duplex II.
// Classis") was already real Latin before this.
expect(getDayLabel(resolveDay('2026-05-31')).la).toBe(
'Beata Maria Virgo Regina (Duplex II. Classis) — Dominica Sanctissimae Trinitatis',
'Sanctissima Trinitas (Duplex II. Classis) — Beata Maria Virgo Regina',
);
expect(getDayLabel(resolveDay('2026-04-05')).la).toBe(
'Pascha (Duplex I. Classis) — Sanctus Vincentius Ferrerius, Confessor (translata alio)',
@@ -233,14 +234,20 @@ describe('getDayLabel — active octave', () => {
expect(getDayLabel(resolveDay('2028-11-03')).en).toBe('3rd Day within the Octave of All Saints (Semiduplex)');
});
it("a season's own named anchor day outranks an active octave, even though Trinity Sunday is technically also day 8 of Pentecost's own octave", () => {
it("Trinity Sunday itself outranks Pentecost's own octave, which is technically still active on the same day (day 8)", () => {
// Not 2026 (May 31, the Queenship of the Blessed Virgin Mary's own
// fixed day, see tests/calendar/transfer.test.ts) and not 2023
// (June 4, now St. Francis Caracciolo's own fixed day) -- both would
// muddy this specifically octave-vs-anchor-day check with a sanctoral
// winner. 2030's Trinity Sunday (June 16) has no sanctoral entry at
// all, isolating the octave interaction cleanly.
expect(getDayLabel(resolveDay('2030-06-16')).en).toBe('Trinity Sunday (Duplex I Class)');
// all, isolating the octave interaction cleanly. Since 2026-09-04,
// Trinity Sunday is a real, unconditional-winning temporal-feast
// (see the test above) rather than a purely cosmetic label overlay,
// so this is now a real occurrence result, not just a label choice --
// Duplex II Class, its own live-verified rank, not the earlier
// (never-verified) "Duplex I Class" placeholder this test used to
// assert.
expect(getDayLabel(resolveDay('2030-06-16')).en).toBe('The Most Holy Trinity (Duplex II Class)');
});
it("a temporal day with real standing of its own (not ordinary-feria) never shows an octave name at all, even with one active -- live-verified counterexample: the Christmas Octave's own stack (Dec 30) titles itself off the Sunday, never any of the four octaves layered on top of it", () => {
+14 -14
View File
@@ -106,22 +106,22 @@ describe('Ember days', () => {
});
it('Matins renders real, distinct, verified lessons+responsories for each of the 6 Ember days', () => {
// September Ember Friday (2026-09-18) is 1, not >=3, since 2026-09-04:
// ember-september-friday.yml's own Gregory homily (Lectio1-3) was
// recombined into a single reading -- it's one continuous, unbroken
// homily on the same pericope, split only to fill the fixed 3-lesson
// slot count, the same "source doesn't genuinely split" default
// post-pentecost-15.yml's own doc comment already establishes. The
// other 5 Ember days' own nocturn-readings files still keep their
// historical 3-way split (each with its own genuinely distinct
// responsory) -- not revisited here, out of scope for this fix.
// All 6 are now 1, not >=3, since 2026-09-04: every Ember day's own
// nocturn-readings file was recombined into a single reading -- each
// is one continuous, unbroken homily, split only to fill the fixed
// 3-lesson slot count, the same "source doesn't genuinely split"
// default post-pentecost-15.yml's own doc comment establishes.
// September Friday was the first fixed; Wednesday/Saturday (September)
// and Wednesday/Friday/Saturday (Advent) followed the same day once
// the reference source was checked directly for each and confirmed
// contiguous.
const dates: [string, number][] = [
['2026-09-16', 3],
['2026-09-16', 1],
['2026-09-18', 1],
['2026-09-19', 3],
['2026-12-16', 3],
['2026-12-18', 3],
['2026-12-19', 3],
['2026-09-19', 1],
['2026-12-16', 1],
['2026-12-18', 1],
['2026-12-19', 1],
];
for (const [date, minLessons] of dates) {
const ordo = resolveOrdo('matins', date);
+11 -13
View File
@@ -88,22 +88,20 @@ describe('transfer mechanism (resolveDay integration)', () => {
// Felix doesn't reach Trinity Sunday at all now. Trinity Sunday 2026
// (May 31) is also the Queenship of the Blessed Virgin Mary's own
// fixed day (Duplex II Classis) -- since this app models Trinitytide
// Sundays as plain `ordinary-sunday` (no special first-class standing
// of their own, see temporal-categories.yml), a Duplex+ sanctoral
// feast wins outright here per the normal ordinary-Sunday rule, with
// both the day's own temporal id and Pentecost's octave commemorated
// in return.
expect(sunday.winner).toEqual({
kind: 'sanctoral',
id: 'queenship-of-the-bvm',
name: 'The Queenship of the Blessed Virgin Mary',
nameLa: 'Beata Maria Virgo Regina',
rank: 'duplex-2-classis',
});
// fixed day (Duplex II Classis). Trinity Sunday used to be modeled as
// plain `ordinary-sunday` (no special first-class standing of its
// own), so the Duplex+ Queenship won outright there -- fixed
// 2026-09-04 with a real `trinity-sunday` temporal-feast record,
// `unconditional: true` (a principal Sunday shouldn't lose to a
// same-rank fixed-date collision, same shape as christ-the-king.yml).
// Trinity Sunday now wins outright; the Queenship, the day's own
// plain temporal id, and Pentecost's octave are all commemorated in
// return.
expect(sunday.winner).toEqual({ kind: 'temporal', id: 'trinity-sunday' });
expect(sunday.commemorations).toEqual([
{ kind: 'temporal', id: 'post-pentecost-01' },
{ kind: 'octave', id: 'pentecost-sunday', name: 'Pentecost', nameLa: 'Dominica Pentecostes' },
{ kind: 'sanctoral', id: 'queenship-of-the-bvm', name: 'The Queenship of the Blessed Virgin Mary', nameLa: 'Beata Maria Virgo Regina', rank: 'duplex-2-classis' },
]);
});
});
+37
View File
@@ -38,3 +38,40 @@ describe('getBiblePlanReadings label uses the same book-alias normalization as v
expect(readings[0]?.label?.la).toBe('Léctio libri Judith');
});
});
// The Advent reading plan has 28 rows (advent-1-sunday through
// advent-4-saturday, a full 4-week Advent), but real Advent is never that
// long -- its last real day is always Dec 23 (Dec 24 is the Vigil of
// Christmas's own temporal id), while Advent 1 Sunday itself lands anywhere
// from Nov 27 to Dec 3. Even the longest possible Advent (Nov 27) is 27
// real days, one short of the full plan; the shortest (Dec 3) is 21, a
// whole week short. Whatever doesn't land on its own natural date carries
// forward one reading per day starting Christmas Day, pooled alongside
// whatever Christmastide's own calendar-dated rows already have. User
// direction, 2026-09-05: "for advent only, we need to show all of those
// chapters," accepting the spillover into Christmastide as the trade-off.
describe('Advent reading-plan carryover into Christmastide', () => {
it('a short Advent (2028: Advent 1 Sunday = Dec 3, latest possible) carries all 7 of week 4\'s readings forward, one per day', () => {
const isaiahCitations = [25, 26, 27, 28, 29, 30, 31].map(
(day) => getBiblePlanReadings('christmas-octave-sunday', 'monday', `2028-12-${day}`).find((r) => r.citation.la?.startsWith('Isa'))?.citation.la,
);
expect(isaiahCitations).toEqual(['Isa 46-48', 'Isa 49-51', 'Isa 52-54', 'Isa 55-57', 'Isa 58-60', 'Isa 61-63', 'Isa 64-66']);
});
it('a long Advent (2027: Advent 1 Sunday = Nov 28, near-earliest) carries only the last 2 readings forward', () => {
const isaiahCitations = [25, 26, 27, 28].map(
(day) => getBiblePlanReadings('christmas-octave-sunday', 'monday', `2027-12-${day}`).find((r) => r.citation.la?.startsWith('Isa'))?.citation.la,
);
expect(isaiahCitations).toEqual(['Isa 61-63', 'Isa 64-66', undefined, undefined]);
});
it('carried-over readings pool alongside Christmastide\'s own calendar-dated rows, never replacing them', () => {
const readings = getBiblePlanReadings('christmas-octave-sunday', 'friday', '2028-12-25');
expect(readings.map((r) => r.citation.la)).toEqual(['Cant 1', 'Isa 46-48']);
});
it('does not carry anything over before Christmas Day', () => {
const readings = getBiblePlanReadings('vigil-of-christmas', 'thursday', '2028-12-24');
expect(readings.find((r) => r.citation.la?.startsWith('Isa'))).toBeUndefined();
});
});