pjt222/agent-almanac/validate-references
- community
Checking that the SKILL.md file is still in the repository.
Check BibTeX entries for completeness, DOI resolution, and broken links. Verify required fields per entry type (article, book, inproceedings), resolve and validate DOIs via the CrossRef API, check URL accessibility, and flag duplicate entries, missing abstracts, and inconsistent formatting. Use when preparing a manuscript bibliography for journal submission, auditing a shared .bib file before a project milestone, after merging bibliographies from multiple sources, when citations render incorrectly, or as a CI check on version-controlled .bib files.
Install
npx vskill@latest install pjt222/agent-almanac/validate-referencesSKILL.md
Validate References
Check BibTeX bibliography entries for completeness, accuracy, and consistency. This skill covers verifying required fields per entry type, resolving DOIs via the CrossRef API, checking URL accessibility, detecting duplicate entries, and producing a structured validation report that flags issues by severity. It ensures that .bib files are publication-ready before rendering.
When to Use
- Preparing a manuscript bibliography for journal submission
- Auditing a shared .bib file for quality before a project milestone
- After merging bibliographies from multiple sources
- When citations render incorrectly and you need to diagnose .bib issues
- As a CI check on .bib files in version-controlled projects
Inputs
- Required: Path to a .bib file
- Optional: Validation level (
basic,standard,strict; default:standard) - Optional: Whether to check DOI resolution online (default:
TRUE) - Optional: Whether to check URL accessibility (default:
TRUE) - Optional: Output report path (default: prints to console)
- Optional: CrossRef API email for polite pool (recommended for large files)
Procedure
Step 1: Install and Load Required Packages
Got: All packages load without errors.
If fail: If httr2 is unavailable, install it with install.packages("httr2"). For systems without curl headers: sudo apt install libcurl4-openssl-dev.
Step 2: Parse and Inventory the Bibliography
Got: Summary of entry types (article, book, inproceedings, etc.) and total count matching the number of @type{ blocks in the file.
If fail: Parsing errors indicate malformed BibTeX. Check for unmatched braces, missing commas between fields, or invalid UTF-8 characters.
Step 3: Validate Required Fields per Entry Type
Got: A list of issues where required fields are missing. Zero issues for a well-maintained bibliography.
If fail: This step runs locally and should not fail. If it does, check that the .bib file parsed correctly in Step 2.
Step 4: Resolve and Validate DOIs
Got: Each DOI resolves successfully (HTTP 200 from CrossRef). Entries without DOIs are flagged as informational.
If fail: Network errors or rate limiting produce warnings rather than hard failures. Set the email parameter for higher rate limits from CrossRef's polite pool.
Step 5: Check URL Accessibility
Got: All URLs return HTTP 200 (or 301/302 redirects). Broken links flagged.
If fail: Some servers block HEAD requests. Retry with GET for failed HEAD checks. Timeout errors are common for slow academic servers.
Step 6: Detect Duplicate Entries
Got: Zero duplicates for a clean bibliography. Any detected duplicates are flagged with the specific entry keys involved.
Step 7: Generate Validation Report
Got: A structured markdown report listing all issues grouped by severity.
Validation
- [ ] All entries have required fields for their type (no errors in field check)
- [ ] All DOIs resolve to valid CrossRef records
- [ ] No duplicate DOIs exist in the bibliography
- [ ] All URLs are accessible (HTTP 200 or redirect)
- [ ] Validation report generated without R errors
- [ ] Zero errors in report for a publication-ready bibliography
Pitfalls
- DOI format inconsistency: DOIs may appear as
10.1234/...,
https://doi.org/10.1234/..., or doi:10.1234/.... Normalize before comparing
- CrossRef rate limiting: Unauthenticated requests are limited to ~50/second.
Always use the email parameter to join the polite pool for higher limits
- Transient URL failures: Academic servers occasionally timeout. Retry failed
URLs once before flagging them as broken
- Entry type variations: BibLaTeX uses
@onlinewhere BibTeX uses@misc.
The validator should handle both
- False positive duplicates: Entries like "Introduction" or "Methods" as titles
trigger fuzzy matching. Review flagged duplicates manually
- Missing DOIs for older works: Pre-2000 publications often lack DOIs. Flag as
informational, not as errors
Related Skills
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingi18n/caveman-lite/skills/validate-references/SKILL.md
Popularity
- Repository stars
- 12
- Repository forks
- 1
- Repository npm downloads, 7 days
- 12
- 7-day trend score
- 23
Stars and forks are for the whole GitHub repository, not this skill alone. Downloads are for the repository's npm package. Refreshed 30 Apr 2026, 6 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/pjt222/agent-almanac/validate-references)