Créer une skill Claude Code pour fact-checker les news

Créer une skill Claude Code pour fact-checker les news

·11 min de lecture·Mis à jour le 6 mars 2026
Avertissement

Cette skill repose sur un LLM (Claude) pour orchestrer les recherches et synthétiser les résultats. Malgré le croisement de sources (web, APIs fact-checking, publications scientifiques) et les étapes de vérification intégrées, un LLM reste susceptible de produire des erreurs factuelles, des raccourcis ou des omissions. Les rapports générés sont un point de départ pour votre propre jugement, pas une vérité absolue.

Le problème

Un post LinkedIn : « La plus grosse réserve d'hydrogène naturel au monde découverte en Moselle ! La Moselle, nouveau centre du monde ! », visuel Sciences et Avenir et emojis fusées. Vrai, exagéré, inventé ?

Pour le savoir : retrouver l'article original, identifier qui a fait la découverte et dans quel labo, vérifier les chiffres, chercher si des fact-checkers s'y sont déjà collés, comparer avec d'autres gisements dans le monde, et détecter les biais de présentation — typiquement le conditionnel qui se transforme en affirmatif d'une reprise à l'autre. Une à deux heures par news.

Une skill existait déjà pour les affirmations scientifiques (/science-check), mais le fact-checking de news est un autre métier : on ne vérifie pas une étude PubMed, on vérifie un titre de journal. D'où /fact-check.

Ce que ça donne concrètement

/fact-check "la plus grosse réserve d'hydrogène naturel au monde" en Moselle

Ou directement avec un screenshot : /fact-check /chemin/vers/screenshot.png. Deux minutes plus tard :

# Fact Check

**Affirmation :** "La plus grosse réserve d'hydrogène naturel au monde"
   en Moselle, découverte "unique au monde"
**Source :** Sciences et Avenir — Fiabilité : Tier 2
**Verdict global :** EXAGERE
**Confiance :** ELEVE

## Résumé

La découverte d'hydrogène naturel en Moselle est réelle et
scientifiquement documentée par le CNRS. Les concentrations mesurées
(15% à 1 100m) sont effectivement inédites. En revanche, "plus grosse
réserve au monde" repose sur des estimations théoriques (34-46 Mt) que
les chercheurs eux-mêmes présentent au conditionnel. "Unique au monde"
est trompeur : d'autres gisements existent (Mali, Australie, Oman).

## Décomposition des affirmations

Sous-affirmation             │ Verdict      │ Confiance
─────────────────────────────┼──────────────┼────────────────────────
Gisement d'H₂ en Moselle    │ VRAI         │ ELEVE (CNRS, FDE, AFP)
"Plus grosse réserve"        │ PLUTOT VRAI  │ MOYEN (conditionnel)
"Unique au monde"            │ TROMPEUR     │ ELEVE (Mali, Australie)
"Nouveau centre du monde"    │ EXAGERE      │ ELEVE (ajout LinkedIn)

## Biais détectés

- Conditionnel supprimé : le CNRS titre "Un gisement géant ?"
  avec point d'interrogation, les reprises suppriment le "?"
- Confusion ressource/réserve : 34-46 Mt = ressource théorique,
  pas réserve prouvée exploitable
- "Unique au monde" : unique par la concentration, pas par
  l'existence du phénomène (Mali depuis 1987)

## Sources consultées (12)
 [1] CNRS Le journal — "Un gisement géant d'hydrogène ?"
 [2] Ministère de l'Économie — Permis PER Trois-Évêchés
 [3] The Conversation — Pironon & de Donato (2023)
 ...

Le verdict n'est pas « FAUX » mais « EXAGERE ». La découverte est réelle, les chiffres plausibles, mais la présentation médiatique gomme les incertitudes : le CNRS écrit « pourrait être » avec un point d'interrogation, et trois reprises plus tard c'est une affirmation en gras avec des emojis.

Pourquoi pas juste étendre /science-check ?

Aspect/science-check/fact-check
CibleAffirmation scientifique/santéNews, titre d'article, post social
SourcesPubMed, Cochrane, Semantic ScholarWeb, APIs fact-check, sources primaires
VerdictsCONFIRME / REFUTE / PREMATUREVRAI / EXAGERE / TROMPEUR / FAUX
Biais cherchésFinancement industrie, petit échantillonSensationnalisme, omission, clickbait
Agents parallèles3 (méta-analyses, risques, critique)4 (faits, officiel, debunk, contexte)
Phase spécifiqueAuto-vérification (checklist qualité)Détection de biais (patterns)

