Comprehensive citation management for academic research. Resolve bibliographic identifiers, extract accurate metadata, validate citations, deduplicate references, and generate properly formatted BibTeX entries. This skill should be used when you need to verify citation information, convert DOIs/PMIDs/arXiv IDs to BibTeX, or ensure reference accuracy in scientific writing.
SKILL.md
Citation Management
Overview
Manage citations systematically throughout the research and writing process. This skill provides tools and strategies for extracting accurate metadata from identifiers and bibliographic sources, validating citation information, cleaning duplicate references, and generating properly formatted BibTeX entries.
Critical for maintaining citation accuracy, avoiding reference errors, and ensuring reproducible research.
When to Use This Skill
Use this skill when:
Resolving known or candidate papers from identifiers, titles, Google Scholar, or PubMed records
Converting DOIs, PMIDs, or arXiv IDs to properly formatted BibTeX
Extracting complete metadata for citations (authors, title, journal, year, etc.)
Validating existing citations for accuracy
Cleaning and formatting BibTeX files
Checking citation counts for known papers in a specific field
Verifying that citation information matches the actual publication
Building a bibliography for a manuscript or thesis
Checking for duplicate citations
Ensuring consistent citation formatting
Core Workflow
Citation management follows a systematic process:
Phase 1: Citation Source Lookup
Goal: Locate exact source records for known references or tightly scoped citation candidates.
Google Scholar Search
Google Scholar provides the most comprehensive coverage across disciplines.
Basic Search:
# Search for papers on a topic
python scripts/search_google_scholar.py "CRISPR gene editing" \
--limit 50 \
--output results.json
# Search with year filter
python scripts/search_google_scholar.py "machine learning protein folding" \
--year-start 2020 \
--year-end 2024 \
--limit 100 \
--output ml_proteins.json
Installs
0
Advanced Search Strategies (see references/google_scholar_search.md):
Use quotation marks for exact phrases: "deep learning"
Search by author: author:LeCun
Search in title: intitle:"neural networks"
Exclude terms: machine learning -survey
Find highly cited papers using sort options
Filter by date ranges to get recent work
Best Practices:
Use specific, targeted search terms
Include key technical terms and acronyms
Filter by recent years for fast-moving fields
Check "Cited by" to find seminal papers
Export top results for further analysis
PubMed Search
PubMed specializes in biomedical and life sciences literature (35+ million citations).
Advanced PubMed Queries (see references/pubmed_search.md):
Use MeSH terms: "Diabetes Mellitus"[MeSH]
Field tags: "cancer"[Title], "Smith J"[Author]
Boolean operators: AND, OR, NOT
Date filters: 2020:2024[Publication Date]
Publication types: "Review"[Publication Type]
Combine with E-utilities API for automation
Best Practices:
Use MeSH Browser to find correct controlled vocabulary
Construct complex queries in PubMed Advanced Search Builder first
Include multiple synonyms with OR
Retrieve PMIDs for easy metadata extraction
Export to JSON or directly to BibTeX
Phase 2: Metadata Extraction
Goal: Convert paper identifiers (DOI, PMID, arXiv ID) to complete, accurate metadata.
Quick DOI to BibTeX Conversion
For single DOIs, use the quick conversion tool:
# Convert single DOI
python scripts/doi_to_bibtex.py 10.1038/s41586-021-03819-2
# Convert multiple DOIs from a file
python scripts/doi_to_bibtex.py --input dois.txt --output references.bib
# Different output formats
python scripts/doi_to_bibtex.py 10.1038/nature12345 --format json
Comprehensive Metadata Extraction
For DOIs, PMIDs, arXiv IDs, or URLs:
# Extract from DOI
python scripts/extract_metadata.py --doi 10.1038/s41586-021-03819-2
# Extract from PMID
python scripts/extract_metadata.py --pmid 34265844
# Extract from arXiv ID
python scripts/extract_metadata.py --arxiv 2103.14030
# Extract from URL
python scripts/extract_metadata.py --url "https://www.nature.com/articles/s41586-021-03819-2"
# Batch extraction from file (mixed identifiers)
python scripts/extract_metadata.py --input identifiers.txt --output citations.bib
Metadata Sources (see references/metadata_extraction.md):
CrossRef API: Primary source for DOIs
Comprehensive metadata for journal articles
Publisher-provided information
Includes authors, title, journal, volume, pages, dates
Free, no API key required
PubMed E-utilities: Biomedical literature
Official NCBI metadata
Includes MeSH terms, abstracts
PMID and PMCID identifiers
Free, API key recommended for high volume
arXiv API: Preprints in physics, math, CS, q-bio
Complete metadata for preprints
Version tracking
Author affiliations
Free, open access
DataCite API: Research datasets, software, other resources
Metadata for non-traditional scholarly outputs
DOIs for datasets and code
Free access
What Gets Extracted:
Required fields: author, title, year
Journal articles: journal, volume, number, pages, DOI
# 1. Search for papers on your topic
python scripts/search_pubmed.py \
'"CRISPR-Cas Systems"[MeSH] AND "Gene Editing"[MeSH]' \
--date-start 2020 \
--limit 200 \
--output crispr_papers.json
# 2. Extract DOIs from search results and convert to BibTeX
python scripts/extract_metadata.py \
--input crispr_papers.json \
--output crispr_refs.bib
# 3. Add specific papers by DOI
python scripts/doi_to_bibtex.py 10.1038/nature12345 >> crispr_refs.bib
python scripts/doi_to_bibtex.py 10.1126/science.abcd1234 >> crispr_refs.bib
# 4. Format and clean the BibTeX file
python scripts/format_bibtex.py crispr_refs.bib \
--deduplicate \
--sort year \
--descending \
--output references.bib
# 5. Validate all citations
python scripts/validate_citations.py references.bib \
--auto-fix \
--report validation.json \
--output final_references.bib
# 6. Review validation report and fix any remaining issues
cat validation.json
# 7. Use in your LaTeX document
# \bibliography{final_references}
Citation Validation In Review Documents
When a review document already exists, use this skill for the technical citation layer:
Extract all cited identifiers and bibliography records
Validate metadata against DOI, PMID, arXiv, CrossRef, or PubMed sources
Normalize BibTeX keys and citation style fields
Verify the final bibliography before manuscript build or submission
# After completing literature review
# Verify all citations in the review document
python scripts/validate_citations.py my_review_references.bib --report review_validation.json
# Format for specific citation style if needed
python scripts/format_bibtex.py my_review_references.bib \
--style nature \
--output formatted_refs.bib
Search Strategies
Google Scholar Best Practices
Finding Seminal and High-Impact Papers (CRITICAL):
Always prioritize papers based on citation count, venue quality, and author reputation:
Look for review articles from Tier-1 journals for overview
Check "Cited by" for impact assessment and recent follow-up work
Use citation alerts for tracking new citations to key papers
Filter by top venues using source:Nature or source:Science
Search for papers by known field leaders using author:LastName
Advanced Operators (full list in references/google_scholar_search.md):
"exact phrase" # Exact phrase matching
author:lastname # Search by author
intitle:keyword # Search in title only
source:journal # Search specific journal
-exclude # Exclude terms
OR # Alternative terms
2020..2024 # Year range
Example Searches:
# Find recent reviews on a topic
"CRISPR" intitle:review 2023..2024
# Find papers by specific author on topic
author:Church "synthetic biology"
# Find highly cited foundational work
"deep learning" 2012..2015 sort:citations
# Exclude surveys and focus on methods
"protein folding" -survey -review intitle:method
PubMed Best Practices
Using MeSH Terms:
MeSH (Medical Subject Headings) provides controlled vocabulary for precise searching.
[Title] # Search in title only
[Title/Abstract] # Search in title or abstract
[Author] # Search by author name
[Journal] # Search specific journal
[Publication Date] # Date range
[Publication Type] # Article type
[MeSH] # MeSH term
Building Complex Queries:
# Clinical trials on diabetes treatment published recently
"Diabetes Mellitus, Type 2"[MeSH] AND "Drug Therapy"[MeSH]
AND "Clinical Trial"[Publication Type] AND 2020:2024[Publication Date]
# Reviews on CRISPR in specific journal
"CRISPR-Cas Systems"[MeSH] AND "Nature"[Journal] AND "Review"[Publication Type]
# Specific author's recent work
"Smith AB"[Author] AND cancer[Title/Abstract] AND 2022:2024[Publication Date]
E-utilities for Automation:
The scripts use NCBI E-utilities API for programmatic access:
ESearch: Search and retrieve PMIDs
EFetch: Retrieve full metadata
ESummary: Get summary information
ELink: Find related articles
See references/pubmed_search.md for complete API documentation.
# You have a text file with DOIs (one per line)
# dois.txt contains:
# 10.1038/s41586-021-03819-2
# 10.1126/science.aam9317
# 10.1016/j.cell.2023.01.001
# Convert all to BibTeX
python scripts/doi_to_bibtex.py --input dois.txt --output references.bib
# Validate the result
python scripts/validate_citations.py references.bib --verbose
Example 3: Cleaning an Existing BibTeX File
# You have a messy BibTeX file from various sources
# Clean it up systematically
# Step 1: Format and standardize
python scripts/format_bibtex.py messy_references.bib \
--output step1_formatted.bib
# Step 2: Remove duplicates
python scripts/format_bibtex.py step1_formatted.bib \
--deduplicate \
--output step2_deduplicated.bib
# Step 3: Validate and auto-fix
python scripts/validate_citations.py step2_deduplicated.bib \
--auto-fix \
--output step3_validated.bib
# Step 4: Sort by year
python scripts/format_bibtex.py step3_validated.bib \
--sort year \
--descending \
--output clean_references.bib
# Step 5: Final validation report
python scripts/validate_citations.py clean_references.bib \
--report final_validation.json \
--verbose
# Review report
cat final_validation.json
Example 4: Finding and Citing Seminal Papers
# Find highly cited papers on a topic
python scripts/search_google_scholar.py "AlphaFold protein structure" \
--year-start 2020 \
--year-end 2024 \
--sort-by citations \
--limit 20 \
--output alphafold_seminal.json
# Extract the top 10 by citation count
# (script will have included citation counts in JSON)
# Convert to BibTeX
python scripts/extract_metadata.py \
--input alphafold_seminal.json \
--output alphafold_refs.bib
# The BibTeX file now contains the most influential papers
Citation Outputs
Citation management outputs are reusable in writing and submission workflows:
Export validated BibTeX for LaTeX manuscripts
Verify citations match publication standards
Format references according to journal requirements
Keep bibliography files deduplicated and reproducible
Generate properly formatted references
Validate citations meet venue requirements
Resources
Bundled Resources
References (in references/):
google_scholar_search.md: Complete Google Scholar search guide
pubmed_search.md: PubMed and E-utilities API documentation
metadata_extraction.md: Metadata sources and field requirements
citation_validation.md: Validation criteria and quality checks
bibtex_formatting.md: BibTeX entry types and formatting rules
Scripts (in scripts/):
search_google_scholar.py: Google Scholar search automation
search_pubmed.py: PubMed E-utilities API client
extract_metadata.py: Universal metadata extractor
validate_citations.py: Citation validation and verification
format_bibtex.py: BibTeX formatter and cleaner
doi_to_bibtex.py: Quick DOI to BibTeX converter
Assets (in assets/):
bibtex_template.bib: Example BibTeX entries for all types