One agent proposes.
Another proves.
The tests are drawn by hashing the proposal with a secret the proposer never sees, so the check an agent invents cannot be the check its work was built to survive. Below: one round from its real bytes, what the result costs to read afterwards, and what you can clone, run or commission.
(⚔️⊥⿻⊥🧙)😊 = neg ⊕ bnot → succ
It is a proving system with the roles mirrored. In cryptography the party that submits a claim is the prover and the party that checks is the verifier; here the proposer is that claimant and the seat that proves is the check — the verifier by another name. The test is a challenge hashed from the sealed proposal, the Fiat-Shamir step that underlies zero-knowledge proofs, so the claimant can never tune to it.
Watch the Gap hold.
A practice bout shipped in the public repository: compress an emergency field guide while a held-out gate stays green. Every line below is quoted from the run's own files.
The spar, round one, proposal two- measureThe field guide is counted by the rule in frontier.json: 730 words. Nothing is proposed yet."metric": 730
- propose 🧙The restructurer lens proposes one lever: rewrite the guide as telegraphic bullets. The proposal is serialised canonically; those bytes are the artefact.leverId p2-restructure-to-telegraphic-bullets
- hold-apart ⿻The Gap hashes the proposal's canonical bytes into a seed the proposer never saw, and draws eight facts from the original guide to ask about.seedHex 1ec8affb29623c553319588df2e8e0dad432f6e711bd92fec5dee3ada8437515 · draw F31 F15 F27 F21 F14 F20 F9 F12
- assay ⚔️The prover re-derives the seed from the saved bytes, answers all eight questions from the candidate text alone, and counts the words.VALIDATED · 526 words · gateResult 8/8
- criticThe round's two validated levers are classified: the line-editor's structural, the restructurer's probe-limited. The frontier does not move on its own.restructurer probe-limited (526); best still baseline 730
- keystone 😊The person folds. The frontier later records 526 under a second draw and a 32/32 census, then 472, sealed as an artefact whose address re-derives from its bytes.af-0f8625eec136 · κ sha256:f57406e1786ad34fdaf22bf1df6f1522d4aafae7ff8e2ad39253b9915dea2a91
Round r1: proposal p2-restructure-to-telegraphic-bullets; seed 1ec8affb…; draw F31 F15 F27 F21 F14 F20 F9 F12; verdict VALIDATED 526 words 8/8; the frontier folded to 526 under a 32/32 census and later to 472, sealed as af-0f8625eec136. the sealed artefact ↗ · the instance ↗
The harness on itself, round one: two mirages caught- measureThe default distribution's README is counted: 1,088 words, every one of the 93 census witnesses present."metric":1088 · "census":93 · "passed":93
- propose 🧙Two lenses, blind to each other, on a 12B local model: a line-edit to 720 words and a table-first restructure to 379 words. Both answered leverId "1".proposer gemma3:12b
- hold-apart ⿻The engine hashes each proposal's canonical bytes with the run salt; the draw is the whole census, all 93 witnesses.seedHex 615c1d00d4e5ce4428a026d96d13065ad974f1552c9f9d5c7fd9eff63b44a23b · mode census · N 93
- assay ⚔️A 27B local model, a different model from the proposer, reads each candidate with the code-side census beside it: 80/93 and 49/93. Both MIRAGE.prover gemma3:27b · VALIDATED 0 · MIRAGE 2 · BLOCKED 0
- criticBoth kills structural: the first dropped the inscription, two tool names, the API key variable, the run-file names, Fiat-Shamir and the four rungs; the second dropped forty-four witnesses.K-1 · K-2 · K-3 in notes/KILLED_LEVERS.md
- keystone 😊No fold. The frontier stays at 1,088; the run is filed, the runner defect it found (#14: verdicts matched by a colliding lever id) is fixed, and the seeds re-derive.phiInference 1 · RUN VERIFIED
Round r1 on examples/self: proposer gemma3:12b, prover gemma3:27b, phiInference 1; measured 1088 words, census 93/93; two proposals, VALIDATED 0 · MIRAGE 2 · BLOCKED 0; candidates 720 words at 80/93 and 379 words at 49/93; seed 615c1d00…; no fold. the instance ↗
The harness on itself, round two: the first fold- measureThe default README, re-baselined after it gained its title and a pathways pointer: 1,115 words, 95 of 95 census witnesses present."metric": 1115 · "census": 95 · "passed": 95
- propose 🧙The proposer's seat handed to two Claude Code subagents, one per lens, briefed on what the last two candidates lost. Their proposals are committed to a file before any seed derives.--proposals · proposer claude-opus-5 (Claude Code subagents, one per lens)
- hold-apart ⿻The engine hashes each committed proposal's canonical bytes with a fresh run salt; the draw is the whole census.mode census · N 95
- assay ⚔️A local 27B, a different model family from the proposer, judges the hard constraint with the code-side census beside it: 95/95 and 95/95. Both VALIDATED.prover gemma3:27b · VALIDATED 2 · MIRAGE 0 · BLOCKED 0
- criticBoth levers structural: one trimmed connective prose in seven sentences; the other deleted the inventory the box already carries and moved the two-model flags into the rung that introduces the second model.2 structural win(s)
- keystone 😊The restructurer's 1,069-word candidate re-checked and folded into the artefact and the default README template. A first attempt at this round had died of transport and was refused whole, its one VALIDATED verdict uncounted.1115 → 1069 · phiInference 1 · RUN VERIFIED
Round r2 on examples/self: proposer claude-opus-5 via Claude Code subagents (--proposals), prover gemma3:27b, phiInference 1; measured 1115 words, census 95/95; VALIDATED 2 · MIRAGE 0 · BLOCKED 0; candidates 1092 and 1069 words, both 95/95; folded 1115 → 1069. the instance ↗
The first evocation: the mission document, 1,998 → 1,573- measureThe mission document, copied from the corpus: 1,998 words, all 64 census witnesses present — its numbers and ratios, every heading, every emphasised phrase, the named vocabulary."metric": 1998 · "census": 64
- propose 🧙Two Claude Code subagents, one per lens, blind to the census, committed before any seed derived. A line-edit to 1,875 words; a restructure to 1,573 that folds every list and table into inline lists.--proposals · proposer claude-opus-5 (Claude Code subagents, one per lens)
- hold-apart ⿻The engine hashes each proposal with a fresh salt; the whole census is the draw.mode census · N 64
- assay ⚔️A local 27B judges the hard constraint with the code-side census beside it: 64/64 and 64/64. Both VALIDATED.prover gemma3:27b · VALIDATED 2 · MIRAGE 0 · BLOCKED 0
- criticBoth structural. The census cannot see a table become a list; the prover accepted it under the hard constraint as written.2 structural win(s)
- keystone 😊Every one of the 27 appendix rows and the substance of all 60 original bullets confirmed present; the 1,573-word candidate folded into the evocation's artefact. Carrying it into the corpus is the keeper's door.1998 → 1573 · phiInference 1 · RUN VERIFIED · corpusFoldBack PENDING
Evocation primer r1: proposer claude-opus-5 via Claude Code subagents, prover gemma3:27b, phiInference 1; measured 1998 words, census 64/64; VALIDATED 2 · MIRAGE 0 · BLOCKED 0; candidates 1875 and 1573 words, both 64/64; folded 1998 → 1573; 27 appendix rows and 60 bullets confirmed. the board ↗
Shorter, and still true.
A fold is paid for once and read forever. Tokens were not measured here; bytes are the proxy, and every later read, by a person or an agent, pays for the shorter text. The census is what made shorter safe.
One frontier, one writer.
The proposer and the prover share three files they both read and neither writes: the frontier, the claims register, the kill ledger. Only the person folds. This is the spar's frontier, every fold with the detection probability its gate carried.
730 → 573 → 526 → 472; the sample fold carried detection 0.25, the census folds 1.0.
What you get, file by file.
Each card names the file that does it and whether it runs today. Nothing below is described that cannot be opened.
Proofs — what a run leaves behindYour data, your choice of where the seats sit.
Durations are agreed per engagement; there are no list prices. Work with us · Begin a discovery · for agents.
Does it do what it says?
The repository's own gates and its default distribution were run on the day this page was rendered; each README claim below carries the verdict and the file it was checked against.
- Every gate the repository has · holds · node tools/check.mjs: ALL 11 GATES PASS on 2026-09-11; ALL 14 GATES PASS on 2026-09-12 with the auditor and self-fold examples added; ALL 20 GATES PASS later on 2026-09-12 with the evocations board (personas, primer, whitepaper) conforming and its runs verified.
- The default distribution, out of the box · holds · node tools/make_default.mjs emits the system alone and re-checks it inside the emitted tree: ALL 9 GATES PASS (1 skipped, the universe audit, absent by design).
- A round, out of the box · holds · On 2026-09-11 the default shipped no driver and a round needed the Workflow tool. On 2026-09-12 drivers/ landed: a round runs on a clean clone with the stub, a local model or the Claude API, and the default re-proves 11 gates with them in.
- Split into instances the right way · holds, with a gap · The skeleton, the examples and the fleet catalogue are separated: every instance under the tree conforms, the blank template must fail and does, and the fleet catalogue can be deleted with every gate still green. The gap: check.mjs discovers instances only under the repository and its examples, so the lanes that live beside it (the workshops, the soul mage) gate themselves.
- The README's numbers · holds · 730 → 472 across three audited folds: holds against frontier.json. Fifteen embodiments: holds against the catalogue's 'Fifteen entries stand'.
- The README's defect count · fixed · On 2026-09-11 the README said eleven defects while the chronicles recorded Defect #13; on 2026-09-12 the sentence points at the chronicles for the count, thirteen at the last count.
- Which model held which seat · undeclared · The spar's runs do not record the model in each seat; the example config leaves seatOpts unset, so the conformance gate reports the caller default for both proposer and prover. The fold benchmark needs this declared before any comparison means anything.
The record: benchmarks by industry, document suites The source ↗