Give a Vigil's own First Vespers Magnificat its real weekday fallback
Deploy / deploy (push) Successful in 1m31s

A Vigil never has a fixed proper Magnificat antiphon in the real rubric
-- its Rule block ("ex C1v; ... Laudes 2") always borrows whatever the
current ferial weekday's own antiphon is, live-verified across 4
different years (2025-2028) at the Vigil of St. Andrew's own First
Vespers. getMagnificatAntiphon now special-cases saint.rank === 'vigil'
to fall through to the same weekday-default table the plain temporal
branch already used, rather than trying (and missing) a fixed Common
lookup.

Closes the 11th and last Common-category Magnificat antiphon gap; see
TODO.md for the full writeup, including how the first pass wrongly
closed this one as "not a gap" before being asked to double check.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014QEe9oTbn1UjQVAYcCoW1a
This commit is contained in:
2026-08-31 22:27:27 -04:00
parent ccc406003c
commit e7c5fc0c24
2 changed files with 56 additions and 0 deletions
+18
View File
@@ -934,6 +934,24 @@ export function getMagnificatAntiphon(day: LiturgicalDay): ResolvedText {
return proper;
}
}
// A Vigil has no proper Magnificat antiphon of its own in the real rubric
// -- its `[Rule]` block ("ex C1v; ... Laudes 2") always borrows whatever
// the current ferial weekday's own antiphon is, live-verified across 4
// different years (2025-2028) at the Vigil of St. Andrew's own First
// Vespers: every one rendered "{Antiphona ex Proprio de Tempore}", never
// a fixed Common text. So a Vigil takes the same weekday-default fallback
// the plain temporal branch above uses, rather than falling through to
// `magnificat-antiphon-common-of-a-vigil` (deliberately never authored --
// there's no single fixed text to put there).
if (saint?.rank === 'vigil') {
const weekdayDefault = vespersMagnificatAntiphons[day.weekday];
if (weekdayDefault) {
const resolved = weekdayDefault.status
? { text: weekdayDefault.antiphon, status: weekdayDefault.status }
: verifiedText(weekdayDefault.antiphon);
return withPaschaltideAlleluia(resolved, day);
}
}
if (saint?.benedictusCommon) {
return withPaschaltideAlleluia(resolveCommon(`magnificat-antiphon-${saint.benedictusCommon}`), day);
}