From 3e1fd3b9c489a52d8f45a6df73a11a411d303f19 Mon Sep 17 00:00:00 2001 From: Will Estes Date: Wed, 19 Aug 2026 07:40:39 -0400 Subject: [PATCH] Strengthen the Immaculate Conception's and Nativity BVM's octaves too Same `wins: duplex` override as the Assumption's and Pentecost's octaves, applied to two more common-class octaves. Accepted side effect: St. Damasus (Dec 11) and St. Nicholas of Tolentino (Sep 10), both Semiduplex, no longer tie-and-win an ordinary octave day here -- they're now commemorated instead of winning outright. Co-Authored-By: Claude Sonnet 5 --- src/data/calendar/saints/immaculate-conception.yml | 6 ++++++ src/data/calendar/saints/nativity-bvm.yml | 7 +++++++ tests/calendar/september-sanctoral.test.ts | 13 ++++++------- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/src/data/calendar/saints/immaculate-conception.yml b/src/data/calendar/saints/immaculate-conception.yml index 9d07cc7..9581538 100644 --- a/src/data/calendar/saints/immaculate-conception.yml +++ b/src/data/calendar/saints/immaculate-conception.yml @@ -9,5 +9,11 @@ common: common-of-the-bvm propers: "immaculate-conception" minorHoursCommon: common-of-the-bvm # Has a real octave (Dec 8-15) -- see calendar/types.ts's OctaveConfig. +# Strengthened to `wins: duplex` (2026-08 user decision), same pattern +# as pentecost-sunday.yml's and assumption.yml's own overrides. Side +# effect accepted by the user: St. Damasus (Dec 11, semiduplex) no +# longer ties and wins an ordinary octave day here -- he now loses +# outright to the octave instead (see st-damasus.yml). octave: enabled: true + wins: duplex diff --git a/src/data/calendar/saints/nativity-bvm.yml b/src/data/calendar/saints/nativity-bvm.yml index 98c0c2a..ccf9bb6 100644 --- a/src/data/calendar/saints/nativity-bvm.yml +++ b/src/data/calendar/saints/nativity-bvm.yml @@ -10,5 +10,12 @@ common: common-of-the-bvm propers: "nativity-bvm" minorHoursCommon: common-of-the-bvm # Has a real octave (Sep 8-15) -- see calendar/types.ts's OctaveConfig. +# Strengthened to `wins: duplex` (2026-08 user decision), same pattern +# as pentecost-sunday.yml's and assumption.yml's own overrides. Side +# effect accepted by the user: St. Nicholas of Tolentino (Sep 10, +# semiduplex) no longer ties and wins an ordinary octave day here -- he +# now loses outright to the octave instead (see +# st-nicholas-of-tolentino.yml). octave: enabled: true + wins: duplex diff --git a/tests/calendar/september-sanctoral.test.ts b/tests/calendar/september-sanctoral.test.ts index fe07895..68ec05f 100644 --- a/tests/calendar/september-sanctoral.test.ts +++ b/tests/calendar/september-sanctoral.test.ts @@ -48,14 +48,13 @@ describe('September sanctoral pull (first pass)', () => { ]); }); - it('a monastic-calendar-specific reassignment replaces what the base Tridentine table treats as a plain Nativity-octave continuation', () => { + it('a monastic-calendar-specific reassignment places St. Nicholas of Tolentino here, but the Nativity octave (strengthened to `wins: duplex`, 2026-08 user decision) now outranks his Semiduplex outright, commemorating him instead of losing the day to him', () => { const day = resolveDay('2025-09-10'); - expect(day.winner).toEqual({ - kind: 'sanctoral', - id: 'st-nicholas-of-tolentino', - name: 'St. Nicholas of Tolentino, Confessor', - rank: 'semiduplex', - }); + expect(day.winner).toEqual({ kind: 'temporal', id: 'post-pentecost-13' }); + expect(day.commemorations).toEqual([ + { kind: 'sanctoral', id: 'st-nicholas-of-tolentino', name: 'St. Nicholas of Tolentino, Confessor', rank: 'semiduplex' }, + { kind: 'octave', id: 'nativity-bvm', name: 'The Nativity of the Blessed Virgin Mary' }, + ]); }); it('St. Matthew wins outright at Duplex II. classis with a real proper collect, distinct from his own Vigil the day before', () => {