Skip to content

Guide · Agent skill

How to use the citation-crosscheck agent skill for bib audits

Updated · written with AI from the project's own documentation and checked against our catalogue data

citation-crosscheck is an agent skill that audits the bibliography of a LaTeX paper field by field. It compares each entry in your .bib file against a record fetched independently from the web, so wrong authors, years, venues or DOIs get caught before submission. This guide explains what the skill does, how to install it, how to trigger it with plain requests, and what to check before you trust its output.

Citation Cross-Checkwanshuiyin/Auto-claude-code-research-in-sleep · MIT

Quick start

  1. 1Download the ZIP. Download the citation-crosscheck skill ZIP from this page.
  2. 2Unzip into a skills folder. Place the citation-crosscheck folder in ~/.claude/skills/ for all projects, or in .claude/skills/ inside your paper's repository.
  3. 3Or upload in the Claude apps. In the Claude apps, open Settings, go to Capabilities, then Skills, and upload the skill.
  4. 4Finalize the bibliography. Make sure your .bib file is in its final state, because the skill is meant to run once on the finished bibliography.
  5. 5Ask in plain language. Request a citation crosscheck or double-blind citation check for your paper directory or .bib file.
  6. 6Review the spreadsheet. Open the exported .xlsx, start with MISMATCH rows, and verify NEEDS_WEBCHECK urls manually.

What is an agent skill, and what does this one make the agent do?

An agent skill is a folder with a SKILL.md file that an AI coding agent loads when a request matches the skill's description. The skill gives the agent a fixed procedure to follow instead of improvising.

This skill runs a double-blind, field-level check. One agent extracts each cited entry verbatim from your local .bib file. A second agent re-fetches the same paper's record from the web without seeing the .bib. A third extractor produces a mechanical field-by-field delta that flags dropped or re-ordered authors, wrong years, wrong venues, and bad DOIs or arXiv ids. The main agent then assigns a MATCH, MINOR or MISMATCH verdict to each reference and exports a side-by-side spreadsheet.

  • MATCH: bibliographically equivalent, cosmetic differences only.
  • MINOR: formatting differences, or a preprint versus published venue, with no correction required.
  • MISMATCH: a real discrepancy such as a wrong or missing author, wrong year, wrong venue or wrong id.
  • NEEDS_WEBCHECK: the web search could not confirm the entry, but it is a @misc, blog or tech-report whose url must be fetched before any verdict. Such entries are never marked MISMATCH straight away.

Install the citation-crosscheck skill

Download the skill ZIP from this page. The package contains SKILL.md. Unzip it so that the citation-crosscheck folder sits in one of two places: ~/.claude/skills/ for all your projects, or .claude/skills/ inside a single project.

If you use the Claude apps instead, open Settings, go to Capabilities, then Skills, and upload the skill there.

  • Personal install: ~/.claude/skills/citation-crosscheck/
  • Project install: .claude/skills/citation-crosscheck/ inside your paper's repository
  • Claude apps: Settings → Capabilities → Skills

Requirements before you run it

The skill needs Python 3 for its citation-set extraction script and Bash to run it. The host agent also needs access to the Read, Grep, Glob, Write, Agent, WebFetch and WebSearch tools. It needs internet access to academic sources such as arXiv, DBLP, CrossRef, ACL Anthology and OpenReview.

The skill runs scripts and uses the network. Read the next section before running it on a paper.

  • Python 3 available on the command line
  • Bash, Read, Grep, Glob, Write, Agent, WebFetch and WebSearch tool access in the host agent
  • Internet access to arXiv, DBLP, CrossRef, ACL Anthology and OpenReview

Safety notes: scripts and network access

The skill runs a Python script that scans your paper's .tex files to build the list of cited keys. It also makes web requests to academic sources. Run it on the paper's own source directory, not on an unrelated repository, so the scan stays focused.

