agentleFS
neelshah4neelshah4/claude-citation-verification/skills/citation-verification/SKILL.md

citation-verification

Skill0 starsChanged 50 days agoMITView on GitHub

Verify every academic citation and reference in real time. Triggers whenever Claude cites a paper, recommends a reference, quotes evidence, or produces output containing author-year citations, DOIs, PMIDs, or journal references — manuscripts, grants, abstracts, literature reviews, clinical consults with cited evidence, rebuttal letters, teaching materials, any response where a specific study is named. Scope is academic citations ONLY — for non-academic verifiable specifics (jurisdictions, fees, addresses, free-standing drug doses, distances, prices, sports/finance specifics), fabrication-audit handles those. The two skills compose. Runs as silent verification pass — no separate output unless verification fails or user requests audit. Never fabricate a citation. If unverifiable, mark [CITATION NEEDED]. Err heavily on triggering — any time a paper is mentioned by name, this skill should be active.

11 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use results-report, daily-coding and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • Galaxy-DawnSkill

    results-report

    This skill should be used when the user asks to "write an experiment report", "summarize experimental results", "do experiment retrospection", "write a results report", "写实验总结报告", "写实验复盘", or mentions turning completed experiment artifacts into a structured, decision-oriented research report. It assumes strict analysis should come from `results-analysis` first.

    Also in 3 projects that use this

  • Clay-HHKSkill

    daily-coding

    Daily coding assistant that auto-triggers when writing/modifying code, providing a core checklist.

    Also in 3 projects that use this

  • Clay-HHKSkill

    kaggle-learner

    This skill should be used when the user asks to "learn from Kaggle", "study Kaggle solutions", "analyze Kaggle competitions", or mentions Kaggle competition URLs. Provides access to extracted knowledge from winning Kaggle solutions across NLP, CV, time series, tabular, and multimodal domains.

    Also in 3 projects that use this

  • kharlamenkodevSkill

    bug-detective

    Also in 3 projects that use this

  • luischanciSkill

    research-ideation

    Generate structured research questions, testable hypotheses, and empirical strategies from a topic or dataset.

    Also in 4 projects that use this

  • MicrosoftSkill

    web-design-reviewer

    This skill enables visual inspection of websites running locally or remotely to identify and fix design issues. Triggers on requests like "review website design", "check the UI", "fix the layout", "find design problems". Detects issues with responsive design, accessibility, visual consistency, and layout breakage, then performs fixes at the source code level.

    Also in 4 projects that use this

  • +2 more from Clay-HHK

The file

Show its rules and text

We split this skill into the rules it gives an agent

