From research-pipeline
Four-layer citation verification system inspired by AutoResearchClaw. Validates references against CrossRef, DataCite, arXiv, and Semantic Scholar APIs, then runs semantic matching and LLM relevance scoring. Catches hallucinated or broken references before they reach published content. Use this skill whenever the user says "verify my citations," "check my references," "validate my bibliography," "are these citations real," "citation audit," "reference check," "verify DOIs," "check for hallucinated references," or any request to validate the authenticity and relevance of academic references. Also trigger when the user mentions citation quality, broken DOIs, or reference integrity.
How this skill is triggered — by the user, by Claude, or both
Slash command
/research-pipeline:citation-verifierThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Four-layer verification system that validates every citation in a research library against
Four-layer verification system that validates every citation in a research library against external APIs and semantic analysis. Modeled on AutoResearchClaw's citation integrity system.
For citations with a doi field:
CrossRef API: https://api.crossref.org/works/{doi}
DataCite API: https://api.datacite.org/dois/{doi}
Check:
Scoring:
doi_verified: truedoi_verified: false, log the failureFor citations with an arxiv_id field:
arXiv API: https://export.arxiv.org/api/query?id_list={arxiv_id}
Check:
Scoring:
arxiv_verified: truearxiv_verified: falseFor citations that passed Layer 1 or 2, compare the stored abstract against the abstract returned by the API:
Store as semantic_score on the citation.
For each citation in the library, assess whether it's actually relevant to the library's stated topic:
Take the library description/name + the citation's title and abstract. Ask: "On a scale of 0 to 1, how relevant is this citation to the research topic [library name]? Consider whether it directly addresses the topic, provides supporting methodology, offers contrasting evidence, or is tangentially related."
Score thresholds:
Store as llm_relevance on the citation.
Query the citations table for the target library:
SELECT id, citation_key, title, doi, arxiv_id, verification_status
FROM citations
WHERE library_id = {id} AND verification_status = 'unverified'
ORDER BY id
Report to the user: "Found [X] unverified citations in [library name]. Running 4-layer verification — this may take a few minutes for large libraries."
Process citations in batches of 10 to respect API rate limits.
For each citation:
needs_discovery and suggest the user run
literature discovery to find proper identifiersRate limiting:
mailto header)Add a User-Agent or mailto parameter for CrossRef polite pool access.
For citations that passed Layer 1 or 2, compare abstracts. Use the Supabase embeddings if available, or generate on-the-fly using the OpenAI embeddings endpoint.
Batch citations into groups of 5-10 for efficient LLM assessment. Use a single prompt that evaluates the batch together for consistency.
Update each citation in Supabase:
UPDATE citations SET
verification_status = CASE
WHEN doi_verified OR arxiv_verified THEN 'verified'
WHEN (doi IS NOT NULL AND NOT doi_verified) OR (arxiv_id IS NOT NULL AND NOT arxiv_verified) THEN 'failed'
ELSE 'unverified'
END,
doi_verified = ...,
arxiv_verified = ...,
semantic_score = ...,
llm_relevance = ...,
verification_log = ...,
verified_at = now()
WHERE id = ...
Present results as:
Citation Verification Report for: [Library Name]
═══════════════════════════════════════════════
Total citations checked: [X]
Verified: [Y] ([%]) — DOI/arXiv confirmed, metadata matches
Failed: [Z] ([%]) — DOI/arXiv exists but metadata mismatch
Unverifiable: [W] ([%]) — no DOI or arXiv ID available
Hallucinated: [V] ([%]) — DOI/arXiv does not exist at all
Relevance Distribution:
Core (>0.8): [count]
Supporting (0.5-0.8): [count]
Tangential (0.2-0.5): [count]
Irrelevant (<0.2): [count]
Action Items:
- [list citations that need manual review]
- [list citations with no identifiers that need discovery]
- [list potentially hallucinated citations to remove or replace]
unverified with a note suggesting literature discoveryFor the full Supabase schema, read references/supabase-migration.sql in the
research-pipeline skill directory.
Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub moxywolfllc/moxywolf-plugins --plugin research-pipeline