Lispex Vouch

Separate signature authentication, request binding, current Native re-execution, and a local decision gate, then choose only the workflow you need.

Vouch turns the broad question “should I trust this JSON?” into four smaller questions:

  1. Authentication: did an allowed key sign these exact bytes?
  2. Request binding: do those bytes describe the exact source and input chosen by this consumer?
  3. Current execution agreement: does the current Native interpreter reproduce the same complete result?
  4. 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 knowOperationWhat you receive
Is the file structurally consistent?lispex vouch inspectUnsigned structural inspection
Did an allowed key sign it?lispex vouch verifyAuthentication report
Does it match my source and input?Add --source and --input to vouch verifyRequest-bound authentication report
Does it still execute the same way?Native vouch verify --reexecuteSeparate authentication and current tree/Meaning results
Does an exact source-derived compiled artifact agree too?Add --compiled-artifact to Native re-executionExact derivation, verifier, and current Rust VM results
Is the live result the decision I require?Native vouch gate --require-decision, optionally with --compiled-artifactA source-only or compiled in-process local grant or denial
Did a corpus change?npm lispex vouch replayFixed-case comparison
Is this an external-engine report?Bridge checkerChecks for a separate artifact class

The safe default journey

  1. Build a trust policy from a public key, engine, and rule source that the consumer reviewed independently.
  2. Let the issuer create a bundle for exact source and input bytes with Native.
  3. Do not let the bundle choose the request: supply the consumer's own --source and --input.
  4. Authenticate with Native or npm.
  5. Add Native re-execution only when current execution agreement matters.
  6. If you also require the verified Rust VM, build and validate a compiled artifact from that exact source, then add --compiled-artifact.
  7. 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.