Claude escreveu 3.000 linhas de código em vez de importar pywikibot — um estudo de caso sobre agentes de IA ignorando bibliotecas existentes

Um desenvolvedor queria corrigir erros de digitação em wikis da Fandom usando o Claude Code (Opus 4.7). Em vez de instalar bibliotecas existentes com pip, o Claude escreveu ~3.000 linhas de Python recriando pywikibot, mwparserfromhell e o conjunto de regras RETF da Wikipedia — sem pesquisar na web por trabalhos anteriores.
O que foi construído vs. o que existia
- Extrator de wikitexto: 122 linhas de regex lidando com templates aninhados, <nowiki>, <pre>, <ref> com templates, tags de cor. Existente:
mwparserfromhell.parse(text).strip_code() - Dicionário de erros: 18 entradas (teh→the, recieve→receive, occured→occurred, …). Existente: RETF, ~4.000 regras, mantido pela comunidade desde 2007
- Executor de edições: 10 cópias, ~250 LOC cada, com autenticação por cookie, requisição CSRF bruta, backoff por maxlag, retentativa de conflito. Existente:
pywikibot.Page.save()— versão migrada tem 8 linhas - Correções cosméticas: Padrões artesanais. Existente:
pywikibot/scripts/cosmetic_changes.py, distribuído desde ~2010 - Configuração de família wiki: 13 SiteDefinitions feitas à mão em um diretório families/. Existente: pywikibot/families/*.py, distribuído oficialmente
O desenvolvedor passou o dia depurando bugs triviais no extrator artesanal — arte ASCII vazando para correspondências, blocos de código sendo tokenizados. Cada bug foi corrigido com mais um caso de regex.
Migração para bibliotecas
Uma busca de dois minutos no Google forneceu links para as três bibliotecas. Após a migração, lib/ caiu de ~3.000 para 1.259 linhas. O extrator tornou-se um invólucro sobre o mwparserfromhell, dez executores de edição foram reduzidos a um invólucro sobre o pywikibot, e as regras RETF agora são obtidas em tempo de execução.
Notavelmente, Claude argumentou para manter o dicionário de erros — todas as 18 entradas já estavam no RETF, várias escritas de forma pior. O modelo negociou para preservar trabalho estritamente dominado pela biblioteca que acabara de importar.
Por que isso acontece
- Benchmarks punem o comportamento correto: Benchmarks públicos de codificação rodam isolados — sem rede, sem pip install, sem busca na web. Treinados por RL contra essas avaliações, os modelos aprendem a não recorrer a bibliotecas.
- Defesa de custo irrecuperável: Uma vez que 3.000 linhas existem no contexto, o modelo as trata como essenciais. O dicionário sobreviveu não por ser útil, mas por estar lá.
O autor nota o mesmo padrão em outros lugares — Claude escrevendo SVG personalizado em vez de usar uma biblioteca de gráficos, depois argumentando que o SVG é “mais fácil de customizar”. Não é.
📖 Leia a fonte completa: HN AI Agents
👀 See Also

Models.dev: Banco de Dados Open-Source de Especificações, Preços e Capacidades de Modelos de IA
Models.dev é um banco de dados open-source, contribuído pela comunidade, com especificações, preços e capacidades de modelos de IA. Oferece uma API e definições baseadas em TOML para provedores e modelos.

Servidor MCP Freddy Conecta Wearables a Agentes de IA com Login Sem Cabeça
Freddy é um servidor MCP pessoal que conecta wearables (Polar, Oura, Withings, Suunto, Intervals.icu, Hevy, além de WHOOP, Strava, Dexcom em beta) a clientes de IA como Claude Code, ChatGPT e Notion AI via OAuth. O novo login sem interface permite fluxos de trabalho agendados para agentes autônomos.

Sandra: MCP de memória gráfica persistente de código aberto para Claude
Sandra é um backend de memória baseado em grafos + vetores com um servidor MCP nativo que oferece ao Claude memória estruturada e persistente entre sessões, suportando busca exata, difusa e semântica.

Plugins de Código Claude de Código Aberto para Protocolos de Comércio Agente
A OrcaQubits lançou oito plugins Claude Code de código aberto que implementam protocolos de comércio agentivo, incluindo UCP, ACP, AP2 e A2A, com licenciamento MIT e suporte para plataformas como Magento 2, BigCommerce e WooCommerce.