Skip to content
Back to skills

Citation Management

BSecurity

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.

  • 9 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 2, 2026
ai-agentspythonbashapidatabase

Works with

  • api

Security analysis

B88/100
  • criticalSends environment variables or credentials to an external URL

Pro scans all 4 files and shows the line behind each finding

Scanned September 2, 2026

npx -y skills add sergeeey/Claude-cod-top-2026 --skill citation-management --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Citation Management?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Citation Management
[![Security: B — Skills Directory](https://www.skillsdirectory.com/api/skills/sergeeey-citation-management/badge)](https://www.skillsdirectory.com/skills/sergeeey-citation-management)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
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)
```bash
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 (external dependency — not shipped by this repo)
If you have a `bibtex_manager.py`-style script installed:
```bash
python bibtex_manager.py \
  --jsonl paper_db.jsonl --output references.bib
```
Otherwise, build the `.bib` file by hand from each paper's metadata.

### Search for a specific paper to add (external dependency — not shipped by this repo)
If you have a `search_semantic_scholar.py`-style script installed:
```bash
python search_semantic_scholar.py \
  --query "attention is all you need" --max-results 5 \
  --api-key "$(grep S2_API_Key ~/.claude/keys.md 2>/dev/null | cut -d: -f2 | tr -d ' ')"
```
Otherwise, use `WebFetch` against `https://api.semanticscholar.org/graph/v1/paper/search?query=...` directly.

### Harvest missing citations automatically
```bash
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
```bash
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
- Downstream: [paper-compilation](../paper-compilation/), [latex-formatting](../latex-formatting/)
- See also: [related-work-writing](../related-work-writing/)

Files in this skill

  • SKILL.md3.7 KB
  • plugin.json390 B
  • scripts/harvest_citations.py8.9 KB
  • scripts/validate_citations.py7.9 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.