Repository navigation
Description
Why
The model grew in #323: a third authored document (Infrastructure Intent), a Stable Address per provider surface, a derived Move with its own Jobs and identity, availability, and an Estate root for cross-file OCL. #324 implements it in both implementations. Before that work starts, the compiler's structure and the two ledgers have to say where each piece lives and what each promises, and the structure itself is due a second look.
The last architecture pass (the local plan in docs/specs/transformation-architecture.md, 2026-09-28) was written against 3,603 lines of src/ and the register before its 2026-09-29 rebuild. The tree is now 12,463 lines with every step of the chain in place (read/, check/, lower/, resolve/, adapters/, cli/), the register has been renumbered, and the plan's ADR numbers no longer resolve.
What this epic gathers
- A fresh audit, run through the same lens as before (grug: complexity must pay rent, say no, factor late, Chesterton's fence, locality; the course's transformation shape: a chain of typed models, rules not a procedure, create then link, queries apart from mappings, text last). It covers today's
src/, the rebuilt register including 0093 to 0098, and the worked deployments, and ends in a plan the maintainer approves before any code moves. - The new model placed in the structure: which step reads Infrastructure Intent, which derives a Move and a Stable Address, which adapter renders the Move's Jobs and the estate-scoped aliases, which oracles the parity table gains, and which rule-ledger rows and boundaries change.
- The behaviour ledger brought up to the new model: the rows Implement the Stable Address, the derived Move and Infrastructure Intent #324's slices add, the rows they change, and whether the ledger may name a pending behaviour the way the rule ledger names a pending rule.
- Open work that is already architecture: Align the model with model-driven engineering practice #35 (the remaining model-as-code items: generated diagrams and tables, the rule registry, the trace, the derivation map, the megamodel), Read the composition checks from the Effective Intent, not from each Shared Intent level by hand #276 (composition checks read the Effective Intent) and An OCL invariant that evaluates to invalid passes silently #280 (an OCL invariant that evaluates to invalid passes silently).
Boundaries
Changing a layer, a dependency rule or its enforcement, and letting the behaviour ledger hold pending rows, are Ask first under AGENTS.md: each lands as a proposal the maintainer approves, then as an ADR in the same pull request as the change.
Order
The audit first; placing the new model and the ledger work follow it; #324's slices start once the placement is merged.
Activity
ExtraToast commentedon Oct 9, 2026
Closed into the map's fog by Decide the fate of the open work that predates the map. The register audit was done by #342 and #346; the remainder (a
src/audit at 0001 scale, the 14 architecture ADRs, placing the new concepts) is the map's "compiler's structure after the rewrite" patch, specified once the rewrite settles.