CSK Reference

A checked subset of Lispex is the source language for CSK Reference. Pin an input, get a portable receipt, verify it offline, and replay the corpus after changes.

Since v1.3, a checked subset of Lispex is the public source language for CSK Reference. The claim is deliberately narrow. The reference interpreter is still what runs Lispex programs; the checked subset is the part whose evaluations leave evidence behind — evidence you can check again later, on your own machine.

The workflow

Write a small decision rule and pin the input it runs on. Evaluating the rule emits a receipt: a single portable file, csk.differential-receipt/v0, that ties the rule, the pinned input, and the answer together with hashes.

From there:

  • lispex verify <receipt> checks a receipt and everything it links to, offline. No network, no service — the file is enough.
  • lispex replay <corpus> --against <version-or-receipts-dir> re-runs the committed decision corpus against a version pin or a directory of receipts after a rule change, and reports exactly where the answers differ.

What the checked subset is

A small, closed slice of Lispex, built so that the same rule over the same input always evaluates the same way:

  • a fixed set of forms in the R7RS tradition, with no macros and no ambient state;
  • pinned builtins, and inputs bound explicitly by the host rather than fetched by the rule;
  • a rule gallery whose expected artifacts live next to the rules;
  • byte-exact JSON contracts for receipts, reports, graphs, manifests, and release bundles.

What a receipt says — and what it doesn't

A receipt shows that a specific rule, over a specific pinned input, produced a specific answer, and that the recorded artifacts agree with each other. It does not show that the decision was ever applied to anyone, when, or by whom, and it is not a substitute for review. Those belong to separate signing, timestamping, deployment, and review layers.

The npm distribution of verify and replay is a checker for public-spec artifacts. It inspects bytes and hashes; it does not execute Lispex source and does not replace the reference interpreter.

Where to find things

  • The Playground on this site evaluates rules in the checked subset directly in the browser.
  • The CLI installed with npm install -g lispex runs files with lispex run and checks receipts and corpora with lispex verify and lispex replay. Examples are in Getting Started.
  • The specification documents — the checked-subset definition, the receipt format, and the verify and replay report contracts — ship together with the decision gallery corpus as a separate CSK Reference public distribution. A link will be added here once its public home is settled.