Alias Abbot/Confessor-not-Bishop/Apostles-plural to existing Matins Common schemes
Live-verified byte-identical psalms, antiphons, and versicles against St. Maurus/St. Gall (Abbot), St. Francis of Assisi/St. Jerome (Confessor-not-Bishop), and the Octave of Ss. Peter and Paul (Apostles-plural) — genuine full redirects, not new content. Swaps the matins.test.ts ferial-fallback proof off St. Anthony Abbot (no longer unauthored) onto St. Monica (Widow, still unauthored). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PhysogLP9eCeKS7JEwRi6y
This commit is contained in:
@@ -16,7 +16,19 @@
|
|||||||
# redirect) because the versicles are a real, if small, difference —
|
# redirect) because the versicles are a real, if small, difference —
|
||||||
# `common-of-a-confessor-bishop.yml` is its own full file, duplicating
|
# `common-of-a-confessor-bishop.yml` is its own full file, duplicating
|
||||||
# these same psalm/antiphon groups with its own versicles.
|
# these same psalm/antiphon groups with its own versicles.
|
||||||
|
#
|
||||||
|
# `aliases` also registers `common-of-an-abbot` and
|
||||||
|
# `common-of-a-confessor-not-bishop` under this same scheme (2026-08),
|
||||||
|
# live-verified as a genuine full redirect (psalms, antiphons, AND
|
||||||
|
# versicles all byte-identical, unlike the Bishop case above): St. Maurus
|
||||||
|
# (2026-01-15, Duplex II. classis) and St. Gall (2026-10-16, Duplex) for
|
||||||
|
# Abbot; St. Francis of Assisi (2026-10-04, Duplex) and St. Jerome
|
||||||
|
# (2026-09-30, Duplex) for Confessor-non-Bishop — all four reproduce this
|
||||||
|
# file's content exactly, confirming vu's own separately-named ids
|
||||||
|
# collapse to one Matins scheme in the reference engine (Reference votive
|
||||||
|
# numbers C5/C5b both point here per `horas.dialog`'s `[votives]` index).
|
||||||
id: common-of-a-confessor
|
id: common-of-a-confessor
|
||||||
|
aliases: [common-of-an-abbot, common-of-a-confessor-not-bishop]
|
||||||
nocturn1:
|
nocturn1:
|
||||||
groups:
|
groups:
|
||||||
- psalms: [1]
|
- psalms: [1]
|
||||||
|
|||||||
@@ -10,7 +10,15 @@
|
|||||||
# pattern already established for Common-of-a-Martyr (see that category
|
# pattern already established for Common-of-a-Martyr (see that category
|
||||||
# file's own doc comment).
|
# file's own doc comment).
|
||||||
#
|
#
|
||||||
|
# `aliases` also registers `common-of-apostles` (plural, vu's separate id
|
||||||
|
# for feasts of two-or-more Apostles together) under this same scheme
|
||||||
|
# (2026-08) — live-verified against the Octave of Ss. Peter and Paul
|
||||||
|
# (2026-07-06, Duplex): psalms, antiphons, and versicles all
|
||||||
|
# byte-identical to this file, a genuine full redirect (reference votive
|
||||||
|
# number C1 covers both per `horas.dialog`'s `[votives]` index, which
|
||||||
|
# doesn't distinguish singular from plural Apostle commons).
|
||||||
id: common-of-an-apostle
|
id: common-of-an-apostle
|
||||||
|
aliases: [common-of-apostles]
|
||||||
nocturn1:
|
nocturn1:
|
||||||
groups:
|
groups:
|
||||||
- psalms: [18]
|
- psalms: [18]
|
||||||
|
|||||||
@@ -330,16 +330,19 @@ describe('resolveOrdo("matins", ...) Duplex+ weekday-feast (3-nocturn, non-Sunda
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('falls all the way back to the plain ferial weekday table, redistributed into 3 nocturns, when neither a proper nor a Common entry is authored', () => {
|
it('falls all the way back to the plain ferial weekday table, redistributed into 3 nocturns, when neither a proper nor a Common entry is authored', () => {
|
||||||
// St. Anthony, Abbot (Duplex, Common of an Abbot -- no
|
// St. Monica, Widow (Duplex, Common of a Widow -- no
|
||||||
// matins-psalmody-overrides category authored yet for either tier)
|
// matins-psalmody-overrides category authored yet for either tier;
|
||||||
// -- 2029-01-17, a Wednesday, confirmed clean (no Sunday collision).
|
// Common-of-an-Abbot no longer qualifies for this proof as of
|
||||||
const fallback = resolveOrdo('matins', '2029-01-17');
|
// 2026-08-27, now aliased to Common-of-a-Confessor) -- 2029-05-04, a
|
||||||
|
// Friday, confirmed clean (no Sunday collision, per her own
|
||||||
|
// saint-file comment).
|
||||||
|
const fallback = resolveOrdo('matins', '2029-05-04');
|
||||||
const psalms = fallback.parts.filter((p) => p.kind === 'psalm').map((p) => (p as { psalmNumber: number }).psalmNumber);
|
const psalms = fallback.parts.filter((p) => p.kind === 'psalm').map((p) => (p as { psalmNumber: number }).psalmNumber);
|
||||||
// Ps 3 + 94, then Wednesday's own 9-psalm ferial table
|
// Ps 3 + 94, then Friday's own 9-psalm ferial table
|
||||||
// (psalter-distribution.yml), not any Common-of-an-Abbot scheme.
|
// (psalter-distribution.yml), not any Common-of-a-Widow scheme.
|
||||||
expect(psalms[0]).toBe(3);
|
expect(psalms[0]).toBe(3);
|
||||||
expect(psalms[1]).toBe(94);
|
expect(psalms[1]).toBe(94);
|
||||||
expect(psalms.slice(2)).toEqual(getPsalmsFor('matins', 'wednesday').map((r) => r.number));
|
expect(psalms.slice(2)).toEqual(getPsalmsFor('matins', 'friday').map((r) => r.number));
|
||||||
expect(fallback.parts.some((p) => p.kind === 'te-deum')).toBe(true);
|
expect(fallback.parts.some((p) => p.kind === 'te-deum')).toBe(true);
|
||||||
expect(fallback.parts.some((p) => p.kind === 'canticle')).toBe(false);
|
expect(fallback.parts.some((p) => p.kind === 'canticle')).toBe(false);
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user