citation-verifier
Skill5 starsChanged 4 months agoMITView on GitHub
Audit every citation in a chapter, paper, or proposal against the .bib file and the real world: each cite key must exist, each entry must resolve to a live DOI or arXiv record whose title, authors, and year match, and each claim attributed to a source must be supported by that source's note or text. Reports unverified, mismatched, and unsupported citations with the fix. Use before sending a draft to a supervisor, before submission, or whenever text was drafted with AI assistance and a fabricated reference would be fatal.
We split this skill into the rules it gives an agent
7 rules. 0 are common, 2 are distinctive, and 5 are very specific to this project.
0
Common
Most of the 4 edited versions we read keep these.
2
Distinctive
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 22
If it has a doi: curl -s "https://api.crossref.org/works/<doi>" and compare title (normalised), first author surname, and year.
- Very specific: line 23
If it has an arXiv eprint: curl -s "http://export.arxiv.org/api/query?id_list=<id>" and compare title and first author.
- Very specific: line 24
If it has only a URL: curl -sI <url> returns 2xx/3xx.
- Very specific: line 25
If it has none of these: curl -s "https://api.crossref.org/works?query.bibliographic=<title>&rows=3" and report whether a plausible match …
- Very specific: line 42
Write research/citation-report.md and summarise in the reply:
- Distinctive: line 63
Never "repair" a citation by inventing a DOI, year, or venue.
- Distinctive: line 64
Never mark a claim supported because it sounds right.
“Common” is measured: kept by at least 6 in 10 of the 4 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
A fabricated or misattributed citation is the one error a thesis cannot survive. This skill treats every citation as unverified until three checks pass: the key exists, the entry is real, and the claim is supported.
Level 1: every key exists
- Extract cite keys from the document:
- LaTeX:
\cite{a,b},\citep,\citet,\parencite,\textcite,\autocite,\footcite, and starred/optional-argument forms. - Markdown/Pandoc:
[@key],[@a; @b, p. 3],@key. - Word: extract with
pandoc file.docx -t markdownand look for Zotero fields or(Author, Year)strings; match those against.bibauthor+year.
- LaTeX:
- Parse the
.bibkeys (^@\w+\{([^,]+),). - Report keys cited but not defined (hard error) and entries defined but never cited (informational; the bibliography should usually contain only cited works).
Level 2: every entry is real
For each cited entry:
- If it has a
doi:curl -s "https://api.crossref.org/works/<doi>"and compare title (normalised), first author surname, and year. A DOI that returns 404 is fabricated or mistyped: search CrossRef by title to find the real one and report both. - If it has an arXiv
eprint:curl -s "http://export.arxiv.org/api/query?id_list=<id>"and compare title and first author. - If it has only a URL:
curl -sI <url>returns 2xx/3xx; flag as weakly verified. - If it has none of these:
curl -s "https://api.crossref.org/works?query.bibliographic=<title>&rows=3"and report whether a plausible match exists. Until it does, the entry is unverified.
Rate-limit to one request per second per host. Cache results in research/.citation-cache.json keyed by DOI so re-runs are fast.
A mismatch in title or author is reported as mismatched, with the fetched metadata beside the .bib entry, because it usually means the wrong DOI was attached to the right paper (or the right DOI to a paraphrased title).
Level 3: every claim is supported
This is the check that catches "the paper says X" when it does not. For each citation in context:
- Take the sentence (or list item) that carries the cite and the claim it makes.
- Open the matching note in
research/notes/(joined bykeyin the note's front matter). If there is a note, check whether the claim appears under One-sentence claim, Evidence, or Quotable. If there is no note, say so; the student should runpaper-readerbefore citing. - Classify: supported (the note contains it), plausible but unverified (the note is silent), contradicted (the note's Limitations or Evidence say otherwise), or overclaimed (the note supports a weaker version, e.g. "improves" cited as "solves").
- For a quotation, the exact text must appear in the note's Quotable section or in the source text; otherwise it is an unverified quote.
Report
Write research/citation-report.md and summarise in the reply:
# Citation report: chapters/02-related-work.tex (2026-09-21)
Cited keys: 41 Defined: 58 Missing keys: 1 Unused entries: 17
Verified: 36 Mismatched: 2 Unverified: 3 Claim checks: 30 supported, 8 unverified, 2 overclaimed, 1 contradicted
## Must fix
- `lee2022grading` is cited (line 112) but not in references.bib.
- `chen2021code`: DOI 10.1145/9999999 returns 404. CrossRef title search finds "..." with DOI 10.1145/3468264.3468563; confirm and replace.
- Line 87 cites `smith2023feedback` for "reduces grading time by half"; the note records a 23% reduction (Table 4). Overclaimed.
## Should check
- ...Ordering: missing keys and dead identifiers first (they fail compilation or expose fabrication), then contradictions and overclaims, then the unverified.
Rules
- Never "repair" a citation by inventing a DOI, year, or venue. Report and propose; the student confirms.
- Never mark a claim supported because it sounds right. Supported means the note or source text contains it.
- Re-run before every submission. The
citation-guardhook does Level 1 continuously on every edit; this skill does the rest.
Other versions5 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 5
- Boom5426/Nature-Paper-Skills★ 628same name
- Chanw-research/claude-code-paper-writing★ 42same name
- jkitchin/knowhow★ 42same name
- Nero1688/claude-academic-skills★ 13same name
- AlpaZZ/office-agent-skills★ 1same name
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 repository89 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- site/llms-full.txtllms.txt
- site/llms.txtllms.txt
- improveSkill
- academic-writingSkill
- benchmark-reportingSkill
- bibtex-managerSkill
- citation-graphSkill
- design-science-methodologySkill
- docx-thesisSkill
- experiment-reproducibilitySkill
- latex-toolkitSkill
- literature-searchSkill
- lit-review-synthesisSkill
- paper-readerSkill
- proofread-academicSkill
- research-figuresSkill
- research-methodologySkill
- research-questionSkill
- statistics-advisorSkill
- supervisor-updateSkill
- systematic-reviewSkill
- thesis-proposalSkill
- coolify-image-appSkill
- coolify-vps-baselineSkill
- deploy-verificationSkill
- express-prisma-coolify-imageSkill
- ghcr-coolify-pipelineSkill
- live-domain-cutoverSkill
- nextjs-coolify-imageSkill
- proxy-client-addressSkill
- vps-ops-toolkitSkill
- adr-writingSkill
- openapi-specSkill
- readme-writingSkill
- technical-writingSkill
- adversarial-reviewerSkill
- api-design-reviewSkill
- code-review-responseSkill
- create-agentSkill
- create-commandSkill
- create-hookSkill
- create-skillSkill
- db-migration-safetySkill
- dependency-upgradeSkill
- dockerfile-best-practicesSkill
- error-handling-patternsSkill
- executing-plansSkill
- explain-codebaseSkill
- fix-ciSkill
- github-actions-pipelineSkill
- grill-with-docsSkill
- incident-postmortemSkill
- logging-and-observabilitySkill
- parallel-agentsSkill
- performance-optimizationSkill
- refactoring-recipesSkill
- solid-principlesSkill
- systematic-debuggingSkill
- test-driven-developmentSkill
- The first 60 shown.
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.

