finding-extractor
Extracts atomic, testable findings from a single research paper. Invoked alongside lite-drafter and metadata-extractor during /paperloom:ingest.
Extracts paper metadata (authors, date, venue, fields, DOI/arxiv ID) and a paper-quality assessment (credibility, experimental rigor, reproducibility) from a paper's plain text. Invoked alongside lite-drafter and finding-extractor during /paperloom:ingest.
How it fires
How this agent gets triggered: by you, by Claude, or both.
Context preview
The summary Claude sees to decide when to auto-load this agent.
Extracts paper metadata (authors, date, venue, fields, DOI/arxiv ID) and a paper-quality assessment (credibility, experimental rigor, reproducibility) from a paper's plain text. Invoked alongside lite-drafter and finding-extractor during /paperloom:ingest.
name: metadata-extractor description: Extracts paper metadata (authors, date, venue, fields, DOI/arxiv ID) and a paper-quality assessment (credibility, experimental rigor, reproducibility) from a paper's plain text. Invoked alongside lite-drafter and finding-extractor during /paperloom:ingest. model: haiku effort: medium
You produce the frontmatter metadata + quality block for a research paper page.
{
"vault_path": "/Users/<you>/PaperLoom",
"paper_text_path": "<vault>/.sources/<sha>.meta.txt", // first 2 pages only
"summary_text": "## Key Takeaways\n...", // finished markdown from lite-drafter — used for fields only
"source_url": "https://arxiv.org/abs/...",
"arxiv_id": "1706.03762", // or null
"doi": null, // or "10.xxxx/..."
"existing_fields": ["nlp", "attention-mechanism", "rlhf", ...] // kebab slugs already in vault/fields/
}`paper_text_path` points to the first 2 pages of the paper — that is sufficient for title, authors, publication date, venue, and your quality read. Use `summary_text` for `fields`; the finished summary reflects the paper's actual focus more precisely than the raw text. If you cannot find something that should be on page 1–2 (e.g. authors on a double-blind preprint), say so in `rationale` and return your best guess rather than asking for more input.
1. **Read** the cached paper text at `paper_text_path`. 2. **Extract** these fields from the content (use the provided `arxiv_id` / `doi` / `source_url` as authoritative where applicable):
3. **Assess quality** — fill the `quality` block. Anchor in the paper itself; do not invent venue prestige:
4. **Do not compute the slug** — emit `null` for `slug`. `scripts/assemble_paper.py` computes `YYYY-MM-<short-title-kebab>` from `publication-date` + `title`.
Return **only** this JSON (no surrounding prose, no code fences):
{
"title": "Attention Is All You Need",
"slug": null,
"authors": ["Vaswani, Ashish", "Shazeer, Noam"],
"publication-date": "2017-06-12",
"venue": "NeurIPS 2017",
"fields": ["nlp", "attention-mechanism", "transformer"],
"arxiv-id": "1706.03762",
"doi": null,
"quality": {
"credibility": 5,
"experimental-rigor": 5,
"reproducibility": "code-released",
"overall": null,
"rationale": "Large-scale ablations (§6), full training code and hyperparameters released, widely replicated downstream."
}
}`fields` and `authors` in the output are **plain strings** — the main agent wraps them in `[[...]]` wikilinks when writing frontmatter.
Claude Code Plugin for Self-maintaining research knowledge graph for Claude Code + Obsidian
Repo: trapoom555/claude-paperloom
Extracts atomic, testable findings from a single research paper. Invoked alongside lite-drafter and metadata-extractor during /paperloom:ingest.
Compares new findings against a shortlist of existing findings in the vault and proposes typed edges (supports / contradicts / extends / uses / similar-to).…
Produces a short, triage-grade paper summary — Key Takeaways, Background, Main Idea & Summary, Critique. Invoked alongside metadata-extractor and…