Re-run the test

Every measured result on the poster comes from a script in the repository. Clone it once:

git clone https://github.com/Vortx-AI/esa_poster
cd esa_poster
pip install blake3 cbor2 pynacl

R1 · The mutation suite (offline, deterministic)

python research/repro/v11/mutation_suite.py

16 in-scope corruptions, one out-of-scope entity case (M17) and one control, at 9 verification depths (A prose to I source re-read), on the real Keylong record. Rule: irrigate iff NDVI <= 0.4705. No network; the whole suite took 0.0528 s in the committed run (2026-09-30). It rewrites research/repro/v11/out/; compare with the committed copy:

depthABCDEFGHI
acted on corrupted evidence15/1515/1513/1612/169/163/162/161/160/16

Source: research/repro/v11/out/mutation_matrix.json and summary.md. Folder: research/repro/v11.

R5 · Agent-to-agent handoff with language-model receivers

R5 puts language-model receivers in Agent B's seat and hands them 25 corruptions, R1's among them, in up to seven representations, from prose to an emem token behind a fail-closed resolver. The design is on READ THE METHODS.

python research/repro/v13/r5/analyze.py     # re-scores trials.jsonl and rewrites results.json and results.md

2,794 scored trials (84 pilot trials and 771 rows with no model output are excluded by the rules in the pre-registration), 2026-10-01 05:29 to 09:41 UTC. Pre-registration BLAKE3 ddef896fd4a102ae…, hashed at 05:22 UTC before trial 1. Receivers: three Claude models (pooled) and one open-weight 7B model (reported separately); the model identifiers are in results.md.

false acceptance, 3 Claude models pooledA proseB JSONC retrieved text (BM25)D opaque idE0 token, no instructionE token, instructed checkE+ token, fail-closed
agents (k/n)254/276164/276220/276154/2882/3000/3000/300
deterministic verifier23/2323/2323/2320/240/250/250/25

The letters name R5's pre-registered conditions, not R1's depths above. The deterministic verifier ran on the same R5 items; the poster's panel 6 pairs the agent totals with R1's suite (15/15, 15/15, 13/16 and 0/16).

Re-running the agents themselves costs money and time (USD 36.82 for every block including the pilot and re-runs): run_claude.py and run_open.py in research/repro/v13/r5/ take the plan files there; relay_server.py is the adversary; every tool call is in raw/. Source: research/repro/v13/r5/results.json (2026-10-01).

The 15-link trace (live)

python research/repro/v8/trace_fact.py --out=/tmp/trace

Walks the Keylong token from the token to the pixel and the signer's domain: resolve, re-hash, cell binding, recompute, STAC metadata, the COG pixel, the SCL class, the byte-range witness, receipts, the log entry, inclusion, consistency and the key's publication (links 1 to 15, plus 9b and 9c). It took 17.9 s in the committed run of 30 Sep 2026. A read-only variant took a median 14.9 s over 5 runs on 2026-10-01 UTC.

It calls live services. Besides GETs, it sends POST /v1/memory_token/resolve, /v1/range_hash and /v1/recall to emem.dev; the last two sign and store records there. Add --no-pixel or --no-log to skip the slow links. Committed output: trace_fact_output.txt.

The offline proof bundle (no network)

python research/repro/v8/verify_bundle.py research/repro/v8/proof_bundle_ndvi.cbor

Nine checks on the 4,906-byte bundle: the record's hash, the token's cell against the signed cell, the batch root and its Ed25519 signature under the pinned key, inclusion under the signed head, the head's signature, the witness signature, its inclusion and its consistency with the head. Median 48.2 ms as a fresh process with networking removed (unshare -rn, n = 50, 2026-10-01 UTC), of which 44.4 ms is Python start-up.

These pages

npm ci --prefix tools/site
python poster/build_site.py          # rebuild docs/ and the six QR codes
python poster/build_site.py --test   # plus the headless phone test

The demo's receiver runs in Node at build time and writes transcript.txt; the build fails if any verdict changes. Source: tools/site.