Tri des sources (source triage)
Trouve des sources candidates, puis répond à quatre questions sur chacune avant toute analyse :
- Est-elle légalement gratuite ? (accès)
- Puis-je, en tant qu'agent IA, réellement la lire, et par quelle voie ? (portée)
- Est-elle réelle, actuelle et non rétractée ? (intégrité)
- Quelle est sa qualité et son importance ? (note, rôle, ⭐ sélection contextuelle)
Le résultat est un registre (ledger). research-plan s'appuie dessus, evidence-check l'audite, et l'utilisateur peut l'utiliser seul (« lesquelles peux-tu lire, lesquelles dois-je télécharger ? »). Fonctionne pour tout domaine et pour les sources non académiques.
Vérités fondamentales (apprises à la dure ; ne les réapprenez pas)
- L'accès est par voie, pas par article. Un article en libre accès peut être bloqué sur le site de l'éditeur et accessible via une API, et inversement. Enregistrez la voie qui a fonctionné.
- HTTP 200 ment. Les pages CAPTCHA, les murs de connexion, les shells JavaScript, les XML vides et les outils qui signalent un « succès » avec un texte vide ressemblent tous à un succès. Vérifiez ce que vous avez obtenu.
- WebFetch retourne l'extraction d'un modèle, pas la page. Utile pour la lecture et les métadonnées ; jamais une source de citations textuelles. Le texte textuel provient uniquement des voies brutes : XML/JSON d'API récupéré avec le shell (
curl), un PDF téléchargé, ou un fichier fourni par l'utilisateur. - Bloqué ≠ manquant. Une page qui vous bloque laisse une source
non vérifiée (unchecked), jamaisnon trouvée (not_found). Une API qui est en panne signifie omettre le signal, ne jamais enregistrerfaux (false). - Bronze n'est pas lisible. Testez-le.
- Ne jamais contourner. Pas de bibliothèques fantômes, de miroirs, de caches, de scraping contournant les robots/CAPTCHA, ou de récolte en masse.
- Ne jamais nommer une source de mémoire. Lors des essais, les premières ébauches de références des deux modèles contenaient des titres erronés, des années erronées, un DOI erroné, et un article qui n'existe pas. Chaque source est vérifiée avant d'apparaître où que ce soit.
Écrivez au fur et à mesure (point de contrôle)
Créez recherche/<slug>/registre.md au début. Après chaque recherche, ajoutez la ligne de requête au journal de recherche. Après avoir classé une source, ajoutez sa ligne immédiatement. Les longues séquences perdent le contexte ; le registre sur disque est la mémoire.
Étape 0 — Cadrage (un message, puis lancez-vous)
Indiquez en une ligne : question · domaine(s) · plage d'années (par défaut : 10–15 dernières années + travaux fondateurs plus anciens ; « récent » = 5 ans) · types de sources dans le périmètre · contraintes strictes de la demande (par ex. « la grille nécessite 2 chapitres de livre ») · profondeur :
rapide (quick): gardez 8–15 sources. L'effet boule de neige est facultatif (une boule de neige avant à partir de la revue principale). Les enregistrements au-delà du plafond sont notés commenon conservé (plafond) (not carried forward (cap)): comptés, mais aucune raison d'exclusion nécessaire.approfondi (deep): gardez 25+, boule de neige en arrière et en avant à partir des 3–5 travaux les plus centraux.
Passez à l'action sauf correction. Si l'utilisateur a dit « vérifie avec moi » / « étape par étape », arrêtez-vous à chaque ◆. Sinon, exécutez directement et listez vos choix à la fin.
Étape 1 — Bibliothèque d'abord
Vérifiez ce que l'utilisateur possède déjà : un dossier connecté de PDFs, des registres précédents recherche/*/, un fichier .bib ou une exportation Zotero/CSL. Les sources possédées sont détenu : bibliothèque (held: library). Transmettez leurs DOIs à la recherche comme « déjà possédé ».
Étape 2 — Découverte
Jeu de termes par concept, combinés par OU : synonymes, acronymes, noms plus anciens, orthographes UK/US, noms de méthodes. En sciences de la vie, ajoutez MeSH + termes d'entrée, symboles de gènes, noms d'enzymes + numéros EC, noms d'organismes en latin et courant. Recherchez la méthode, pas l'auteur. Utilisez 2–3 groupes de concepts par requête ; plus de ET donne 0 résultats.
| Besoin | Principal | Aussi |
|---|---|---|
| Biomédical / sciences de la vie | PubMed (MeSH) | Europe PMC REST (SRC:"PPR" trouve les prépublications bioRxiv/medRxiv ; HAS_FT:y = texte intégral disponible), OpenAlex |
| Tout domaine, large | OpenAlex (les filtres sujet/concept sont meilleurs qu'une recherche brute) | Semantic Scholar, Crossref |
| Informatique / ML / physique / quant-bio | arXiv (trier par pertinence) | Semantic Scholar, alphaXiv / Scholar Feed |
| Prépublications | Europe PMC SRC:"PPR" ou OpenAlex type:preprint | le connecteur bioRxiv n'a pas de recherche par mot-clé : utilisez-le uniquement pour les détails d'un DOI connu et sa version publiée |
| Chapitres de livre | OpenAlex type:book-chapter, catalogue de l'éditeur, WebSearch | vérifiez le contenant (voir Étape 4) |
| Revendications / revues rapides | Consensus, Elicit (si connecté) | vérifiez chaque résultat par DOI |
| Non académique | d'abord les documents officiels/specs/code du propriétaire | WebSearch pour le reste |
- Vérification de sensibilité : si des articles clés sont connus, confirmez que vos requêtes les trouvent.
- Comptages de résultats : des dizaines de milliers de résultats signifie trop large ; 0–1 signifie trop contraint, donc reformulez. Reformuler une requête à zéro résultat fait partie du même tour.
- Enregistrez : titre, auteurs, année, revue/conférence, type, DOI · PMID · PMCID · arXiv · URL,
trouvé_via (found_via). - Dédoublonnez : DOI → autres IDs → titre normalisé + année. Fusionnez la prépublication et la version publiée.
- Limites : demandez avant ~1 000 enregistrements ou ~50 appels.
◆ Point de contrôle : termes, requêtes, comptages de résultats.
Étape 3 — Tri d'accès (avant de lire quoi que ce soit)
3a. Accès légal (par lots)
Pour chaque source conservée, appelez OpenAlex get_work (les résultats de recherche omettent la licence). Copiez exactement sa valeur oa_status : gold · diamond · hybrid · green · bronze · closed. Enregistrez également license et oa_url/pdf_url. Les champs license d'Europe PMC et get_copyright_status de PubMed sont des alternatives. Unpaywall (version, host_type) nécessite un email réel : n'utilisez que celui que l'utilisateur a approuvé pour cela ; sinon, ignorez-le.
- Pas de données →
inconnu (unknown). N'inventez jamaisoa, les suffixes?ou les noms d'éditeurs comme valeurs d'accès. - Source non académique →
web. - Licence inconnue → traitez comme
local-seulement (local-only)pour la redistribution.
3b. Portée de l'agent : l'échelle des voies (arrêtez-vous au premier succès)
- Détenu (Held) : dans la bibliothèque de l'utilisateur ou une exécution précédente.
- Europe PMC REST, brut, via
curldu shell là où le shell peut l'atteindre :- recherche :
…/rest/search?query=DOI:"a" OR DOI:"b"&format=json, ≤8 DOIs par appel, ≥1 s d'intervalle ; - texte intégral :
…/rest/{PMCID}/fullTextXML. C'est la meilleure voie pour le texte textuel. Utilisez WebFetch uniquement si le shell ne peut pas l'atteindre ; WebFetch rejette les longues URLs et est limité en débit. - 429 → attendez, réessayez une fois. 5xx →
bloqué:http-5xx (blocked:http-5xx), passez à la voie suivante.
- recherche :
- PubMed
get_full_text_article: valide uniquement sifull_textn'est pas vide. Vide →bloqué:corps-vide (blocked:empty-body). - Serveurs de prépublication : pages
.fulld'arXiv, bioRxiv/medRxiv. - Emplacements en libre accès : OpenAlex
oa_url/pdf_url(une URL PDF directe peut fonctionner là où la page de l'article échoue), Semantic ScholaropenAccessPdf, CORE, liens TDM de Crossref. - Page de l'éditeur : une tentative par hôte. Suivre la redirection du DOI est cette tentative. Ne suivez jamais vers un hôte interdit par robots.txt (ScienceDirect / Elsevier linkinghub).
- Dépôt de l'auteur ou institutionnel via WebSearch
"<titre exact>" pdf. Respectez les avis « interdiction de fouille de textes et de données / utilisation IA ». - Rien n'a fonctionné : enregistrez la raison et orientez la source vers l'utilisateur.
Observé en 2026-10 (à retester ; ces éléments changent) :
- OK brut : Europe PMC REST via curl.
- OK extrait : Nature OA, Frontiers, MDPI, bioRxiv
.full, arXiv, URLs PDF Springer depuis OpenAlex. - Bloqué : ScienceDirect (robots), Wiley y compris OA (erreur de récupération), pages d'articles Springer, endpoint PDF de BMC, site PMC (CAPTCHA), Annual Reviews, Science.
- Non fiable : outil de texte intégral de PubMed (souvent vide), Europe PMC fullTextXML (HTTP 500 pour certains PMCIDs), Europe PMC via WebFetch (limité en débit).
Validez avant de déclarer quoi que ce soit lisible :
- corps du texte au-delà du résumé ;
- pas une page CAPTCHA / connexion / accès refusé ;
- pas du XML vide ou limité aux métadonnées.
- Un fichier téléchargé compte uniquement s'il commence par
%PDF-, n'est pas du HTML, et fait plus d'environ 10 Ko.
| portée | signification |
|---|---|
lisible:<voie> (readable:<route>) | texte intégral obtenu : lisible:europepmc-xml (lisible:europepmc-xml) (brut) · lisible:pdf (lisible:pdf) (brut) · lisible:webfetch (lisible:webfetch) (extrait, non capable de texte textuel) |
résumé-seulement (abstract-only) | seul le résumé est accessible (mur de paie typique) |
bloqué:<raison> (blocked:<reason>) | mur-de-paie (paywall) (pas même un résumé) · robots · captcha · connexion (login) · http-4xx · http-5xx · erreur-récup (fetch-error) · limité-débit (rate-limited) · corps-vide (empty-body) · js-shell |
non-vérifié (unchecked) | non tenté (budget / plafond). N'écrivez jamais « non testé ». |
Règle d'étiquetage : le mot contrôlé vient en premier, exactement comme dans ces tableaux. Des notes peuvent suivre entre parenthèses, par ex. vérifié (DOI Crossref) (verified (Crossref DOI)).
Cherchez une copie verte avant d'étiqueter une source comme bloqué ou résumé-seulement. Une source légalement gold/hybrid/green/bronze mais bloquée pour vous va dans la section « gratuit mais bloqué pour l'IA ».
Étape 4 — Intégrité (par lots ; avant de nommer quoi que ce soit)
Exécutez cette étape juste après la découverte pour chaque source que vous nommerez : dans le plan, comme ⭐, ou comme recommandation. Ce n'est pas une étape finale.
- Existence : verdicts
vérifié (verified)·partiel (partial)·non-concordant (mismatch)·non-trouvé (not_found)·non-vérifié (unchecked). Utilisez Reference Checkercheck_references+ OpenAlexresolve_references. Lorsque les outils ne sont pas d'accord, une correspondance exacte de DOI dans Crossref ou OpenAlex l'emporte sur unnon-trouvépar recherche de titre ; enregistrez les deux. - Chapitres de livre : vérifiez le contenant, pas seulement le DOI : titre du livre, éditeurs, pages et éditeur à partir du document Crossref (
api.crossref.org/works/<doi>→container-title,page). Lors des essais, un DOI était correct mais le titre du livre était erroné. - Rétractation :
check_retractions. Clair signifie seulement « aucun avis trouvé ». - Évaluation par les pairs : étiquetez les prépublications (
pairs : prépublication (peer: preprint)dans le registre ;`preprint`sur l'entrée du fichier sources) ; citez la version publiée si elle existe. - Contamination : une prépublication de 2024+ qui n'est pas trouvée dans ≥2 index est un risque de fabrication. Revérifiez-la ou éliminez-la.
- Signale les revues prédatrices ; littérature grise : URL + date d'accès + lien Wayback.
Étape 5 — Note, rôle, ⭐
Note A–F : médiane de l'adéquation pour son propre domaine, méthodologie, évaluation par les pairs, actualité, données, conflits. Un échec d'intégrité plafonne la note à D. Une source non lue ou résumé-seulement obtient une note provisoire (B?).
Rôle : preuve (evidence) · contexte (background) · méthode (method) · outil/donnée (tool/data) · contrepoint (counter).
Niveaux non académiques : T1 documents/specs/code/loi du propriétaire · T2 institutionnel · T3 journalisme expert · T4 communauté · T5 marketing du fournisseur.
⭐ Ensemble contextuel (5–10 choix) : les sources qui amélioreraient le plus ce qui est construit, si stockées localement. L'accès est sans importance. Chaque choix nécessite :
- pourquoi c'est important ;
- comment l'obtenir (lien OA / connexion bibliothèque VIT / prêt interbibliothèques / email à l'auteur) ;
- un nom « Enregistrer sous »
<premier-auteur>-<année>-<mot-clé>.pdf; - redistribution :
ok(CC-BY / CC0 / domaine public) oulocal-seulement (local-only)(tout le reste, y compris licence inconnue).
Vérification de biais (Skew check) : ≥70% des valeurs connues dans une dimension → dites-le avec le compte.
Étape 6 — Le registre (ledger)
recherche/<slug>/registre.md : le premier tableau, une ligne par source, colonnes dans cet ordre :
# · Citation courte · Type · Rôle · Note · accès · licence · version · portée · détenu · lu · intégrité · rétractation · pairs · ⭐ · Enregistrer sous · Lien · trouvé_via
lu (read)commence parnon-lu (not-read);research-planremplitcomplet (full)·sections:<quelles> (sections:<which>)·résumé (abstract)·métadonnées (metadata).⭐=okoulocal-seulement (local-only)pour les choix,-sinon.- Les lignes exclues utilisent les ids
E1….
Sous le tableau :
- Journal de recherche : base de données · date · requête · résultats · quel terme a trouvé quoi.
- Comptes : identifiés → après dédoublonnage → non conservés (plafond) → conservés → exclus (avec raisons).
totaldans toute ligne Comptes = chaque ligne du registre, y compris les exclues.
Exécutez le vérificateur fourni, python3 <chemin du dossier de cette compétence>/scripts/research_checks.py ledger recherche/<slug>/registre.md (Python de bibliothèque standard, exécuté dans votre propre sandbox), et corrigez les erreurs avant de transmettre. Utilisé seul, affichez le registre comme le fichier sources décrit dans research-plan.
Confidentialité
Cherchez avec des mots de sujet uniquement, jamais des phrases du travail non publié de l'utilisateur. L'email de l'utilisateur ne va qu'à Unpaywall, et seulement avec son accord.