The web-checking agent is kept blind on purpose. It receives only each paper's title, first author and an opaque run-local key. It does not read your .bib or any repository file. Do not change this setup, because the independence of the check depends on it.

  • The script scans the paper directory for \cite commands; it skips folders with template, example, vendor or upstream in the name.
  • Files written include an .xlsx spreadsheet in the paper directory and several intermediate JSON files kept for audit.
  • The skill is designed to run once after the bibliography is final. Do not wrap it in /loop, /schedule or CronCreate.

How to trigger the skill with natural requests

You do not need a special command. Ask in plain language, and include one of the trigger phrases the skill listens for. Phrases in the skill description include citation crosscheck, double-blind citation check, verify bib against scholar, bib field audit, and 引用交叉核对. You can also ask for a field-accuracy check before submission.

The argument hint in the skill lists optional inputs: a paper directory or .bib file, an --xlsx output path, and --cited-only or --all to choose scope. By default only cited entries are checked.

  • 'Run a citation crosscheck on the paper in ./paper.'
  • 'Do a double-blind citation check on my bib before I submit.'
  • 'Verify bib against scholar for every entry in refs.bib, including uncited ones.' (uses --all)
  • 'Run a bib field audit and give me the spreadsheet.'

Read the output and decide what to fix

Open the .xlsx file to see each reference side by side with the local .bib entry and the independently fetched record. Start with MISMATCH rows, since they show a real field difference. Check each one against the publisher page before you edit the .bib.

Use MINOR rows to tidy formatting, for example a preprint that has since been published. Resolve every NEEDS_WEBCHECK row by checking the entry's url yourself.

  • MISMATCH: fix the field in the .bib, then rerun once the bibliography is final.
  • NEEDS_WEBCHECK: verify the url manually; the skill will not call it fabricated on its own.
  • Keep the intermediate JSON files if you need an audit trail.

What people use it for

  • Certifying the field accuracy of a bibliography before a journal or conference submission.
  • Catching a dropped or re-ordered author that a quick read of the .bib entry would miss.
  • Finding a wrong year or venue in entries that were copied by hand from older papers.
  • Checking DOIs and arXiv ids that might not resolve, before reviewers see them.
  • Adding a field-level accuracy pass alongside an existing citation-audit review.

Frequently asked questions

Is citation-crosscheck free to use?

The source material for this page does not state a licence price or terms beyond the MIT licence listed for the skill's repository. Check the repository's licence file for the terms that apply.

What do I need to run the citation-crosscheck skill?

You need Python 3, Bash, the host agent's Read, Grep, Glob, Write, Agent, WebFetch and WebSearch tools, and internet access to arXiv, DBLP, CrossRef, ACL Anthology and OpenReview. The skill runs scripts and uses the network.

How is citation-crosscheck different from citation-audit?

citation-audit checks existence, metadata and whether a citation supports the claim it is attached to. citation-crosscheck only checks bibliographic fields, using two blind extractors and a mechanical field diff, and does not read the .tex text. Use it alongside citation-audit, not instead of it.

Where do I put the citation-crosscheck skill folder?

Place it in ~/.claude/skills/ for personal use across projects, or in .claude/skills/ inside a specific project. In the Claude apps you can instead upload it under Settings, Capabilities, then Skills.

Why does the skill say not to run it on a loop or schedule?

The verdict only changes when the bibliography changes, so repeated runs add no new information. The skill is meant to run once after the bibliography is final.

Why are some references marked NEEDS_WEBCHECK instead of MISMATCH?

Some entries are blogs, tech reports or other @misc items that the web search cannot find through its index. The skill asks the main agent to fetch the entry's url before giving any verdict, so a legitimate source is not labelled fabricated.

New agent skills, repos and AI tools — every week

The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.

Our verdict

Use citation-crosscheck if you are certifying bibliography field accuracy before submission, and you can run Python and allow web access. Skip it if you only need to know whether a citation supports the claim it sits next to, since citation-audit covers that, or if you want a check that runs automatically on a timer.

Download the skill