Scene overview

A scene declares verifiable system truth.

A scene defines:

  • Actors — the shapes you care about
  • Locations — named places where truth can exist
  • Expectations — where actors should be present

A scene compiles into a stable JSON manifest. That manifest can be verified using attestations emitted by edge systems.

Scenes do not connect to databases. Scenes do not execute migrations. Scenes do not mutate production systems.

A scene is a contract, not an integration.


Zero-trust model

Scenes follow a zero-trust model.

  1. A scene declares what should exist.
  2. Edge systems emit attestations (receipts).
  3. A check compares expectations to attestations.

Sprig never reaches into production systems directly. Edge systems remain in control of their own data and credentials.

The result is explicit verification without shared runtime trust.


Compilation

Scene files use the extension:

*.scene.prose

Scenes are compiled with:

sprig compile <inDir>

The compiler walks upward from <inDir> until it finds universe.prose. That directory becomes the universe root.

By default, compiled artifacts are written to:

.sprig/

You may override the output directory:

sprig compile sprig --out artifacts

Each scene manifest includes metadata:

  • generatedAt
  • manifestId

The manifestId allows attestations to detect stale receipts.


Verification

Edge tooling reads a scene manifest and emits attestations.

A check compares expectations to attestations and reports status:

  • expected — declared but not yet attested
  • attested — receipt exists and is valid
  • failed — receipt exists but validation failed
  • drifted — shape mismatch (reserved)

Verification is explicit and receipt-based.


Try it

If you prefer to see scenes in motion, start with the Scene Tutorial.

The tutorial walks through:

  • declaring an actor
  • declaring a location
  • compiling a scene
  • generating attestations
  • checking projection status

The tutorial keeps truth, edge, and artifacts in separate directories so the flow remains visible.

It takes a few minutes to complete and requires no manual wiring.

Scenes are easier to understand once you see the zero-trust loop in action.


What comes next

Now that you know the basics, we can continue to explore more about actors, the nouns of our scenes.