Scenario and Accepted-Run State Architecture

Scenario lifecycle, deterministic transitions, and audit flow.

Current

One immutable scenario law may back many independent runs. A shared RunKey has one local accepted history. Current classifications are NotReady, ReadyUnopened, OpenIncomplete, and Completed; completed is a subset of opened. Readiness derives from accepted Xarxa progress. Opening records work start but not ownership. False/Unknown semantic attempts remain attributed and retryable; True proposes one completion.

Current operations use exact heads and nominal semantic operation identities. DG mints an opaque non-reusable RunId from an idempotent creation request. Pure candidate derivation may run concurrently; only receipt/head resolution and atomic record/state/receipt/intent acceptance serialize. One stale candidate changes nothing and must be re-derived under a new operation identity.

Memory and SQLite implement the same backend-neutral accepted-run authority. Both replay the sixteen protocol-generic PF-03 traces; SQLite alone replays the two crash/restart traces. Current materialization is bounded, while accepted records, receipts, attempts, submissions, and intents are separate indexed immutable families. Status and mutation do not replay retained history.

Remaining gaps

PF-05 now owns the implemented runpack-v6 coherent export and independent supplied-material claim closure. External authenticity/currentness, coherent rollback resistance, dispatch, deployment, and release claims remain separate. PF-06A specifies dispatch/recovery, PF-06B implements the local runtime, and PF-06C qualifies its model/backend and offline-claim correspondence. PF-06D and PF-06E separately own the external platform-adapter contract and product integration. Coherent rollback detection requires an external anchor, and neither local backend establishes distributed ownership, failover, active-active merge, or fleet qualification.