Understand the runtime: compile smart, run dumb
The two-phase split is the whole architecture: intelligent compile (Forme wiring, canonicalizers, validators) and a dumb run-phase reconciler that only compares fingerprints.
The Two Phases
The spine is the compile (intelligent) / run (dumb) split. Intelligence decides what counts as a change once, at compile time; determinism checks it every time, at run time.
| Phase | When | Character | Produces |
|---|---|---|---|
| Compile | The contract set changes (operator / CI / watch) | Intelligent | The resolved DAG (Forme topology), per-node canonicalizers, per-node postcondition validators |
| Run | Every wake | Dumb | A rendered / skipped / failed receipt; on a moved fingerprint, propagation |
prose compile is the only special intelligent phase. Each compile step is
itself a render — it has a contract, produces a world-model, and signs a receipt,
so the compile output is auditable. Every wake at run time is an ordinary bounded
render; the reconciler around it is deterministic infrastructure.
Timers, source changes, upstream receipts, and manual requests are all events. The runtime treats them as wakeups, not as reasons to keep one AI session alive forever.