← Blog

Claude Code Mode Discret : Ce que la Source Divulguée Révèle Vraiment

La source divulguée de Claude Code a révélé un Mode Discret indiquant à Claude : 'Ne vendez pas la mèche. Ne mentionnez jamais que vous êtes une IA.' Voici ce qu'il fait réellement — et pourquoi les développeurs s'y intéressent.

11 min read
Claude Code Mode Discret : Ce que la Source Divulguée Révèle Vraiment

Bonjour, je m’appelle Dora. Je lis le fichier divulgué de Claude Code depuis qu’il a émergé en mars 2026. La plupart des analyses se sont concentrées sur les animaux de compagnie BUDDY et les démons KAIROS — genuinement intéressants, mais je me retrouvais bloquée sur quelque chose de plus petit et de plus spécifique.

Un fichier appelé utils/undercover.ts. Et un system prompt qui s’ouvre avec : « Do not blow your cover. » (Ne révèle pas ta couverture.)

Cette phrase m’a arrêtée net. Non pas parce qu’elle est manifestement sinistre. Mais parce que c’est le genre de chose qui semble tout à fait raisonnable dans un contexte et profondément étrange dans un autre — et le code source divulgué ne vous dit pas dans quel contexte vous vous trouvez.

Voici ce que j’ai réellement trouvé.

Ce que dit réellement le code source divulgué — Le system prompt complet

Selon l’analyse du dépôt GitHub de Kuberwastaken — l’une des premières lectures détaillées du code exposé — le mode undercover de Claude Code se déclenche automatiquement lorsqu’un utilisateur est identifié comme employé d’Anthropic (USER_TYPE === 'ant') travaillant dans un dépôt public ou open-source.

Lorsque cette condition est remplie, le système injecte dans le system prompt de Claude le texte suivant :

MODE UNDERCOVER — CRITIQUEVous opérez UNDERCOVER dans un dépôt PUBLIC/OPEN-SOURCE.Vos messages de commit, titres de PR et corps de PR NE DOIVENT PAS contenir d'informations internes à Anthropic.Ne révèle pas ta couverture.

Les éléments spécifiquement supprimés des commits et des pull requests : les noms de code internes de modèles (noms d’animaux comme Capybara, Tengu), les numéros de version de modèles non publiés, les canaux Slack internes et les liens courts (ex. : go/cc), les noms de dépôts ou projets internes, l’expression « Claude Code », et toute mention que l’auteur est une IA — y compris les lignes Co-Authored-By.

Un détail à noter dans l’analyse technique d’Alex Kim : vous pouvez forcer l’activation du mode Undercover avec CLAUDE_CODE_UNDERCOVER=1, mais il n’existe pas d’interrupteur pour le désactiver. Dans les builds externes, l’intégralité de la fonction est éliminée par la suppression du code mort à la compilation, réduite à des retours triviaux. Une fois la condition de déclenchement remplie dans un build interne, le mode est une porte à sens unique.

Ce que le mode Undercover est réellement conçu pour faire

Soyons justes quant à l’intention originale, car elle compte.

Les ingénieurs d’Anthropic utilisent Claude Code lorsqu’ils contribuent à des projets open-source. C’est un flux de travail légitime et de plus en plus courant. Le problème est réel : une IA travaillant avec un contexte interne peut accidentellement divulguer des identifiants internes. Un message de commit mentionnant le numéro de version d’un modèle non publié, une description de PR faisant référence à un canal Slack interne — ce sont le genre de divulgations qui exposent des informations de feuille de route que personne n’avait l’intention de rendre publiques.

Le mode Undercover est, dans sa lecture la plus étroite, un outil d’hygiène des données visant à prévenir l’exposition accidentelle d’informations internes. Supprimer les noms de code internes des messages de commit publics ? Raisonnable. Empêcher les références aux liens courts go/cc d’apparaître dans une PR publique ? Raisonnable.

La phrase « Ne révèle pas ta couverture » est ce qui rend cette lecture charitable plus difficile. Elle cadre la situation non pas comme « éviter de divulguer des données internes » mais comme « maintenir une histoire de couverture ». Ce sont des orientations significativement différentes. L’une concerne l’hygiène de l’information ; l’autre ressemble davantage à une dissimulation active.

Pourquoi la réaction de la communauté des développeurs est mitigée

