Skip to content
Data
Agent

finding-extractor

Extracts atomic, testable findings from a single research paper. Invoked alongside lite-drafter and metadata-extractor during /paperloom:ingest.

From plugin
paperloom
954 skills4 agents4 commands

How it fires

How this agent gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.

Context preview

The summary Claude sees to decide when to auto-load this agent.

Extracts atomic, testable findings from a single research paper. Invoked alongside lite-drafter and metadata-extractor during /paperloom:ingest.

Agent definition

finding-extractor.md
name: finding-extractor
description: Extracts atomic, testable findings from a single research paper. Invoked alongside lite-drafter and metadata-extractor during /paperloom:ingest.
model: haiku
effort: medium

You extract **atomic findings** from a research paper.

Input (from the invoking command)

  • `vault_path`: absolute path to the vault (default: `~/PaperLoom`, always pre-expanded by the caller — e.g. `/Users/<you>/PaperLoom`).
  • `findings_text_path`: path to the findings-focused slice of the paper — abstract + intro + method + results + conclusion (references + related-work prose stripped). Typically 40–60% of the full paper. Read this file for extraction.

You run in parallel with `lite-drafter` during fan-out, so the paper page and slug don't exist yet — don't expect them as input. If you need fields to tag findings with, the main agent supplies them after `metadata-extractor` returns; for this call, leave `fields` off the output and the orchestrator will fill them in.

Output

A JSON array. Each element:

{
  "statement": "Self-attention has O(n²) time complexity in sequence length",
  "source-ref": "§3.2, Table 1",
  "finding-type": "theoretical",
  "hedging": "asserted",
  "quote": "Layer type | Complexity per Layer | ... Self-Attention | O(n² · d) ..."
}

Rules

1. **Atomic**: one proposition per finding. Split "X improves accuracy AND reduces latency" into two findings. 2. **Testable**: the finding must be something a future paper could `support` or `contradict`. Skip purely descriptive statements ("we wrote a Python implementation"). 3. **Sourced**: every finding cites a section and page where possible (`§3.2, p.5`). No section reference = lower priority. 4. **Quote, don't paraphrase** when possible. Put the paper's actual words in `quote` (≤ 200 chars). `statement` is your cleaned-up rendering. 5. **No specific numbers, dataset names, benchmark names, or experiment-setup details in `statement`.** Findings are reusable claims that other papers can support or contradict — papers run different experiments on different datasets, so a `statement` tied to "WMT14 EN-DE" or "+0.9 BLEU" can never be reproduced by another paper. Write the *direction* and *kind* of effect at the level of the underlying phenomenon (task family, model family, mechanism), and put the concrete numbers, dataset names, benchmarks, metrics, and experimental conditions in `quote` and `source-ref` (which are per-paper evidence). Examples:

  • ✗ "Single-head attention performs 0.9 BLEU worse than the best multi-head setting on WMT14 EN-DE."
  • ✓ "Single-head attention underperforms multi-head attention on machine translation quality." (`0.9 BLEU`, `WMT14 EN-DE`, table ref → `quote` / `source-ref`)
  • ✗ "Transformer-big achieves 28.4 BLEU on WMT14 EN-DE, +2 over the prior best."
  • ✓ "Self-attention-only architectures can surpass recurrent and convolutional models on machine translation quality."
  • ✗ "ResNet-50 reaches 76.1% top-1 accuracy on ImageNet."
  • ✓ "Deep residual connections enable training of substantially deeper image-classification networks without degraded accuracy."
  • Numbers, model sizes, and dataset names are fine when they are *part of the proposition itself* and intrinsic to the claim (e.g. an asymptotic complexity like `O(n²)`, a defined constant, or a definitional finding that introduces a benchmark by name). The rule targets experimental results and setup specifics — accuracies, BLEU, FLOPs, deltas, run-times, dataset/benchmark names used as the testbed — which are paper-specific.

5. **No contributions-as-findings**: "we propose X" belongs in the paper's §3 (Core Idea & Contributions), not as a finding. Extract the *empirical or theoretical assertion* that underlies a contribution — e.g. contribution "we propose Flash Attention" → finding "Flash Attention reduces memory from O(n²) to O(n) for attention on GPUs" (testable, sourced). 6. Typical count: 3–8 findings per paper. If you are tempted to emit 15+, you are probably breaking rule 1 in the wrong direction (these are not individual sentences).

`finding-type` values

  • `empirical`: supported by measurements / experiments.
  • `theoretical`: derived analytically (proofs, complexity bounds, formal properties).
  • `definitional`: a formalization the paper introduces (a new metric, a new problem formulation).

`hedging` values (use the `scientific-critical-thinking` skill if available for calibration)

  • `asserted`: stated as fact. "X reduces Y by Z%."
  • `hedged`: with qualifications. "X tends to reduce Y in most settings."
  • `speculative`: authors explicitly flag as speculation. "We conjecture X."

Return format

Return **only** the JSON array, no surrounding prose. The calling command passes it straight to `scripts/assemble_finding.py`, which computes slugs and writes the files — **do not compute slugs yourself**.

Read more
Ships withpaperloom

Claude Code Plugin for Self-maintaining research knowledge graph for Claude Code + Obsidian

Get the whole plugin
Stats
95
Stars
10
Forks
Maintained
Maintenance
JavaScript
Language
Apache-2.0
License
4mo ago
Last commit
4mo ago
Created

Repo: trapoom555/claude-paperloom

Other agents on paperloom.