Vouch turns the broad question “should I trust this JSON?” into four smaller questions:
- Authentication: did an allowed key sign these exact bytes?
- Request binding: do those bytes describe the exact source and input chosen by this consumer?
- Current execution agreement: does the current Native interpreter reproduce the same complete result?
- Local decision: does that live result exactly match the decision required by this invocation?
Passing an earlier question never silently passes a later one. That separation is the core of Vouch.
Choose the operation by your question
| What you need to know | Operation | What you receive |
|---|---|---|
| Is the file structurally consistent? | lispex vouch inspect | Unsigned structural inspection |
| Did an allowed key sign it? | lispex vouch verify | Authentication report |
| Does it match my source and input? | Add --source and --input to vouch verify | Request-bound authentication report |
| Does it still execute the same way? | Native vouch verify --reexecute | Separate authentication and current tree/Meaning results |
| Does an exact source-derived compiled artifact agree too? | Add --compiled-artifact to Native re-execution | Exact derivation, verifier, and current Rust VM results |
| Is the live result the decision I require? | Native vouch gate --require-decision, optionally with --compiled-artifact | A source-only or compiled in-process local grant or denial |
| Did a corpus change? | npm lispex vouch replay | Fixed-case comparison |
| Is this an external-engine report? | Bridge checker | Checks for a separate artifact class |
The safe default journey
- Build a trust policy from a public key, engine, and rule source that the consumer reviewed independently.
- Let the issuer create a bundle for exact source and input bytes with Native.
- Do not let the bundle choose the request: supply the consumer's own
--sourceand--input. - Authenticate with Native or npm.
- Add Native re-execution only when current execution agreement matters.
- If you also require the verified Rust VM, build and validate a compiled
artifact from that exact source, then add
--compiled-artifact. - Use the Native gate only when the application requires one exact decision in that same invocation.
The end-to-end Vouch workflow gives the commands in that order.
Why a bundle cannot choose the request
A bundle may carry source and input, but that is context supplied by the issuer. Without a separate consumer source and input, the bundle is an authentication target, not permission to select what re-execution or a gate will run. Native re-execution and gate require both external paths and reject a half-pinned invocation before reading the artifact.
A fully proved Lispex Image may supply the exact source bytes through
--source-image. It changes the source representation only. Input choice,
trust policy, re-execution, and gate remain separate.
Ordinary bytecode and VM output cannot enter this chain. The optional compiled
route starts from the same externally supplied exact source and input, then
requires a canonical lispex.vouch-compiled-artifact/v1 to be re-derived from
that source before the verified Rust VM runs. A .lpxbc file, hash, verifier
result, inspection report, VM observation, or tree/VM comparison report cannot
replace the source request, authentication, current tree/Meaning agreement, or
live gate transition.
The optional Topaz bytecode VM is a separate diagnostic route, not another
Vouch verifier. Its installed product, request/result JSON, execution output,
resource observation, and compare-vms receipt cannot be supplied to
vouch verify, compiled re-execution, or vouch gate. Agreement with Topaz
does not create or strengthen a grant.
What these results do not mean
- A valid signature does not prove a person or organization, signing time, or honest deployment.
- Exact request equality does not provide freshness, expiry, revocation, or replay prevention.
- Tree/Meaning and VM agreement is same-Rust-lineage evidence, not an independent implementation witness or whole-language equivalence proof.
- Compiled agreement does not prove compiler correctness outside the exact artifact, source, input, transcript, and limits checked by this invocation.
- A gate grant is not a serializable authority token.
- Reports, bundles, images, bytecode, VM results, and Bridge artifacts cannot promote themselves into a grant.
- The calling application still owns approval and side-effect control for payments, refunds, deployments, or any other external action.
Keep going
Run the end-to-end workflow, or use Artifacts and Reports to look up what each file establishes and excludes.