feat: rubric-system (edition) abstraction seam (#59) #446
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!446
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feature/59-rubric-system"
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?
The seam for Core v0.3 — the rubric-system (edition) axis — so the engine can run the 1954 (Divino Afflatu), 1955 (interim), and 1962 (Rubricae 1960) systems from one codebase. 1962 is the only built system today; 1954/1955 are declared on the axis and arrive with #63/#68.
What lands
RubricSystemvalue object (src/Edition/) — each system's edition URN, corpus directory, label, and validity window;isBuilt()gates the reserved ones. Threaded throughday()/contract()/explain()as an appended, backward-compatible$rubricSystemselector (null → default 1962). (#60)CorpusSanctoralDataandPrecedenceTableread the edition directory the system names instead of a hard-codedroman-rubricae-1960constant. ThePrecedenceTablecache key gains the edition dir so two editions in one corpus tree never collide.DayResolver::forEdition()builds the right rules + stamps the edition into the contract provenance. Selecting an unbuilt edition throws a clear message.Orthogonal axes
The particular-calendar overlay axis (SSPX/FSSP) is unchanged; an overlay layers over an edition (per
edition-governance.md).(1962, sspx)— today's live path — is unaffected.Safety
The default resolves 1962 byte-identically: the 1583–2200 golden fixture is unmoved, and all prior tests pass. 719 tests / 37,372 assertions (15 new), phpcs + PHPStan L6 green.
Commits the approved design:
docs/design/rubric-system-model.md.Closes #60, closes #61, closes #62. Part of Epic #59.