mcpField
C
citation-verification

citation-verification

github.com/kalarislabsProductivity77159 installsUpdated 4d ago
Repository

About citation-verification

Citation Verification is a skill for checking scholarly references, aimed at researchers maintaining BibTeX bibliographies and validating cited evidence. It checks identifiers, titles, first authors, and years against retrievable records, and verifies that sources support the claims citing them.

Key features

  1. 01Verify references against retrievable records
  2. 02Compare identifiers, titles, authors, and years
  3. 03Check whether papers support cited claims
  4. 04Report unverified and mismatched entries by status
  5. 05Run batch or single-entry BibTeX checks

Use cases

  1. 01Check references before submitting a paper
  2. 02Find DOI and metadata mismatches
  3. 03Confirm sources support cited statements
  4. 04Handle entries with missing or unresolved DOIs

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/kalarislabs/research-agent-skills --skill citation-verification

After installing, type/citation-verificationin Claude Code to confirm it loaded.

Bundled filesscripts/verify_citations.py

Details

From the project README

Citation Verification

Language models (and tired humans) produce references that look right but are not: plausible titles that were never published, real DOIs attached to the wrong paper, wrong years, invented co-authors. Citing a paper that does not exist can lead to desk rejection, a correction, or a misconduct inquiry. This skill makes verification systematic.

Non-negotiable rules

  1. Never write a reference from memory. Every entry must come from a retrievable record (Crossref, OpenAlex, arXiv, PubMed, publisher page).
  2. A reference is verified only when its identifier resolves to a record whose title, first author and year all match. A resolving DOI alone proves nothing.
  3. If you cannot verify a reference, say so. Mark it % UNVERIFIED in the .bib, tell the user, and never quietly keep it.
  4. Verify the claim too: open the abstract or the cited section and confirm the paper actually supports the sentence citing it.

Workflow

export [email protected]   # polite pool: faster, fewer rate limits
python scripts/verify_citations.py references.bib --json citation-report.json
python scripts/verify_citations.py --doi 10.1038/nature14539 10.1126/science.aaa8415
python scripts/verify_citations.py references.bib --keys smith2020,li2023   # re-check a subset

Each entry gets a status:

StatusMeaningAction
verifiedIdentifier resolves; title/author/year agreeNone
found-add-doiNo DOI in the entry, but an unambiguous match existsAdd the suggested doi field
mismatchDOI resolves to a different work, or year/author disagreeFix from the record, or find the intended paper
doi-not-foundDOI does not resolve anywhereTypo or fabricated: search by title
uncertainTitle matches but year/author disagree, or only a weak title matchCheck manually (reprints, errata, homonymous papers)
not-foundNo plausible match in Crossref, OpenAlex or arXivTreat as fabricated until proven otherwise (grey literature, theses and reports may legitimately be absent)

Exit code 0 means everything is verified or only missing DOIs; 1 means something needs a human.

Handling the hard cases

  • Conference papers without DOIs (NeurIPS, ICML, ICLR, many CS venues): the script falls back to arXiv. Cite the proceedings version with a url to the official proceedings page, and optionally keep eprint for the arXiv ID.
  • Preprint vs published: if both exist, cite the peer-reviewed version unless the venue asks otherwise. OpenAlex links versions of the same work.
  • Books and chapters: check ISBN via the publisher or Open Library. Crossref covers many but not all.
  • Datasets and software: verify DataCite DOIs (https://api.datacite.org/dois/{doi}) or Zenodo/Software Heritage identifiers.
  • Retractions: check each DOI against Retraction Watch data (in Crossref as update-to / relation metadata) and never cite a retracted paper as support.
  • Non-English or old literature: absence from these indexes is common. Confirm via library catalogs and document the source.

Reporting to the user

Summarize as a table: key, status, problem, and the fix you applied or propose. Apply only mechanical fixes automatically (adding a DOI for a found-add-doi match). Anything mismatch, uncertain or not-found requires the user's confirmation because only they know which paper they meant to cite.

Related skills

  • bibtex-hygiene: duplicates, missing fields, capitalization and formatting in the .bib file.
  • citation-management: finding and exporting references from literature databases.
  • literature-review: systematic searching and screening.

Comments

Markdown supported