Lispex Images

A Lispex Image is a canonical, machine-readable picture of exact `.lspx` source bytes. Native and npm provide file commands, while the local browser Playground can create, open, navigate, recover, download, and explicitly run the same images.

How to reason about it

  • Create one page with lispex image encode --source rule.lspx --out rule.lspx.png. Sources that need several pages require the canonical .lspx-images.zip destination; a mismatched suffix fails before output.
  • Inspect format/profile identifiers, page count, exact-source identity, and every integrity commitment with lispex image inspect --image rule.lspx.png; inspection never prints the source.
  • Recover byte-for-byte source with lispex image decode --image rule.lspx.png --out recovered.lspx. Existing outputs are never overwritten.
  • Run only after full decoding, integrity checks, parity checks, and canonical regeneration equality with lispex run --image rule.lspx.png.
  • Line endings, comments, spacing, and Unicode bytes survive the round trip exactly; the image represents source bytes, not only parsed forms.
  • In the Playground, Create image uses the editor bytes, Open image proves a local PNG/ZIP before preview, page controls extract only proved PNG pages, Recover source changes the editor without running it, and Run image remains a separate explicit action.
  • After complete canonical proof, use the image as Vouch source context with --source-image. Image integrity alone is not provenance, trust, authentication, request binding, current execution agreement, or a gate grant.

Exact image commands

1. Encode exact source

SH
lispex image encode --source refund-window.lspx --out refund-window.lspx.png

2. Inspect public commitments

SH
lispex image inspect --image refund-window.lspx.png

3. Recover the exact bytes

SH
lispex image decode --image refund-window.lspx.png --out recovered.lspx

4. Prove and run explicitly

SH
lispex run --image refund-window.lspx.png

A common mistake

Screenshots, resizing, colour conversion, metadata injection, recompression, page removal, and page reordering are rejected. This is an exact digital interchange format, not OCR or a camera-readable code.

Current boundaries

  • An image is source-equivalent public data. It provides no secrecy, signature, provenance, freshness, trust, decision correctness, or execution authority.
  • Native and npm expose the same file commands. Public WASM exposes the same Rust image operations for embedding, and the Playground wraps them in a local file UI. None of these image surfaces adds Vouch authority.
  • After full canonical proof, Native accepts --source-image throughout Vouch identity, policy, issue, inspect, authentication, re-execution, and gate. npm accepts it for identity, policy, and authenticated verification only. The separately supplied input and the existing request-bound authority chain remain mandatory.

Keep going

Once the workflow is comfortable, check the runtime chooser before moving it into a local tool or deployment.

Learning Path · Choosing a Runtime Surface