From citationhunter
Research paper citation auditor that audits a claim or paper against current literature, identifying missing citations, weak references, contradictory evidence, and producing a structured citation coverage score.
How this skill is triggered — by the user, by Claude, or both
Slash command
/citationhunter:citationhunter citationhunter transformers attention is all you need | citationhunter https://arxiv.org/abs/1706.03762 | citationhunter 'Transformer models dominate most NLP tasks'citationhunter transformers attention is all you need | citationhunter https://arxiv.org/abs/1706.03762 | citationhunter 'Transformer models dominate most NLP tasks'This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are inside the `/citationhunter` SKILL. This is a structured citation audit tool with a specific output contract. Do NOT treat `/citationhunter` as a generic "find papers about X" prompt.
You are inside the /citationhunter SKILL. This is a structured citation audit tool with a specific output contract. Do NOT treat /citationhunter as a generic "find papers about X" prompt.
📋 CitationHunter v{VERSION} · audit {YYYY-MM-DD}
Replace {VERSION} with the version from frontmatter and {YYYY-MM-DD} with today's date. One blank line after, then the audit begins.
- (hyphen with spaces).## or ### section headers except as specified in the template below.[name](url) at first mention. Raw URLs are forbidden in body text. Plain text names allowed only when no URL exists.Sources:, References:, or Further reading: block. All citations belong inline in the audit body.📋 CitationHunter v1.0.0 · audit {YYYY-MM-DD}
{CLAIM_OR_PAPER_TITLE}
**Citation Coverage Score:** {N}/10
**Sources searched:** Semantic Scholar, arXiv, CrossRef, OpenAlex
**Papers reviewed:** {N}
**Average citation freshness:** {N} years
---
### 1. Missing Citations
Key statements that appear unsupported. For each: the unsupported claim, why it needs a citation, and 1-2 suggested papers (canonical or recent) with inline links.
### 2. Weak Citations
References that are outdated, low-impact, or superseded. For each: the cited work, why it is weak, and 1-2 stronger alternatives with inline links.
### 3. Contradictory Evidence
Papers that challenge or qualify the claim. For each: the contradicting finding, how it weakens the claim, and a suggestion to acknowledge it.
### 4. Methodological Gaps
(If auditing a full paper.) Missing baselines, ablations, dataset limitations, or statistical concerns.
---
**Methodology:** Claims extracted and matched against Semantic Scholar / arXiv / CrossRef / OpenAlex corpora. Citation freshness computed as years since publication. Contradictions identified via citation graph analysis and direct literature search.
Determine what was provided:
| Input type | Example | Action |
|---|---|---|
| Single claim / sentence | "Transformer models dominate most NLP tasks." | Audit as standalone claim |
| arXiv link | https://arxiv.org/abs/1706.03762 | Fetch paper, extract key claims, audit each |
| Paper title | "Attention Is All You Need" | Search for paper, then audit |
| PDF / LaTeX | User provides file path | Read file, extract claims, audit |
If input is ambiguous, ask ONE clarifying question.
https://arxiv.org/abs/{ID}.https://export.arxiv.org/api/query?id_list={ID} for full metadata.https://api.semanticscholar.org/graph/v1/paper/search?query={TITLE}&limit=5https://api.crossref.org/works?query={TITLE}&rows=5Break the input into individual factual/scientific claims:
For a single sentence, this may be 1-3 claims. For a full paper, this may be 10-30 claims.
Output a structured list of claims to audit.
For each claim, execute the following search strategy in parallel:
curl -s "https://api.semanticscholar.org/graph/v1/paper/search?query={QUERY}&limit=20&fields=title,url,year,citationCount,abstract,authors" | python3 -m json.tool 2>/dev/null || echo "API unavailable"
Search terms should combine key concepts from the claim:
curl -s "https://export.arxiv.org/api/query?search_query=all:{QUERY}&max_results=15&sortBy=relevance&sortOrder=descending" | python3 -c "
import sys, xml.etree.ElementTree as ET
data = sys.stdin.read()
root = ET.fromstring(data)
ns = {'a': 'http://www.w3.org/2005/Atom', 'ar': 'http://arxiv.org/schemas/atom'}
for entry in root.findall('a:entry', ns):
title = entry.find('a:title', ns)
published = entry.find('a:published', ns)
link = entry.find('a:id', ns)
print(f'{published.text[:4] if published is not None else \"?\"} | {title.text.strip() if title is not None else \"?\"} | {link.text if link is not None else \"?\"}')
" 2>/dev/null || echo "API unavailable"
curl -s "https://api.crossref.org/works?query={QUERY}&rows=10" | python3 -c "
import sys, json
data = json.load(sys.stdin)
for item in data.get('message', {}).get('items', []):
title = (item.get('title') or ['?'])[0]
year = (item.get('published-print') or item.get('published-online') or {}).get('date-parts', [[None]])[0][0]
doi = item.get('DOI', '')
cited = item.get('is-referenced-by-count', 0)
print(f'{year} | {title} | https://doi.org/{doi} | cited:{cited}')
" 2>/dev/null || echo "API unavailable"
OpenAlex is a fully open, no-key-required index of 250M+ scholarly works. Use it when Semantic Scholar is rate-limited or for broader coverage.
curl -s "https://api.openalex.org/works?search={QUERY}&per-page=10&select=title,publication_year,cited_by_count,doi,primary_location" | python3 -c "
import sys, json
data = json.load(sys.stdin)
for item in data.get('results', []):
title = item.get('title', '?')
year = item.get('publication_year', '?')
cited = item.get('cited_by_count', 0)
doi = item.get('doi') or ''
url = doi if doi else ''
print(f'{year} | {title[:80]} | {url} | cited:{cited}')
" 2>/dev/null || echo "API unavailable"
WebSearch("{CLAIM} survey 2025 2026")
WebSearch("{CLAIM} paper review")
WebSearch("{TOPIC} recent advances")
For each claim, classify based on the search results:
Criteria: Claim asserts a factual/scientific statement but no citation is provided. AND the claim is non-obvious (not common knowledge in the field).
Output for each:
- **Claim:** "{exact text of unsupported statement}"
**Why it needs a citation:** {1-sentence explanation}
**Suggested citation:** [{paper title}](url) ({year}) - {1-sentence relevance}
**Alternative:** [{paper title}](url) ({year}) - {1-sentence relevance}
Criteria: A citation IS provided, but is:
Output for each:
- **Cited:** [{paper title}](url) ({year}, {N} citations)
**Issue:** {why it is weak}
**Suggested replacement:** [{paper title}](url) ({year}, {N} citations) - {1-sentence explanation}
**Alternative:** [{paper title}](url) ({year}, {N} citations)
Criteria: Papers exist that present findings which:
Output for each:
- **Claim:** "{exact text}"
**Contradicting paper:** [{paper title}](url) ({year}, {N} citations)
**What it found:** {1-2 sentence summary of contradicting finding}
**Suggested action:** Acknowledge this limitation / qualify the claim
Compute a score 0-10 based on:
| Factor | Weight | Criteria |
|---|---|---|
| Citation sufficiency | 40% | What fraction of claims have adequate citations |
| Citation freshness | 25% | Weighted average age of citations (lower = better) |
| Citation relevance | 20% | Are cited papers actually about the claim |
| Contradiction acknowledgment | 15% | Are opposing views cited or acknowledged |
Score = weighted sum, rounded to one decimal.
Follow the AUDIT OUTPUT TEMPLATE. If auditing a full paper, include all four sections. If auditing a single claim, include only Missing Citations, Contradictory Evidence, and the Score (skip Weak Citations if no existing citations to evaluate, skip Methodological Gaps).
After the audit, if the user provided a single claim, offer:
To audit a full paper, provide an arXiv link, paper title, or upload a PDF.
To get recommendations for addressing the gaps above, ask "how to fix?"
Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
npx claudepluginhub liodon-ai/citationhunter --plugin citationhunter