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

Coordenador de Servidor para Desenvolvimento Multi-Agente Evita Sobrescritas
Um desenvolvedor criou um servidor coordenador em Node.js que gerencia bloqueio de intervalos de linhas, rastreamento de deslocamento de linhas e mensagens em tempo real entre agentes de IA trabalhando na mesma base de código. O sistema evita que os agentes sobrescrevam o trabalho uns dos outros usando bloqueio baseado em HTTP com detecção de conflitos.

Mneme: Um Gancho PreToolUse que Bloqueia Edições do Claude Code que Violam Decisões de Arquitetura
Mneme é um hook PreToolUse para Claude Code que verifica cada Edit/Write/MultiEdit contra um arquivo de decisões locais antes de escrever no disco, bloqueando violações sem intervenção manual.

Claude Code v2.1.126: Seletor de Modelo, Limpeza de Projeto, Correções no OAuth e Melhorias de Segurança
Claude Code v2.1.126 adiciona um seletor /model para gateways compatíveis com Anthropic, um novo comando claude project purge, corrige o login OAuth em WSL2/SSH/containers e corrige problemas de segurança com configurações gerenciadas e exposição da área de transferência no Windows.

Claude Code + MCP gera suítes de teste a partir do código-fonte
O Claude Code analisa o código-fonte para gerar suítes de testes hierárquicas que abrangem módulos, funcionalidades, cenários, caminhos felizes, casos extremos e tratamento de erros, e então as envia para sistemas de gerenciamento de testes via MCP.