feat: define the 1962 precedence rule-table scaffold (#30) #346
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!346
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feature/30-precedence-table"
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 #30. Epic #29, issue 1/8 — the precedence correctness surface.
What
Adds
src/Precedence/and the per-edition seam:PrecedenceRulesinterface — the #59 abstraction (1954/1955/NO editions later); the resolver pipeline is edition-agnostic.Rubrics1962Precedence—tierOf()maps an office to its line in the 1960 Table of Liturgical Days (Codex Rubricarum n. 91). Tier ordinals are the n. 91 line numbers; sub-lines the data can't yet distinguish (proper/indult) collapse onto the universal-Church line until the corpus (#38) carries provenance.PrecedenceTier— the true sort key (ordinal + subOrder). 1962 precedence is not a total order onRankClass.PrecedenceContext— day-level facts (the Triduum). No accessor added toRealizedObservance— season is read via a narrowinstanceof TemporalObservance.Correctness
The n. 91 order was fetched from The New Rubrics of the Roman Breviary and Missal (1960) and cross-checked against a second primary-source transcription (line-for-line agreement). This corrected one slip in the design synthesis: privileged first-class ferias (line 7) outrank first-class feasts (11) — the reason the Annunciation transfers out of Holy Week. Named great feasts (lines 1/3/4/5) are matched by canonical id (Easter/Pentecost are
kind=sunday, so must be caught before the Sunday line).The test pins all 24 detectable categories to their exact n. 91 line and asserts the occurrence-critical boundaries. Occurrence outcomes over this order are #31–#33.
Verification
composer lint·composer analyse(PHPStan L6, no errors) ·composer test(426 tests, 30,242 assertions — +30). Commits signed + DCO.