feat: define the generated corpus file schema and layout #363
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!363
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feature/39-corpus-schema"
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
Ships issue #39: the executable schema for the generated CC0 calendar corpus that the engine will load in place of hand-written seed data.
data/corpus/schema/— source registry; sanctoral + temporal identity; temporal skeleton; per-edition attributes + placement; precedence tiers + rules.tests/fixtures/corpus/{valid,invalid}/, grounded in the seed feasts.SchemaValidationTest.php(viaopis/json-schema, new dev dep) asserts every valid record conforms and every malformed record is rejected — a too-loose or too-strict rule fails CI.Contract properties (beyond happy-path validity)
additionalProperties:false) — the 3-layer model, enforced.cite/citesprovenance marker;citeskeys are constrained to the citable field vocabulary.observanceIdpattern mirrorsObservanceId::parse()(first temporal segment must be an anchor family; the easter-offset form is never an identifier).colour.baseexcludesrose(rose is aroseAllowedflag on a violet base).aliases.secondaryFacetis a list of ObservanceId slugs, not prose.Verification
Local gate green:
lint(PSR-12),analyse(PHPStan L6),test— 574 tests, 30,612 assertions. A 4-dimension adversarial review workflow (design fidelity · schema semantics · VO consistency · liturgical fidelity) surfaced 7 defects, all fixed here and locked with negative fixtures — including correcting Gaudete Sunday from class I to class II per the 1960 rubrics.Closes #39.