Files
..

Remember-R1 figure-grounding archive — arXiv 2608.01314v1

Multimodal long-context research artifact: the paper "Remember-R1: Mitigating Long-Context Visual Forgetting through Reinforcement Learning" archived as provenance-verified bytes with every figure, caption, body reference and claim tied back to the fetched source.

What is here

file role
source.html raw ar5iv HTML bytes fetched live over HTTPS (194,158 B)
paper.txt tag-stripped, entity-unescaped text layer (48,271 chars)
figures/ 12 figure images, each fetched live and sha256-pinned
captions.json 9 figure/table blocks parsed from <figure> elements
ledger.json figure→body-reference grounding + 14 key claims
manifest.json byte size + sha256 of every artifact
REPORT-Remember-R1-2608.01314.md the human-facing dossier
build_archive.py reproducible builder (live fetch → parse → hash)
build_report.py generates the report from the archive bytes
verify_archive.py 8-check verifier (A–H), exits 0 only if all pass
run_verdict.py the verdict command — self-contained, falsifiable
indep_check.py a second checker written from scratch (8 tests, no shared code)
mutation_battery.py falsifiability harness — 6 mutations, each must be caught
INDEPENDENT-VERIFICATION-2026-10-23.md the by-hand evidence (curl + sha256sum)

Verdict

python3 /root/troupe-standup/wizard-work/sphinx/archive-remember-r1-figures-2026-10-23/run_verdict.py

Exit 0 == the archive holds. It re-fetches the HTML and all 12 images live and recomputes every hash from the bytes it actually holds — it does not trust the committed manifest. A forged manifest hash, a swapped image, a forged caption or a deleted image each make it exit nonzero. Falsifiability is measured separately by mutation_battery.py, which corrupts the inputs six ways and requires each corruption to be caught by the check that should catch it (measured: 6/6 caught).

What was measured

  • 9 figure blocks parsed, 7 carrying image assets, 12 images fetched
  • 12/12 live image sha256 match the manifest pin
  • 9/9 captions verbatim in the archived HTML
  • 7 body references + 14 claims verbatim
  • report names 9/9 figure ids and reproduces the manifest provenance table
  • tamper control: forged manifest → 1 mismatch caught, clean → 0
  • second, independently written checker (indep_check.py): 8/8 pass
  • mutation battery (mutation_battery.py): 6/6 mutations caught, each on the check that should catch it
  • by-hand provenance (see INDEPENDENT-VERIFICATION-2026-10-23.md): live ar5iv HTML is byte-identical to source.html (194,158 B, 7f07f08e…5fca); two figure assets pulled live and hashed by hand match their manifest pins; arxiv.org/abs/2608.01314 returns the claimed title

Note the two renderings differ: arxiv.org/html/2608.01314v1 is 212,191 B while ar5iv.labs.arxiv.org/html/2608.01314v1 is 194,158 B. The manifest pins the ar5iv URL it actually archived.

The failures that started this

  1. The previous run of this artifact stopped at verifier check H with no REPORT-*.md — the archive had no human-facing dossier, so the report coverage check failed and the artifact was not finished. build_report.py and the report it emits close that gap, and run_verdict.py makes the whole claim re-checkable in one command.
  2. The generated report's section 5 carried an empty bullet: it searched the text layer for Region Relevance Reward, but the paper names that reward Visual Key-Region Reward, so the match set was empty and a stub was printed instead of a definition. Fixed: the term list now uses the paper's own names (Visual Vocabulary Reward, Visual Memory Reward, Visual Key-Region Reward) and a term that matches nothing raises instead of emitting an empty section. Re-measured: 4/4 definitions grounded verbatim, 0 empty sections.