feat: resolve occurrence outcomes, first class (#31) #347
No reviewers
Labels
No labels
area: build
area: ci
area: compare
area: data
area: engine
area: model
area: provenance
area: rite
area: validation
backport
blocked
breaking
confirmed
dependencies
duplicate
epic
github_actions
invalid
needs-info
needs-triage
php
priority: high
priority: low
priority: medium
regression
type: bug
type: chore
type: correction
type: docs
type: enhancement
type: feature
type: fix
type: perf
type: refactor
type: security
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Directorium/Core!347
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feature/31-occurrence-first-class"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #31. Epic #29, issue 2/8.
What
Adds
PrecedenceRules::occurrenceOutcome($winner, $loser, $context)and its 1962implementation. The higher office (by
tierOf()) is celebrated; this returns theloser's fate as an
OccurrenceOutcome— commemorate | transfer | omit:displaced feast keeps its identity for the transfer queue (#34).
octave days n. 66; first-class vigils n. 30), or an ordinary office impeded
by a first-class day (n. 111a).
even on a first-class day.
Correctness
Grounded in the 1960 New Rubrics nn. 92–114 (verbatim, from the Divinum Officium
transcription, cross-checked against the SSPX summary). The tests pin the
headline first-class cases: Immaculate Conception celebrated + Advent Sunday
commemorated; St Joseph transferred off a first-class Lenten Sunday; a
third-class saint on a first-class Sunday omitted; a first-class feast in the
Easter octave transferred, a lower one omitted. Second/third/fourth-class
coverage and the Sunday-vs-feast-of-the-Lord bars are #32/#33; the count limit is #36.
Verification
composer lint·composer analyse(PHPStan L6, no errors) ·composer test(435 tests, 30,258 assertions — +9). Commits signed + DCO.