feat: add Observance identity value object and ID grammar #201
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!201
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feature/9-observance-identity"
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 #9
The engine's cornerstone type: the immutable
Observanceidentity — designed first (approved in the plan) and built clean-room.What lands
ObservanceId— slug grammarroman:<cycle>:<body>(rite in the slug; the parser dispatches on rite).parse()+ canonicaltoString()with round-tripparse(toString(x)) === x;equals()is pure string identity;rite()/cycle()/anchorFamily()/segments()accessors. Temporal IDs are structural only — the Easter-offset form is rejected (Route 1).Rite,Cycle,AnchorFamily,ObservanceKind(PHP 7.4finalclasses, guardedfromString).IdentityAliases(secondaryFacetfor genuine double-identity days; split/merge lineage; external URNs) and theObservanceidentity shell (id, kind, titulars, names with required Latin, aliases).Tooling
^9.6, PHP 7.4 floor) + acomposer testscript;phpstan/phpstan-phpunitfor test-aware analysis; phpcs/phpstan now scantests/; CI runs a PHPUnit step across the 7.4→8.3 matrix.Docs (committed)
docs/design/observance-id-grammar.md·platform-urn-scheme.md·slug-naming-policy.md.Verified locally
phpcs 12/12 · phpstan L6
[OK]· phpunit 40 tests, 82 assertions OK.Clean-room: authored from the approved design + liturgical facts; no prior engine code read or ported. Companion issues #10 / #11 / #39 / #52 reworded to the identity/edition split.