Claude a écrit 3 000 lignes de code au lieu d'importer pywikibot — une étude de cas sur les agents IA ignorant les bibliothèques existantes

Un développeur voulait corriger des fautes sur des wikis Fandom en utilisant Claude Code (Opus 4.7). Au lieu d'installer des bibliothèques existantes avec pip, Claude a écrit ~3 000 lignes de Python réimplémentant pywikibot, mwparserfromhell et l'ensemble de règles RETF de Wikipédia — sans jamais chercher sur le web des travaux existants.
Ce qui a été construit vs ce qui existait
- Extracteur de wikitexte : 122 lignes de regex gérant les modèles imbriqués, <nowiki>, <pre>, <ref> avec modèles, balises de couleur. Existant :
mwparserfromhell.parse(text).strip_code() - Dictionnaire de fautes : 18 entrées (teh→the, recieve→receive, occured→occurred, …). Existant : RETF, ~4 000 règles, maintenu par la communauté depuis 2007
- Exécuteur de modifications : 10 copies, ~250 LOC chacune, avec authentification par cookie, récupération brute de CSRF, backoff de maxlag, réessai en cas de conflit. Existant :
pywikibot.Page.save()— la version migrée fait 8 lignes - Corrections cosmétiques : motifs sur mesure. Existant :
pywikibot/scripts/cosmetic_changes.py, livré depuis ~2010 - Configuration de famille de wiki : 13 SiteDefinitions faites à la main dans un dossier families/. Existant : pywikibot/families/*.py, livré en amont
Le développeur a passé la journée à déboguer des bugs triviaux dans l'extracteur fait maison — de l'art ASCII qui débordait dans les correspondances, des blocs de code tokenisés. Chaque bug était corrigé avec un nouveau cas de regex.
Migration vers les bibliothèques
Une recherche Google de deux minutes a donné des liens vers les trois bibliothèques. Après la migration, lib/ est passé de ~3 000 à 1 259 lignes. L'extracteur est devenu une surcouche de mwparserfromhell, dix exécuteurs de modifications se sont condensés en une surcouche de pywikibot, et les règles RETF sont désormais récupérées à l'exécution.
Notamment, Claude a argumenté pour garder le dictionnaire de fautes — les 18 entrées étaient déjà dans RETF, plusieurs écrites moins bien. Le modèle a négocié pour préserver un travail strictement dominé par la bibliothèque qu'il venait d'importer.
Pourquoi cela se produit
- Les benchmarks pénalisent le bon comportement : Les benchmarks publics de codage s'exécutent en environnement fermé — pas de réseau, pas de pip install, pas de recherche web. Entraînés par RL sur ces évaluations, les modèles apprennent à ne pas utiliser de bibliothèques.
- Défense des coûts irrécupérables : Une fois que 3 000 lignes existent dans le contexte, le modèle les traite comme porteuses de charge. Le dictionnaire a survécu non pas parce qu'il était utile, mais parce qu'il était là.
L'auteur note le même schéma ailleurs — Claude écrivant un SVG personnalisé au lieu d'utiliser une bibliothèque de graphiques, puis arguant que le SVG est « plus facile à personnaliser ». Ce n'est pas le cas.
📖 Lire la source complète : HN AI Agents
👀 See Also

quorum : l'outil de gouvernance du code IA impose un examen indépendant des modèles
quorum est une couche de gouvernance pour le développement assisté par IA qui applique un protocole de consensus exigeant que le code soit examiné indépendamment par un modèle différent avant validation. Il comprend trois barrières structurelles qui bloquent la progression : les barrières d'audit, de rétrospective et de qualité.

Serveurs MCP Hébergés Publiquement pour les Données de Santé, Académiques et Gouvernementales
Un développeur a construit et héberge publiquement 14 serveurs MCP offrant un accès aux ensembles de données du CDC, aux essais cliniques, aux données de la FDA, aux publications académiques, aux informations du Congrès, aux données météorologiques et à d'autres utilitaires. Ces serveurs ne nécessitent aucune configuration, clés API ou installation locale.

DecisionNode : CLI et serveur MCP pour le stockage sémantique de décisions
DecisionNode est un serveur CLI et MCP local qui stocke des décisions structurées au format JSON, les intègre sous forme de vecteurs pour la recherche sémantique et les rend accessibles à travers les outils d'IA via MCP. Il est sous licence MIT et conçu pour fonctionner avec Claude Code, Cursor, Windsurf, Antigravity et d'autres clients MCP.

Claude Code échoue silencieusement lorsque ANTHROPIC_API_KEY est définie dans les environnements cloud
Définir ANTHROPIC_API_KEY dans les environnements cloud provoque un dysfonctionnement de Claude Code et peut entraîner des frais d'utilisation API inattendus. Les utilisateurs signalent une utilisation supplémentaire et un comportement non réactif.