Pular para o conteúdo

Builder OS

Builder · OS
L06 · Orçamento de contexto
~9 MIN DE LEITURA

Lição 6 de 10: O orçamento de contexto

lição 6/10 do Módulo 1
AO FIM, VOCÊ VAI TER
  • Um experimento onde você enche o contexto de propósito e vê uma regra ser ignorada
  • O gesto de reflexo registrado: após ~2 correções falhas no mesmo ponto, rodar /clear e re-prompt enxuto
  • Critério pessoal de quando usar /clear vs /compact

A L05 te mostrou que o CLAUDE.md é relido toda sessão; esta lição é sobre o que acontece dentro de uma sessão longa, quando o que você foi acumulando começa a competir por espaço.

O contexto é um orçamento, e ele estoura

Tudo que entra numa sessão (o CLAUDE.md, os arquivos que o Claude leu, suas mensagens, as respostas dele, os outputs de comando) ocupa espaço na . Esse espaço é finito. Quando você cola três arquivos de 600 linhas, pede pra rodar a suíte de testes duas vezes, e discute o resultado por meia hora, esse orçamento vai sendo consumido.

O efeito prático tem nome: . Conforme a janela enche, a precisão do modelo nas instruções que vieram no começo degrada. As regras que ele seguia perfeitamente nas primeiras mensagens começam a ser ignoradas: "sempre bigint em centavos pra valor monetário", "responde em pt-BR", "não cria arquivo novo sem perguntar". Não porque o Claude "esqueceu" no sentido humano; é que aquela instrução agora disputa atenção com milhares de tokens de conversa que vieram depois.

Encha a janela você mesmo. Cada ação acumula contexto e, passado o limiar, o selo da regra fixa muda de obedecida pra ignorada: o context rot em miniatura. O /clear zera tudo.

regra fixa: valor em centavos — obedecida

janela: 0/6 cheia

A precisão cai conforme o contexto enche
Acertos do Claude numa regra fixa, por preenchimento da janela (indexado ao início da sessão)
63%76%88%100%precisão no início da sessãojanela cheia: a regra começa a cairjanela vaziajanela cheia →
Ilustrativo, baseado em Chroma "Context Rot" (2025)

O sintoma que você vai aprender a reconhecer

O modo como o context rot aparece no dia a dia é específico: você corrige a mesma coisa, o Claude concorda, e na resposta seguinte erra de novo. Você corrige outra vez, ele pede desculpa, e erra pela terceira. Cada correção sua adiciona mais texto à janela, então quanto mais você insiste, mais cheia ela fica, e pior fica o problema que você está tentando resolver.

A regra de reflexo:

/clear zera a janela: o Claude esquece a conversa inteira. O CLAUDE.md continua valendo, porque ele é relido no início da próxima interação (Claude Code memory). Você perde o "histórico" da discussão, mas é exatamente esse histórico inchado que estava causando o erro. Por isso um re-prompt enxuto, depois do /clear, costuma acertar de primeira onde as correções empilhadas falhavam.

saída esperada
> /clear
Contexto limpo. A sessão recomeça do zero (o CLAUDE.md é relido).

> Implementa a validação do campo valor no form de recibo.
Valor monetário é bigint em centavos — nunca float. Mostra o diff antes de aplicar.

/clear ou /compact: qual usar

Os dois reduzem o contexto, mas servem a momentos diferentes.

/clear: quando o trabalho atual terminou ou travou. Você fechou uma tarefa e vai começar outra sem relação, ou bateu na regra das duas correções. Não há nada da conversa que valha a pena carregar adiante. Zera tudo e recomeça com a cabeça limpa.

/compact: quando você precisa continuar a mesma linha de trabalho, mas a janela está pesada. O /compact resume a sessão até aqui e continua a partir do resumo, com muito menos tokens. Você mantém o fio da meada (o que já foi decidido, o que falta), sem arrastar cada output de teste e cada diff intermediário.

O resumo é uma compressão com perdas: detalhe técnico fino (o nome exato de uma variável, o porquê de uma decisão pequena) pode não sobreviver. Antes de compactar uma sessão importante, deixe registrado no CLAUDE.md ou num arquivo do plano qualquer coisa que precisa ser exata, em vez de confiar que o resumo vai guardar.

Leitura just-in-time: o hábito que adia os dois. Em vez de colar um arquivo inteiro de 800 linhas "pro Claude ter contexto", peça pra ele ler o arquivo quando precisar. Ele lê só o trecho relevante, na hora certa, e a janela enche bem mais devagar. Na prática, colar arquivos inteiros antecipadamente é o que mais enche a janela cedo demais.

Lab: encha o contexto de propósito e veja uma regra cair

Esse experimento leva uns 10 minutos e te faz reconhecer o sintoma na prática, não só na teoria. A ideia é estabelecer uma regra simples, poluir a janela de propósito, e observar a regra ser ignorada.

Abra uma sessão nova e fixe uma regra estreita. Num projeto qualquer (pode ser o Starter, ou qualquer pasta com alguns arquivos de texto, seja código, CSVs ou anotações; serve qualquer coisa que dê pra ler), peça:

prompt · text
Daqui pra frente, toda vez que você me responder, comece a resposta com a palavra "OK:" — sem exceção. Confirma que entendeu.

Ele vai confirmar, começando com OK:. Mande mais duas mensagens triviais ("qual a capital do Acre?", "conta até 3") e confirme que toda resposta começa com OK:. A regra está pegando.

Encha a janela. Agora dê trabalho pesado, sem relação com a regra. Você não precisa saber quais são os arquivos grandes; peça pro próprio Claude descobrir e ler:

prompt · text
Lista os arquivos deste projeto por tamanho e lê os 6 maiores, um de cada vez, me dando um resumo de 5 linhas de cada. Depois lista todas as funções (ou, se não for código, todos os títulos/colunas) que você encontrou.

Cada arquivo lido despeja centenas de linhas na janela. É exatamente o que uma sessão de trabalho real faz ao longo de uma hora, só que comprimido em uma mensagem. Se o seu projeto é pequeno e os 6 arquivos não enchem muito, peça pra ler tudo duas vezes, ou aponte uma pasta maior.

Volte pra uma pergunta trivial e observe. Pergunte qualquer coisa simples de novo:

prompt · text
Qual a capital do Amazonas?

Se a janela encheu o suficiente, a resposta não vai começar com OK:: a regra que pegava perfeitamente no passo 1 caiu. Esse é o context rot, ao vivo. Não é determinístico: se ainda começou com OK:, a janela ainda tinha folga; repita o passo 2 com mais arquivos (ou peça pra reler os mesmos) até a regra cair. Você não errou o setup; só precisa encher mais.

Conserte com /clear e refaça a regra. Rode /clear, fixe a regra de novo, e ela volta a pegar imediatamente, porque a janela está vazia outra vez. Esse é o gesto de reflexo que você vai usar de verdade quando o Claude estiver ignorando uma regra real do seu projeto.

Você terminou quando

Você consegue, na sua própria sessão, descrever o sintoma ("corrigi a mesma coisa duas vezes e ele errou de novo"), nomear a causa (context window cheia, context rot), e executar o reflexo certo (/clear pra recomeçar, /compact pra continuar mais leve) sem precisar pensar.