Deux métiers, deux skills.

La Google Fact Check API

C'est la grosse nouveauté par rapport à /science-check. Avant de lancer les recherches web, on interroge la base mondiale des fact-checks pro (AFP Factuel, Snopes, PolitiFact, Les Décodeurs). Si quelqu'un a déjà vérifié l'affirmation, autant le savoir avant de mobiliser 4 agents.

La clé API est gratuite : Google Cloud Console → créer un projet → activer « Fact Check Tools API » → créer une clé.

# Fish
set -gx GOOGLE_FACTCHECK_API_KEY "votre_cle_ici"

# Bash/Zsh
export GOOGLE_FACTCHECK_API_KEY="votre_cle_ici"
curl -s "https://factchecktools.googleapis.com/v1alpha1/claims:search\
?query=hydrog%C3%A8ne+naturel+Moselle\
&languageCode=fr\
&key=${GOOGLE_FACTCHECK_API_KEY}" | python3 -m json.tool

Si un fact-check pro existe, on récupère le verdict, le nom du fact-checker et le lien vers l'article. Sinon — comme pour l'hydrogène en Moselle — la réponse est {}. Dans les deux cas c'est utile : soit un raccourci, soit la confirmation qu'on est en terrain vierge. Si la clé n'est pas configurée, la skill passe directement à la recherche web, sans erreur.

Les serveurs MCP

La skill réutilise les mêmes MCP que /science-check :

  • PubMed MCP (mcp-simple-pubmed) — accès direct à l'API Entrez de PubMed
  • Paper Search MCP (paper-search-mcp) — recherche multi-sources : PubMed, arXiv, bioRxiv, Google Scholar

C'est l'Agent D (contexte et nuance) qui s'en sert quand le sujet s'y prête. Pour un fact-check politique ou économique, il se rabat sur WebSearch. Si vous avez déjà le ~/.claude/mcp.json de /science-check, rien à ajouter.

Workflow en 8 phases

Phases 1-2, extraction et classification. Claude identifie le type d'input (URL, texte, screenshot), extrait les affirmations clés, et classe la source selon une grille à 5 niveaux : un article du CNRS est Tier 1, un post LinkedIn Tier 4.

Phase 3, PRE-CHECK. Interrogation de la Google Fact Check API avant de mobiliser les agents. Si un verdict pro existe, il est intégré comme source Tier 2.

Phase 4, 4 agents en parallèle. Agent A cherche les faits bruts en français et en anglais, Agent B les sources officielles (CNRS, BRGM, ministères), Agent C les contre-arguments et critiques, Agent D le contexte scientifique via les MCP.

Pourquoi 4 et pas 3 comme science-check ? En science, PubMed est LA source. En news, la source primaire peut être n'importe où : un communiqué du CNRS, un permis du ministère de l'Économie, un arrêt du Conseil d'État. Sans l'agent B dédié aux institutions, les premiers fact-checks rataient systématiquement ces sources.

