Skip to content

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.

Terminal window
elife-extract extract \
--doi 10.7554/eLife.95562 \
--corpus-dir /tmp/demo-corpus \
--output-dir /tmp/demo-out

That’s it. One DOI. The CLI handles everything from there.

=== 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 detected

The 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 ===
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 sentence
  • panel — the panel ID (or null for synthesis-level)
  • claim_type — empirical, interpretive, existence, synthesis, assessment
  • role — the rhetorical function (hypothesis, prediction, empirical, control, scope, methodological, synthesis, interpretation, literature-context)
  • evidence — verbatim quote from the paper grounding the claim
  • confidence — 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 (claude-opus-4-6) ===
draft has 76 claim(s):
high 34
contested 5
single-source 37

Opus 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-corpus

No claim files have been written to the corpus yet. This is the methodology’s hard rule — Step 5 review gates the write step.

Terminal window
elife-extract write \
--draft /tmp/demo-out/draft-headley-2024-spatially-targeted-inhibitory.json \
--corpus-dir /tmp/demo-corpus \
--review-mode external

Four 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.json

The 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 ===
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.md

86 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-cfd05dcdf38f
slug: all-results-derive-single-cell-compartmental
doi: '~'
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: assessment
role: scope
concepts: []
priority: '2026-05-10'
epistemic: tentative
belongings: []
assertions:
- paper-slug: headley-2024-spatially-targeted-inhibitory
doi: 10.7554/eLife.95562
panel: null
confidence: tentative
reproductions: []
---
**Notes from extraction:** Fundamental scope condition: all empirical claims
are 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.

Terminal window
elife-extract verify-refs \
--paper headley-2024-spatially-targeted-inhibitory \
--corpus-dir /tmp/demo-corpus

For 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.

/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.

PhaseWall timeAPI 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