Citation Management
Overview
Manage citations systematically throughout the research and writing process. This skill provides tools and strategies for bibliography construction, BibTeX generation, metadata extraction from multiple sources (CrossRef, PubMed, arXiv), duplicate cleanup, and citation-style formatting.
This is a technical reference-management skill, not the final authority on whether a cited source supports a manuscript claim. Use citation-verification for source-existence, DOI/PMID consistency, claim-support, and citation-drift verdicts.
When to Use This Skill
Use this skill when:
- Locating known papers by exact title, author/year, DOI, PMID, arXiv ID, URL, or an existing candidate list so their records can be added to a bibliography
- Converting DOIs, PMIDs, or arXiv IDs to properly formatted BibTeX
- Extracting complete metadata for citations (authors, title, journal, year, etc.)
- Checking metadata consistency for existing bibliography entries
- Cleaning and formatting BibTeX files
- Finding known papers or identifier-backed records needed for a bibliography
- Building a bibliography for a manuscript or thesis
- Checking for duplicate citations
- Ensuring consistent citation formatting
Do not use this skill as the primary route when:
- A sentence, table, figure, or claim must be checked against the cited source; use
citation-verification. - The user needs a systematic, scoping, narrative, or related-work synthesis; use
literature-review. - The user asks to find papers by topic, find recent papers, discover new candidate sources, expand a bibliography, or scan current evidence; use
research-lookup. - The user needs Zotero collection reads, exports, or local library operations; use
pyzotero.
Visual and Figure Routing
Citation work should stay focused on source accuracy, metadata, and bibliography hygiene. Do not generate diagrams just because a citation document is being created. Add visuals only when the user asks for a search-method figure, bibliography workflow diagram, citation-style decision tree, or presentation-ready summary.
Use tables for citation audits, duplicate checks, metadata repair plans, and source verification status. Route optional diagrams to markdown-mermaid-writing, drawio-diagrams, or d2-diagrams when a workflow or decision tree is genuinely clearer as a visual.
Core Workflow
Citation management follows a systematic process:
Phase 1: Bibliography Record Resolution
Goal: Resolve known papers or known identifiers into reliable bibliographic records. This phase starts from user-supplied DOIs, PMIDs, arXiv IDs, URLs, exact titles, author/year pairs, or candidate records produced by research-lookup or literature-review.
Do not use this phase to discover papers by topic. For "find recent papers about X," "search the literature on X," "expand this candidate set," or "what should I cite for X," route to research-lookup first and return here only after candidate records or identifiers exist.
Known-Record Lookup
Use exact-title, exact-author, or identifier-backed lookups only when metadata is incomplete and the record is already known.
Google Scholar record lookup examples:
# Locate a known paper by exact title for metadata repair
python scripts/search_google_scholar.py '"Attention Is All You Need"' \
--limit 5 \
--output known_title_record.json
# Locate a known author/year/title fragment when no DOI was supplied
python scripts/search_google_scholar.py '"Vaswani" "Attention Is All You Need" 2017' \
--limit 5 \
--output author_year_record.json
Known-record strategies:
- Use quotation marks for exact phrases:
"deep learning" - Search by author:
author:LeCun - Search in title:
intitle:"neural networks" - Keep result limits small and inspect matches manually
- Prefer DOI, PMID, arXiv ID, publisher pages, CrossRef, PubMed, or arXiv when available
If the query is broad, topical, recent, or exploratory, stop and use research-lookup.
PubMed Record Lookup
PubMed is used here to resolve known biomedical records, PMIDs, MeSH-backed publication records, and citation metadata.
Record lookup examples:
# Resolve a known PMID or exact title
python scripts/search_pubmed.py '"BNT162b2 mRNA Covid-19 Vaccine in a Nationwide Mass Vaccination Setting"' \
--limit 5 \
--output known_pubmed_record.json
# Resolve known biomedical records from an existing candidate list
python scripts/search_pubmed.py \
--query '"Polack FP"[Author] AND "BNT162b2"[Title/Abstract] AND 2020[Publication Date]' \
--limit 5 \
--output candidate_record.json
Record lookup patterns (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 metadata retrieval
Best Practices:
- Use MeSH Browser to find correct controlled vocabulary
- Retrieve PMIDs for stable metadata extraction
- Export resolved records to JSON or BibTeX
- Keep lookup queries tied to known papers, known authors, known titles, or known identifiers
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
- Books: publisher, ISBN, edition
- Conference papers: booktitle, conference location, pages
- Preprints: repository (arXiv, bioRxiv), preprint ID
- Additional: abstract, keywords, URL
Phase 3: BibTeX Formatting
Goal: Generate clean, properly formatted BibTeX entries.
Understanding BibTeX Entry Types
See references/bibtex_formatting.md for complete guide.
Common Entry Types:
@article: Journal articles (most common)@book: Books@inproceedings: Conference papers@incollection: Book chapters@phdthesis: Dissertations@misc: Preprints, software, datasets
Required Fields by Type:
@article{citationkey,
author = {Last1, First1 and Last2, First2},
title = {Article Title},
journal = {Journal Name},
year = {2024},
volume = {10},
number = {3},
pages = {123--145},
doi = {10.1234/example}
}
@inproceedings{citationkey,
author = {Last, First},
title = {Paper Title},
booktitle = {Conference Name},
year = {2024},
pages = {1--10}
}
@book{citationkey,
author = {Last, First},
title = {Book Title},
publisher = {Publisher Name},
year = {2024}
}
Formatting and Cleaning
Use the formatter to standardize BibTeX files:
# Format and clean BibTeX file
python scripts/format_bibtex.py references.bib \
--output formatted_references.bib
# Sort entries by citation key
python scripts/format_bibtex.py references.bib \
--sort key \
--output sorted_references.bib
# Sort by year (newest first)
python scripts/format_bibtex.py references.bib \
--sort year \
--descending \
--output sorted_references.bib
# Remove duplicates
python scripts/format_bibtex.py references.bib \
--deduplicate \
--output clean_references.bib
# Validate and report issues
python scripts/format_bibtex.py references.bib \
--validate \
--report validation_report.txt
Formatting Operations:
- Standardize field order
- Consistent indentation and spacing
- Proper capitalization in titles (protected with {})
- Standardized author name format
- Consistent citation key format
- Remove unnecessary fields
- Fix common errors (missing commas, braces)
Phase 4: Citation Validation
Goal: Verify all citations are accurate and complete.
Comprehensive Validation
# Validate BibTeX file
python scripts/validate_citations.py references.bib
# Validate and fix common issues
python scripts/validate_citations.py references.bib \
--auto-fix \
--output validated_references.bib
# Generate detailed validation report
python scripts/validate_citations.py references.bib \
--report validation_report.json \
--verbose
Validation Checks (see references/citation_validation.md):
DOI Verification:
- DOI resolves correctly via doi.org
- Metadata matches between BibTeX and CrossRef
- No broken or invalid DOIs
Required Fields:
- All required fields present for entry type
- No empty or missing critical information
- Author names properly formatted
Data Consistency:
- Year is valid (4 digits, reasonable range)
- Volume/number are numeric
- Pages formatted correctly (e.g., 123--145)
- URLs are accessible
Duplicate Detection:
- Same DOI used multiple times
- Similar titles (possible duplicates)
- Same author/year/title combinations
Format Compliance:
- Valid BibTeX syntax
- Proper bracing and quoting
- Citation keys are unique
- Special characters handled correctly
Validation Output:
{
"total_entries": 150,
"valid_entries": 145,
"errors": [
{
"citation_key": "Smith2023",
"error_type": "missing_field",
"field": "journal",
"severity": "high"
},
{
"citation_key": "Jones2022",
"error_type": "invalid_doi",
"doi": "10.1234/broken",
"severity": "high"
}
],
"warnings": [
{
"citation_key": "Brown2021",
"warning_type": "possible_duplicate",
"duplicate_of": "Brown2021a",
"severity": "medium"
}
]
}
Phase 5: Integration with Writing Workflow
Building References for Manuscripts
Complete workflow for creating a bibliography:
# 1. Start from known records or candidates supplied by the user,
# research-lookup, or literature-review.
# candidate_ids.txt may contain DOI, PMID, arXiv ID, URL, or exact title lines.
cat candidate_ids.txt
# 2. Resolve metadata and convert candidate records to BibTeX
python scripts/extract_metadata.py \
--input candidate_ids.txt \
--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}
Integration with Literature Review Skill
This skill complements the literature-review skill:
Literature Review Skill → Systematic search and synthesis Citation Management Skill → Technical citation handling
Combined Workflow:
- Use
literature-reviewfor comprehensive multi-database search - Use
citation-managementto extract metadata, generate BibTeX, and clean duplicate references - Use
literature-reviewto synthesize findings thematically - Use
citation-verificationfor final source-existence and claim-support checks - Use
citation-managementto apply final bibliography formatting
# 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
Record Location Strategies
Known-Record Lookup Best Practices
This skill may use Google Scholar or PubMed only to locate records that are already known from a title, author/year pair, identifier, source URL, or upstream candidate list.
Do not use this section to choose what the user should cite. For topic-level discovery, recent-paper lookup, seminal-paper discovery, citation chasing, or candidate expansion, use research-lookup first.
Record quality signals:
- DOI, PMID, PMCID, arXiv ID, ISBN, or publisher URL is present.
- Title and author order match the source supplied by the user or upstream lookup.
- Journal/conference name, year, volume, pages, and DOI match authoritative metadata.
- Preprint and published versions are not mixed unless explicitly documented.
Exact lookup 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
Example Searches:
# Locate a known record by exact title
"Attention Is All You Need"
# Locate a known record by author and title fragment
author:Vaswani intitle:"Attention"
# Locate a known journal record when a citation is incomplete
"BNT162b2" "Polack" "New England Journal of Medicine"
PubMed Record Lookup Best Practices
Using MeSH Terms for record resolution: MeSH (Medical Subject Headings) provides controlled vocabulary for precise searching.
- Find MeSH terms at https://meshb.nlm.nih.gov/search
- Use in known-record queries:
"Diabetes Mellitus, Type 2"[MeSH] - Combine with exact title, author, year, PMID, or DOI information when available.
Field Tags:
[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:
# Known author/title/year record
"Polack FP"[Author] AND "BNT162b2"[Title/Abstract] AND 2020[Publication Date]
# Known journal/title fragment record
"NEJM"[Journal] AND "BNT162b2"[Title/Abstract]
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.
Tools and Scripts
search_google_scholar.py
Locate known Google Scholar records and export candidate metadata. Do not use this tool here for topic discovery; route topic discovery to research-lookup.
Features:
- Automated searching with rate limiting
- Small-result exact-record lookup
- Exact title and author/year filtering
- Export to JSON or BibTeX
- Metadata candidates for manual confirmation
Usage:
# Exact-title record lookup
python scripts/search_google_scholar.py '"Attention Is All You Need"'
# Known author/title fragment lookup
python scripts/search_google_scholar.py '"Vaswani" "Attention Is All You Need"' \
--limit 5 \
--output known_record.json
# Export a resolved record directly to BibTeX
python scripts/search_google_scholar.py '"Attention Is All You Need"' \
--limit 5 \
--format bibtex \
--output known_record.bib
search_pubmed.py
Resolve known PubMed records using E-utilities API. Do not use this tool here for topic-level biomedical discovery; route discovery to research-lookup.
Features:
- Complex query support (MeSH, field tags, Boolean)
- Date, author, title, PMID, and publication type filtering
- Batch retrieval for known candidate records
- Export to JSON or BibTeX
Usage:
# Exact-title or title-fragment lookup
python scripts/search_pubmed.py '"BNT162b2 mRNA Covid-19 Vaccine"' \
--limit 5
# Known author/title/year lookup
python scripts/search_pubmed.py \
--query '"Polack FP"[Author] AND "BNT162b2"[Title/Abstract] AND 2020[Publication Date]' \
--limit 5 \
--output known_pubmed_record.json
# Export to BibTeX
python scripts/search_pubmed.py '"BNT162b2 mRNA Covid-19 Vaccine"' \
--limit 5 \
--format bibtex \
--output known_pubmed_record.bib
extract_metadata.py
Extract complete metadata from paper identifiers.
Features:
- Supports DOI, PMID, arXiv ID, URL
- Queries CrossRef, PubMed, arXiv APIs
- Handles multiple identifier types
- Batch processing
- Multiple output formats
Usage:
# Single DOI
python scripts/extract_metadata.py --doi 10.1038/s41586-021-03819-2
# Single PMID
python scripts/extract_metadata.py --pmid 34265844
# Single arXiv ID
python scripts/extract_metadata.py --arxiv 2103.14030
# From URL
python scripts/extract_metadata.py \
--url "https://www.nature.com/articles/s41586-021-03819-2"
# Batch processing (file with one identifier per line)
python scripts/extract_metadata.py \
--input paper_ids.txt \
--output references.bib
# Different output formats
python scripts/extract_metadata.py \
--doi 10.1038/nature12345 \
--format json # or bibtex, yaml
validate_citations.py
Validate BibTeX entries for accuracy and completeness.
Features:
- DOI verification via doi.org and CrossRef
- Required field checking
- Duplicate detection
- Format validation
- Auto-fix common issues
- Detailed reporting
Usage:
# Basic validation
python scripts/validate_citations.py references.bib
# With auto-fix
python scripts/validate_citations.py references.bib \
--auto-fix \
--output fixed_references.bib
# Detailed validation report
python scripts/validate_citations.py references.bib \
--report validation_report.json \
--verbose
# Only check DOIs
python scripts/validate_citations.py references.bib \
--check-dois-only
format_bibtex.py
Format and clean BibTeX files.
Features:
- Standardize formatting
- Sort entries (by key, year, author)
- Remove duplicates
- Validate syntax
- Fix common errors
- Enforce citation key conventions
Usage:
# Basic formatting
python scripts/format_bibtex.py references.bib
# Sort by year (newest first)
python scripts/format_bibtex.py references.bib \
--sort year \
--descending \
--output sorted_refs.bib
# Remove duplicates
python scripts/format_bibtex.py references.bib \
--deduplicate \
--output clean_refs.bib
# Complete cleanup
python scripts/format_bibtex.py references.bib \
--deduplicate \
--sort year \
--validate \
--auto-fix \
--output final_refs.bib
doi_to_bibtex.py
Quick DOI to BibTeX conversion.
Features:
- Fast single DOI conversion
- Batch processing
- Multiple output formats
- Clipboard support
Usage:
# Single DOI
python scripts/doi_to_bibtex.py 10.1038/s41586-021-03819-2
# Multiple DOIs
python scripts/doi_to_bibtex.py \
10.1038/nature12345 \
10.1126/science.abc1234 \
10.1016/j.cell.2023.01.001
# From file (one DOI per line)
python scripts/doi_to_bibtex.py --input dois.txt --output references.bib
# Copy to clipboard
python scripts/doi_to_bibtex.py 10.1038/nature12345 --clipboard
Best Practices
Record Resolution Strategy
Start from identifiers or known records:
- Prefer DOI, PMID, PMCID, arXiv ID, ISBN, publisher URL, exact title, or author/year pairs
- Treat topic-only requests as discovery requests and route them to
research-lookup - Return to citation-management only after candidate records exist
Use authoritative metadata sources:
- CrossRef for DOI-backed journal records
- PubMed for biomedical PMIDs and PMCIDs
- arXiv for preprints
- Publisher pages when automated metadata conflicts
Resolve ambiguity explicitly:
- Compare exact title, authors, venue, year, DOI, and pages
- Keep preprint and published versions separate until the user chooses one
- Mark ambiguous matches instead of silently picking the first result
Document record provenance:
- Record identifier source and lookup date
- Note metadata source used for each repair
- Flag records that need citation-verification for source existence or claim support
Metadata Extraction
Always use DOIs when available:
- Most reliable identifier
- Permanent link to the publication
- Best metadata source via CrossRef
Verify extracted metadata:
- Check author names are correct
- Verify journal/conference names
- Confirm publication year
- Validate page numbers and volume
Handle edge cases:
- Preprints: Include repository and ID
- Preprints later published: Use published version
- Conference papers: Include conference name and location
- Book chapters: Include book title and editors
Maintain consistency:
- Use consistent author name format
- Standardize journal abbreviations
- Use same DOI format (URL preferred)
BibTeX Quality
Follow conventions:
- Use meaningful citation keys (FirstAuthor2024keyword)
- Protect capitalization in titles with {}
- Use -- for page ranges (not single dash)
- Include DOI field for all modern publications
Keep it clean:
- Remove unnecessary fields
- No redundant information
- Consistent formatting
- Validate syntax regularly
Organize systematically:
- Sort by year, author, or citation key
- Group entries by manuscript section or source list when useful
- Use separate files for different projects
- Merge carefully to avoid duplicates
Validation
Validate early and often:
- Check citations when adding them
- Validate complete bibliography before submission
- Re-validate after any manual edits
Fix issues promptly:
- Broken DOIs: Find correct identifier
- Missing fields: Extract from original source
- Duplicates: Choose best version, remove others
- Format errors: Use auto-fix when safe
Manual review for critical citations:
- Verify key papers cited correctly
- Check author names match publication
- Confirm page numbers and volume
- Ensure URLs are current
Common Pitfalls to Avoid
Using citation-management for discovery: Asking this skill to find new papers by topic
- Solution: Use
research-lookupfor topic discovery and return here only after candidate records or identifiers exist
- Solution: Use
Accepting metadata blindly: Not verifying extracted information
- Solution: Spot-check extracted metadata against original sources
Ignoring DOI errors: Broken or incorrect DOIs in bibliography
- Solution: Run validation before final submission
Inconsistent formatting: Mixed citation key styles, formatting
- Solution: Use format_bibtex.py to standardize
Duplicate entries: Same paper cited multiple times with different keys
- Solution: Use duplicate detection in validation
Missing required fields: Incomplete BibTeX entries
- Solution: Validate and ensure all required fields present
Outdated preprints: Citing preprint when published version exists
- Solution: Check if preprints have been published, update to journal version
Special character issues: Broken LaTeX compilation due to characters
- Solution: Use proper escaping or Unicode in BibTeX
No validation before submission: Submitting with citation errors
- Solution: Always run validation as final check
Manual BibTeX entry: Typing entries by hand
- Solution: Always extract from metadata sources using scripts
Example Workflows
Example 1: Building a Bibliography for a Paper
# Step 1: Start from candidate records supplied by the user,
# research-lookup, or literature-review.
# candidate_ids.txt contains DOI, PMID, arXiv ID, URL, or exact title lines.
cat candidate_ids.txt
# Step 2: Extract metadata from candidate records
python scripts/extract_metadata.py \
--input candidate_ids.txt \
--output candidate_records.bib
# Step 3: Add specific papers you already know
python scripts/doi_to_bibtex.py 10.1038/s41586-021-03819-2 >> specific.bib
python scripts/doi_to_bibtex.py 10.1126/science.aam9317 >> specific.bib
# Step 4: Combine all BibTeX files
cat candidate_records.bib specific.bib > combined.bib
# Step 5: Format and deduplicate
python scripts/format_bibtex.py combined.bib \
--deduplicate \
--sort year \
--descending \
--output formatted.bib
# Step 6: Validate
python scripts/validate_citations.py formatted.bib \
--auto-fix \
--report validation.json \
--output final_references.bib
# Step 7: Review any issues
cat validation.json | grep -A 3 '"errors"'
# Step 8: Use in LaTeX
# \bibliography{final_references}
Example 2: Converting a List of DOIs
# 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: Resolving Known Records Without DOIs
# Locate known papers when the user supplied exact titles but no DOI
python scripts/search_google_scholar.py '"Attention Is All You Need"' \
--limit 5 \
--output attention_record.json
python scripts/search_pubmed.py '"BNT162b2 mRNA Covid-19 Vaccine"' \
--limit 5 \
--output vaccine_record.json
# Convert to BibTeX
python scripts/extract_metadata.py \
--input attention_record.json \
--output attention_refs.bib
python scripts/extract_metadata.py \
--input vaccine_record.json \
--output vaccine_refs.bib
# The BibTeX files now contain resolved metadata for known records
Integration with Other Skills
Literature Review Skill
Citation Management provides the technical infrastructure for Literature Review:
- Literature Review: Multi-database systematic search and synthesis
- Citation Management: Metadata extraction and validation
Combined workflow:
- Use literature-review for systematic search methodology
- Use citation-management to extract metadata, generate BibTeX, and clean duplicate references
- Use literature-review to synthesize findings
- Use citation-verification to confirm source existence and claim support
- Use citation-management to apply final bibliography formatting
Scientific Writing Skill
Citation Management ensures accurate references for Scientific Writing:
- Export validated BibTeX for use in LaTeX manuscripts
- Keep citation metadata and bibliography formatting consistent with publication standards
- Format references according to journal requirements
Venue Templates Skill
Citation Management works with Venue Templates for submission-ready manuscripts:
- Different venues require different citation styles
- Generate properly formatted references
- Validate citations meet venue requirements
Resources
Bundled Resources
References (in references/):
google_scholar_search.md: Google Scholar exact-record lookup guidepubmed_search.md: PubMed and E-utilities metadata lookup documentationmetadata_extraction.md: Metadata sources and field requirementscitation_validation.md: Validation criteria and quality checksbibtex_formatting.md: BibTeX entry types and formatting rules
Scripts (in scripts/):
search_google_scholar.py: Google Scholar known-record lookup automationsearch_pubmed.py: PubMed E-utilities metadata lookup clientextract_metadata.py: Universal metadata extractorvalidate_citations.py: Citation validation and verificationformat_bibtex.py: BibTeX formatter and cleanerdoi_to_bibtex.py: Quick DOI to BibTeX converter
Assets (in assets/):
bibtex_template.bib: Example BibTeX entries for all typescitation_checklist.md: Quality assurance checklist
External Resources
Record Lookup Services:
- Google Scholar: https://scholar.google.com/
- PubMed: https://pubmed.ncbi.nlm.nih.gov/
- PubMed Advanced Search: https://pubmed.ncbi.nlm.nih.gov/advanced/
Metadata APIs:
- CrossRef API: https://api.crossref.org/
- PubMed E-utilities: https://www.ncbi.nlm.nih.gov/books/NBK25501/
- arXiv API: https://arxiv.org/help/api/
- DataCite API: https://api.datacite.org/
Tools and Validators:
- MeSH Browser: https://meshb.nlm.nih.gov/search
- DOI Resolver: https://doi.org/
- BibTeX Format: http://www.bibtex.org/Format/
Citation Styles:
- BibTeX documentation: http://www.bibtex.org/
- LaTeX bibliography management: https://www.overleaf.com/learn/latex/Bibliography_management
Dependencies
Required Python Packages
# Core dependencies
pip install requests # HTTP requests for APIs
pip install bibtexparser # BibTeX parsing and formatting
pip install biopython # PubMed E-utilities access
# Optional (for Google Scholar)
pip install scholarly # Google Scholar API wrapper
# or
pip install selenium # For more robust Scholar scraping
Optional Tools
# For advanced validation
pip install crossref-commons # Enhanced CrossRef API access
pip install pylatexenc # LaTeX special character handling
Summary
The citation-management skill provides:
- Known-record lookup for exact titles, author/year pairs, and identifier-backed records
- Automated metadata extraction from DOI, PMID, arXiv ID, URLs
- Citation validation with DOI verification and completeness checking
- BibTeX formatting with standardization and cleaning tools
- Quality assurance through validation and reporting
- Integration with scientific writing workflow
- Reproducibility through documented search and extraction methods
Use this skill to maintain accurate, complete citations throughout your research and ensure publication-ready bibliographies.