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 canonical loop
Each event is a reason to reconcile the modeled world state. An event may be a timer tick, webhook, queue message, file change, source change, manual request, an upstream node's new receipt, or a freshness lapse.
event (a receipt arrives)
-> the reconciler compares (contract_fingerprint, input_fingerprints, freshness_epoch)
-> unmoved: write a cheap `skipped` receipt, render nothing
-> moved (an input changed, the contract changed, or a freshness window lapsed):
spawn one bounded render session -> gateCommit -> sign a receipt
-> propagate: a moved fingerprint wakes the downstream subscribers
The harness is conforming when that reconcile decision is deterministic, replayable, and identical on every host: the intelligence that decides what counts as a change is frozen ahead of time, at compile, into the per-node canonicalizer, and the run-phase decision is a dumb fingerprint comparison — no judge re-deciding at wake time. The model renders inside bounded activations; continuity lives in the durable receipt trail, never in a long-running session.
The distinction from a normal agent loop is the whole point.
A normal agent loop asks:
What should I do next?
A conforming harness asks:
Given this responsibility and the receipt that just woke it, did any fingerprint
it depends on actually move — and if so, what is the smallest render that makes
its truth current again?
That turns agent behavior from a running conversation into an inspectable state transition.