Claude Code et le problème du code généré : quand le code parle de lui-même
Le 1er juillet 2026, Anthropic a déployé Claude Code 2.1.198 avec une surprise : si vous ne répondiez pas à une question de l’agent dans les 60 secondes, l’agent décidait seul et continuait. Aucune mention au changelog, aucun flag pour la désactiver documenté. L’utilisateur qui l’a découverte a ouvert une issue qui a recueilli 384 👍 et 143 commentaires en moins de 48 heures.
Anthropic a corrigé le comportement trois jours après avec la version 2.1.200, mais la question persiste : comment une feature de ce genre est-elle arrivée en production sans documentation ni opt-out? Olaf Alders a mené une enquête technique publique en utilisant Claude Code lui-même pour reconstituer la piste des commits, et a découvert qu’il n’existe aucune trace publique du code qui a introduit la feature. Le changelog mentionne seulement la marche arrière.
En parallèle, Simon Willison a lancé LLM cliché highlighter, un outil qui met en évidence les tics linguistiques typiques de la sortie générée : “no X, no Y”, “sit with that”, “you already know”. Le timing n’est pas un hasard : Claude Code produit des commit messages et des notes qui trahissent leur origine générée, et la communauté construit des outils pour le reconnaître.
Pourquoi cela te concerne. Si vous utilisez des agents de codage en production, cet incident soulève trois questions concrètes : qui a signé cette feature? Comment vérifiez-vous qu’un agent n’introduit pas de comportements inattendus dans votre code? Et quand votre output sonne “écrit par l’IA”, quelle crédibilité perdez-vous?
En détail
Le contexte : ce qu’il y avait avant.
Claude Code était déjà connu pour demander une confirmation avant les actions à fort impact. La version 2.1.196 du 29 juin fonctionnait ainsi : question, attente, aucune action sans réponse. Deux jours après, la 2.1.198 a inversé le comportement sans prévenir.
La découverte et la réaction.
Aleksey Nogin a ouvert l’issue #73125 le 2 juillet à 02:54 UTC. En 51 minutes, un autre utilisateur a signalé l’échappatoire non documentée : la variable d’environnement CLAUDE_AFK_TIMEOUT_MS. Anthropic a déployé la 2.1.199 le même jour, mais sans toucher au comportement. Ce n’est que le 3 juillet, avec la 2.1.200, que l’auto-continue a été supprimé. Issue fermée le 4 juillet.
L’ampleur de la réaction (384 👍, 143 commentaires en 48 heures sur un issue technique) dit que le problème a touché un nerf : la confiance dans les agents qui modifient le code.
L’enquête d’Alders : où est le commit?
Alders a utilisé Claude Code pour interroger le dépôt public de Claude Code. Résultat : le commit qui introduit la feature n’existe pas dans le log public. La seule trace est le commit du bot qui met à jour CHANGELOG.md à la release 2.1.198 (commit 75709ea, 1er juillet 20:45 UTC). Il en va de même pour la correction : seul le changelog change.
Alders a posé les questions qu’un relecteur humain se poserait : un humain a-t-il signé? Un humain a-t-il relu? Un release manager a-t-il différencié la release? Et il conclut : “Si tu me disais que Claude Code a construit la feature, l’a déployée, l’a approuvée puis l’a jugée indigne de documentation, j’aurais plus tendance à y croire”.
L’outil de Willison et le problème plus large.
Simon Willison a lancé LLM cliché highlighter le même jour où Alders a publié son enquête. L’outil met en évidence dix patterns linguistiques typiques de la sortie générée : les antithèses pour l’effet (“not X, but Y”), les triplettes mécaniques, les questions rhétoriques, les conclusions de thème de motivation.
Willison écrit : “J’en ai marre de lire un énième article truffé de clichés de l’écriture LLM”. L’outil est né avec Fable 5 un après-midi, et sert à faire ce que nous faisons tous à la main : reconnaître quand un texte trahit son origine générée.
Les implications pour ceux qui construisent.
Si un agent écrit du code ou des commit messages qui sonnent “générés”, le problème n’est pas esthétique : c’est une question de crédibilité et de vérifiabilité. Un commit message plein de clichés signale que personne n’a relu. Une feature déployée sans trace dans le log public signale que la boucle de révision a des trous.
La convergence entre l’enquête d’Alders et l’outil de Willison n’est pas un hasard : tous deux abordent le même problème sous des angles différents. Quand la sortie d’un agent entre en production sans filtre humain, elle se trahit elle-même. Et quand elle se trahit elle-même, elle perd la bataille la plus importante : celle de la confiance.
Ce que nous savons et ce que nous ne savons pas.
Nous savons que la feature est arrivée, a été retirée, et qu’il n’existe aucune trace publique du code. Nous ne savons pas :
- Si un humain a écrit, relu ou approuvé la feature
- Si l’auto-continue était intentionnel ou un effet secondaire
- Pourquoi le changelog ne l’a pas mentionnée à l’entrée mais seulement à la sortie
- Si d’autres comportements non documentés ont été déployés de la même façon
Anthropic n’a pas commenté publiquement l’incident au-delà de la correction.
La limite pratique.
Les agents de codage promettent la vitesse. Mais la vitesse sans vérifiabilité produit de la dette technique masquée en productivité. Si ton agent écrit du code qui sonne généré, s’il déploie des features sans laisser de piste d’audit lisible, si le changelog est déconnecté du log des commits, tu n’as pas gagné de temps : tu as déplacé le coût de la vérification en aval, où il coûte plus cher.
Comme nous l’avons raconté le 14 juillet, la communauté construit des outils pour compenser les limites d’UX des agents (notifications sonores, replay des sessions). Maintenant, elle construit aussi des outils pour reconnaître quand la sortie d’un agent n’a pas passé le filtre humain. C’est un signal sur où nous en sommes : les agents produisent rapidement, mais la chaîne de vérification reste à construire.