Phases 5-6, approfondissement et croisement. Claude remonte systématiquement à la source primaire — l'article du CNRS Le journal, pas la reprise France Bleu. C'est là qu'on tombe sur le point d'interrogation du titre (« Un gisement géant d'hydrogène en Lorraine ? ») et le conditionnel systématique, disparus dans toutes les reprises.

Phase 7, détection de biais. L'article original passe au crible d'une grille de patterns :

  • Biais de présentation : clickbait, superlatifs non justifiés, chiffres sans contexte
  • Biais de raisonnement : corrélation/causalité, cherry-picking, généralisation abusive
  • Biais d'omission : contexte manquant, incertitudes gommées, risques non mentionnés
  • Biais de source : conflit d'intérêt, echo chamber, communiqué de presse déguisé

Phase 8, synthèse avec ultrathink. Le mot ultrathink dans le SKILL.md active la réflexion étendue. C'est ce qui permet d'arriver à « VRAI sur le fond mais EXAGERE dans la présentation » au lieu de trancher binaire.

L'architecture : 6 fichiers, pas un seul gros

La skill vit dans ~/.claude/skills/fact-check/ (voir sur GitHub) :

fact-check/
├── SKILL.md              # Instructions principales (148 lignes)
├── VERDICT_SCALE.md      # Échelle de verdicts à 8 niveaux
├── SOURCE_RELIABILITY.md # Grille de fiabilité des sources (5 tiers)
├── BIAS_PATTERNS.md      # Patterns de biais et manipulation
├── REPORT_TEMPLATE.md    # Template du rapport final
└── API_INTEGRATION.md    # Intégration Google Fact Check API

Progressive disclosure : le SKILL.md reste court, Claude charge les références à la demande. Cinq fichiers au lieu de trois pour /science-check, parce que le fact-checking de news demande plus de grilles de lecture — tout condenser en trois fichiers donnait un résultat illisible.

Le frontmatter YAML dit à Claude quand déclencher la skill, le corps markdown comment bosser :

name: fact-check
description: "Verifie la veracite d'une information, article ou affirmation
  en croisant sources web, papers scientifiques, APIs de fact-checking et
  positions officielles..."
user-invocable: true
argument-hint: "[URL, texte ou description de l'affirmation a verifier]"
allowed-tools:
  - Agent
  - Bash
  - Read
  - WebSearch
  - WebFetch
  - mcp__pubmed__search_pubmed
  - ...

Trois points sur le frontmatter :

La description est longue, volontairement. Claude a tendance à sous-déclencher les skills. En listant les domaines (science, technologie, énergie, économie, géopolitique) et les formulations possibles (« si une info est vraie, fiable, exagérée ou fake »), on le pousse à déclencher au bon moment.

$ARGUMENTS plutôt que AskUserQuestion. La première version demandait systématiquement confirmation de l'affirmation : redondant. Quand vous tapez /fact-check "hydrogène Moselle", Claude a déjà l'argument. Le fallback AskUserQuestion ne sert que si vous tapez /fact-check tout court.

Read dans les allowed-tools. C'est ce qui fait marcher les screenshots : Claude Code est multimodal, un Read sur un .png retourne le contenu visuel. La skill peut donc fact-checker directement une capture d'écran de tweet ou de post LinkedIn.

Les fichiers de référence : VERDICT_SCALE.md (échelle à 8 niveaux, bien plus fine que le vrai/faux binaire — un article peut être VRAI sur le fond et EXAGERE dans sa présentation, et les deux doivent être signalés), SOURCE_RELIABILITY.md (grille à 5 tiers calibrée pour les médias francophones), BIAS_PATTERNS.md, REPORT_TEMPLATE.md (structure imposée du rapport — sans lui, Claude zappait des sections entières, notamment les biais une fois sur trois) et API_INTEGRATION.md.

Tester

Relancez Claude Code (les skills se chargent au démarrage), puis :

/fact-check le café augmente le risque de cancer
/fact-check https://www.example.com/article-douteux
/fact-check /chemin/vers/screenshot.png

Comptez 1 à 3 minutes. Les sujets bien couverts vont plus vite, les sujets de niche demandent aux agents de creuser davantage.

Ce que ça apprend

Le conditionnel, c'est toute la différence. Le CNRS dit « pourrait être la plus grosse réserve ». Sciences et Avenir met des guillemets autour de « unique au monde ». Le post LinkedIn transforme ça en « La Moselle, nouveau centre du monde ! ». Chaque reprise supprime un conditionnel — c'est insidieux, et c'est exactement ce que la skill détecte.

Quatre agents au lieu de trois pour les news. L'agent dédié aux sources institutionnelles est ce qui distingue le fact-checking de news du fact-checking scientifique : la source primaire peut se planquer dans un PDF sur economie.gouv.fr.

La Google Fact Check API est sous-utilisée. Gratuite, simple, et parfois elle épargne 90 % du travail. Sur des sujets techniques elle renvoie {} — mais savoir qu'on est le premier à vérifier est une information en soi.

Les biais d'omission sont le vrai danger. L'article n'a pas besoin de mentir pour être trompeur. Oublier de dire que les 46 millions de tonnes sont une estimation théorique, que « réserve » et « ressource » ne sont pas la même chose en géologie, que le Conseil d'État a annulé le projet méthane du même opérateur quelques semaines avant — ces omissions changent complètement la perception, et ce sont les plus dures à détecter sans lire la source primaire.

Les limites

C'est un outil, pas un oracle, ni un journaliste. La skill est aussi bonne que les sources disponibles en ligne et que la capacité de Claude à les interpréter. Sur des sujets très récents ou très locaux, les sources manquent parfois. Sur des sujets techniques — géologie, physique nucléaire — Claude peut mal interpréter une étude (confusion d'unités de mesure déjà constatée).

Mais pour le cas d'usage quotidien — un post LinkedIn, un titre d'article, un tweet qui sonne trop beau — deux minutes suffisent pour savoir si c'est VRAI, EXAGERE ou FAUX. Et surtout pour comprendre pourquoi.

PartagerLinkedInXBluesky

Articles similaires