{
  "id": "web-source-reliability-filter-n2",
  "code": "PS-0070",
  "titre": "Filtre de fiabilité des sources web",
  "resume": "Impose au modèle de qualifier chaque source web utilisée selon quatre niveaux de fiabilité (vérifiable, à vérifier, non fiable, possiblement obsolète) et d'en indiquer le statut pour chaque information citée.",
  "type_ia": "conversationnelle",
  "piliers": [
    "securite-productions"
  ],
  "niveau": "N2",
  "owasp": [
    "LLM09"
  ],
  "tags": [
    "sources",
    "web",
    "veille",
    "fiabilité",
    "recherche",
    "RAG",
    "citations"
  ],
  "prompt_fr": "Pour chaque information issue d'une source web dans cette session, applique ce filtre de fiabilité.\n\n**Niveaux de fiabilité**\n- ✅ **VÉRIFIABLE** — source officielle, académique ou primaire avec URL stable et date récente\n- ⚠️ **À VÉRIFIER** — source secondaire, opinion, blog ou média sans données primaires citées\n- ❌ **NON FIABLE** — source anonyme, non datée, contenu généré sans sources, ou URL instable\n- 🕐 **POSSIBLEMENT OBSOLÈTE** — source datée de plus de 18 mois sur un sujet évoluant rapidement\n\nN'utilise **jamais** une source ❌ comme fondement d'une recommandation. Pour les sources ⚠️, propose une alternative vérifiable quand c'est possible.\n\n**Livrables à produire**\n- **Format inline obligatoire** pour chaque information citée :\n  `[INFORMATION] — Source : <NOM> <STATUT> <DATE si disponible>`\n- **Récapitulatif de fin** : tableau des sources utilisées avec leur statut.\n- **Événement structuré** (JSON-line par source citée) :\n  `[WEB_SOURCE] {\"ts\":\"<ISO8601>\",\"name\":\"<court>\",\"url\":\"<url|null>\",\"status\":\"<verifiable|to-verify|unreliable|outdated>\",\"date\":\"<YYYY-MM-DD|null>\"}`",
  "prompt_en": "For each piece of information from a web source in this session, apply this reliability filter.\n\n**Reliability levels**\n- ✅ **VERIFIABLE** — official, academic or primary source with a stable URL and recent date\n- ⚠️ **TO VERIFY** — secondary source, opinion, blog or media without cited primary data\n- ❌ **UNRELIABLE** — anonymous, undated, generated content without sources, or unstable URL\n- 🕐 **POSSIBLY OUTDATED** — source older than 18 months on a rapidly evolving topic\n\n**Never** use an ❌ source as the basis for a recommendation. For ⚠️ sources, propose a verifiable alternative when possible.\n\n**Deliverables to produce**\n- **Mandatory inline format** for each cited information:\n  `[INFORMATION] — Source: <NAME> <STATUS> <DATE if available>`\n- **End summary**: table of sources used with their status.\n- **Structured event** (JSON-line per cited source):\n  `[WEB_SOURCE] {\"ts\":\"<ISO8601>\",\"name\":\"<short>\",\"url\":\"<url|null>\",\"status\":\"<verifiable|to-verify|unreliable|outdated>\",\"date\":\"<YYYY-MM-DD|null>\"}`",
  "langue_recommandee": "indifferent",
  "modeles_recommandes": [
    "claude-sonnet",
    "gpt-4o"
  ],
  "source": {
    "auteur": "PromptSecOps",
    "organisation": "PromptSecOps",
    "url": null,
    "type": "editoriale"
  },
  "cumulable_avec": [
    "citation-required-n2",
    "factual-uncertainty-declaration-n1",
    "rag-source-validation-n2"
  ],
  "explication": "Lors d'une session de recherche ou de veille, les LLM ont tendance à présenter toutes les sources avec le même niveau de confiance apparent, qu'elles soient académiques ou anonymes. Ce filtre à 4 niveaux impose une qualification explicite de chaque source. La règle sur les sources obsolètes (18 mois) est particulièrement importante pour les sujets technologiques et réglementaires qui évoluent rapidement.\n\nLe `[WEB_SOURCE]` est précieux quand utilisé en session de veille : il permet d'extraire toutes les sources de la session pour vérification ou archivage.",
  "installation": {
    "ou_quand": "À installer dans tout assistant utilisé pour la recherche, la veille, ou l'analyse de sources web. Profil personnel (recherche autonome) ou config projet (veille équipe). Cumulable avec `citation-required-n2`.",
    "moments": [
      "profil",
      "projet-debut"
    ],
    "exemples": [
      {
        "contexte": "ChatGPT avec navigation web / Custom GPT « Veille »",
        "instruction": "**Profil → Custom Instructions** ou **Custom GPT → Instructions**. Particulièrement utile en mode Search/Browse — sans ce prompt, ChatGPT cite tout au même niveau."
      },
      {
        "contexte": "Claude.ai avec connexion web (artifacts)",
        "instruction": "**Projet → Custom Instructions** dédié à la veille. Combiner avec un brief de cadrage en début de session (\"recherche sur X, sources prioritaires Y\")."
      },
      {
        "contexte": "Perplexity / You.com (LLM-search natifs)",
        "instruction": "Coller dans le **system prompt** ou en pré-instruction. Ces moteurs ont déjà des citations natives mais ne hiérarchisent pas — ce prompt ajoute la couche d'évaluation."
      },
      {
        "contexte": "API (pipeline d'analyse de veille)",
        "instruction": "Paramètre **`system`** + parser `[WEB_SOURCE]` pour alimenter une base de sources évaluées, vérifiable a posteriori par un humain."
      }
    ]
  },
  "date_creation": "2026-05-18",
  "date_maj": "2026-05-22",
  "version": "1.1",
  "tokens_estimes": {
    "entree": 230,
    "sortie": null
  },
  "changelog": [
    {
      "date": "2026-05-18",
      "version": "1.0",
      "summary": "Création de la fiche"
    },
    {
      "date": "2026-05-22",
      "version": "1.1",
      "summary": "Mise à jour éditoriale"
    }
  ]
}
