Repository navigation
Description
Parent
What to build
Platform Intent gets what Project Intent got: a wire schema, domain types, a generated class diagram in chapter 14 (the chapter table in chapter 00 says "Diagram: none" today), and the worked Platform document parsed in CI.
Its references into other documents become referential invariants with codes, evaluated wherever both documents are present:
- every
enginea Process declares on a volume whose Durability Class derives a backup has an entry in the Platformenginesmap; - every Durability Class a volume declares has a Platform durability policy;
- every exposure audience is carried by some tier (
E_NO_TIER_FOR_AUDIENCE, existing); - a tier's proxy names a declared Application.
Parity
TypeScript half of the Task 1 work for Platform Intent (due 2026-09-25). This ticket commits spec/v1/examples/platform/expected/intent.json for the worked Platform document, a refusal fixture with a committed diagnostics.json per referential invariant, and adds Platform Intent's classes to spec/v1/examples/expected/descriptor.json. Cross-document references are references in the descriptor.
The Java counterpart (the Platform document's classes inside the model-driven source metamodel, with Ecore references from a Project into it, the grammar rules for platform.intent.yml, and a Complete OCL invariant per code over the pair of documents) is its own ticket and must match these files.
Acceptance criteria
- The worked Platform document parses.
- A copy with a missing engine entry, a missing durability policy, or an audience no tier carries fails with the rule's code and a JSON Pointer path.
- Chapter 14 carries a generated class diagram, diff-checked in CI.
- The worked Platform document's canonical output equals its committed
expected/intent.json. - Each referential invariant's refusal fixture has a committed
diagnostics.json, and the emitted set equals it.
Activity
fix(ci): claim only what closes, fixes or resolves a pull request
docs: route every agent through AGENTS.md (#121)