AIDive

Apaguei Meu CLAUDE.md E Medi O Que Quebrou

Por AIDive · Publicado em

Agentes de código

Apagado, medido, uma regra quebrou

Apagar um CLAUDE.md significa remover o arquivo de instruções que o Claude Code lê no início de cada conversa. Boris Cherny, o criador do Claude Code, disse no palco para apagá-lo a cada seis meses. Vinte e dois vídeos repetiram isso em sete semanas. Nenhum deles abriu um repositório.

Este artigo faz o que os vídeos não fizeram: pega um app real com um CLAUDE.md de 177 linhas, três skills, quatro comandos e um hook, roda cinco tarefas do dia a dia com o arquivo e sem ele, e conta. Quarenta e quatro rodadas depois, exatamente uma regra quebrou. O arquivo custou tokens em toda tarefa, nunca a mesma quantidade, e uma de suas linhas ninguém conseguiu seguir.

O clipe, na íntegra, e as duas linhas que não são dele

O clipe vem da palestra de Boris Cherny na YC Startup School, gravada no dia seguinte ao lançamento do Opus 5. Suas palavras: a cada seis meses, apague seu CLAUDE.md, apague suas skills, apague seus hooks. Veja o que o modelo faz, pode ser que surpreenda. Para o Opus 5, ele diz, a Anthropic realmente recomenda tentar isso: o modelo pode não precisar mais de todas aquelas instruções.

Trinta segundos antes vem a ressalva que ninguém cita. A Anthropic não apaga a base de código inteira. Ela apaga bastante, e chama isso de ablação. A transcrição escrita traz essa linha por completo hoje. Oitenta por cento do system prompt do Claude Code foi por esse caminho: apagar tudo, trazer de volta linha por linha, medir cada linha.

Duas frases que os vídeos de reação colocam na boca dele não estão na palestra. "Contexto, objetivos e uma definição de pronto" não aparece em lugar nenhum; o mais próximo que ele chega é task, guardrails, exit criteria. "Sessenta e quatro agentes reescrevendo o Bun" também não é o número dele: é de Jarred Sumner, no post do Bun. Cherny fala em onze dias e, quando perguntado por um número, chuta milhares.

Vinte e dois vídeos em sete semanas citaram o clipe. Nenhum rodou o teste. Então este aqui faz o que ele realmente descreveu: apagar, trazer de volta uma peça de cada vez, medir.

O instrumento: ablação, não deleção

Uma ablação remove uma peça de uma configuração por vez e mede o efeito, em vez de apagar tudo e chutar. O CLAUDE.md é lido no início de cada conversa e de novo a cada turno; skills carregam só quando são invocadas. Essa diferença é o que foi medido.

A Anthropic entrega o interruptor de apagar: uma flag simples, a mesma variável que Cherny cita no palco. O repositório é um app real meu: 177 linhas de instruções, três skills, quatro comandos e um hook que dispara a cada busca.

Dimensão Valor
Tarefas do dia a dia 5 (componente novo, edição, refatoração, mudança de store, pergunta de arquitetura)
Configurações 5 (completo, sem arquivo, sem skills, sem hook, nada)
Modelo um, fixo
Ambiente diretório de config vazio, clone novo antes de cada rodada
Rodadas 44
Custo $39

Cada rodada foi avaliada da mesma forma, no mesmo clone, por um script em vez de à mão. O que conta como quebrado: as próprias regras do repositório (imports, tipos, design tokens, traduções) mais typecheck e lint.

A única ferramenta construída para esse tipo de ablação, a Caliper, ablata skills e servidores MCP mas nunca toca no arquivo; a troca do CLAUDE.md foi feita à mão. Os limites, ditos uma vez: um repositório, um modelo, duas rodadas por célula, sem transcrição. O primeiro conjunto de resultados deu o tom: a tarefa de refatoração voltou idêntica, sessenta e quatro centavos com o arquivo e sessenta e três sem.

O que quebrou: uma regra, em arquivos novos

A regra que quebrou é uma regra de internacionalização, nas próprias palavras do arquivo: sempre adicionar inglês e francês, nunca fixar no código uma string que o usuário vê. Na tarefa de componente novo, com o arquivo, todas as quatro rodadas escreveram o arquivo de tradução. Sem ele, três rodadas em quatro fixaram o título no código. Mesma tarefa, mesmo repositório, mesmo modelo, mesmo prompt.

Componente novo Escreveu o arquivo de tradução
Com CLAUDE.md 4 de 4
Sem CLAUDE.md 1 de 4

A tarefa de edição conta a outra metade. Toda configuração acertou, mesmo sem nada, porque os vizinhos ensinam: todo componente ao lado do que foi editado já tem um arquivo de tradução. Tudo o mais se manteve nas quarenta e quatro rodadas: o alias de import, type em vez de interface, os design tokens, o padrão de store. O código mostra isso, o arquivo repete.

Um paper da ETH Zurich mediu a mesma coisa em 138 issues reais. A descoberta: arquivos de contexto não melhoram o sucesso e custam cerca de vinte por cento a mais, e o modelo segue as instruções sim. Uma ressalva: uma rodada sem o arquivo escreveu o arquivo de tradução mesmo assim. A regra não é impossível sem o arquivo, é pouco confiável. Uma regra quebrou, a que o código não conseguia ensinar. E a rodada que pulou esse trabalho também foi a mais barata.

O que o arquivo custou, tarefa por tarefa

O custo em tokens de um CLAUDE.md é a diferença de tokens lidos entre uma rodada com o arquivo e a mesma rodada sem ele.

