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
.txtspeichern, 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.bibund 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.biberneutes Ausführen ist fast sofort.--sin-cacheignoriert 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_KEYgibt OpenAlex ein geringes tägliches Kontingent pro IP.ADS_API_TOKENaktiviert 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. --strictbeendet 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 ⚠️:
- Mit WebSearch den genauen Titel in Anführungszeichen suchen, und "erster Autor + Jahr + Zeitschrift".
- 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.
- Bücher, Kapitel, Dissertationen, alte Proceedings (
- 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. - Bei einer 🚩 die Rücknahme in der offiziellen Mitteilung bestätigen und den Nutzer darauf hinweisen, wo sie zitiert wird.
- 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:
- 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.
- 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.
- Die Behauptung beurteilen, nicht den Stil. Allgemeine Zitate ("siehe Übersicht von…") als akzeptabel kennzeichnen.
- 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.--patcheschreibt eine separate Datei, die nurdoi/eprintbei ✅-Einträgen hinzufügt, Akronyme mit geschweiften Klammern schützt und mit--macros-aasZeitschriften abkürzt (\apj,\aap,\mnras…; erfordertaas_macros.styoder AASTeX). Niemals Jahr, Band oder Seite ändern. Diese Korrekturen werden vorgeschlagen und nur angewendet, wenn der Nutzer zustimmt. Dasdiffvor 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/aasjournalswerden 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
@stringoder Verkettung mit#nicht auf. Warnen, falls die.bibdiese verwendet. - ADS-Links zeigen automatisierten Browsern eine menschliche Überprüfung. Sie sind für den Nutzer, nicht damit Claude sie öffnet.
- Tests:
--selftest(offline) undtests/regresion.py(online, mit Fixtures, die Fallenzitate enthalten).