Quick demo — one paper end to end
This page is the system in action. We pick one paper — Headley et al. 2026, “Spatially targeted inhibitory rhythms differentially affect neuronal integration” — and walk through the entire pipeline, showing what each phase produces and what the final corpus directory looks like.
You can run this exact sequence yourself once you have the CLI installed and configured. Total wall time: ~15 minutes. Total cost: ~$7 in mixed Sonnet 4.6 and Opus 4.6 calls via Vertex AI.
The input
Section titled “The input”elife-extract extract \ --doi 10.7554/eLife.95562 \ --corpus-dir /tmp/demo-corpus \ --output-dir /tmp/demo-outThat’s it. One DOI. The CLI handles everything from there.
Step 1 — Prepare
Section titled “Step 1 — Prepare”=== Step 1 — Prepare === doi = 10.7554/eLife.95562 slug = headley-2024-spatially-targeted-inhibitory title = Spatially targeted inhibitory rhythms path = pdf slices = abstract:7184c results:88354c captions:87918c methods:26173c panels = 37 detectedThe system fetches the PDF from the eLife CDN (cached locally for re-runs at ~/.cache/elife-extract/). pdfplumber extracts the text. Heuristic regex slices the document into four sections — abstract, results, captions, methods — that the three-agent partition will read separately. Figure captions are identified by the “Figure N.” or “Fig. N.” pattern; panel labels by (A), (B), etc.
For Headley specifically: 88KB of results prose, 88KB of caption text, 26KB of methods, 37 panel IDs across 11 figures. The slices are large but well within the agents’ input budgets.
Steps 2-3 — Three-agent extraction
Section titled “Steps 2-3 — Three-agent extraction”=== Steps 2-3 — Three-agent extraction === Results-reader (claude-sonnet-4-6) Caption-reader (claude-sonnet-4-6) Structure-reader (claude-sonnet-4-6) vertex: project=cr-mainen region=europe-west1
results-reader → 48 candidate claim(s) caption-reader → 47 candidate claim(s) structure-reader → 17 candidate claim(s)Three Sonnet calls in sequence. Each agent reads only its slice — the Results-reader sees abstract + results prose, the Caption-reader sees only the figure captions, the Structure-reader sees only the methods. They are independent witnesses; none sees another’s output before submitting.
For Headley: 48 + 47 + 17 = 112 candidate claims across the three agents. Many of these describe the same underlying propositions from different angles (the Results-reader’s “doubling distal inhibition reduces firing” and the Caption-reader’s “Figure 4A shows firing rate drops” are the same claim). The reconciliation step is what folds them.
Each candidate carries:
claim— a declarative sentencepanel— the panel ID (or null for synthesis-level)claim_type— empirical, interpretive, existence, synthesis, assessmentrole— the rhetorical function (hypothesis, prediction, empirical, control, scope, methodological, synthesis, interpretation, literature-context)evidence— verbatim quote from the paper grounding the claimconfidence— high or tentative (the agent’s self-assessment)notes— flags or alternative readings
See the three-agent partition for why the partition is structured this way.
Step 4 — Reconciliation
Section titled “Step 4 — Reconciliation”=== Step 4 — Reconciliation (claude-opus-4-6) === draft has 76 claim(s): high 34 contested 5 single-source 37Opus reads all three agent outputs and folds them into a single confidence-tagged draft. Two claims that assert the same proposition (regardless of phrasing) become one claim with sources: ["results", "caption"] and per-agent evidence quotes preserved. Claims that only one agent surfaced become single-source.
For Headley: 112 candidates fold into 76 unique claims. Of those, 34 are high (all three agents agreed), 5 are contested (two agree, one differs), 37 are single-source (one of the three surfaced it but the others didn’t have a path to). The single-source claims are mostly methodological (Structure-reader only) and panel-level empirical detail (Caption-reader only) — both expected.
The draft is written to disk as JSON:
=== Output === draft → /tmp/demo-out/draft-headley-2024-spatially-targeted-inhibitory.json agents → /tmp/demo-out/agents-headley-2024-spatially-targeted-inhibitory.json Next: elife-extract write --draft <path> --corpus-dir /tmp/demo-corpusNo claim files have been written to the corpus yet. This is the methodology’s hard rule — Step 5 review gates the write step.
Step 5 — Review
Section titled “Step 5 — Review”elife-extract write \ --draft /tmp/demo-out/draft-headley-2024-spatially-targeted-inhibitory.json \ --corpus-dir /tmp/demo-corpus \ --review-mode externalFour review modes are available. For this demo we pick external — an Opus pass that recovers the deductive structure (hypotheses, predictions) the prose-level extraction systematically misses. See the review gate for when to use which mode.
=== Step 5 — Review gate (external) === paper = headley-2024-spatially-targeted-inhibitory (10.7554/eLife.95562) claims = 76 (per-agent: results=48 caption=47 structure=17)
external reviewer: re-fetching paper context for 10.7554/eLife.95562... external reviewer: calling claude-opus-4-6... external review: 76 -> 86 claims after revision revised draft saved: /tmp/demo-out/draft-headley-2024-spatially-targeted-inhibitory.reviewed.jsonThe reviewer added 10 claims to the 76-claim draft: 1 hypothesis (the paper’s organising bet, surfaced explicitly for the first time) and 6 predictions (the deductive expectations Headley implicitly tests through its modelling), plus 3 revisions to existing claims (role corrections — synthesis to interpretation, etc.).
This is the structural-inference step. The Results-reader correctly extracted what’s in the prose; what was missing was the implicit deductive scaffolding the curator infers from the modelling decisions. Opus reads the paper holistically and recovers it. See the external reviewer for the design rationale.
Steps 6-7 — Write claim files
Section titled “Steps 6-7 — Write claim files”=== Steps 6-7 — Write claim files === corpus_dir = /tmp/demo-corpus paper_dir = /tmp/demo-corpus/headley-2024-spatially-targeted-inhibitory wrote 87 files: headley-2024-spatially-targeted-inhibitory/all-results-derive-single-cell-compartmental.md headley-2024-spatially-targeted-inhibitory/cell-morphology-single-morphological-reconstruction.md headley-2024-spatially-targeted-inhibitory/model-uses-neuron-ms-integration.md ... headley-2024-spatially-targeted-inhibitory/index.md86 claim files plus one paper index. Each claim file is a markdown document with YAML frontmatter conforming to the elife-claim-trees § 4 schema:
---uuid: 9007e470-87e4-42f7-99a4-cfd05dcdf38fslug: all-results-derive-single-cell-compartmentaldoi: '~'claim: > All results derive from a single-cell compartmental model of one L5 pyramidal tract neuron (adapted from Hay et al., 2011 / Egger et al., 2020), not from network simulations or experimental recordings.claim-type: assessmentrole: scopeconcepts: []priority: '2026-05-10'epistemic: tentativebelongings: []assertions:- paper-slug: headley-2024-spatially-targeted-inhibitory doi: 10.7554/eLife.95562 panel: null confidence: tentativereproductions: []---
**Notes from extraction:** Fundamental scope condition: all empirical claimsare model outputs, not experimental measurements.
**structure-reader evidence:**> We adapted a previously published model of an L5 pyramidal neuron (Egger et> al., 2020; Hay et al., 2011) to the Brain Modeling Toolkit (Dai et al., 2020)> format... Our focus here is on describing the enhancements we incorporated> to mimic in vivo features in the model neuron.Step 6 (dependency mapping — typed edges between claims) is currently scaffolded — claim files emit with empty belongings: and edge sections. The methodology explicitly puts edge mapping in the analyst’s hands; a future LLM-suggestion pass can populate edges when adoption justifies it.
verify-refs — CrossRef DOI resolution
Section titled “verify-refs — CrossRef DOI resolution”elife-extract verify-refs \ --paper headley-2024-spatially-targeted-inhibitory \ --corpus-dir /tmp/demo-corpusFor each role: literature-context claim, queries CrossRef. Anti-hallucination check on existing DOIs; resolution from Author (Year) hints when the DOI is missing.
[✓ confirmed] headley-.../interprets-pv-gamma-sst-beta-associations doi=10.1038/nature08002 Jessica A. Cardin et al. — Driving fast-spiking cells induces gamma rhythm and controls sensory responses
=== Summary (1 literature-context claim(s)) === confirmed 1 resolution rate 100.0% (1/1)For Headley: 1 literature-context claim (the PV+/gamma + SST+/beta correspondence from Cardin et al. 2009 Nature), DOI confirmed via CrossRef. Anti-hallucination check passes.
What you now have
Section titled “What you now have”/tmp/demo-corpus/headley-2024-spatially-targeted-inhibitory/├── index.md # paper metadata├── all-results-derive-single-cell-compartmental.md # 86 claim files├── beta-bidirectional-dendritic-control.md├── beta-frequency-inhibition-optimally-matched-timescale.md├── distal-dendritic-inhibition-decreased-nmda.md├── ...└── (and 82 more)A full corpus directory in the elife-claim-trees schema, ready for either the human curator’s final review (in interactive mode the analyst would have already adjusted) or for direct ingestion into the Astro corpus rendering site.
Compare this to the curated reference at ~/Projects/mainenlab/elife-claim-trees/claims/headley-2026-inhibitory-rhythms/ — 26 claim files, the analyst’s tighter selection. The CLI’s 86-file output over-extracts; the analyst review consolidates. Both serve their purpose; the system’s job is to surface every proposition cleanly so the analyst can curate.
Total cost and time
Section titled “Total cost and time”| Phase | Wall time | API cost |
|---|---|---|
| Step 1 (prepare, with cached PDF) | under 5s | $0 |
| Steps 2-3 (three Sonnet extractions) | ~3-5 min | ~$3-4 |
| Step 4 (Opus reconciliation) | ~1-2 min | ~$1 |
| Step 4.5 (Opus external review) | ~3-5 min | ~$2 |
| Steps 6-7 (write — no LLM) | under 1s | $0 |
| verify-refs (CrossRef API) | under 5s | $0 |
| Total | ~10-15 min | ~$5-7 |
Next steps
Section titled “Next steps”- See the pipeline diagram for the architectural overview
- Read the external reviewer page — that’s the system’s most novel decision
- Try it yourself via the install guide
- Look at the validation results for how the same pipeline performs across the 10-paper public eLife corpus