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.
AIDive