Status: plan — no implementation. Written 2026-07-27 by the Tushell guardian lane at William’s word: “maybe first to just remember its position in the current browser and keep the rest as spec level… larger thinking that would be later.”
useDesignerStore.layout.positions
(browser memory). A refresh forgets every drag.@miadi/stateloom-react autoLayout, rispec-77 lineage) places
states that have no stored position; the Arrange action overwrites all..smdf.json definition carries no geometry. The hub broadcasts
def+runtime patches only; two viewers of one doc each hold private layouts.A layout, once cared for, travels: reopen the doc anywhere — another browser, another machine, forgewright on ilex — and the machine greets you arranged the way its people left it, without geometry ever polluting the semantic definition consumed by codegen and the runtime interpreter.
stateMachine.layout block inside .smdf.json): travels with
the doc automatically (episodes! forgewright!), but every drag dirties the
semantic file, churns the hub watcher, pollutes codegen inputs, and makes
agent diffs noisy. Mitigable (interpreter/codegen ignore layout), but the
file stops being purely semantic.<name>.smdf.layout.json beside the doc): clean separation,
travels with episode commits if the convention says “commit both”, needs
its own watch/broadcast lane and a rule for staleness when states are
renamed/deleted.git add naturally, like ep090’s companion .md diagrams.layout envelope kind — or layout stays
pull-only (read at join, write on publish) and nobody’s canvas jumps under
their hands. Leaning: pull-only first; live layout sync is its own later
spec if ever wanted.autoLayout fallback. That works offline with zero new protocol —
another vote for sidecar.<name>.smdf.layout.json
when present; matched names win over autoLayout. No writes.diagrams/ commits sidecars beside
machines; ep103’s two film machines become the first arranged inhabitants.Geometry inside the semantic definition; automatic layout sync that moves a canvas under a person’s hands; any implementation before the small browser-local layer has taught us how arrangements are actually used.