feat: 1954 Divino Afflatu precedence engine (#67) #451
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!451
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feature/67-1954-precedence"
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?
Wires the pre-1955 (Divino Afflatu) precedence rules into the resolver, so the 1954 edition resolves occurrence, transfer, and concurrence under the older Tabella Occurrentiae rather than the 1962 Table of Liturgical Days. Closes #67.
What lands
Rubrics1954Precedence implements PrecedenceRulesbesideRubrics1962Precedence— branches on the live six-runglegacyRankladder (Duplex I/II class, Duplex maius, Duplex, Semiduplex, Simplex), the three Divino Afflatu Sunday classes, the lesser-Sunday elevation, transfer restricted to Doubles of the I/II class, per-class octave suppression, and free (odd-orations) commemoration.facts/editions/roman-divino-afflatu/precedence.yaml(a different order, not a diff of the n.91 table) + a new citedrg-dasource; the generator'stransformPrecedenceis now per-edition.isBuiltstays false: aCalendarCatalogboundary guard refuses publicday()/contract('1954')until the dataset burndown (#64) completes the calendar, while tests exercise the engine directly throughDayResolver::forEdition().Accuracy
The rules are verified against the Divino-Afflatu-era Rubricae Generales (Titt. IV–VII) and cross-checked to the St. Lawrence Press pre-1955 Ordo — via a research workflow whose adversarial pass forced three primary-text corrections (chiefly: transfer is restricted to Doubles of the I/II class only). The Candlemas asymmetry holds on real data: the Purification wins and commemorates a green Sunday (1930) but transfers off a II-class Sunday (Septuagesima, 1947). An adversarial code+data review returned SAFE TO MERGE, zero must-fixes; its two deferrals are filed on #64. Design:
docs/design/rubric-system-model.mdSeam 5a/6.Verification
npm test(22) + reproducibleverify(18 files)