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
- shkodnik1917/claude-brainlabtheir own version, first seen Nov 8, 2026
- Vepricov/claude-brainlabtheir own version, first seen Nov 1, 2026
- GoogleCloudPlatform/LifeSciencestheir own version, first seen Oct 13, 2026
- wangyi0403/dl-research-workflowtheir own version, first seen Oct 13, 2026
- terravic/pde-agent-plugintheir own version, first seen Oct 11, 2026
- Niko-mzz/Doctor-Ge-SCI-paper-Writingtheir own version, first seen Oct 8, 2026
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-DawnSkillresults-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-HHKSkilldaily-coding
Daily coding assistant that auto-triggers when writing/modifying code, providing a core checklist.
Also in 3 projects that use this
Clay-HHKSkillkaggle-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
kharlamenkodevSkillbug-detective
Also in 3 projects that use this
luischanciSkillresearch-ideation
Generate structured research questions, testable hypotheses, and empirical strategies from a topic or dataset.
Also in 4 projects that use this
MicrosoftSkillweb-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
Other versions11 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 11
- Galaxy-Dawn/claude-scholar★ 5.9ksame name
- GoogleCloudPlatform/LifeSciences★ 57same name
- shkodnik1917/claude-brainlab★ 35same name
- Vepricov/claude-brainlab★ 35same name
- koach08/claude-code-skills★ 4same name
- Niko-mzz/Doctor-Ge-SCI-paper-Writing★ 4same name
- wangyi0403/dl-research-workflow★ 4same name
- AllanWessels/Bratan★ 2same name
- Clay-HHK/claude-skills★ 1same name
- earthskyisbig/auction-law★ 1same name
1 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repositoryOne other file it gives its agents.
- fabrication-auditSkill
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
- Distinctive: line 8
Never let a fabricated, misattributed, or metadata-wrong citation reach the user.
- Distinctive: line 24
Always active for: manuscripts, abstracts, grant narratives, aims pages.
- Very specific: line 38
Never generate a citation from memory alone.
- Distinctive: line 45
SEARCH → PubMed MCP (title + first author).
- Distinctive: line 49
CHECK → the cited claim actually appears in that paper.
- Distinctive: line 59
Search PubMed MCP by title + first author.
- Very specific: line 61
Call get_article_metadata with that PMID to confirm the returned title/authors match.
- Very specific: line 63
No PMID confirmed after 2 attempts → omit it and use the DOI only, or mark [PMID NEEDED].
- Distinctive: line 65
Never generate a PMID from memory, and never claim one is "verified" without the tool call.
- Distinctive: line 69
Verify a DOI resolves to the correct paper via web search or PubMed.
- Distinctive: line 76
If later published, prefer the published DOI/PMID and keep the arXiv ID only if it still resolves.
- Very specific: line 88
Use [0-9]{5,9} for PMIDs, not [0-9]{7,8}, which silently drops shorter IDs (references/history.md).
- Distinctive: line 105
When citing a paper for a specific claim (e.g., "mortality was 30%"): search the abstract or full text, confirm the finding appears, note …
- Very specific: line 111
Manuscripts/grants: verify every bibliography reference during drafting, not post-hoc.
- Very specific: line 113
Clinical consults: verify the paper and finding.
- Distinctive: line 127
PMID not found or mismatched: use the correct PMID if found under a different one.
- Distinctive: line 133
Claim not confirmed: if absent from the abstract, note "not confirmed from abstract — verify against full text".
- Very specific: line 138
If the Agent/Task tool is available, dispatch the citation-verifier subagent (this plugin's agents/ directory for Claude Code, …
“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.
Files
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)
- SEARCH → PubMed MCP (title + first author); non-PubMed-indexed work falls back to OpenAlex / Semantic Scholar, then web search.
- CONFIRM → the paper exists and metadata matches.
- PMID/DOI → look up via
get_article_metadata, never from memory. - CHECK → the cited claim actually appears in that paper.
- 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:
- Search PubMed MCP by title + first author.
- Extract the PMID from the result, not from memory.
- Call
get_article_metadatawith that PMID to confirm the returned title/authors match. - A different returned paper means the PMID is wrong; search by title instead.
- 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
| Field | Tolerance |
| Title | Minor capitalization differences OK; substantive word changes = wrong paper |
| First author | Must match exactly |
| Year | ±1 year allowed (preprint → publication lag) |
| Journal/Conference | Must match (abbreviated or full name both acceptable) |
| PMID | Verified via PubMed MCP tool call, never from memory |
| DOI | If 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-auditinstead). - 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.
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
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.

