Repository navigation
Description
Parent
What
Implement what #323 specified, in TypeScript, against hand-written oracle files: the Stable Address, availability, Infrastructure Intent, and the Estate root for cross-file OCL. Every E_ code #323 added is pending on this epic in scripts/lint-codes.ts, and leaves that list when its slice's test lands.
Slices
Each slice is one vertical change that leaves npm run verify green, lands in TypeScript and its oracles in one pull request after emf/ is deleted (#347; #338 is the one coursework slice, landing before 30 October), and names its behaviour row for the ledger.
| order | slice | depends on |
|---|---|---|
| 1 | #330 Pin the facts a Move derives from: an engine image's version, the active Instance, each engine's move method | #341 |
| 2 | #331 Derive and render the Stable Address, and resolve every dependency coordinate to it | #341 |
| any | #332 Declare availability on an engine Process | #341 |
| any | #337 Read Infrastructure Intent and generate the node contract from it | #341 |
| any | #338 Navigate an Estate root for cross-file OCL in the model-driven implementation | none |
The Move is cut
The derived Move leaves the model (maintainer, 2026-11-02): it existed only to carry data across the migration off the previous delivery path. #333, #335 and #334 landed and are removed again by #807; #336, #340 and #667 are closed as not planned. #330's move-method facts go with #807 too.
Before it starts
- The map (Map: re-establish deploy-kit's goals, rewrite its spec, and order the work until the estate is handed over #341) produces the rewrite plan these slices wait for; it replaces the closed architecture rework (Rework the compiler's architecture for the grown model, and bring the requirements up to it #326, Place Infrastructure Intent, the Stable Address and the Move in the compiler's structure #328). Every slice but Navigate an Estate root for cross-file OCL in the model-driven implementation #338 and Build the Postgres move method, and run the drills the new records rest on #340 waits on it. Draw chapter 15's model, a Move's steps and the Stable Address #339 is folded into the rewrite (Decide the fate of the open work that predates the map #350).
- The MDE Task 3 deadline (2026-10-30) comes first.
Activity
docs: specify the Stable Address, the derived Move and Infrastructure…
4 remaining items
fix(model): only an engine with a move method needs its image's versi…
feat(model): an images-lock entry without a version is refused
feat(model): an images-lock entry without a version is refused
feat(model): an images-lock entry without a version is refused (#540)
ExtraToast commentedon Oct 27, 2026
Resume here: landing the Move stack (updated 2026-10-27)
State
e81d8425, feat(model): render an open Move: its Instances, step Jobs and move identity #649 (Render a Move: its step Jobs, its move identity and policy for both Instances #335) asf00fc54e, feat(model): move an Application between Projects by declaring it in the new one first #650 (Move an Application between Projects by declaring it in the new one first #334) as30bc5414.Next step: after 1.0.0: #667 (one flip image for every Move, decided 2026-10-27), then #332 and #337 as their notes say.
Ledger numbers on main once all three land: REQ-112 for #648, REQ-113 for #649, REQ-114 for #651 (sidecars, already on main), REQ-115 for #650. The ledger's "holds N rows" line is 115 at the end.
Landing one stacked PR, after the PR below it merges
Run this in the PR's worktree.
<old-base>is the parent's head SHA given above.Regenerate:
regen.tsat the repo root, deleted afterwards, which writesdescriptor(),projectIntentJsonSchema()and everyPUBLISHED_SCHEMASentry from./src/index.ts;test/model/resolution.test.ts,project-intent.test.tsandplatform-intent.test.tswith an oracle setup file that writes the expected JSON;python3 scripts/diagrams/class-diagram.py 14-platform-intent out.drawio, then export it with draw.io (-x -f svg -e -b 10) tospec/v1/diagrams/14-platform-intent-model.drawio.svg. A 3-way merge cannot handle this file, which is one line.Then:
npm run verifymust pass. Push only on success, with--force-with-lease=<branch>:<sha>.gh pr merge <N> --auto --squash.// Stryker disable next-line <Mutator>with a reason.Gotchas
git add -Awith scratch scripts in the tree. A stray script once reached a pushed commit.ExtraToast commentedon Nov 2, 2026
The derived Move is cut from this epic (maintainer, 2026-11-02). #336, #340 and #667 are closed as not planned, and #807 removes what #333, #334, #335 and #330 landed for it. The Stable Address, #332, #337 and #338 stay here.