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.
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Um comando direto ignora o prompt de revisão. Verifique a origem antes de executá-lo.
Instruções da origem · Visualização somente leitura
name
validate-references
locale
caveman-lite
source_locale
en
source_commit
82c77053
translator
Julius Brussee homage — caveman
translation_date
2026-05-03
description
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.
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
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
validate_dois <-function(bib, email =NULL){
issues <-list()# Set polite API headers
headers <-list(`User-Agent` ="R-bibliography-validator/1.0")if(!is.null(email)){
headers[["mailto"]]<- email
}for(i inseq_along(bib)){
key <-names(bib)[i]
doi <- bib[[i]]$doi
if(is.null(doi)||!nzchar(doi)){
issues[[length(issues)+1]]<-list(
key = key, severity ="info",
message ="No DOI present")next}# Normalize DOI
doi <- gsub("^https?://doi\\.org/","", doi)
doi <- gsub("^doi:","", doi, ignore.case =TRUE)
doi <- trimws(doi)# Resolve via CrossRef
tryCatch({
resp <- httr2::request(sprintf("https://api.crossref.org/works/%s", doi))|>
httr2::req_headers(!!!headers)|>
httr2::req_timeout(10)|>
httr2::req_perform()if(httr2::resp_status(resp)!=200){
issues[[length(issues)+1]]<-list(
key = key, severity ="error",
message = sprintf("DOI does not resolve: %s (HTTP %d)", doi,
httr2::resp_status(resp)))}}, error =function(e){
issues[[length(issues)+1]]<<-list(
key = key, severity ="warning",
message = sprintf("DOI check failed for %s: %s", doi, e$message))})
Sys.sleep(0.5)# Rate limiting}
issues
}# Only run online checks if requested
doi_issues <- validate_dois(bib, email ="your.email@example.com")
message(sprintf("DOI validation: %d issues found",length(doi_issues)))
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.