CommunityCodierung & Entwicklunggithub.com

ccanunez/verificar-bib

Überprüft Bibliografien (.bib-Datei, Referenzliste einer Arbeit/Dissertation oder LaTeX-Projekt) gegen OpenAlex, Crossref, arXiv, OpenLibrary und NASA ADS; erkennt erfundene (halluzinierte) Zitate, zurückgezogene Arbeiten, fehlerhafte Daten (Jahr, Band, Seite, DOI, Autorenreihenfolge), Duplikate, nicht referenzierte \cite-Schlüssel und bereits veröffentlichte Preprints; prüft, ob jede referenzierte Arbeit die Behauptungen des Texts stützt; schlägt fehlende Referenzen vor; erzeugt eine korrigierte .bib-Datei (DOIs, e).

Was ist verificar-bib?

Der Skill "verificar-bib" ist ein umfassendes Tool zur bibliografischen Überprüfung, das eine Liste von Referenzen (als .bib-Datei, als Textliste oder ein vollständiges LaTeX-Projekt) gegen mehrere wissenschaftliche Datenbanken validiert: OpenAlex, Crossref, arXiv, OpenLibrary und NASA ADS. Der Workflow ist in sechs Schritte unterteilt: (1) Erfassen der Referenzen aus verschiedenen Quellen (Chat, PDF, LaTeX-Projekt), (2) automatischer Abgleich mit den Datenbanken (mit Schlussfolgerungen wie ✅ OK, ⚠️ Diskrepanz, ❌ Nicht gefunden, 🚩 Zurückgezogen), (3) manuelle Überprüfung der problematischen Fälle durch den Benutzer (der Skill warnt vor falsch negativen Ergebnissen), (4) optionale tiefgehende Überprüfung ("profundo"), bei der die Aussagen des Texts mit den Abstracts der referenzierten Arbeiten verglichen werden, (5) Vorschlag fehlender Referenzen ("huecos") und (6) Ausgabe eines Berichts mit Links, Korrekturen und einer Zusammenfassung. Der Skill ist besonders nützlich für Forschende und Autoren, die sicherstellen möchten, dass ihre Literaturangaben korrekt, nicht zurückgezogen und relevant sind. Er läuft lokal und erfordert keine API-Schlüssel außer optionalem OPENALEX_API_KEY und ADS_API_TOKEN, um Ratenbegrenzungen zu vermeiden. Die tiefgehende Überprüfung ist rechenintensiv und wird nur auf Anfrage des Benutzers durchgeführt. Der Skill schreibt niemals in die ursprüngliche .bib-Datei, sondern erzeugt einen Patch mit Änderungen, die der Benutzer vor der Übernahme prüfen muss.

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/ccanunez/verificar-bib/tree/HEAD

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Bibliografie überprüfen und die Paper finden

Ziel: Für jede Referenz entscheiden, ob sie existiert, ob ihre Daten korrekt sind, ob sie noch gültig ist (nicht zurückgezogen) und ob sie das belegt, was der Text behauptet; und angeben, wo sie zu lesen ist. In der Sprache des Nutzers schreiben (standardmäßig Spanisch).

Argumente

/verificar-bib <refs.bib | refs.txt | manuskript-ordner> [profundo] [huecos] [patche]

  • profundo: zusätzlich die Behauptungen überprüfen (Schritt 4). Dies ist der teuerste Teil: anbieten, nicht ohne Aufforderung des Nutzers ausführen.
  • huecos: fehlende Referenzen vorschlagen (--huecos 20).
  • patche: eine korrigierte .bib-Datei schreiben, ohne die Originaldatei zu ändern.

1. Referenzen beschaffen

  • .bib: direkt verwenden.
  • Liste im Text (im Chat eingefügt, aus einem PDF oder dem Referenzabschnitt eines Papers extrahiert): im Scratchpad als .txt speichern, eine Referenz pro Zeile oder Absatz. Wenn aus einem PDF, nur den Referenzabschnitt extrahieren.
  • LaTeX-Projekt: die .bib-Datei lokalisieren (\bibliography{…} oder \addbibresource{…}) und den Ordner mit --tex übergeben. Das Skript kreuzt die \cite-Schlüssel (natbib und biblatex) mit der .bib und extrahiert den Satz jedes Zitats.

2. Das Prüfprogramm ausführen

python3 -I ~/.claude/skills/verificar-bib/scripts/verificar_bib.py <refs> --out <scratchpad>/bericht_bib.md --json <scratchpad>/bericht_bib.json [--tex <ordner>] [--contextos <scratchpad>/kontexte.md] [--huecos 20] [--patche <scratchpad>/refs.korrigiert.bib] [--macros-aas]

