/citation-management
Manage BibTeX citations for LaTeX papers. Harvest missing citations from a draft using Semantic Scholar, validate cite keys against .bib files, deduplicate entries, and format bibliography. Use when working with references, BibTeX, or citations.
$ npx -y skills add lingzhi227/agent-research-skills --skill citation-management --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/citation-management
Context preview
The summary Claude sees to decide when to auto-load this skill.
Manage BibTeX citations for LaTeX papers. Harvest missing citations from a draft using Semantic Scholar, validate cite keys against .bib files, deduplicate entries, and format bibliography. Use when working with references, BibTeX, or citations.
SKILL.md
citation-management.SKILL.mdname: citation-management
description: Manage BibTeX citations for LaTeX papers. Harvest missing citations from a draft using Semantic Scholar, validate cite keys against .bib files, deduplicate entries, and format bibliography. Use when working with references, BibTeX, or citations.
argument-hint: [tex-or-bib-file]
Citation Management
Manage the full lifecycle of citations in a LaTeX paper.
Input
- `$0` — Action: `harvest`, `validate`, `add`, `format`
- `$1` — Path to `.tex` or `.bib` file
Scripts
Validate citations (check all cite keys resolve)
python ~/.claude/skills/citation-management/scripts/validate_citations.py \
--tex paper/main.tex --bib paper/references.bib --check-figures --figures-dir paper/figures/
Reports: missing citations, unused bib entries, duplicate keys, duplicate sections, duplicate labels, undefined references, missing figures.
Generate BibTeX from paper database
python ~/.claude/skills/deep-research/scripts/bibtex_manager.py \
--jsonl paper_db.jsonl --output references.bib
Search for a specific paper to add
python ~/.claude/skills/deep-research/scripts/search_semantic_scholar.py \
--query "attention is all you need" --max-results 5 \
--api-key "$(grep S2_API_Key /Users/lingzhi/Code/keys.md 2>/dev/null | cut -d: -f2 | tr -d ' ')"
Harvest missing citations automatically
python ~/.claude/skills/citation-management/scripts/harvest_citations.py \
--tex paper/main.tex --bib paper/references.bib --output candidates.bib --max-rounds 10
Scans .tex for uncited claims, searches Semantic Scholar, outputs candidate BibTeX entries. Key flags: `--dry-run` (preview only), `--verbose`, `--api-key`
Auto-fix missing citation placeholders
python ~/.claude/skills/citation-management/scripts/validate_citations.py \
--tex paper/main.tex --bib paper/references.bib --fix
Generates `references_fixed.bib` with placeholder entries for all missing citation keys.
Action: `harvest` — Iterative Citation Harvesting
Based on AI-Scientist's 20-round citation harvesting loop. For each round:
1. Read the current `.tex` draft 2. Identify the most important missing citation 3. Search Semantic Scholar via script 4. Select the most relevant paper from results 5. Extract BibTeX and generate a clean key (`lastNameYearWord`) 6. Append to `.bib` (skip if key exists) 7. Insert `\cite{key}` at the appropriate location 8. Stop when no more gaps or 20 rounds reached
**Key rules:**
- DO NOT add a citation that already exists
- Only add citations found via API — never fabricate
- Cite broadly — not just popular papers
- Do not copy verbatim from prior literature
Action: `validate` — Pre-Compilation Check
Run `validate_citations.py` to catch all issues before compilation. Fix any reported problems.
Action: `add` — Add Specific Paper
Search Semantic Scholar for the paper, extract BibTeX, clean the key, append to `.bib`.
BibTeX key format: `firstAuthorLastNameYearFirstContentWord` (e.g., `vaswani2017attention`)
Action: `format` — Standardize .bib
- Sort entries alphabetically by key
- Ensure consistent indentation (2 spaces)
- Remove empty fields
- Protect proper nouns with `{Braces}` in titles
- Ensure required fields per entry type
Related Skills
- Upstream: [literature-search](../literature-search/), [deep-research](../deep-research/)
- Downstream: [paper-compilation](../paper-compilation/), [latex-formatting](../latex-formatting/)
- See also: [related-work-writing](../related-work-writing/)
Read more
name: citation-management description: Manage BibTeX citations for LaTeX papers. Harvest missing citations from a draft using Semantic Scholar, validate cite keys against .bib files, deduplicate entries, and format bibliography. Use when working with references, BibTeX, or citations. argument-hint: [tex-or-bib-file]
Citation Management
Manage the full lifecycle of citations in a LaTeX paper.
Input
- `$0` — Action: `harvest`, `validate`, `add`, `format`
- `$1` — Path to `.tex` or `.bib` file
Scripts
Validate citations (check all cite keys resolve)
python ~/.claude/skills/citation-management/scripts/validate_citations.py \ --tex paper/main.tex --bib paper/references.bib --check-figures --figures-dir paper/figures/
Reports: missing citations, unused bib entries, duplicate keys, duplicate sections, duplicate labels, undefined references, missing figures.
Generate BibTeX from paper database
python ~/.claude/skills/deep-research/scripts/bibtex_manager.py \ --jsonl paper_db.jsonl --output references.bib
Search for a specific paper to add
python ~/.claude/skills/deep-research/scripts/search_semantic_scholar.py \ --query "attention is all you need" --max-results 5 \ --api-key "$(grep S2_API_Key /Users/lingzhi/Code/keys.md 2>/dev/null | cut -d: -f2 | tr -d ' ')"
Harvest missing citations automatically
python ~/.claude/skills/citation-management/scripts/harvest_citations.py \ --tex paper/main.tex --bib paper/references.bib --output candidates.bib --max-rounds 10
Scans .tex for uncited claims, searches Semantic Scholar, outputs candidate BibTeX entries. Key flags: `--dry-run` (preview only), `--verbose`, `--api-key`
Auto-fix missing citation placeholders
python ~/.claude/skills/citation-management/scripts/validate_citations.py \ --tex paper/main.tex --bib paper/references.bib --fix
Generates `references_fixed.bib` with placeholder entries for all missing citation keys.
Action: `harvest` — Iterative Citation Harvesting
Based on AI-Scientist's 20-round citation harvesting loop. For each round:
1. Read the current `.tex` draft 2. Identify the most important missing citation 3. Search Semantic Scholar via script 4. Select the most relevant paper from results 5. Extract BibTeX and generate a clean key (`lastNameYearWord`) 6. Append to `.bib` (skip if key exists) 7. Insert `\cite{key}` at the appropriate location 8. Stop when no more gaps or 20 rounds reached
**Key rules:**
- DO NOT add a citation that already exists
- Only add citations found via API — never fabricate
- Cite broadly — not just popular papers
- Do not copy verbatim from prior literature
Action: `validate` — Pre-Compilation Check
Run `validate_citations.py` to catch all issues before compilation. Fix any reported problems.
Action: `add` — Add Specific Paper
Search Semantic Scholar for the paper, extract BibTeX, clean the key, append to `.bib`.
BibTeX key format: `firstAuthorLastNameYearFirstContentWord` (e.g., `vaswani2017attention`)
Action: `format` — Standardize .bib
- Sort entries alphabetically by key
- Ensure consistent indentation (2 spaces)
- Remove empty fields
- Protect proper nouns with `{Braces}` in titles
- Ensure required fields per entry type
Related Skills
- Upstream: [literature-search](../literature-search/), [deep-research](../deep-research/)
- Downstream: [paper-compilation](../paper-compilation/), [latex-formatting](../latex-formatting/)
- See also: [related-work-writing](../related-work-writing/)
31 skills for Claude Code covering the full academic research paper lifecycle — from literature search to slide generation — plus GitHub repository analysis for research topics. Extracted from 17 GitHub repos studying LLM-agent-driven research automation.
Other skills on agent-research-skills.
- /algorithm-design
Design algorithms with LaTeX pseudocode and UML diagrams. Generate algorithmic environments, Mermaid class/sequence diagrams, and ensure consistency between pseudocode and implementation. Use when formalizing methods for a paper.
Open skill - /atomic-decomposition
Decompose research ideas into atomic, self-contained concepts with bidirectional math-code mapping. For each concept, extract the math formula from papers and find code implementations. Use for complex system papers requiring formal grounding.
Open skill - /backward-traceability
Make every number in the final PDF traceable to the exact code line that produced it. Uses \hypertarget/\hyperlink LaTeX commands and \num{formula} evaluated at compile time. Use for reproducibility and data integrity verification.
Open skill - /code-debugging
Debug experiment code with structured error analysis. Categorize errors, apply targeted fixes with retry logic, and use reflection to prevent recurring issues. Use when experiment code fails or produces incorrect results.
Open skill - /data-analysis
Generate statistical analysis code with 4-round review. Select appropriate statistical tests, interpret results, and produce analysis reports with p-values, effect sizes, and confidence intervals. Use when analyzing experimental data for a paper.
Open skill - /deep-research
Conduct systematic academic literature reviews in 6 phases, producing structured notes, a curated paper database, and a synthesized final report. Output is organized by phase for clarity.
Open skill

