Reproduce the proof on your machine.
A recipe is a small cargo program that replays one product contract against the crate's public API with injected fakes, and prints a trace you can compare byte for byte. One starter recipe exists today.
gateway-lease-fence
A self-contained, deterministic replay of the sts2-gateway lease fence, built only against that crate's public API at rev e7bce21d0cbd48a02c25d6463a3376ea1c94e253. Source: recipes/gateway-lease-fence.
- Prerequisites
- Rust 1.97.1 via
rustup(rust-toolchain.tomlselects it automatically);git; network access for the firstcargo buildto fetch the pinned crate from GitHub. - Command
cargo run --locked --release
- Expected time
- First build 3.8 s including the git fetch; warm run 0.09 s. Measured 2026-09-02 on one Windows 11 machine with Rust 1.97.1. Your numbers will differ.
- Model cost
- None. No model or provider is involved.
- Safe defaults
- Nothing is written to disk by the program; no network is used beyond Cargo fetching the crate; no credentials, environment variables, or game files are read.
- What it shows
- Two instances allocated and reconciled to
Ready; a stale epoch denied (Fence(StaleEpoch)) before the transport; a wrong instance denied (Fence(WrongInstance)); one valid forward returning 200 with exactly one transport call; a 9-byte body rejected against an 8-byte limit; a graceful release. The program checks every expectation itself and exits non-zero if any fails.
Compare hashes
Stdout is a single JSON document that must match fixture.json byte for byte (SHA-256 1115b6f6fab379ddf161614d783c65f92be11f2fbcfcc41d3b12fc648fa6695d).
cargo run --locked --release > out.json sha256sum out.json fixture.json # Linux, macOS, Git Bash Get-FileHash out.json, fixture.json -Algorithm SHA256 # PowerShell 7
Use a plain > redirect. Out-File rewrites line endings and will not match. The browser replay reads the same fixture.
What it does not prove
- Live Slay the Spire 2 compatibility, or behavior against any real game process, host, or transport (unverified).
- Anything about game files: none are read, needed, or included.
- Anything about a model or provider: none is used.
Community recipes
No community recipes yet. The first accepted submission will appear here with its author's consent.
Only real, accepted contributions are listed. Nothing here is invented, and no entry is required to star, share, or follow anything.
Submit a recipe
Starter issues: #1 fence-case fixture · #2 MCP-seam recipe — both labelled first-task and scoped to this repository.
Use the proof-recipe issue form: github.com/AI-Ascension/.github/issues/new?template=proof-recipe.yml. A recipe should name the crate and revision it pins, the command, the expected output or hash, what it proves, and what it does not.
Other ways to contribute a proof
- A fixture — a new fence or fail-closed case expressed as input, result, boundary, and decision: proof-recipe form.
- A contract observation — something a boundary does that its README does not say, or says and does not do: contract-observation form.
- A security note — privately, following SECURITY.md; never in a public issue.
- An adapter example — an MCP or provider adapter sketched against the tool schema: proof-recipe form, with the MCP wedge in mind (see contributing).