For example, authenticated.json records a valid signature under your policy.
current.json adds a new execution comparison. gate.json records whether that
current result matched the required decision.
The commands below continue the Vouch guide. Use Native in the same directory, with its completed refund example. That guide supplies the full source, input, key preparation, and policy commands.
Read the result, then choose the next command
These are the guide's report filenames.
| File | Read this result | Next command |
|---|---|---|
issued/issue-report.json | status: "issued-native" | vouch verify authenticates the bundle |
authenticated.json | authentication_status: "authenticated" | Add your --source and --input |
bound.json | Authentication succeeded after matching the separately supplied source and input | Add --reexecute |
current.json | reexecution.status: "execution-agreed" and comparison.current_vs_signed: "agree" | Use vouch gate with your required decision |
gate.json | gate.status: "granted", plus the required and observed decisions | The application applies its action policy |
authenticated.json and bound.json use csk.native-verify-report/v0.
Their comparison_status describes the signed execution record.
The request-bound invocation adds your external source and input.
current.json uses csk.native-reexecution-report/v0 and records authentication
and current tree/Meaning agreement separately.
gate.json uses csk.native-gate-report/v0.
Lispex Interpreter reads and normalizes the source into core forms (CoreExpr), then evaluates them. Meaning evaluates a representation
derived from the same source. The current comparison covers their complete
execution records, including the final result.
Each gate call authenticates the evidence, binds the request, reruns the rule, and checks the decision within one Native process. It uses the in-process result from each preceding step. Saved reports describe that invocation for inspection and logging. The next call starts from the bundle or envelope, policy, and your source and input.
Files used for authentication
| File or format | Contents | Used by |
|---|---|---|
policy.json, trust policy v1 | Recipient-selected keys, engines, language profiles, and source identifiers | vouch verify and vouch gate |
issued/envelope.dsse.json | Signed record container with the execution payload | vouch verify --envelope with external source and input |
issued/vouch-input-bundle.json, csk.vouch-input-bundle/v0 | Exact envelope, source, and input bytes | vouch verify --bundle or vouch gate --bundle |
issued/payload.json | Signed execution data, including source and input identities and complete execution records | Structural inspection and authentication |
The recipient selects the public key, executable identifier, and reviewed source. The calling application checks actor identity, time, request uniqueness, and transaction state. It authorizes and performs the external action.
Inspect the execution record's structure
Use the guide's payload and exact input to check the record's structure.
lispex vouch inspect \
--receipt issued/payload.json \
--source refund-window.lspx \
--input input.checked.json \
--profile csk.checked-profile/v1 \
--report-out structure.jsonThe command exits with code 0 and prints nothing. It writes this structure.json.
{
"status": "structurally-consistent",
"verify_report": "csk.verify-report/v0"
}This checks the record's schema, hashes, and internal bindings.
Signature authentication is the separate vouch verify step in the guide.
The differential record format csk.differential-receipt/v0 describes a
decision-profile rule, exact input, derived representation, execution results,
versions, and hashes. Native lispex diff-receipt creates such a record.
The npm commands lispex verify and lispex replay check record structure
and compare recorded case sets, respectively. See CLI and
Vouch Replay for those commands.
Build and validate compiled evidence
A lispex.vouch-compiled-artifact/v1 file binds the exact source to Core IR
and verified bytecode. Core IR is an intermediate representation with resolved
name references. The file also identifies the bytecode verifier, Lispex VM,
and resource profile. Lispex VM runs compiled instructions.
Build it from the guide's source, then check that it is exactly derivable from that source.
lispex vouch compiled build \
--source refund-window.lspx \
--out refund-window.lpxvca
lispex vouch compiled validate \
--artifact refund-window.lpxvca \
--source refund-window.lspxBoth commands exit with code 0 and print JSON. Build creates
refund-window.lpxvca and reports execution: "not-run".
Validation reports valid: true, derivation: "exact-source", and
execution: "not-run". Both report authority: "integrity-only".
Next, authenticate the request and run the compiled instructions.
lispex vouch verify \
--bundle issued/vouch-input-bundle.json \
--trust-policy policy.json \
--source refund-window.lspx \
--input input.checked.json \
--profile csk.checked-profile/v1 \
--reexecute \
--compiled-artifact refund-window.lpxvca \
--report-out compiled-current.jsonThe command exits with code 0 and prints nothing. It writes
compiled-current.json in csk.native-compiled-reexecution-report/v1 format.
The report records request-bound authentication, current tree/Meaning agreement,
exact source derivation, and current Lispex VM agreement.
| Field | Value in this example |
|---|---|
authentication.status | "authenticated" |
compiled_reexecution.status | "execution-agreed" |
Native authenticates the request before deriving Core IR and bytecode again. It checks the bytecode and compares the current VM execution. To require the resulting decision in the same call, run the compiled gate.
lispex vouch gate \
--bundle issued/vouch-input-bundle.json \
--trust-policy policy.json \
--source refund-window.lspx \
--input input.checked.json \
--profile csk.checked-profile/v1 \
--compiled-artifact refund-window.lpxvca \
--require-decision approve \
--report-out compiled-gate.jsonThis exits with code 0 and prints nothing. It creates compiled-gate.json
in csk.native-compiled-gate-report/v1 format. The report has
gate.status: "granted" and both gate.observed_decision and
gate.required_decision are "approve".
The local grant exists inside this Native invocation.
Other comparison reports
These reports answer their own comparison questions. The Native gate uses its authenticated current execution.
| Report or product | What it records | Where to use it |
|---|---|---|
| Bridge report | External-engine file bindings, identities, and declared checks | lispex verify-bridge and the recipient's Bridge policy |
| Replay report | Agreement, mismatch, and comparison status for the selected case set | Rule review with replay |