hmdeveloper.com
Todos os artigos
claude-codecontextoarquitetura

Por que meus agentes leem um vault, e não um CLAUDE.md gigante

Todo CLAUDE.md cresce até virar um custo fixo que você paga em toda sessão. A saída foi separar o que configura o agente do que decide pelo projeto.

Todo arquivo de instruções para agente começa pequeno e honesto. Umas regras de estilo, o comando de build, onde ficam os testes. Alguns meses depois ele não cabe mais numa tela, ninguém lembra por que metade das regras existe, e você paga esse arquivo inteiro em tokens toda vez que abre uma sessão — inclusive para perguntar que horas são.

O problema não é o tamanho. É que dois tipos muito diferentes de informação foram parar no mesmo lugar.

Duas coisas que não são a mesma coisa

Parte do que está ali configura o agente: use worktree antes de mexer no código, nunca instale nada sem perguntar, rode o lint antes de abrir PR. É operacional, é curto, e precisa estar em memória o tempo todo porque governa toda ação.

A outra parte decide pelo projeto: por que o serviço de pagamento fala com o de pedidos por evento e não por chamada direta, por que aquele campo é nullable, qual alternativa foi descartada em 2025 e por quê. É conhecimento denso, cresce sem parar, e você precisa dele em talvez uma sessão a cada dez.

Enfiar os dois no mesmo arquivo faz você pagar o preço do segundo com a frequência do primeiro.

A separação

O que eu faço hoje é manter dois lugares com autoridades diferentes:

A regra que faz isso funcionar é chata e essencial: o local refina, nunca contradiz. Quando um CLAUDE.md de projeto e o vault discordam, o vault ganha. Sem essa regra você não tem duas camadas, tem duas fontes de verdade — que é o mesmo que não ter nenhuma.

O que mudou na prática

O custo de abrir uma sessão virou constante, em vez de crescer junto com o projeto. Quando o agente precisa de contexto profundo, ele busca — e busca a versão certa, porque tem um lugar só onde aquilo mora.

O ganho menos óbvio veio depois: quando escrever uma decisão passou a ter um endereço fixo, elas passaram a ser escritas. Antes, decisão de arquitetura ou virava comentário no código, ou sumia no histórico do chat.

Onde isso quebra

Não é de graça. A camada indireta significa que o agente às vezes não sabe que precisa buscar — ele responde com o que tem em memória, com confiança, sem perceber que existia um ADR contradizendo. A mitigação é ter no roteador uma ordem explícita de resolução, dizendo onde procurar antes de responder.

E vault desatualizado é pior que vault inexistente: um arquivo errado no lugar canônico é lido como verdade. Se você não tiver disciplina de atualizar no fim da tarefa, a separação trabalha contra você.

Trabalho com times que estão adotando agentes de IA no dia a dia de engenharia. Se isso é o seu caso, vamos conversar.

Ver consultoria
Por que meus agentes leem um vault, e não um CLAUDE.md gigante | Hugo Minari Diniz