Für jede Referenz werden in dieser Reihenfolge abgefragt: die DOI (und der Auflöser von doi.org, falls niemand sie hat), die arXiv-ID, der Titel in OpenAlex, OpenLibrary (Bücher), ADS (falls ADS_API_TOKEN existiert), Jahr + Band + Seite, bibliografische Daten von Crossref und arXiv. Dem gefundenen Paper werden Rücknahmen und Korrekturen hinzugefügt (Retraction Watch, via OpenAlex und Crossref), die veröffentlichte Version, falls die Bib einen Preprint zitiert, und die Open-Access-Links. Urteile:

  • 🚩 ZURÜCKGEZOGEN: existiert, wurde aber zurückgezogen oder widerrufen. Sollte nicht als Beleg zitiert werden.
  • ✅ OK: Titel, erster Autor, Jahr (±1, wegen arXiv vs. veröffentlicht), Band und Seite stimmen überein. Bei Büchern wird das Jahr nicht gefordert, weil Datenbanken andere Ausgaben indizieren.
  • ⚠️ DISKREPANZ: existiert, aber etwas stimmt nicht: Jahr, Band, Seite, Autorenreihenfolge, nicht existierende oder auf ein anderes Paper verweisende DOI, oder in diesem Band/Seite befindet sich ein anderes Paper mit einem anderen Titel (typisches Muster einer erfundenen Zitation, die eine echte Zeitschrift wiederverwendet).
  • ❌ NICHT GEFUNDEN: keine Datenbank hat sie, es könnte sich um eine falsche Zitation handeln. Wird mit dem ähnlichsten Kandidaten als Hinweis versehen.

Der Bericht fügt Duplikate hinzu (gleiches Paper mit zwei Schlüsseln oder doppelter Schlüssel), die Kreuzung mit der .tex-Datei (im Text zitierte Schlüssel ohne Eintrag, die als [?] erscheinen, und nie zitierte Einträge), fehlende Referenzen und Anmerkungen (veröffentlichte Korrekturen, bereits veröffentlichte Preprints, Buchausgaben).

Ausführungshinweise:

  • Es gibt einen Cache in ~/.cache/verificar-bib (30 Tage): Nach Bearbeiten der .bib erneutes Ausführen ist fast sofort. --sin-cache ignoriert ihn.
  • arXiv wird höchstens einmal alle 3 Sekunden abgefragt. Bei mehr als ~50 Referenzen im Hintergrund ausführen.
  • Wenn der Bericht die Warnung "Abfragen fehlgeschlagen" enthält, können die ❌ falsch negative sein: später wiederholen.
  • Ohne OPENALEX_API_KEY gibt OpenAlex ein geringes tägliches Kontingent pro IP. ADS_API_TOKEN aktiviert ADS, das in der Astronomie Bücher, Proceedings und alte Papers hat, die die anderen Datenbanken nicht haben. Wenn der Nutzer sie hat, soll er sie exportieren. Niemals Schlüssel für den Nutzer erstellen oder deren Wert lesen.
  • --strict beendet sich mit Exit-Code 1, falls ❌, 🚩 oder fehlende Schlüssel vorhanden sind (nützlich vor der endgültigen Abgabe).

3. Zweifelhafte Fälle manuell prüfen (diesen Schritt nicht überspringen)

Das Skript ist ein Filter. Eine Zitation nicht als falsch erklären, nur weil das Skript sie nicht gefunden hat. Für jede ❌, 🚩 und nicht triviale ⚠️:

  1. Mit WebSearch den genauen Titel in Anführungszeichen suchen, und "erster Autor + Jahr + Zeitschrift".
  2. Typische falsch-negative Fälle bedenken, die keine falschen Zitate sind:
    • Bücher, Kapitel, Dissertationen, alte Proceedings (@book, @phdthesis, @inproceedings): werden schlecht indiziert oder mit dem Datum einer Neuauflage. Ein kurzer Titel (Fluid Mechanics) kann mit einem anderen Werk gleichen Namens verwechselt werden.
    • Software und Daten (@misc, @software: FARGO3D, RADMC-3D, astropy…): in ASCL, Zenodo oder GitHub überprüfen, und die Publikation, die die Software zu zitieren bittet.
    • Arbeiten vor 1990 ohne DOI: ADS hat sie, auch wenn OpenAlex sie nicht hat.
    • Ein Artikel und seine Konferenzversion mit demselben Titel (z. B. Shakura & Sunyaev 1973 in A&A und in IAU Symp. 55): die Datenbank kann die andere Version zurückgeben.
    • Kürzliche Preprints, die noch nicht in einer Zeitschrift erschienen sind.
    • Körperschaftliche Autoren oder Namen in nicht-lateinischen Zeichen.
  3. Bei einer ⚠️ wegen "Autorenreihenfolge" prüfen, ob der Schlüssel (Casassus2025) und das \citet{} im Text die Arbeit jemandem zuschreiben, der nicht der Erstautor ist. Das muss korrigiert werden.
  4. Bei einer 🚩 die Rücknahme in der offiziellen Mitteilung bestätigen und den Nutzer darauf hinweisen, wo sie zitiert wird.
  5. Endgültiges Urteil pro Referenz:
    • echt und korrekt;
    • echt mit zu korrigierenden Daten: die korrigierten BibTeX-Felder angeben;
    • zurückgezogen: sagen, wo sie zitiert wird, und Ersatz oder Kontext vorschlagen;
    • nicht verifizierbar: wurde gesucht und nicht gefunden; den Nutzer um die Quelle bitten;
    • falsch: nur mit Beweisen, z. B. die DOI oder Band/Seite gehören zu einem anderen Paper und es existiert nichts mit diesem Titel.