Trois camps ont émergé presque immédiatement dans le fil Hacker News et sur X.

Le camp schadenfreude a souligné l’évidence : Anthropic a construit un sous-système entier pour empêcher la fuite d’informations internes — puis a livré ce sous-système, ainsi que 512 000 lignes de code source propriétaire, dans un fichier .map que n’importe qui pouvait télécharger. Le système conçu pour prévenir les fuites est lui-même le détail le plus mémorable de la plus grande fuite. La couverture de VentureBeat a confirmé qu’Anthropic avait reconnu l’incident, le décrivant comme « un problème de packaging de version causé par une erreur humaine, et non une faille de sécurité ».

Le camp des préoccupations s’est concentré sur la suppression de Co-Authored-By. La plupart des grands outils de codage par IA — GitHub Copilot inclus — laissent des signaux d’attribution dans les métadonnées des commits lorsqu’ils contribuent à du code. Supprimer activement ces signaux, spécifiquement dans les dépôts open-source publics, place Claude Code dans une catégorie différente. Cela importe parce que les normes de contribution open-source dépendent de la connaissance de qui — ou de quoi — a contribué quoi. Le Developer Certificate of Origin, que de nombreux projets open-source utilisent comme cadre d’attestation léger, exige que les contributeurs certifient qu’ils ont le droit de soumettre leur travail. Un contributeur IA qui a reçu instruction de supprimer toute preuve d’être une IA crée une tension avec ce cadre qui n’est pas résolue par de bonnes intentions.

Le camp pragmatique a repoussé : chaque entreprise dispose d’outils internes aux propriétés inhabituelles ; celui de Claude Code est simplement inhabituellement visible maintenant. Et pour être clair — il n’y a aucune preuve que le mode Undercover affecte les utilisateurs réguliers de Claude Code. Le déclencheur est USER_TYPE === 'ant' : les employés d’Anthropic uniquement, dans des dépôts publics uniquement.

C’est une clarification importante que certaines couvertures ont obscurcie.

La question plus large qu’il soulève pour le développement assisté par IA

La divulgation du mode Undercover est survenue au milieu d’un débat en cours qui était déjà en train de s’intensifier.

Red Hat a publié une analyse approfondie du développement assisté par IA et des normes open-source fin 2025, arguant que la divulgation transparente de l’assistance par IA est de plus en plus traitée comme une norme culturelle dans les communautés open-source — même lorsqu’elle n’est pas encore légalement obligatoire. Des projets comme QEMU ont adopté des politiques explicites interdisant purement et simplement les contributions générées par IA, principalement en raison de l’incertitude quant à la conformité au DCO. Fedora est allé dans l’autre direction, exigeant une divulgation via des balises « Assisted-by: » mais n’interdisant pas l’implication de l’IA.

La position de la Linux Foundation — qui sous-tend le DCO régissant les normes de contribution pour des milliers de projets majeurs — est que ce cadre a été conçu autour de l’auteur humain et n’a pas encore pleinement rattrapé les flux de travail assistés par IA. Cette ambiguïté crée un risque réel pour les projets où la clarté juridique est importante.

Ce que fait le mode Undercover, c’est se soustraire à cette norme émergente exactement là où elle pourrait créer le plus de friction : les contributions d’une entreprise d’IA à des projets open-source publics. Ce n’est pas la même chose qu’un développeur individuel utilisant discrètement Copilot pour du code standard. L’asymétrie de l’information est significativement différente lorsque la partie qui fait des contributions a construit l’outil d’IA, emploie les ingénieurs qui l’utilisent, et a conçu le système pour supprimer la divulgation.

Je ne pense pas que ce soit une décision cynique. Je pense que c’est une décision pratique qui n’a probablement pas été soigneusement examinée sous l’angle de la transparence. Mais cet écart entre l’intention et l’apparence est exactement ce à quoi la communauté des développeurs réagit.

Ce qui a été trouvé aux côtés du mode Undercover

La découverte du mode Undercover n’est pas arrivée seule. Le même code source divulgué contenait 108 modules à fonctionnalités contrôlées supprimés des builds externes via l’élimination du code mort à la compilation de Bun. KAIROS — un agent autonome persistant en arrière-plan qui surveille votre environnement de travail et agit sans invite. ULTRAPLAN. VOICE_MODE. Un système d’animaux de compagnie virtuels appelé BUDDY avec 18 espèces, un ensemencement déterministe par utilisateur et une chance de variante brillante de 1 %.

