Skip to content
Content
Skill

/verification-engine

Activate when the user needs to verify citations, check source accuracy, or validate that referenced papers actually support the claims attributed to them. Retrieves source abstracts and full text (for open-access papers), compares each citation claim against actual source

From plugin
open-academic-paper-machine
2017 skills4 agents21 commands

Claude Code

$ npx -y skills add TobiasBlask/open-paper-machine --skill verification-engine --agent claude-code

SKILL.md

verification-engine.SKILL.md
name: verification-engine
description: >
  Activate when the user needs to verify citations, check source accuracy,
  or validate that referenced papers actually support the claims attributed
  to them. Retrieves source abstracts and full text (for open-access papers),
  compares each citation claim against actual source content, and produces
  a structured verification report with classifications (VERIFIED, PLAUSIBLE,
  MISMATCH, UNVERIFIABLE, NOT FOUND).

> **Orchestration Log**: When this skill is activated, append a log entry to `outputs/orchestration_log.md`: > ``` > ### Skill Activation: Verification Engine > **Timestamp:** [current date/time] > **Actor:** AI Agent (verification-engine) > **Input:** [brief description of the verification request] > **Output:** [brief description of results — e.g., "Verified 42 citations: 35 VERIFIED, 5 PLAUSIBLE, 2 MISMATCH"] > ```

Verification Engine

Core Principle

A citation is only as good as its accuracy. This engine systematically checks whether the papers you cite actually say what you claim they say. It fetches real source material — abstracts at minimum, full text when available — and compares each attribution claim against the actual content.

This addresses the dominant failure mode of LLM-generated academic writing: citation hallucination and misattribution. Even when citations point to real papers (no fabricated DOIs), the attributed claims may not match what the source actually says.

When to Activate

  • User says "verify citations", "check my references", "validate sources"
  • Before final submission of any paper with 20+ references
  • After major revisions that added new citations
  • When a reviewer questions citation accuracy
  • As Phase 7 in the paper-machine pipeline (optional quality gate)

---

Step 1: Extract Citation Claims

From LaTeX (`paper.tex`)

Scan the `.tex` file for all citation commands and extract the surrounding context:

\citep{key}         → parenthetical: "... as shown previously (Author, Year)."
\citet{key}         → textual: "Author (Year) demonstrated that ..."
\citeauthor{key}    → author name reference
\citeyear{key}      → year reference

For each citation occurrence, extract: 1. **Citation key** (the BibTeX key) 2. **Claim context** — the full sentence containing the citation, plus the preceding sentence if needed for meaning. This is the "attributed claim." 3. **Section** — which section of the paper contains this citation 4. **Claim type** — classify as:

  • **Specific finding** ("X found that Y increases Z by 78%") — highest verification priority
  • **General attribution** ("X surveys this space") — medium priority
  • **Methodological reference** ("following X's framework") — lower priority
  • **Existence citation** ("see X for a review") — lowest priority

From Markdown (`draft.md`)

Same logic, but scan for `(Author, Year)` and `Author (Year)` patterns instead of LaTeX citation commands.

Group by Source

Multiple citations of the same paper should be grouped. One paper may be cited 5 times with 5 different claims — each claim needs independent verification.

**Output:** A list of `{key, claim, section, claim_type, priority}` tuples.

---

Step 2: Match to BibTeX Entries

For each citation key, look up the entry in `references.bib`:

1. Extract: `title`, `author`, `year`, `doi`, `journal`, `note` 2. If DOI exists: this is the primary lookup key for Step 3 3. If no DOI: use title + first author as search query 4. Flag any citation keys that have NO matching BibTeX entry (orphan citations)

**Output:** Enriched list with DOI and metadata for each citation.

---

Step 3: Fetch Source Material (3-Tier Retrieval)

For each unique referenced paper (not each citation — deduplicate by BibTeX key):

Tier A — Abstract Retrieval (always attempt)

This is the baseline. Fast, reliable, works for any paper with a DOI or indexed title.

**Strategy (try in order, stop at first success):**

1. Search Semantic Scholar by title (use `academic_search_semantic_scholar` MCP tool):

  • Set `max_results: 3` (to find best match)
  • Set full abstract retrieval to get complete abstract text
  • Semantic Scholar also provides TLDR summaries — use both

2. Search OpenAlex by title (use `academic_search_openalex` MCP tool):

  • Broader coverage (474M+ works), good for non-CS papers
  • CC0 data, reliable abstracts

3. Search CrossRef by title (use `academic_search_crossref` MCP tool):

  • Best for DOI verification
  • Abstracts sometimes available

**What you get:** Title confirmation, abstract (50-300 words), TLDR (1-2 sentences), citation count, open access status, and PDF URL if available.

Tier B — Full-Text Retrieval (when available)

For open-access papers, go beyond the abstract:

1. **Check for open-access PDF URL** in the API response metadata

  • Semantic Scholar: `openAccessPdf.url` field
  • OpenAlex: `open_access.oa_url` field

2. **arXiv preprints:** If DOI starts with `10.48550/arxiv.` or BibTeX key suggests arXiv, construct the PDF URL: `https://arxiv.org/pdf/{arxiv_id}` 3. **Fetch the PDF:**

  • Use `WebFetch` with the PDF URL to get content, OR
  • Download to `/tmp/verify_papers/{bib_key}.pdf` and use the `Read` tool

(supports PDFs up to 100 pages) 4. **Extract relevant sections:** Don't read the entire paper. Search for:

  • The abstract (always)
  • The introduction (usually contains the paper's key claims)
  • The results/findings section (for empirical papers)
  • The conclusion

**When to use Tier B:**

  • Paper is a load-bearing citation (Tier 1 priority)
  • Abstract alone is insufficient to verify the specific claim
  • Paper is open-access (arXiv, DOAJ, PLoS, MDPI, Frontiers, etc.)

Tier C — Extension Point (Future)

For large-scale verification (100+ papers) or complex documents with tables/figures:

  • **LlamaParse MCP:** Add `llamacloud-mcp` server to `plugin.json` for high-fidelity

PDF parsing with table extraction an

Read more
@tobiasblask
Ships withopen-academic-paper-machine

A Claude Code plugin that autonomously writes academic papers — from literature search to production-ready LaTeX/PDF. Scope note.

2017 skills4 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
20
Star history of TobiasBlask/open-paper-machine on GitHub, a chart by star-history.com

More skills from other plugins.

prompt-lookup

prompt-lookup

Activates when the user asks about AI prompts, needs prompt templates, wants to search for prompts, or mentions prompts.chat. Use…

@gh-f@gh-fInstall Skill
ppt-master

ppt-master

AI-driven presentation workflow for generating editable PPTX decks and slides, reconstructing page visuals, creating reusable…

@hugohe3@hugohe3Install Skill
morph-ppt

morph-ppt

Use this skill when the user wants a .pptx with smooth cross-slide animation — PowerPoint Morph transitions, Keynote-style…

officecli13d33k
@iofficeai@iofficeaiInstall Skill

Questions about verification-engine.

Which coding agents can use verification-engine?
verification-engine installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.