- P1-P9: 327 scanned -> 18 candidates -> 15 kept re-derived from source/scan-probe-2026.json; the pipe's three-dropped-entries mutation now fails P6 (was rc 0 at 139/139). - B7-B10: claim_role graded against roles-expected.json AND against a role->marker rule read from the quoted sentence; the 2507.02001v1 relabel now fails B8 and B10 (was rc 0 at 169/169). - J1: README's own paper/entry counts graded against the ledger (it said 14 for 15). - run_verdict.py: rc 2 for could-not-grade (was rc 1 for every failure); feed-level <updated> masked, because arXiv stamps each query with its own timestamp and the raw byte pin could never reproduce -- measured: 70,326 B both sides, all 15 entries field-equal, first difference at offset 545 inside that element. - mutation_battery.py: scratch from --scratch/TMPDIR and removed on exit (was a hard-coded /root/.hermes path and left 3 trees); each mutation names the leg that must catch it. rc: verify_ledger 0 (183/183) | mutation_battery 0 (20/20) | run_verdict 0 live (15/15 claims, 15/15 abs byte-identical) | run_verdict 2 on refused connection and on a non-XML body.
archive-lcmm-token-ledger-2026-10-26
A machine-verified ledger of long-context multimodal papers: for each of 15 papers, the context length the paper itself states in its own abstract, copied verbatim, with two pinned and sha256-hashed arXiv sources per entry.
ledger.json-- the ledger (15 entries, each with verbatim claim sentence, figure, token count, role, metadata, source hashes)roles-expected.json-- the expectedclaim_roleper entry, with the verbatim phrase from that entry's own sentence that justifies it;verify_ledger.pygrades the ledger against itREPORT.md-- the digest;scan-candidates.json-- the full >=32K scan with exclusionssource/atom-lcmm.xml,source/abs/*.html,source/scan-probe-2026.json-- pinned bytesverify_ledger.py(offline, 183 checks),mutation_battery.py(mutation battery),run_verdict.py(live)manifest.json-- sha256 of every file
Reproduce:
python3 verify_ledger.py # exit 0 = ledger holds, 1 = a check failed
python3 mutation_battery.py # exit 0 = every mutation caught (and the control held)
python3 run_verdict.py # exit 0 = live arXiv matches pinned bytes (needs network),
# exit 1 = bytes differ, exit 2 = could not grade (endpoint down)