Browse documentation
Read an evidence receipt
Interpret outcome, applicability, execution origin and the limits of scripted graph evidence.
graph test --evidence records the actual test invocation. code evidence --receipt compares that observation with the current graph without executing its cases.
Scope
The receipt schema is graph-evidence/v1. It covers scripted, in-memory graph tests: declared inputs, supplied effect answers, messages, restarts and comparisons of result, state or effect trace.
It does not establish UI, live-service, native-driver or deployment behaviour. No runtime permission is granted by producing or reading a receipt.
Outcome
| Value | Meaning |
|---|---|
pass |
The observed case met its expected result under the recorded inputs |
fail |
The observed case did not meet its expectation |
error |
Execution did not yield a usable case result |
Outcome and applicability are separate. An applicable failure remains a failure.
Applicability
| Value | Meaning |
|---|---|
applicable |
The relevant known inputs match the recorded non-error observation |
stale |
A relevant known component differs; the response names changed components |
unknown |
Required provenance or a key is unavailable, or execution errored |
missing |
A current case has no recorded observation |
historical |
A recorded case is absent from the current suite |
A case can remain applicable after an unrelated edit even if the whole bundle changes. A selected-case receipt does not validate unselected or newly added cases.
Execution origin
fresh means the invocation executed the case. reused means it reused a historical feedback result.
A reused result must not be described as if it ran again against the current bundle. Where the cache did not retain its original bundle or environment, executed_bundle and executed_environment are null. That missing provenance leads to unknown applicability; fresh execution is the way to obtain current evidence.
The receipt header identifies the current comparison target. A case’s execution fields describe what actually ran, when known. These fields answer different questions.
Identity and integrity
The receipt binds captured source/archive identity, emitted bundle, runtime/toolchain information and the case inputs actually consumed. It does not reread later source bytes and pretend they were the executed input.
The integrity digest detects accidental alteration. It is a bounded local observation, not an authenticated attestation or proof against intentional forgery.
Receipt files use exclusive creation: choose a new path for each observation. Existing paths and malformed or corrupted receipts refuse. Keep failed observations as failed evidence rather than replacing them with an unrelated successful run.
Review use
For each important requirement, identify the relevant case, its outcome, its applicability and its execution origin. If behaviour depends on a native adapter or live service, add evidence appropriate to that boundary.
The practical question is specific: “What does this observation establish about this change?”
Build software you can reason about.