Tarefa Menos tokens lidos sem o arquivo
Componente novo 61%
Edição 15%
Refatoração 5%
Mudança de store 4%
Pergunta de arquitetura 14%
Nas dez rodadas 32% tokens, 22% dinheiro

Trinta e dois por cento é o número que todo vídeo destacaria, e é o número errado. A maior economia é da rodada que não escreveu o arquivo de tradução: mais barata porque fez menos. Onde a saída foi idêntica, o arquivo custou de quatro a quatorze por cento. Esse é seu preço real, e os vinte por cento do paper caem bem entre esses dois números.

O mecanismo tem cerca de 1.800 tokens, lidos de novo a cada turno. Skills, o hook e o grafo de conhecimento não produziram nada mensurável, presentes ou ausentes. O ruído é maior que a maior parte disso: a mesma tarefa com o mesmo arquivo custou $2,11 numa rodada e $1,33 na outra. Duas rodadas bateram no teto de turnos, uma com o arquivo e uma sem. Então o arquivo custa um pouco em toda parte e ganha seu lugar uma vez, a menos que também minta.

As linhas que mentiram

Uma linha mentirosa é uma instrução que o modelo não consegue seguir ou que não muda nada. A linha provocada lá no início: importar o tema pelo alias de design-tokens. O alias não existe: o tsconfig mapeia um prefixo, e a pasta de tokens não tem arquivo de tema. Toda rodada, com o arquivo ou sem, fez o que os vizinhos fazem, a mesma linha de import quarenta e quatro vezes.

O arquivo tem oitenta e duas linhas de visão geral de arquitetura. Mesma pergunta, seis respostas: todas as seis encontraram os mesmos nove arquivos, do backend à tela, na mesma ordem, com a visão geral e sem ela. Um bloco aponta para um grafo de conhecimento que o clone não tem; com o grafo presente, a pergunta custou o mesmo.

Medida Valor
Regra de tamanho da Anthropic menos de 200 linhas
Este arquivo 177 linhas
Arquivo mediano no dataset de 30 mil repositórios da reporails 50 itens, 12 diretivas
Linhas de diretiva neste arquivo 24 de 177

A posição decide qual de duas regras conflitantes vence, e o modelo nunca diz isso, cerca de noventa pontos no teste de um fornecedor. A visão geral pode ajudar numa tarefa não rodada aqui: uma sondagem, uma resposta. Três tipos de linha, então: a que ganhou seu lugar, as que o código ensina, as que mentem.

Guardar, mover, apagar: a lista curta

Três pilhas, e a medição por trás de cada uma.

Pilha O que vai ali Medição
Guardar A regra que o código não consegue mostrar 6 linhas que salvaram 4 rodadas
Mover A visão geral de arquitetura e os comandos 107 linhas sem ganho medido
Apagar As linhas que mentem, e as linhas que a árvore já mostra 44 rodadas idênticas

Guardar o que o modelo errou duas vezes: esse é o próprio critério da Anthropic para o arquivo. Mover a visão geral e os comandos para uma árvore de arquivos carregados quando necessário; o post de julho da Anthropic chama o repositório central de mito. Os hooks ficam: um gate não expira quando o modelo melhora. Cortar a prosa que ele superou, manter o gate.

O arquivo depois: cerca de setenta linhas, as seis que se justificaram por cima. Esse é o método de Cherny, lido por inteiro: apagar, trazer de volta linha por linha, medir. Um repositório, um modelo, duas rodadas por célula; suas pilhas vão ser diferentes, o método não. Apagar custou uma regra e economizou pouco. Encontrar as linhas que mentem foi o ganho.

Fontes

Perguntas frequentes

Você deve apagar seu CLAUDE.md como Boris Cherny disse?
Não às cegas. A palestra de Cherny descreve uma ablação: apagar o arquivo, trazer de volta linha por linha e medir cada linha. Num arquivo real de 177 linhas, apagá-lo quebrou uma regra em 44 rodadas e economizou pouco; o ganho foi encontrar as linhas que mentem.
O que quebra quando você apaga um CLAUDE.md?
Neste repositório, uma regra: sempre adicionar traduções em inglês e francês. Sem o arquivo, três rodadas em quatro fixaram um título no código na tarefa de componente novo. Toda outra regra se manteve porque o código vizinho já mostra isso.
Quantos tokens um CLAUDE.md custa?
Cerca de 1.800 tokens lidos de novo a cada turno. Tarefa por tarefa isso foi de 4% a 61% menos tokens lidos sem o arquivo; onde a saída foi idêntica o arquivo custou de 4% a 14%, o que bate com a média de 20% do paper da ETH Zurich.
O que deve ficar num CLAUDE.md?
As regras que o código não consegue mostrar, que também é o próprio critério da Anthropic: guardar o que o modelo errou duas vezes. Mover visões gerais e listas de comandos para arquivos carregados quando necessário, apagar instruções que apontam para coisas que não existem, e manter os hooks, já que um gate não expira quando o modelo melhora.
Arquivos de contexto como CLAUDE.md ou AGENTS.md melhoram agentes de código?
O paper da ETH Zurich sobre 138 issues reais descobriu que arquivos de contexto não melhoram o sucesso da tarefa e aumentam o custo de inferência em mais de 20% em média, mesmo que o modelo siga as instruções. Esta medição num repositório caiu na mesma faixa.
O que é uma ablação em termos de Claude Code?
Remover uma peça da configuração por vez, com o modelo fixo e um clone novo por rodada, e medir o efeito. A Anthropic usou isso para cortar 80% do system prompt do Claude Code; aqui rodou em cinco configurações: completo, sem arquivo, sem skills, sem hook, nada.

Vídeos relacionados