HMDeveloper
Todos os artigos
claude-code
claude-codecontextoarquitetura

Por que separo instruções do conhecimento do projeto

Separar as instruções do agente do conhecimento do projeto evita pagar o mesmo custo em toda sessão.

Todo arquivo de instruções para um agente de IA (programa que executa tarefas) começa pequeno. Tem algumas regras de estilo, o comando para preparar o programa para rodar e o lugar onde ficam os testes. Alguns meses depois, já não cabe em uma tela. Ninguém lembra por que metade das regras existe. E você paga por todos aqueles tokens (unidades de texto lidas pelo modelo) em cada sessão. Até quando só quer perguntar as horas.

O tamanho não é o que me incomoda. O problema é juntar dois tipos muito diferentes de informação no mesmo lugar.

Duas coisas diferentes

Uma parte configura o agente: use um worktree (cópia separada dos arquivos do projeto) antes de mexer no código. Não instale nada sem perguntar. Rode o lint (checagem automática do código) antes de abrir um PR (pedido para revisar e incluir mudanças). São regras práticas, curtas, e precisam ficar na memória porque orientam toda ação.

A outra parte registra decisões do projeto. Por que o serviço de pagamentos avisa o de pedidos por um evento? É uma mensagem de que algo aconteceu. Assim, ele evita fazer uma chamada direta. Por que aquele campo pode ficar vazio? No código, o campo é nullable. Qual alternativa foi descartada em 2025, e por quê? Esse conhecimento é detalhado e cresce sem parar. Você talvez precise dele em uma sessão a cada dez.

Colocar os dois tipos no mesmo arquivo faz você pagar o custo do segundo com a frequência do primeiro.

A separação

Hoje mantenho dois lugares, com funções diferentes:

A regra que faz isso funcionar é simples: as instruções locais podem acrescentar detalhes, mas nunca contradizer o vault. Se um CLAUDE.md do projeto e o vault discordam, vale o vault. Sem essa regra, você tem duas fontes que dizem ser oficiais. Na prática, não tem nenhuma.

O que mudou na prática

O custo de iniciar uma sessão ficou constante, em vez de crescer junto com o projeto. Quando o agente precisa de informações detalhadas, ele busca a versão certa. Existe um lugar único para cada assunto.

O ganho menos óbvio veio depois. Quando as decisões passaram a ter um endereço fixo, elas começaram a ser registradas. Antes, uma decisão sobre a estrutura do sistema virava comentário no código ou desaparecia no histórico da conversa.

Onde isso falha

A separação cria uma etapa a mais. Às vezes, o agente não percebe que precisa consultar o vault. Ele responde com o que já sabe, com confiança, sem notar que existe uma decisão registrada que diz outra coisa. Para evitar isso, o roteador precisa dizer claramente onde procurar antes de responder.

Um vault desatualizado é pior que não ter vault. O agente pode ler um arquivo errado no lugar oficial e tratá-lo como verdade. Se você não atualizar os registros ao terminar o trabalho, essa separação acaba atrapalhando.

Ajudo equipes a usar agentes de IA no trabalho de engenharia. Se sua equipe está começando, vamos conversar.

Ver consultoria