18 rules. 0 are common, 11 are distinctive, and 7 are very specific to this project.

  • 0

    Common

    Most of the 9 edited versions we read keep these.

  • 11

    Distinctive

    This author's own choices. Worth a look.

  • 7

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Never let a fabricated, misattributed, or metadata-wrong citation reach the user.

    line 8
  2. Distinctive:

    Always active for: manuscripts, abstracts, grant narratives, aims pages.

    line 24
  3. Very specific:

    Never generate a citation from memory alone.

    line 38
  4. Distinctive:

    SEARCH → PubMed MCP (title + first author).

    line 45
  5. Distinctive:

    CHECK → the cited claim actually appears in that paper.

    line 49
  6. Distinctive:

    Search PubMed MCP by title + first author.

    line 59
  7. Very specific:

    Call get_article_metadata with that PMID to confirm the returned title/authors match.

    line 61
  8. Very specific:

    No PMID confirmed after 2 attempts → omit it and use the DOI only, or mark [PMID NEEDED].

    line 63
  9. Distinctive:

    Never generate a PMID from memory, and never claim one is "verified" without the tool call.

    line 65
  10. Distinctive:

    Verify a DOI resolves to the correct paper via web search or PubMed.

    line 69
  11. Distinctive:

    If later published, prefer the published DOI/PMID and keep the arXiv ID only if it still resolves.

    line 76
  12. Very specific:

    Use [0-9]{5,9} for PMIDs, not [0-9]{7,8}, which silently drops shorter IDs (references/history.md).

    line 88
  13. Distinctive:

    When citing a paper for a specific claim (e.g., "mortality was 30%"): search the abstract or full text, confirm the finding appears, note …

    line 105
  14. Very specific:

    Manuscripts/grants: verify every bibliography reference during drafting, not post-hoc.

    line 111
  15. Very specific:

    Clinical consults: verify the paper and finding.

    line 113
  16. Distinctive:

    PMID not found or mismatched: use the correct PMID if found under a different one.

    line 127
  17. Distinctive:

    Claim not confirmed: if absent from the abstract, note "not confirmed from abstract — verify against full text".

    line 133
  18. Very specific:

    If the Agent/Task tool is available, dispatch the citation-verifier subagent (this plugin's agents/ directory for Claude Code, …

    line 138

“Common” is measured: kept by at least 6 in 10 of the 9 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Citation Verification

Never let a fabricated, misattributed, or metadata-wrong citation reach the user.

Scope

Covers academic citations only: PMIDs, DOIs, PMC IDs, arXiv IDs, NCT numbers, paper titles, author names, journal references, author-year citations, and bibliographies.

Does NOT cover non-academic verifiable specifics (jurisdictions, fees, addresses, drug doses not tied to a cited paper, sports/finance specifics, officeholders, policy dates) — fabrication-audit handles those; see Integration below.

When to Trigger

DEFAULT: ON for any output containing references. This is a background verification layer, not a standalone task.

Always active for: manuscripts, abstracts, grant narratives, aims pages; literature reviews, digests, article summaries; clinical consults citing specific studies as evidence; rebuttal letters; teaching or board-review content citing sources; emails/memos referencing specific papers; any response naming a study (author, year, journal, or title).

Skip for: general physiology explanations with no specific study cited; casual conversation; code/data tasks with no references; user says "don't worry about verifying references"; non-academic specifics (route to fabrication-audit).

Also trigger on explicit requests: "verify these references," "check my citations," "audit my bibliography," "are these real papers?," "did I cite this correctly?"

Core Principle

Never generate a citation from memory alone; every reference is verified through search before inclusion. Failure after the attempt limits below → [CITATION NEEDED], told to the user.

Verification Workflow

During Writing (Inline Verification)

  1. SEARCH → PubMed MCP (title + first author); non-PubMed-indexed work falls back to OpenAlex / Semantic Scholar, then web search.
  2. CONFIRM → the paper exists and metadata matches.
  3. PMID/DOI → look up via get_article_metadata, never from memory.
  4. CHECK → the cited claim actually appears in that paper.
  5. FORMAT/CITE → use the verified metadata (author, year, journal, PMID/DOI) in the output.

This loop runs for every citation.

PMID Verification

PMIDs are the highest-risk hallucination field: other fields can be correct while the PMID resolves to an unrelated paper (references/history.md). Required workflow for every PMID:

  1. Search PubMed MCP by title + first author.
  2. Extract the PMID from the result, not from memory.
  3. Call get_article_metadata with that PMID to confirm the returned title/authors match.
  4. A different returned paper means the PMID is wrong; search by title instead.
  5. No PMID confirmed after 2 attempts → omit it and use the DOI only, or mark [PMID NEEDED].

Never generate a PMID from memory, and never claim one is "verified" without the tool call.

DOIs

Verify a DOI resolves to the correct paper via web search or PubMed; more reliable than PMIDs but still warrants a check for new or recent papers.

arXiv IDs

Fetch https://arxiv.org/abs/<id> (must return 200) and confirm title + first author match. A 404 means the ID is wrong: search by title (OpenAlex/Semantic Scholar) and correct it, or mark [CITATION NEEDED]. If later published, prefer the published DOI/PMID and keep the arXiv ID only if it still resolves.

Retraction / Erratum Check

A citation can resolve with valid metadata yet be retracted or corrected; citing it is a hard error. Screen by parsing CommentsCorrections for RefType=RetractionIn, ErratumIn, or ExpressionOfConcernIn, not by publication type (misses corrections on an otherwise-normal record, references/history.md). A publisher or Retraction Watch banner is supplementary, never primary. Flag inline: [RETRACTED — <topic>; verify before citing] or [ERRATUM — <what changed>; verify before citing].

Identifier Extraction

Use [0-9]{5,9} for PMIDs, not [0-9]{7,8}, which silently drops shorter IDs (references/history.md). State the extraction pattern alongside any verification count so the denominator can be audited.

Metadata That Must Match

FieldTolerance
TitleMinor capitalization differences OK; substantive word changes = wrong paper
First authorMust match exactly
Year±1 year allowed (preprint → publication lag)
Journal/ConferenceMust match (abbreviated or full name both acceptable)
PMIDVerified via PubMed MCP tool call, never from memory
DOIIf provided, must resolve to the correct paper
Non-PubMed source (OpenAlex / Semantic Scholar)Non-indexed refs only; DOI/PMID lookups are exact, a title-search hit needs first-author+year match

Claim Verification

When citing a paper for a specific claim (e.g., "mortality was 30%"): search the abstract or full text, confirm the finding appears, note if it is a secondary/subgroup result, and if unconfirmable write "Author et al. reported [claim] (exact finding not confirmed from abstract; verify in full text)."

Verification by Context

  • Manuscripts/grants: verify every bibliography reference during drafting, not post-hoc; flag failures with [CITATION NEEDED]; literature review sections need at least title + first author + year + journal.
  • Clinical consults: verify the paper and finding; landmark trials (ARDSNet, PROSEVA, TTM2) must be attributed to the correct trial and outcome; a dose tied to a cited paper is verified here, free-standing goes to fabrication-audit.
  • Literature digests: confirm every link and title exactly (capitalization, subtitles); Medline-style journal abbreviations.
  • Rebuttal letters: full verification for new references; re-cited papers must be confirmed in the bibliography with the finding intact.

Handling Verification Failures

Paper not found: try alternate search queries, then the step-1 fallback order (PubMed MCP → OpenAlex → Semantic Scholar → web search); confirm first author + year on any title-search hit, since relevance ranking can surface a same-title decoy; still not found after 2-3 attempts → [CITATION NEEDED].

PMID not found or mismatched: use the correct PMID if found under a different one; omit and use the DOI if the paper has none; discard entirely if it resolves to a different paper.

Metadata mismatch: confirm the correct paper, not a similarly titled one; check preprint-vs-published discrepancies; use the most current metadata; note significant discrepancies (e.g., author order).

Claim not confirmed: if absent from the abstract, note "not confirmed from abstract — verify against full text"; never fabricate page numbers or section references.

Execution Mode: Dispatch vs. Inline

If the Agent/Task tool is available, dispatch the citation-verifier subagent (this plugin's agents/ directory for Claude Code, .claude/agents/ for Cowork), requiring tool-call evidence for every VERIFIED identifier and spot-checking at least 30% independently (see Multi-Agent guardrails below). If the tool is unavailable, run the workflow inline, unchanged.

Multi-Agent Citation Workflows

Subagents can confabulate verification reports: a claim of "all 12 references verified" with no tool-call evidence has verified nothing (references/history.md). Guardrails: (1) any subagent verifying citations must include its actual PubMed MCP calls (queries, get_article_metadata results) — a narrative-only report is not verification; (2) the parent spot-checks at least 30% of PMIDs directly, and re-verifies all on any failure; (3) no transitive trust — never accept a subagent's claim that it "searched PubMed" without independent verification; (4) before delivery, the delivering agent must hold direct tool-call evidence for every PMID in the document.

The dispatch-prompt template for verification subagents (restates guardrail 1) is in references/history.md.

Output Format (Audit Requested)

CITATION VERIFICATION REPORT

Verified: [X] / [Total]
Flagged:  [Y] (metadata issues or unconfirmed claims)
Failed:   [Z] (not found)

| # | Citation | Status | PMID Verified | Issue (if any) |
|---|----------|--------|---------------|----------------|
| 1 | Shah et al., PCCM 2024 | ✓ Verified | ✓ via MCP | — |
| 2 | Jones et al., CCM 2023 | ⚠ Flagged | ✗ Wrong paper | PMID resolves to unrelated article |

Integration with Other Skills

  • fabrication-audit: owns non-academic verifiable specifics (scope split above); the two skills compose without overlap.
  • clinical-citation-audit: the pre+post-flight gate wrapping this skill for the six clinical-writing skills (manuscript-reviewer, scientific-writing, literature-review, clinical-reports, clinical-evidence-debate, clinical-teaching-deck); that skill enforces, this skill supplies the methodology, and defers block formatting to its audit summary when invoked from the pipeline.
  • manuscript-reviewer, review-response, literature-review, icu-clinical-consult, interesting-articles-formatting: each hands its citation-bearing content through this skill's workflow (icu-clinical-consult routes free-standing doses to fabrication-audit instead).
  • writing-anti-ai: vague attributions it flags ("Experts believe...") should be replaced with verified specific citations.

What This Skill Does NOT Do

  • It does not override the user's citation choices; it flags problems and the user decides.
  • It does not verify references the user provides verbatim, though it flags obvious metadata errors if noticed.

Web fallback

WebFetch and WebSearch stay first. If the Parallel Search MCP is installed (claude mcp add --transport http parallel-search https://search.parallel.ai/mcp) and WebFetch returns a 4xx/5xx, a paywall or bot wall, a redirect it cannot follow, or a page missing the target content, retry once with mcp__parallel-search__web_fetch (same URL, a narrow objective); if WebSearch returns nothing usable, retry with mcp__parallel-search__web_search. Parallel returns query-matched excerpts, not the full page, so a value missing from the excerpt is unverified, not absent. Never put PHI, unpublished manuscript or grant text, or credentials in a Parallel query, and never use it to get past a login or CAPTCHA gate. Name the tool that verified each item.

Feedback loop

Found a missed edge case, a wrong-shaped output, or a rule that misfires? Open an issue on this plugin's repository with the input and the output you expected. Do not edit this skill mid-run.

Versions

See references/history.md for version history and the incidents behind each rule.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.