Agent-almanac validate-references
git clone https://github.com/pjt222/agent-almanac
T=$(mktemp -d) && git clone --depth=1 https://github.com/pjt222/agent-almanac "$T" && mkdir -p ~/.claude/skills && cp -r "$T/i18n/de/skills/validate-references" ~/.claude/skills/pjt222-agent-almanac-validate-references-54b497 && rm -rf "$T"
i18n/de/skills/validate-references/SKILL.mdReferenzen validieren
BibTeX-Einträge auf Korrektheit, Vollständigkeit und Aktualität prüfen durch DOI-Auflösung, URL-Prüfung, Pflichtfeldvalidierung und Zeichenkodierungskonsistenz.
Wann verwenden
- Auditierung eines Literaturverzeichnisses vor Zeitschrifteneinreichung
- Überprüfung, ob alle DOIs auf die richtigen Artikel verweisen
- Erkennung defekter URLs in Bibliographieeinträgen
- Sicherstellung, dass alle BibTeX-Einträge die erforderlichen Felder für ihren Typ haben
- Prüfung auf Zeichenkodierungsprobleme, die LaTeX-Kompilierungsfehler verursachen
- Abgleich von BibTeX-Metadaten mit den tatsächlichen veröffentlichten Versionen
Eingaben
- Erforderlich: BibTeX-Datei (.bib) oder BibEntry-Objekt zur Validierung
- Erforderlich: Validierungsumfang (Felder, DOIs, URLs oder alle)
- Optional: Crossref-API-Schlüssel für höhere Abfragegrenzen
- Optional: Zeitüberschreitung für URL-Prüfungen (Standard: 10 Sekunden)
- Optional: Benutzerdefinierte Pflichtfelder über den BibTeX-Standard hinaus
- Optional: Zulässige URL-Domänen (für das Herausfiltern institutioneller Proxy-URLs)
Vorgehensweise
Schritt 1: Bibliographie laden und Struktur analysieren
Die BibTeX-Datei parsen und die Zusammensetzung der Einträge katalogisieren:
- Datei parsen:
verwenden, um die .bib-Datei zu laden. Parsing-Warnungen und -Fehler aufzeichnen.RefManageR::ReadBib() - Eintragstypen zählen: Anzahl der Einträge nach Typ zusammenstellen (article, book, inproceedings, misc usw.).
- Felder inventarisieren: Für jeden Eintrag die vorhandenen und fehlenden Felder auflisten.
- Zeichenkodierung prüfen: Nicht-ASCII-Zeichen erkennen und verifizieren, dass sie korrekte LaTeX-Escapes verwenden.
Erwartet: Alle Einträge werden erfolgreich geparst, mit einer Zusammenfassung der Eintragstypen und markierten Kodierungsproblemen.
Bei Fehler: Falls das Parsen fehlschlägt, den fehlerhaften Eintrag durch zeilenweise Isolierung lokalisieren. Häufige Ursachen: nicht-geschlossene Klammern, fehlende Kommas zwischen Feldern, ungültiges UTF-8.
Schritt 2: Pflichtfelder pro Eintragstyp validieren
Jeden Eintrag gegen die BibTeX-Feldanforderungen prüfen:
- Standardfelder prüfen: Für jeden Eintragstyp die erforderlichen Felder validieren:
| Eintragstyp | Erforderliche Felder |
|---|---|
| article | author, title, journal, year, volume |
| book | author/editor, title, publisher, year |
| inproceedings | author, title, booktitle, year |
| incollection | author, title, booktitle, publisher, year |
| phdthesis | author, title, school, year |
| mastersthesis | author, title, school, year |
| techreport | author, title, institution, year |
| misc | (keine streng erforderlich, aber author, title, year empfohlen) |
- Optionale Felder empfehlen: Fehlende, aber empfohlene Felder markieren (pages, doi, url, abstract).
- Benutzerdefinierte Anforderungen: Falls angegeben, zusätzliche benutzerdefinierte Pflichtfelder prüfen.
- Bericht erstellen: Einen Validierungsbericht erstellen, der fehlende Felder nach Eintrag gruppiert auflistet.
Erwartet: Jeder Eintrag hat alle erforderlichen Felder, oder ein Bericht listet die spezifischen Lücken auf.
Bei Fehler: Falls erforderliche Felder fehlen, versuchen, sie über DOI-Abfrage (Schritt 3) zu ergänzen. Falls kein DOI vorhanden ist, die Einträge für manuelle Ergänzung markieren.
Schritt 3: DOIs gegen Crossref validieren
Jeden DOI auflösen und die Metadaten mit dem BibTeX-Eintrag abgleichen:
- DOIs extrahieren: DOI-Felder aus allen Einträgen sammeln. DOI-Format normalisieren (Präfixe wie „https://doi.org/" entfernen).
- Crossref abfragen:
oder die Crossref-REST-API verwenden, um die veröffentlichten Metadaten zu den einzelnen DOIs abzurufen.rcrossref::cr_works(dois = doi_list) - Felder abgleichen: Lokale BibTeX-Felder mit den von Crossref zurückgegebenen Daten vergleichen:
- Titel: Fuzzy-Abgleich (Groß-/Kleinschreibungs- und Interpunktionsunterschiede ignorieren)
- Autoren: Nachnamen und Initialen des ersten Autors vergleichen
- Jahr: Exakte Übereinstimmung
- Journal: Abgekürzte vs. ausgeschriebene Formen vergleichen
- Volumen/Seiten: Exakte Übereinstimmung falls vorhanden
- Abweichungen markieren: Einträge kennzeichnen, bei denen die lokalen Metadaten wesentlich von der Crossref-Version abweichen.
- Einträge ohne DOI: Als Einträge markieren, die nicht automatisch verifiziert werden können.
Erwartet: Alle DOIs werden erfolgreich aufgelöst und die Metadaten stimmen mit den lokalen Einträgen überein, oder Abweichungen werden dokumentiert.
Bei Fehler: Falls ein DOI nicht aufgelöst werden kann (HTTP 404), ist der DOI möglicherweise falsch. In Crossref nach dem Titel suchen, um den korrekten DOI zu finden. Falls die API-Abfragegrenze erreicht ist, mit einem API-Schlüssel (
mailto-Parameter) authentifizieren.
Schritt 4: URLs auf Erreichbarkeit prüfen
Alle URL-Felder auf funktionale Erreichbarkeit testen:
- URLs extrahieren: URL- und URL-Felder aus allen Einträgen sammeln, einschließlich DOI-basierter URLs.
- HTTP-HEAD-Anfragen: HEAD-Anfrage an jede URL senden mit konfigurierter Zeitüberschreitung. Statuscode aufzeichnen.
- Ergebnisse klassifizieren:
- 200 OK: URL erreichbar
- 301/302 Umleitung: Finale URL aufzeichnen, prüfen ob inhaltlich korrekt
- 403/404: URL defekt oder zugriffsbeschränkt
- Zeitüberschreitung: Netzwerkproblem oder Server nicht erreichbar
- SSL-Fehler: Zertifikatsproblem
- Bericht erstellen: Defekte URLs mit vorgeschlagenen Korrekturen auflisten (z.B. aktualisierte URL nach Umleitung).
Erwartet: Alle URLs sind erreichbar oder defekte URLs sind dokumentiert mit Vorschlägen für Korrekturen.
Bei Fehler: Falls viele URLs zugriffsbeschränkt sind (403), kann dies auf institutionellen Proxy-Zugriff hindeuten. Bekannte akademische Domains (Verlagswebsites) von der strikten Prüfung ausnehmen und nur auf 404-Fehler prüfen.
Schritt 5: Validierungsbericht zusammenstellen
Alle Ergebnisse in einem umfassenden Bericht konsolidieren:
- Zusammenfassung: Gesamtzahl geprüfter Einträge, Bestehensrate, Anzahl der Probleme nach Kategorie.
- Detailbericht: Jeden Eintrag mit Problemen auflisten:
- Fehlende Pflichtfelder
- DOI-Metadaten-Abweichungen
- Defekte URLs
- Zeichenkodierungsprobleme
- Priorität: Probleme nach Schweregrad ordnen (fehlende Pflichtfelder > falscher DOI > defekte URL > fehlende optionale Felder).
- Korrekturen vorschlagen: Wo möglich, automatische Korrekturen vorschlagen (z.B. DOI aus Crossref-Suche, aktualisierte URL nach Umleitung).
Erwartet: Ein vollständiger Validierungsbericht mit priorisierter Problemliste und vorgeschlagenen Korrekturen.
Bei Fehler: Falls der Bericht zu viele Probleme enthält, nach Schweregrad filtern und auf die Pflichtfeld- und DOI-Korrekturen fokussieren, die für die Einreichung kritisch sind.
Validierung
- BibTeX-Datei ohne Fehler geparst
- Alle Eintragstypen auf Pflichtfelder geprüft
- DOIs gegen Crossref aufgelöst und Metadaten abgeglichen
- DOI-Abweichungen dokumentiert mit Korrekturvorschlägen
- URLs auf Erreichbarkeit getestet
- Defekte URLs mit vorgeschlagenen Alternativen dokumentiert
- Zeichenkodierungsprobleme identifiziert
- Validierungsbericht mit priorisierter Problemliste erstellt
- Einträge ohne DOI für manuelle Überprüfung markiert
Häufige Fehler
- Crossref-API-Ratenlimit: Ohne authentifizierte Anfragen (mit
-Parameter) liegt das Limit bei etwa 50 Anfragen pro Sekunde. Bei großen Bibliographien Anfragen drosseln oder einen API-Schlüssel verwenden.mailto - DOI-Format-Inkonsistenz: DOIs können als
,10.1234/example
oderdoi:10.1234/example
gespeichert sein. Vor dem Abgleich normalisieren.https://doi.org/10.1234/example - Zeitschriftennamen-Varianten: Abgekürzte und ausgeschriebene Zeitschriftennamen können beim Abgleich als Abweichung erscheinen. Eine Zuordnungstabelle oder NLM-Katalogabfrage verwenden.
- URL-Prüfung bei institutionellem Proxy: Viele akademische URLs sind hinter Anmeldeportalen zugänglich. HTTP-403-Fehler für bekannte Verlagsdomänen (Elsevier, Springer, Wiley) nicht als „defekt" melden.
- Falsch-positive beim Titelabgleich: Sonderzeichen, Hochstellungen und mathematische Notation im Titel können den Fuzzy-Abgleich verfälschen. Immer die Ergebnisse manuell überprüfen.
- Veraltete DOIs: Manche DOIs verweisen auf Preprints statt auf die finale veröffentlichte Version. Den DOI-Typ (Preprint vs. Verlagsversion) in den Crossref-Metadaten prüfen.
Verwandte Skills
-- Bibliographiedateien erstellen und bereinigen vor der Validierungmanage-bibliography
-- Zitate formatieren nach Validierung der zugrundeliegenden Datenformat-citations
-- validierte Bibliographie in Quarto-Dokumente integrierencreate-quarto-report