Einen Abschnitt "Manuelle Prüfung" am Anfang des Berichts mit diesen Urteilen hinzufügen.

4. Behauptungen überprüfen (Modus profundo)

Erfordert --tex und --contextos. Die Kontextdatei enthält für jede zitierte Referenz das Abstract des Papers und jeden Satz aus der .tex-Datei, der sie zitiert (datei:zeile). Für jede Verwendung:

  1. Das, was der Satz behauptet, mit dem Abstract vergleichen. Klassifizieren als stützt, stützt teilweise (z. B. das Paper zeigt es für ein anderes Regime oder mit mehr Vorsicht), stützt nicht oder mit dem Abstract nicht überprüfbar.
  2. Für die nicht überprüfbaren und die stützt nicht den Volltext öffnen (den arXiv- oder den Berichts-PDF) und die konkrete Passage suchen, bevor ein abschließendes Urteil gefällt wird. Abschnitt oder Seite des Papers zitieren.
  3. Die Behauptung beurteilen, nicht den Stil. Allgemeine Zitate ("siehe Übersicht von…") als akzeptabel kennzeichnen.
  4. Das Ergebnis in eine Tabelle schreiben, datei:zeile | schlüssel | urteil | beleg aus dem Paper | vorschlag, am Ende des Berichts. Zuerst die stützt nicht sortieren.

Bei vielen Zitaten (mehr als ~60) den Nutzer fragen, ob er alle überprüfen möchte oder priorisieren: diejenigen, die eigene Ergebnisse, numerische Werte und direkte Vergleiche stützen.

5. Fehlende Referenzen (huecos)

--huecos N listet die Papers auf, die von mindestens zwei der Referenzen des Nutzers zitiert werden, die er selbst aber nicht zitiert, geordnet danach, wie viele seiner Referenzen sie zitieren. Nicht alle sind relevant: nach Relevanz für das Thema der Arbeit filtern (den Titel lesen und, falls nötig, das Abstract) und nur diejenigen präsentieren, die es wert sind, in Betracht gezogen zu werden, mit einer Begründung.

6. Ausgabe

  • Der Markdown-Bericht mit den Links (DOI · ADS · arXiv · PDF · ISBN) und der manuellen Prüfung. Wenn der Nutzer ihn teilen möchte, anbieten, ihn als Artifact zu veröffentlichen.
  • Eine Zusammenfassung im Chat: wie viele OK, wie viele mit zu korrigierenden Daten, zurückgezogen, möglicherweise falsch und warum; und im tiefgehenden Modus, wie viele Behauptungen nicht belegt sind.
  • Die .bib-Datei des Nutzers nicht ohne Erlaubnis bearbeiten. --patche schreibt eine separate Datei, die nur doi/eprint bei ✅-Einträgen hinzufügt, Akronyme mit geschweiften Klammern schützt und mit --macros-aas Zeitschriften abkürzt (\apj, \aap, \mnras…; erfordert aas_macros.sty oder AASTeX). Niemals Jahr, Band oder Seite ändern. Diese Korrekturen werden vorgeschlagen und nur angewendet, wenn der Nutzer zustimmt. Das diff vor dem Ersetzen des Originals zeigen.
  • Die Links dienen zum Lesen und Herunterladen. PDFs nicht herunterladen, es sei denn, der Nutzer fordert dies ausdrücklich an. In diesem Fall in einem neuen, leeren Ordner speichern.

Fallstricke

  • Mit plainnat/aasjournals werden Titel in Kleinbuchstaben umgewandelt. Der Patch schützt Akronyme ({PDS} 70, {ALMA}, {3D}), aber nicht Eigennamen (Jupiter, Kepler): überprüfen.
  • Der BibTeX-Parser ist minimal: er löst @string oder Verkettung mit # nicht auf. Warnen, falls die .bib diese verwendet.
  • ADS-Links zeigen automatisierten Browsern eine menschliche Überprüfung. Sie sind für den Nutzer, nicht damit Claude sie öffnet.
  • Tests: --selftest (offline) und tests/regresion.py (online, mit Fixtures, die Fallenzitate enthalten).

Verwandte Skills