prose-dev Atlas OpenProse docs bound to the contracts they describe
144 documents

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:

  1. 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).
  2. Memo / skip. The memo key is (contract-fingerprint, input-fingerprints) — nothing else. If neither half moved since the node's last receipt, write a cheap skipped receipt and spawn nothing.
  3. 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.
  4. Render. A bounded render reads its evidence and prior world-model by reference, leaves its ### Maintains postconditions satisfied, writes the world-model, and signs a receipt with the fingerprints. It signals rendered (committed) or failed (nothing committed; prior truth stands). The harness never asks an LLM "did this change."
  5. Propagate. On a rendered receipt whose fingerprint moved, wake the downstreams subscribed to the moved facet(s) — resolved by reading the topology world-model's edges. Only rendered-with-a-moved-fingerprint propagates; skipped and failed do not.

Load concepts/reconciler.md before designing Responsibility Runtime behavior or interpreting reconciler feedback.