Vérifier la bibliographie et trouver les articles
Objectif : pour chaque référence, décider si elle existe, si ses données sont correctes, si elle est toujours valide (non rétractée) et si elle soutient ce que le texte affirme ; fournir où la lire. Rédiger dans la langue de l'utilisateur (par défaut français).
Arguments
/vérifier-bib <refs.bib | refs.txt | dossier-du-manuscrit> [profond] [lacunes] [correctif]
profond: vérifie en plus les affirmations (étape 4). C'est le plus coûteux : le proposer, ne pas le faire sans que l'utilisateur le demande.lacunes: suggère des références manquantes (--lacunes 20).correctif: écrit un.bibcorrigé, sans toucher à l'original.
1. Obtenir les références
.bib: l'utiliser directement.- Liste en texte (collée dans le chat, extraite d'un PDF ou de la section References d'un article) : la sauvegarder dans le scratchpad en
.txt, une référence par ligne ou par paragraphe. Si elle provient d'un PDF, extraire uniquement la section des références. - Projet LaTeX : localiser le
.bib(\bibliography{…}ou\addbibresource{…}) et passer le dossier avec--tex. Le script croise les clés de\cite(natbib et biblatex) avec le.bibet extrait la phrase de chaque citation.
2. Lancer le vérificateur
python3 -I ~/.claude/skills/verificar-bib/scripts/verificar_bib.py <refs> --out <scratchpad>/rapport_bib.md --json <scratchpad>/rapport_bib.json [--tex <dossier>] [--contextes <scratchpad>/contextes.md] [--lacunes 20] [--correctif <scratchpad>/refs.corrige.bib] [--macros-aas]
Pour chaque référence, il interroge, dans l'ordre : le DOI (et le résolveur doi.org si personne ne l'a), l'ID de l'arXiv, le titre dans OpenAlex, OpenLibrary (livres), ADS (si ADS_API_TOKEN existe), année + volume + page, Crossref bibliographique et arXiv. À l'article trouvé, il ajoute les rétractations et corrections (Retraction Watch, via OpenAlex et Crossref), la version publiée si le fichier bib cite une prépublication, et les liens en accès ouvert. Verdicts :
- 🚩 RÉTRACTÉE : existe, mais a été rétracté ou retiré. Ne doit pas être cité comme preuve.
- ✅ OK : concordance du titre, du premier auteur, de l'année (±1, pour arXiv vs. publié), du volume et de la page. Pour les livres, l'année n'est pas exigée, car les bases indexent d'autres éditions.
- ⚠️ DISCRÉPANCE : existe, mais quelque chose ne correspond pas : année, volume, page, ordre des auteurs, DOI inexistant ou pointant vers un autre article, ou dans ce volume/page se trouve un autre article avec un autre titre (motif typique d'une citation inventée qui réutilise une revue réelle).
- ❌ NON TROUVÉE : aucune base ne la possède, donc c'est une possible citation fausse. Elle est accompagnée du candidat le plus proche comme piste.
Le rapport ajoute les doublons (même article avec deux clés, ou clé répétée), le croisement avec le .tex (clés citées sans entrée, qui apparaîtront comme [?], et entrées jamais citées), les références manquantes et les notes (corrections publiées, prépublications déjà publiées, éditions de livres).
Notes d'exécution :
- Il y a un cache dans
~/.cache/verificar-bib(30 jours) : relancer après avoir édité le.bibest presque instantané.--sans-cachel'ignore. - arXiv est interrogé au maximum une fois toutes les 3 secondes. Avec plus de ~50 références, l'exécuter en arrière-plan.
- Si le rapport contient l'avertissement "des requêtes ont échoué", les ❌ peuvent être des faux négatifs : recommencer plus tard.
- Sans
OPENALEX_API_KEY, OpenAlex donne un petit quota quotidien par IP.ADS_API_TOKENactive ADS, qui en astronomie possède des livres, des comptes-rendus de conférences et des articles anciens que les autres bases n'ont pas. Si l'utilisateur les possède, qu'il les exporte lui-même. Ne jamais créer de clés pour l'utilisateur ni lire leur valeur. --strictse termine avec le code 1 s'il y a ❌, 🚩 ou clés manquantes (utile avant la soumission finale).
3. Vérifier manuellement les cas douteux (ne pas sauter cette étape)
Le script est un filtre. Ne pas déclarer une citation fausse uniquement parce que le script ne l'a pas trouvée. Pour chaque ❌, 🚩 et ⚠️ non trivial :
- Rechercher avec WebSearch le titre exact entre guillemets, et "premier auteur + année + revue".
- Penser aux faux négatifs typiques, qui ne sont pas des citations fausses :
- Livres, chapitres, thèses, comptes-rendus anciens (
@book,@phdthesis,@inproceedings) : mal indexés ou avec la date d'une réédition. Un titre court (Fluid Mechanics) peut être apparié à une autre œuvre du même nom. - Logiciels et données (
@misc,@software: FARGO3D, RADMC-3D, astropy…) : vérifier sur ASCL, Zenodo ou GitHub, et la publication que le logiciel demande de citer. - Articles antérieurs à 1990 sans DOI : ADS les possède même si OpenAlex ne les a pas.
- Un article et sa version de conférence avec le même titre (par exemple Shakura & Sunyaev 1973 dans A&A et dans IAU Symp. 55) : la base peut renvoyer l'autre version.
- Prépublications récentes pas encore publiées dans une revue.
- Auteurs collectifs ou noms en caractères non latins.
- Livres, chapitres, thèses, comptes-rendus anciens (
- Pour un ⚠️ "ordre des auteurs", vérifier si la clé (
Casassus2025) et le\citet{}du texte attribuent le travail à un autre auteur que le premier. Cela doit être corrigé. - Pour un 🚩, confirmer la rétractation dans l'avis officiel et avertir l'utilisateur où il la cite.
- Verdict final par référence :
- réelle et correcte ;
- réelle avec données à corriger : donner les champs BibTeX corrigés ;
- rétractée : dire où elle est citée et suggérer un remplacement ou un contexte ;
- non vérifiable : recherchée et non apparue ; demander la source à l'utilisateur ;
- fausse : uniquement avec des preuves, par exemple le DOI ou le volume/page appartiennent à un autre article et rien n'existe avec ce titre.
Ajouter une section "Vérification manuelle" au début du rapport avec ces verdicts.
4. Vérifier les affirmations (mode profond)
Nécessite --tex et --contextes. Le fichier de contextes apporte, pour chaque référence citée, le résumé de l'article et chaque phrase du .tex qui le cite (fichier:ligne). Pour chaque utilisation :
- Comparer ce que la phrase affirme avec le résumé. Classer comme soutient, soutient en partie (par exemple l'article le montre pour un autre régime ou avec plus de prudence), ne soutient pas ou non vérifiable avec le résumé.
- Pour les non vérifiables et les ne soutient pas, ouvrir le texte complet (l'arXiv ou le PDF du rapport) et chercher le passage concret avant de conclure. Citer la section ou la page de l'article.
- Juger l'affirmation, pas le style. Signaler les citations génériques ("voir la revue de…") comme acceptables.
- Écrire le résultat dans un tableau,
fichier:ligne | clé | verdict | preuve de l'article | suggestion, à la fin du rapport. Trier d'abord les ne soutient pas.
Avec beaucoup de citations (plus de ~60), demander à l'utilisateur s'il veut toutes les vérifier ou prioriser : celles qui soutiennent les résultats propres, les valeurs numériques et les comparaisons directes.
5. Références manquantes (lacunes)
--lacunes N liste les articles cités par au moins deux des références de l'utilisateur qu'il ne cite pas lui-même, triés par le nombre de ses références qui les citent. Tous ne s'appliquent pas : filtrer par pertinence pour le sujet du travail (lire le titre et, si nécessaire, le résumé) et présenter uniquement ceux qui valent la peine d'être considérés, avec une ligne expliquant pourquoi.
6. Remise
- Le rapport Markdown avec les liens (DOI · ADS · arXiv · PDF · ISBN) et la vérification manuelle. Si l'utilisateur va le partager, proposer de le publier en tant qu'Artifact.
- Un résumé dans le chat : combien de OK, combien avec des données à corriger, rétractées, possiblement fausses et pourquoi ; en mode profond, combien d'affirmations ne sont pas soutenues.
- Ne pas éditer le
.bibde l'utilisateur sans permission.--correctifécrit un fichier séparé qui ajoute seulementdoi/eprintdans les entrées ✅, protège les sigles avec des accolades et, avec--macros-aas, abrège les revues (\apj,\aap,\mnras… ; nécessiteaas_macros.styou AASTeX). Ne jamais changer l'année, le volume ni la page. Ces corrections sont proposées et appliquées uniquement si l'utilisateur donne son accord. Afficher lediffavant de remplacer l'original. - Les liens sont pour lire et télécharger. Ne pas télécharger de PDF sauf si l'utilisateur le demande explicitement. Dans ce cas, les enregistrer dans un dossier nouveau et vide.
Pièges
- Avec
plainnat/aasjournalsles titres passent en minuscules. Le correctif protège les sigles ({PDS} 70,{ALMA},{3D}), mais pas les noms propres (Jupiter, Kepler) : les vérifier. - L'analyseur BibTeX est minimal : il ne résout pas
@stringni la concaténation avec#. Prévenir si le.bibles utilise. - Les liens ADS soumettent une vérification humaine aux navigateurs automatisés. Ils sont pour l'utilisateur, pas pour que Claude les ouvre.
- Tests :
--selftest(sans réseau) ettests/regression.py(avec réseau, fixtures avec citations piégées).