Tout cela est genuinement intéressant en soi. Mais le mode Undercover a mérité sa propre conversation parce que ce n’est pas une fonctionnalité future — c’est un comportement actuel et actif dans un outil de production utilisé par les personnes qui construisent Claude.

L’ironie centrale demeure : le mode Undercover a été conçu pour prévenir les fuites. Le fichier .map qui l’a exposé a, selon le rapport de Decrypt sur l’incident, probablement été livré à la suite d’une erreur humaine dans le pipeline de build. Anthropic a depuis retiré la version du package et s’est engagé à apporter des modifications de processus.

Ce que cela signifie pour les équipes évaluant les outils de codage par IA

Si vous prenez des décisions d’outillage pour une équipe qui contribue à l’open source, voici quelques questions à poser sur tout assistant de codage par IA :

Attribue-t-il l’assistance de l’IA dans les métadonnées de commit par défaut ? Certains outils le font, d’autres non, et certains suppriment activement l’attribution selon la configuration. Sachez dans quelle catégorie se trouve votre outil avant que cela ne devienne pertinent.

Quelle télémétrie s’exécute en arrière-plan ? Le code source divulgué a montré que Claude Code interroge un point de terminaison de paramètres distant toutes les heures et comporte des interrupteurs de fonctionnalités qui peuvent être basculés à distance. Ce n’est pas inhabituel pour un logiciel d’entreprise, mais cela vaut la peine d’être explicite dans les révisions de sécurité internes et les évaluations de fournisseurs.

Y a-t-il une différence significative entre le comportement CLI et le comportement API ? Les équipes qui s’appuient sur les API de modèles via des couches d’agrégation ont une relation différente avec ces questions par rapport aux équipes qui utilisent des outils CLI groupés avec leurs propres valeurs par défaut opinionées. Les valeurs par défaut sont là où se trouvent les décisions intéressantes, et elles sont rarement annoncées en évidence.

Rien de tout cela n’est un argument pour ou contre un outil spécifique. C’est un rappel que « assisté par IA » n’est pas une catégorie monolithique — les comportements spécifiques intégrés dans l’outillage comptent, et ils valent la peine d’être examinés avec la même rigueur que vous appliqueriez à tout système tiers s’exécutant dans votre environnement de développement.

FAQ

Qu’est-ce que le mode undercover de Claude Code ?

Un sous-système de Claude Code (utils/undercover.ts) qui injecte un system prompt demandant à l’IA de supprimer toutes les informations internes à Anthropic — y compris l’attribution à l’IA — des commits git et des pull requests lorsqu’un employé d’Anthropic travaille dans un dépôt public ou open-source.

Le mode Undercover affecte-t-il les utilisateurs réguliers de Claude Code ?

Non. La condition de déclenchement est USER_TYPE === 'ant' — les employés d’Anthropic uniquement. Les utilisateurs externes sur les builds standard de Claude Code ont l’intégralité de la fonction éliminée par la suppression du code mort de leur installation.

Claude Code cache-t-il la participation de l’IA dans les commits open-source ?

Pour les employés d’Anthropic travaillant dans des dépôts publics avec le build interne : oui, par conception. Pour tout le monde : aucune preuve de ce comportement. La distinction est importante.

Où puis-je lire moi-même le code source divulgué de Claude Code ?

Anthropic a retiré la version du package npm et a poursuivi des suppressions DMCA contre les miroirs GitHub. Les analyses archivées de chercheurs comme Kuberwastaken et Alex Kim documentent ce qui a été trouvé.

Anthropic a-t-il commenté le mode Undercover ?

Le porte-parole d’Anthropic a confirmé que la fuite plus large était « un problème de packaging de version causé par une erreur humaine, et non une faille de sécurité ». Aucune déclaration spécifique sur le mode Undercover n’avait été émise au moment de la rédaction.

Ce à quoi je reviens sans cesse, c’est à quel point tout cela serait resté invisible sans la fuite. Le comportement lui-même peut être défendable. Mais « défendable si examiné » et « examiné » sont deux choses différentes. Les communautés open-source ont généralement décidé qu’elles préféraient avoir le second.

Anthropic le préfère probablement aussi, en principe. Il n’a tout simplement pas appliqué ce principe ici.

Articles précédents :