{
  "id": "ai-invents-fake-npm-packages",
  "type": "failures",
  "category": "failures",
  "locale": "fr",
  "url": "/fr/failures/ai-invents-fake-npm-packages",
  "title": "Comment corriger les agents de codage IA qui inventent des packages npm factices",
  "description": "Pourquoi les agents IA hallucinent des packages npm qui n'existent pas, comment les repérer et comment y mettre fin.",
  "tools": [
    "Cursor",
    "Claude Code",
    "Codex"
  ],
  "stack": [
    "TypeScript"
  ],
  "tags": [
    "dependencies",
    "hallucination",
    "security"
  ],
  "difficulty": null,
  "updated": "2026-06-08",
  "markdown": "Une défaillance courante et dangereuse : l'agent importe un package qui n'existe pas — ou pire, un package qu'un squatteur a enregistré pour correspondre au nom halluciné.\n\n## Le symptôme\n\nL'agent écrit une importation pour un package au nom plausible et l'ajoute à\n`package.json`, mais l'installation échoue ou récupère un package inconnu.\n\n```txt\nimport { magicValidate } from \"zod-magic-helpers\"; // does not exist\n```\n\n## Pourquoi cela se produit\n\nLes modèles effectuent une correspondance de modèles sur les conventions de nommage (\"il y a probablement un package `-helpers`\") et génèrent des noms qui *semblent* réels. C'est la base des attaques de la chaîne d'approvisionnement par \"slopsquatting\".\n\n## Comment le repérer\n\n- Une dépendance que vous ne reconnaissez pas apparaît dans le diff.\n- Le package a presque zéro téléchargement ou a été publié très récemment.\n- L'installation résout un nom qui diffère d'un caractère d'un package populaire.\n\n## Comment le corriger\n\n```txt\n[ ] Verify every new dependency exists and is the one you intend\n[ ] Check weekly downloads + repo link before installing\n[ ] Prefer packages already in the lockfile\n[ ] Pin versions; review the lockfile diff\n```\n\n## Invite de correction\n\n```txt title=\"Fix Prompt\"\nYou added a dependency I can't verify. List every new package, its npm URL,\nand weekly download count. Replace any unverified package with a standard,\nwidely-used alternative or inline the logic instead.\n```\n\n## Test\n\n```bash\nbun pm view <package> 2>/dev/null || echo \"DOES NOT EXIST\"\n```"
}