Anthropic cortou 80% do system prompt do Claude Code: o que seu CLAUDE.md precisa recuperar
Seu Claude Code começou a se comportar diferente e você não mexeu em nada?
Não foi você. A Anthropic removeu mais de 80% do system prompt embutido do Claude Code para a geração Claude 5 — Opus 5, Fable 5, Sonnet 5 — e a orientação passou a ser outra: o que você quer que ele faça, você escreve no seu CLAUDE.md.
Metade das instruções que seguravam o comportamento dele deixaram de vir de fábrica. A conta agora é sua. Neste post vou mostrar exatamente o que saiu, por que saiu, e quais cláusulas vale recolocar no seu arquivo — com o texto pronto pra colar.
TL;DR
- O que é: a Anthropic cortou mais de 80% do system prompt do Claude Code para modelos Claude 5, sem perda mensurável nos evals de código.
- Fonte oficial: "The new rules of context engineering for Claude 5 generation models", por Thariq Shihipar, da Anthropic — publicado em 24 de julho de 2026, no mesmo dia do lançamento do Opus 5.
- Quem sente: quem tinha
CLAUDE.mdenxuto e dependia dos defaults sem saber. - O que fazer: diagnosticar o que você perdeu e reescrever o
CLAUDE.mdem cima de julgamento, não de regra.
O contexto: por que cortar o system prompt do Claude Code melhora o modelo
A tese do time da Anthropic é direta: as regras antigas foram escritas para modelos antigos, que precisavam de guarda-corpo. Os modelos Claude 5 têm julgamento melhor. Não precisam da mesma amarra.
O exemplo que eles mesmos dão é ótimo. O system prompt antigo trazia isto:
Never write multi-paragraph docstrings or multi-line comment blocks — one short line max.
Uma regra rígida, absoluta, escrita para impedir que o modelo enchesse o código de comentário inútil. O problema é que ela também impedia comentário útil. Numa função de criptografia complexa, um bloco de três linhas explicando a decisão é exatamente o que você quer.
A substituição foi esta:
Write code that reads like the surrounding code.
Uma linha. E ela é mais forte que a anterior, porque delega a decisão para quem tem contexto do arquivo. Esse é o padrão de todas as seis mudanças que eles documentaram: sair de regra para julgamento, sair de exemplo para interface bem desenhada, sair de contexto carregado antecipadamente para carregamento sob demanda via Skills.
Tem um detalhe que merece atenção. Sobre exemplos no prompt, a observação do time é contraintuitiva: "giving examples actually constrains them to a certain exploration space". Dar exemplo não guia mais o modelo — restringe. Se você tem um CLAUDE.md cheio de "por exemplo, faça assim", pode estar limitando o espaço de solução em vez de ampliar.
O que quebrou no seu setup (e por que você não percebeu)
Aqui está a parte que ninguém avisou.
Se o seu CLAUDE.md era curto, ele era curto porque os defaults cobriam o resto. Você escrevia só o específico do projeto e o comportamento genérico vinha de graça. Quando o genérico saiu, seu arquivo passou a ser tudo o que existe — e ele nunca foi escrito para ser tudo o que existe.
Os sintomas que apareceram na comunidade seguem um padrão:
- Comentário e docstring voltando com verbosidade que você não pedia, porque a trava absoluta virou julgamento contextual e o seu repositório não tem convenção clara escrita em lugar nenhum.
- Respostas mais longas e explicativas, porque nada mais manda ser conciso.
- Menos consistência entre sessões em tarefas repetitivas, porque a instrução que padronizava era default e sumiu.
Nenhum desses sintomas grita "mudança de configuração". Todos parecem "o modelo tá estranho hoje". É por isso que dá pra passar semanas culpando o modelo.
O diagnóstico em 5 minutos
Antes de escrever qualquer coisa, descubra o que você realmente perdeu. Não copie a lista de outra pessoa — cada repositório dependia de defaults diferentes.
Passo 1 — rode o /doctor.
/doctor
O comando checa saúde da instalação, aponta skills, servidores MCP e plugins carregados versus o custo de contexto de cada um, deduplica CLAUDE.md local contra o versionado no repositório e sugere cortar o que o Claude conseguiria derivar sozinho lendo o código. Ele é a régua oficial de quanto contexto você está gastando à toa.
Passo 2 — teste a tarefa que ficou estranha.
Pega a tarefa mais repetitiva do seu dia — criar um endpoint, escrever um teste, subir uma migration. Roda numa sessão limpa. Compara o resultado com o que você espera. A diferença entre o que veio e o que você esperava é exatamente a instrução que você precisa escrever.
Passo 3 — escreve a instrução como julgamento, não como proibição.
Essa é a parte que a maioria erra. A tentação é reagir escrevendo uma regra dura para cada coisa que incomodou. Você acaba com um CLAUDE.md de 300 linhas que reintroduz o problema que a Anthropic acabou de resolver: instrução rígida demais para um modelo que decide melhor sozinho.
Não só acompanhe as novidades — domine. Engenharia de IA na prática, ao vivo, toda semana, na maior comunidade do Brasil.
Entrar no ClãO bloco pronto pra colar
Um CLAUDE.md que funciona na geração Claude 5 é curto, específico do repositório, e escrito em forma de critério. Este é um esqueleto que você adapta:
# Projeto
API em Laravel 12 / PHP 8.3. Filas em Redis, banco Postgres com pgvector.
Testes em Pest. Deploy via GitHub Actions.
## Convenções que não dá pra derivar do código
- Migrations nunca alteram coluna existente. Cria nova + backfill + remove depois.
- Toda query que roda em request de usuário passa por `->timeout(2)`.
- Model factory é a única fonte de dados de teste. Não crie fixture nova.
## Gotchas
- `App\Services\Billing` tem lógica duplicada com `App\Jobs\SyncInvoice`.
A fonte de verdade é o Service. O Job vai morrer no refactor de agosto.
- O ambiente de staging não tem worker de fila rodando. Teste job local.
## Estilo
- Escreva código que se pareça com o código ao redor.
- Comentário só quando a decisão não é óbvia pelo código. Explique o porquê,
não o quê.
- Resposta curta. Se a mudança tem risco, diga qual é em uma linha.
Repara no que não está ali: nada de "você é um engenheiro sênior experiente", nada de "sempre siga as melhores práticas", nada de exemplo de código genérico. A própria Anthropic recomenda manter o arquivo leve, descrever o repositório em poucas linhas e focar nos gotchas internos — aquilo que o modelo não consegue descobrir lendo o código.
A regra prática para decidir se uma linha entra: se o Claude descobriria isso lendo três arquivos do seu projeto, não escreva. Ele vai ler os três arquivos. O que você escreve é o que não está em lugar nenhum — a decisão histórica, a dívida técnica conhecida, a convenção que existe na cabeça do time e não no código.
Onde cada coisa deve morar agora
Com o corte, a hierarquia mudou de fato:
| Tipo de informação | Onde vai |
|---|---|
| Comportamento geral (tom, concisão, estilo) | Não vai. Deixe o modelo julgar. |
| Convenção específica do repositório | CLAUDE.md do projeto |
| Preferência pessoal sua, todos os projetos | CLAUDE.md global (~/.claude/) |
| Procedimento longo e ocasional (deploy, migração) | Skill separada, carregada sob demanda |
| Contexto de uma sessão específica | Memória automática |
A quinta mudança do post oficial é justamente essa: o Claude agora salva sozinho memórias relevantes ao trabalho, em vez de exigir que você mande salvar. Coisa que antes ia pro CLAUDE.md "pra não esquecer" agora tem lugar próprio.
E o item mais subestimado da lista é o terceiro — divulgação progressiva. Procedimento que você usa uma vez por mês não deveria ocupar contexto em toda sessão. Vira Skill, carrega quando precisa. Se o seu CLAUDE.md tem uma seção de 40 linhas sobre como rodar o deploy, ela está sendo paga em token toda vez que você abre o terminal.
Se você já tinha lido nosso post sobre as cláusulas de CLAUDE.md que o Karpathy popularizou, vale reler com essa lente: várias daquelas cláusulas eram compensação para modelo que precisava de amarra. Nem todas continuam fazendo sentido.
Limitações e pontos de atenção
O corte vale para a geração Claude 5. Se você roda o Claude Code apontando para modelo mais antigo, o comportamento não é o mesmo — e as instruções que a Anthropic removeu podem continuar sendo necessárias no seu caso.
Segundo: "sem perda mensurável nos evals de código" é uma afirmação sobre os evals da Anthropic, não sobre o seu projeto. Coding eval mede tarefa de código bem definida. Não mede se o Claude respeita a convenção esquisita que seu time adotou em 2021 e nunca documentou. Nesse tipo de coisa, você pode ter perdido sim — e o único jeito de saber é testar.
Terceiro, e é o erro mais caro: não reaja escrevendo regra dura. Se você encher o CLAUDE.md de proibições absolutas, vai recriar exatamente a rigidez que estava sendo cobrada em token e em qualidade. Escreva critério. Deixe o modelo aplicar.
Por último: mais contexto não é melhor contexto. Cada linha do CLAUDE.md é lida em toda sessão e compete por atenção com o código que importa. Arquivo grande dilui instrução importante.
FAQ rápido
Como sei se meu setup foi afetado?
Rode /doctor e teste sua tarefa mais repetitiva numa sessão limpa. Se o resultado mudou de padrão sem você ter mudado nada no projeto, você dependia de default que saiu.
Preciso reescrever meu CLAUDE.md do zero?
Não. Comece cortando: tire tudo que o Claude descobriria lendo o código, e tudo que é instrução genérica de comportamento. O que sobrar é a base. Aí você acrescenta só o que o diagnóstico apontou.
CLAUDE.md global ou do projeto?
Preferência sua que vale em todo lugar vai no global. Convenção que só existe naquele repositório vai no do projeto. O /doctor deduplica os dois se você repetiu conteúdo.
Isso vale pro Claude Code só ou pra API também? O corte descrito é do system prompt do Claude Code. Mas as seis mudanças são recomendações de context engineering para a geração Claude 5 em geral — se você constrói agente próprio com a API, vale revisar seu system prompt com a mesma lente.
Conclusão
O movimento é bom e a direção é clara: menos instrução embutida, mais julgamento do modelo, e o que sobra de específico fica visível e editável por você em vez de escondido num prompt que ninguém vê.
O custo dessa troca é que a responsabilidade mudou de lado. Antes, comportamento razoável vinha de fábrica. Agora, comportamento razoável é o default do modelo — e tudo que for específico do seu projeto precisa estar escrito.
A boa notícia é que o arquivo certo é menor do que você imagina. Descreve o repositório, lista os gotchas que ninguém documentou, define critério de estilo em três linhas. Se o seu CLAUDE.md tem mais de uma tela, provavelmente você está pagando token para dizer ao modelo coisas que ele descobriria lendo o código.
{AI Engineer} — apaixonado por Laravel, arquitetura de software e construir produtos com impacto. Compartilho aqui tutoriais, descobertas e reflexões sobre o dia a dia de engenharia.
Conteúdo é o que não falta. Falta quem desembaralhe: o que importa agora é como implementar do jeito certo. No Clã você tem isso ao vivo, toda semana, com quem já filtrou o ruído.
Entrar no Clã