feat: 1954/1955 moveable feasts — Passiontide Seven Sorrows + Solemnity of St Joseph (#453) #465
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!465
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feature/453-da-moveable-feasts"
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?
Summary
Adds the two moveable feasts the pre-1955 rite keeps that the 1962 rubrics dropped, to the 1954 (Divino Afflatu) and 1955 (Cum nostra) editions — one of the last blockers on
#453(the 1954/1955isBuiltburndown). They are minted the same way as the great moveable feasts and gated on the edition, so the 1962 golden fixture is byte-identical by construction.double-i-class, notgreat-lord), white, with a common octave (days-within Easter+18..+23 semidouble; octave day Easter+24 greater double) — 1954 only (Cum nostra suppressed it for 1955).The one new mechanism
Unlike the four always-commemorated privileged temporal octaves, a common octave's day-within is OMITTED (not commemorated) under a Double of the I or II class. Implemented via a new
common-octave-withinprecedence tier + anisOctaveOmittedbranch keyed by id (temporal offices carry no legacy grade). Live-triggered by Sts Philip & James (1 May) and the Finding of the Cross (3 May) when they land in the octave; verified end-to-end.1955 (Cum nostra)
Both feasts are kept (a double is untouched by the grade-transform); the octave is dropped. The generator runs the 1954 temporale archetypes through a new
deriveCumNostra1955Temporale(keepfeast, dropwithin-octave/octave-day) — the temporal twin of the sanctoral derive. Both editions keep the Solemnity (the pre-1-May-1956 state; St Joseph the Worker held out) — documented inKNOWN-LIMITATIONS.md.Process
Facts were derived + adversarially reconciled first (3 independent scholars + a reconciler, no live oracle), then implemented, then adversarially reviewed (6 dimension finders → per-finding verification). The review caught a real defect — the greater-double routing for the Seven Sorrows was wired into the 1954 engine only, so the 1955 edition (a separate engine/table) demoted it to an ordinary Double and lost it to a coincident Double saint in ~48 years. Root-caused, fixed by mirroring the routing into
Rubrics1955Precedence, and pinned with a colliding-year regression test (the 1954-only test had masked it).Verification
lint+phpstanclean; 967 PHPUnit tests (12 new resolution + 5 precedence-tier + 2 generator); 1962 golden byte-identical (corpus diff touches only the DA/1955 dirs + shared identity); corpus reproducible.docs/design/rubric-system-model.mdSeam 8; deferrals recorded inKNOWN-LIMITATIONS.md(octave-day-under-Double-II commemorated; transfer-with-octave dormant; 1955-keeps-Solemnity divergence; Latin orthography; Dominica-infra-Octavam).Part of
#453; leaves the Saturday Office of Our Lady as the last follow-up beforeisBuiltflips.