π 1st Place Β· Track 2 (Review Agent) β Ralphthon @ ICML 2026 Auto-Research β won $10,000 OpenAI credits
Give it a paper as a PDF or Markdown file β optionally with an evidence bundle of result files β and it emits a structured ICML-style review whose every score and claim is traceable to the paper text, its tables, or the supplied results.
LLM reviewers are easy to fool and hard to trust, so the system is split in two:
- A deterministic core does the trustworthy work β reproducible checks (arithmetic, ledger-tracing, baseline-fairness, citation existence, injection scan) that run offline and resist prompt injection.
- An LLM committee β three specialist agents plus an area-chair agent β adds scientific judgment on top, but only after the deterministic audit is frozen. The models can enrich the review; they can never quietly rewrite the audit's identity or verdict, nor be steered by instructions hidden in a paper.
An ordered six-stage pipeline (reviewer/pipeline.py): S1 parse β S2
claim extraction β S3 mechanical checks β S4 evidence-bound verdicts β
S5 compose β S6 freeze (content-addressed identity + verdict digest).
The committee runs only after S6 is frozen, so no model output can perturb
the audit identity or its verdict labels.
-
Deterministic checks (S3, always run) β ledger-trace, internal-consistency, arithmetic, baseline-fairness, negative-evidence, citation-existence, template-compliance, injection-scan, self-review-audit, and scientific positioning (novelty / SOTA-overclaim). Hidden reviewer-directed text is sanitized and reported, never obeyed; near-white, transparent, and non-rendering PDF text is quarantined before extraction. Findings reach the committee as neutral annotations β leads to weigh, never verdicts.
-
Review committee (default) β
REVIEWER_PANEL(default 3) specialist agents each read the full sanitized paper and write a complete ICML review with all six scores, running concurrently. They share one rubric and differ only in where they look hardest:- theorist β whether the method actually fits the problem, what assumptions are hidden, and whether the claims follow from the arguments offered;
- empiricist β baselines, ablations, statistical support, and whether the experiments actually match the claims;
- scope-and-ablation β how far the claims travel beyond the tested setting, and which design choices are load-bearing but left unablated.
An area-chair agent then synthesizes the final review, checking each panel criticism against the paper and dropping anything it cannot ground.
REVIEWER_PANEL=1runs a single reviewer and skips the area-chair agent. (reviewer/judgment_review.py,reviewer/model_critique.py) -
Guardrails on the committee β a machine-checked title-echo gate rejects a review of the wrong paper; a proven integrity breach caps Soundness and Overall at 2. Any committee failure falls back, per paper, to the deterministic audit; if only the area-chair agent fails, the panel median stands in.
Scores: Soundness / Presentation / Significance / Originality (1β4), Overall recommendation (1β6), Confidence (1β5).
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
# Full review β deterministic audit + LLM committee (needs OPENAI_API_KEY + OPENAI_MODEL).
# --out filename.md is optional
python run_review.py path/to/paper.pdf
python run_review.py path/to/paper.pdf --out review.mdCopy .env.example to .env and set OPENAI_API_KEY / OPENAI_MODEL for the
committee.
# Many papers at once (one process per paper):
python review_batch.py papers/ --out-dir reviews/ --evidence-root evidence/
# With an evidence directory (optional second argument):
python run_review.py path/to/paper.pdf path/to/evidence_dir
# Offline deterministic check only (no LLM agent reviews):
python run_review.py path/to/paper.pdf --deterministic- A paper (required) β a
.pdfor.mdmanuscript. PDFs are converted to Markdown automatically. - An evidence bundle (optional) β a directory of result files the paper's
numbers/tables/claims are checked against:
experiments.jsonlledgers, CSV/JSON results, logs, appendix. Omit it to review the manuscript on its own; the checks that need no ledger still run.
review.mdβ the committee's review, safe for double-blind use. When--outis omitted, the default isreviews/<paper-stem>.review.<YYYY-MM-DD>.md.*.audit.mdβ the sidecar next to the review: content-addressed paper/derived identities, the S1βS6 evidence trace, and every panel member's full review, so each step stays traceable.
Stress-test the full PDF path on fresh public arXiv papers. The first command prints a random 64-bit seed, writes a manifest before reviewing, and isolates failures per paper; replay re-runs a manifest and rejects any PDF whose SHA-256 differs from it.
python eval/random_pdf_smoke.py --count 5
python eval/random_pdf_smoke.py --replay path/to/manifest.jsonpython -m unittest discover -s tests -q # unit + regression suite
python eval/eval.py # detection / false-positive / injection-resistance scorePDF ingestion requires the optional pymupdf4llm dependency (installed via
requirements.txt); Markdown input has no extra dependencies.

