feat: Generic 1962 baseline overlay — the identity particular calendar (#83) #468
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!468
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feature/83-generic-1962-overlay"
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 #83.
Ships Generic 1962 as a named, selectable particular calendar — the identity overlay (zero operations). It gives the Api and the Ordo plugin an explicit, addressable preset (a stable URN + display name) for plain 1962, to list alongside SSPX/FSSP/ICKSP, and it is the baseline the other society/institute overlays are diffs from.
What changed
tools/generator/facts/overlays/generic-1962.yaml— the empty overlay (operations: []), with a header explaining why an identity overlay is worth shipping.data/corpus/overlays/generic-1962/{overlay.json,operations.ndjson}(operations = 0) +MANIFEST.json. No base-edition corpus file changes — 1962 golden byte-identical.tests/Validation/GenericBaselineTest.php— the conformance gate (@group edition-1962, so it runs in the full suite and thevalidate (1962)leg).Why a structural identity proof, not a pinned fixture
A pinned per-year fixture for Generic would just duplicate the base golden and could silently drift from it. Instead the test resolves the engine under the
generic-1962overlay against the universal (null) calendar day for day across 2024–2026 (1096 days) and asserts every resolved office is byte-identical. The only two fields allowed to differ are the calendar-selection stamps —calendar.particular(the descriptor) and the+overlayIdsuffix oncorpusVersion— both asserted positively. This is strictly stronger than a fixture: an identity overlay is proved to change the label and nothing else (including the astronomical block).Verification
lint(phpcs 174/174) +analyse(PHPStan[OK]) clean.test992 pass (1 pre-existing maintainer-only skip);validate-oracles --group edition-196214 pass.npm test32 pass,npm run verify— corpus reproducible & committed copy fresh.Part of the v0.2 particular-calendars milestone; SSPX (#80) done, FSSP (#81)/ICKSP (#82)/Cum sanctissima (#85)/CI gates (#87) follow.