Apply 1954 precedence and Sunday-resumption rules #67

Closed
opened 2026-07-01 00:52:49 +00:00 by manlycucumber · 1 comment
manlycucumber commented 2026-07-01 00:52:49 +00:00 (Migrated from github.com)

Problem

The older precedence table and the way feasts relate to Sundays differ from 1962. The 1954 engine must apply these to resolve occurrence and concurrence correctly.

Acceptance criteria

  • 1954 precedence ordering is applied from data
  • Sunday vs feast outcomes match the older rubric
  • Commemoration counts follow 1954 limits
  • Unit tests cover contested 1954 dates

Notes

Validate against the 1954 oracle.

## Problem The older precedence table and the way feasts relate to Sundays differ from 1962. The 1954 engine must apply these to resolve occurrence and concurrence correctly. ## Acceptance criteria - [ ] 1954 precedence ordering is applied from data - [ ] Sunday vs feast outcomes match the older rubric - [ ] Commemoration counts follow 1954 limits - [ ] Unit tests cover contested 1954 dates ## Notes Validate against the 1954 oracle.
manlycucumber commented 2026-07-04 17:51:29 +00:00 (Migrated from github.com)

Resolution rules the #66 vigils need this engine to implement (deferred from #66, which is data-only):

  • Sunday → Saturday anticipation. A pre-1955 common vigil falling on a Sunday is anticipated to the preceding Saturday (the 1955 reform changed this to omission). Governs all 13 sanctoral vigils; not baked into the placement data (nominal anchor only).
  • Matthias bissextile. The vigil is anchored at Feb 23 (nominal). In a leap year St Matthias moves Feb 24→25 and its vigil Feb 23→24 (the doubled bis sextum). SanctoralCalendar::placementDate() currently shifts Feb 24–28 but not Feb 23 — add a leap-year characterization test when wiring this; do not store a second date.
  • Same as the octave days (#65): resolve the vigils' occurrence behaviour (commemorated when impeded, omitted under a Sunday/higher feast) on the pre-1955 tiers.
Resolution rules the #66 vigils need this engine to implement (deferred from #66, which is data-only): - **Sunday → Saturday anticipation.** A pre-1955 common vigil falling on a Sunday is anticipated to the preceding Saturday (the 1955 reform changed this to omission). Governs all 13 sanctoral vigils; not baked into the placement data (nominal anchor only). - **Matthias bissextile.** The vigil is anchored at Feb 23 (nominal). In a leap year St Matthias moves Feb 24→25 and its vigil Feb 23→24 (the doubled *bis sextum*). `SanctoralCalendar::placementDate()` currently shifts Feb 24–28 but not Feb 23 — add a leap-year characterization test when wiring this; do not store a second date. - Same as the octave days (#65): resolve the vigils' occurrence behaviour (commemorated when impeded, omitted under a Sunday/higher feast) on the pre-1955 tiers.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Directorium/Core#67
No description provided.