Don't commemorate a Vigil alongside the very feast it anticipates

At Vespers/Compline, a day's own Vigil losing tonight to tomorrow's First
Vespers was showing up as a redundant extra commemoration alongside that
same feast (e.g. Nov 29's Compline showing both "St. Andrew" and "Vigil
of St. Andrew" for Advent I's anticipated evening).

Added an explicit `vigilOf` field to each Vigil's own saint record
(several Vigil ids don't map cleanly to their feast's id by stripping a
`vigil-of-` prefix — `vigil-of-the-assumption` vs `assumption`,
`vigil-of-st-james` vs `st-james-the-greater` — so this needs to be
explicit rather than guessed from the id or date adjacency).
calendar/vespers.ts's evening-anticipation merge now skips adding the
Vigil commemoration when tomorrow's winner or its own commemorations
already include that same feast.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-18 11:00:09 -04:00
parent f43f030a6a
commit 79372fb274
14 changed files with 61 additions and 2 deletions
@@ -4,6 +4,7 @@
id: vigil-of-all-saints
name: "Vigil of All Saints"
rank: vigil
vigilOf: all-saints
common: common-of-a-vigil
propers: "vigil-of-all-saints"
# P/T/S/N: not confirmed via this pass's own file parser (this vigil's
@@ -3,6 +3,7 @@
id: vigil-of-ss-simon-and-jude
name: "Vigil of Ss. Simon and Jude"
rank: vigil
vigilOf: ss-simon-and-jude
common: common-of-a-vigil
propers: "vigil-of-ss-simon-and-jude"
# P/T/S/N: no [Ant Prima]/etc of its own in the source (10-27.txt) --
@@ -6,6 +6,7 @@
id: vigil-of-st-andrew
name: "Vigil of St. Andrew"
rank: vigil
vigilOf: st-andrew
common: common-of-a-vigil
propers: null
collectCommon: collect-c1v
@@ -8,6 +8,7 @@
id: vigil-of-st-bartholomew
name: "Vigil of St. Bartholomew"
rank: vigil
vigilOf: st-bartholomew
common: common-of-a-vigil
propers: null
collectCommon: collect-c1v
@@ -6,6 +6,7 @@
id: vigil-of-st-james
name: "Vigil of St. James the Greater"
rank: vigil
vigilOf: st-james-the-greater
common: common-of-a-vigil
propers: null
collectCommon: collect-c1v
@@ -6,6 +6,7 @@
id: vigil-of-st-john-the-baptist
name: "Vigil of St. John the Baptist"
rank: vigil
vigilOf: nativity-of-st-john-the-baptist
common: common-of-a-vigil
propers: "vigil-of-st-john-the-baptist"
# P/T/S/N: not confirmed via this pass's own file parser (this vigil's
@@ -6,6 +6,7 @@
id: vigil-of-st-lawrence
name: "Vigil of St. Lawrence"
rank: vigil
vigilOf: st-lawrence
common: common-of-a-vigil
propers: "vigil-of-st-lawrence"
# Benedictus antiphon live-verified (2026-08, Lauds query, 2025-08-09, winner
@@ -13,6 +13,7 @@
id: vigil-of-st-matthew
name: "Vigil of St. Matthew"
rank: vigil
vigilOf: st-matthew
common: common-of-a-vigil
propers: null
collectCommon: collect-c1v
@@ -7,6 +7,7 @@
id: vigil-of-st-matthias
name: "Vigil of St. Matthias"
rank: vigil
vigilOf: st-matthias
common: common-of-a-vigil
propers: null
collectCommon: collect-c1v
@@ -11,6 +11,7 @@
id: vigil-of-st-thomas
name: "Vigil of St. Thomas"
rank: vigil
vigilOf: st-thomas-apostle
common: common-of-a-vigil
propers: null
collectCommon: collect-c1v
@@ -6,6 +6,7 @@
id: vigil-of-the-assumption
name: "Vigil of the Assumption of the Blessed Virgin Mary"
rank: vigil
vigilOf: assumption
common: common-of-a-vigil
propers: "vigil-of-the-assumption"
benedictusCommon: common-of-a-vigil