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 Reconciler — Dumb On Purpose
The reconciler is the run phase. It carries no judge, no status enum
(up/drifting/down/blocked is retired), no pressure record, and no fulfillment
activation. The loop:
- A wake arrives as a receipt — from one of three sources: input-driven (an upstream receipt), self-driven (the node's continuity clock emits a synthetic self-receipt / tick), or external-driven (a gateway turns a webhook / cron / manual trigger into an edge receipt).
- Memo / skip. The memo key is
(contract-fingerprint, input-fingerprints)— nothing else. If neither half moved since the node's last receipt, write a cheapskippedreceipt and spawn nothing. - Single-flight + coalescing. One render in flight per node; wakes arriving mid-render mark the node dirty and collapse into one follow-up render against the freshly-moved inputs.
- Render. A bounded render reads its evidence and prior world-model by
reference, leaves its
### Maintainspostconditions satisfied, writes the world-model, and signs a receipt with the fingerprints. It signalsrendered(committed) orfailed(nothing committed; prior truth stands). The harness never asks an LLM "did this change." - Propagate. On a
renderedreceipt whose fingerprint moved, wake the downstreams subscribed to the moved facet(s) — resolved by reading the topology world-model's edges. Onlyrendered-with-a-moved-fingerprint propagates;skippedandfaileddo not.
Load concepts/reconciler.md before designing Responsibility Runtime behavior or
interpreting reconciler feedback.