AI-Ascension
Recipes

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.

Starterconfirmed

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.toml selects it automatically); git; network access for the first cargo build to 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.
Submit

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).