Author Common-of-a-Dedication Lauds psalmody, closing 10/10 sweep
Live-verified the real scheme against Divinum Officium (Monastic Tridentinum 1617, votive=C8) across all 7 weekdays: proper antiphons on Ps 50/5/35, plus a canticle slot whose antiphon is fixed to this Common but whose underlying text follows the plain ferial weekday rotation (all 7 already authored). Required making LaudsPsalmodyOverride.canticle.id optional and having resolvePsalmody splice in the day's own ferial canticle when a category omits it. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LGsATZvfnpQ81HQuoF5JuL
This commit is contained in:
@@ -0,0 +1,44 @@
|
|||||||
|
# Generic Common-of-a-Dedication (of a Church) Lauds psalmody, live-
|
||||||
|
# verified against Divinum Officium (Monastic Tridentinum 1617, command=
|
||||||
|
# prayLaudes, votive=C8, 2026-09-05 — all 7 weekdays checked, 11-09 through
|
||||||
|
# 11-15-2026). Genuinely its own scheme, unlike most Commons: proper psalms
|
||||||
|
# 50/5/35 (not the usual 92/99/62), same "own numbers, not the standard
|
||||||
|
# duplex-majus set" pattern already noted in this Common's own Vespers file
|
||||||
|
# (109/110/111/147).
|
||||||
|
#
|
||||||
|
# The canticle slot is unusual again, in a different way: its *antiphon* is
|
||||||
|
# this Common's own fixed text ("Bene fundáta est...", confirmed identical
|
||||||
|
# on every weekday tested), but the underlying canticle *text* is not
|
||||||
|
# proper to Dedication at all -- it's simply whichever plain ferial
|
||||||
|
# weekday canticle the day already uses (Isaiah Mon, Ezechias Tue, Anna
|
||||||
|
# Wed, Moses/Exodus Thu, Habacuc Fri, Moses/Deuteronomy split Sat, Three
|
||||||
|
# Young Men Sun) -- all 7 already authored, hours/lauds-canticles.ts. This
|
||||||
|
# supersedes the earlier (2026-08-28) note on this file's Vespers sibling
|
||||||
|
# claiming a "Canticum Ieremiæ" was needed and never transcribed -- that
|
||||||
|
# was a live-verify session that captured a plain ferial Thursday's output
|
||||||
|
# instead of actually passing votive=C8; no such canticle appears anywhere
|
||||||
|
# in the real Dedication scheme on any weekday. `canticle.id` is
|
||||||
|
# intentionally omitted here -- see hours/lauds.ts's resolvePsalmody and
|
||||||
|
# hours/lauds-psalmody-overrides.ts's own doc comment for the fallback.
|
||||||
|
id: common-of-a-dedication
|
||||||
|
groups:
|
||||||
|
- psalms: [50]
|
||||||
|
antiphon:
|
||||||
|
la: "Domum tuam, Dómine, * decet sanctitúdo in longitúdinem diérum."
|
||||||
|
en: "Holiness becometh thine house, * O Lord, for ever."
|
||||||
|
- psalms: [5]
|
||||||
|
antiphon:
|
||||||
|
la: "Domus mea, * domus oratiónis vocábitur."
|
||||||
|
en: "My house * shall be called the house of prayer."
|
||||||
|
- psalms: [35]
|
||||||
|
antiphon:
|
||||||
|
la: "Hæc est domus Dómini * fírmiter ædificáta, bene fundáta est supra firmam petram."
|
||||||
|
en: "This is the Lord's house * stoutly builded, well founded upon a sure rock."
|
||||||
|
canticle:
|
||||||
|
antiphon:
|
||||||
|
la: "Bene fundáta est * domus Dómini supra firmam petram."
|
||||||
|
en: "The Lord's house is well founded * upon a sure rock."
|
||||||
|
laudate:
|
||||||
|
antiphon:
|
||||||
|
la: "Lápides pretiósi * omnes muri tui, et turres Ierúsalem gemmis ædificabúntur."
|
||||||
|
en: "All thy walls are of stones most precious, * and the towers of Jerusalem shall be built up with jewels."
|
||||||
@@ -33,7 +33,15 @@ export interface LaudsPsalmodyOverride {
|
|||||||
groups: { psalms: number[]; antiphon: Partial<Record<string, string>> }[];
|
groups: { psalms: number[]; antiphon: Partial<Record<string, string>> }[];
|
||||||
// `split`: see hours/lauds.ts's PsalmodyBlock — no current override
|
// `split`: see hours/lauds.ts's PsalmodyBlock — no current override
|
||||||
// needs it, but the shape stays aligned with the plain weekday default.
|
// needs it, but the shape stays aligned with the plain weekday default.
|
||||||
canticle: { id: string; antiphon: Partial<Record<string, string>>; split?: number };
|
//
|
||||||
|
// `id` is optional: every category so far uses the same canticle
|
||||||
|
// regardless of weekday (so authors it directly), but Common-of-a-
|
||||||
|
// Dedication's own canticle *antiphon* is fixed while the underlying
|
||||||
|
// canticle text rotates through the plain weekday cycle exactly like
|
||||||
|
// ferial Lauds (live-verified against votive=C8 across all 7 weekdays,
|
||||||
|
// 2026-09-05) — omitting `id` here signals hours/lauds.ts's
|
||||||
|
// resolvePsalmody to splice in that day's own ferial canticle id/split.
|
||||||
|
canticle: { id?: string; antiphon: Partial<Record<string, string>>; split?: number };
|
||||||
laudate: { antiphon: Partial<Record<string, string>> };
|
laudate: { antiphon: Partial<Record<string, string>> };
|
||||||
}
|
}
|
||||||
export interface LaudsPsalmodyCategory extends LaudsPsalmodyOverride {
|
export interface LaudsPsalmodyCategory extends LaudsPsalmodyOverride {
|
||||||
|
|||||||
+9
-1
@@ -216,7 +216,15 @@ function resolvePsalmody(day: LiturgicalDay): ResolvedPart[] {
|
|||||||
const ferial = laudsAntiphons[day.weekday];
|
const ferial = laudsAntiphons[day.weekday];
|
||||||
let wd: PsalmodyBlock;
|
let wd: PsalmodyBlock;
|
||||||
if (getOfficeOverrideId(day)) {
|
if (getOfficeOverrideId(day)) {
|
||||||
wd = getPsalmodyOverrideFor(day) ?? ferial;
|
const override = getPsalmodyOverrideFor(day);
|
||||||
|
wd = override
|
||||||
|
? {
|
||||||
|
...override,
|
||||||
|
canticle: override.canticle.id
|
||||||
|
? { id: override.canticle.id, antiphon: override.canticle.antiphon, split: override.canticle.split }
|
||||||
|
: { ...ferial.canticle, antiphon: override.canticle.antiphon },
|
||||||
|
}
|
||||||
|
: ferial;
|
||||||
} else {
|
} else {
|
||||||
const properId = getPsalmodyProperOverrideId(day);
|
const properId = getPsalmodyProperOverrideId(day);
|
||||||
const proper = properId ? getLaudsSaintOverride(properId) : undefined;
|
const proper = properId ? getLaudsSaintOverride(properId) : undefined;
|
||||||
|
|||||||
Reference in New Issue
Block a user