🧪 Monte as três versões
Ablação é um termo emprestado da pesquisa: remover uma parte do sistema para medir o que ela realmente contribuía. Aqui a parte removida são instruções da sua config. E medir exige pelo menos duas configurações rodando a mesma coisa — na prática, três: A, B e C.
A é a sua config atual, intacta — a linha de base (o ponto de comparação honesto, aquilo que você tem hoje e não pode piorar sem perceber). B é a versão simplificada, com cerca de 50% menos instruções: você manteve o que parecia essencial e cortou o resto. C é a versão mínima: contexto essencial + objetivo + guardrails + critérios de qualidade + verificação. Nada além disso.
O que olhar: as colunas encolhem da esquerda para a direita, mas as faixas cianas atravessam as três com o mesmo comprimento. É esse detalhe que faz o teste valer: a variável que muda é uma só (a config). Se você também trocar a tarefa, o modelo ou o prompt de entrada, o resultado não diz mais nada sobre o corte.
✓ O que ENTRA na versão C
- ✓Contexto essencial — identidade do projeto, caminhos, fontes de verdade, convenções internas. O modelo não infere isso.
- ✓Objetivo — o resultado que deve ser produzido, em uma frase.
- ✓Guardrails — os limites inegociáveis: segurança, compliance, o que nunca pode ser tocado.
- ✓Critérios de qualidade — o que caracteriza "ficou bom".
- ✓Verificação — como o modelo confere o próprio trabalho antes de encerrar.
✗ O que FICA DE FORA da versão C
- ✗Passo a passo de execução ("primeiro faça X, depois Y, então Z").
- ✗Regra repetida em três lugares diferentes.
- ✗Correção de comportamento de um modelo que não roda mais.
- ✗Exemplos em excesso e formatação rígida sem motivo declarado.
- ✗Instruções que ensinam o modelo a pensar em vez de dizer o que entregar.
💡 C não é "config vazia"
O erro mais comum ao montar C é confundir mínima com nenhuma. Se você apagar o caminho do repositório, o nome do domínio, a conta de git, o formato do arquivo de saída — o modelo não tem como adivinhar. Isso não é peso morto, é contexto que só existe na sua cabeça e nos seus arquivos. C corta instruções de execução; C preserva contexto que o modelo não consegue inferir.
Conceitos-chave
Remover para medir impacto
A é o ponto de comparação
Contexto + objetivo + guardrails + critérios + verificação
Contexto não-inferível fica
🎯 Escolha 5 a 10 tarefas reais
Tarefa real é tarefa que você já fez ou vai fazer de qualquer jeito nesta semana: publicar um post, refatorar um módulo, gerar um relatório, montar uma página. Tarefa hipotética — "peça pro modelo escrever uma função de fibonacci" — não testa nada da sua config, porque a sua config não foi escrita para fibonacci.
Cinco tarefas é o mínimo para o resultado não ser sorte; dez é o teto prático antes de a rodada virar um projeto em si. O conjunto precisa ser representativo: se 70% do seu trabalho é escrever conteúdo e 30% é mexer em código, a grade deve refletir mais ou menos essa proporção.
✓ Uma boa grade de tarefas tem
- ✓Cobertura dos tipos de trabalho que você faz de verdade
- ✓Pelo menos uma tarefa em que a config atual claramente ajuda — sem ela, o teste já nasce torcendo pelo corte
- ✓Pelo menos uma tarefa difícil, um pouco acima do que você acha que o modelo aguenta
- ✓Entradas concretas: os arquivos, os links, os dados reais que a tarefa usa
✗ Sinais de uma grade enviesada
- ✗Todas as tarefas são fáceis — qualquer versão passa, o teste não separa nada
- ✗Nenhuma toca as regras que você quer manter
- ✗Você escolheu as tarefas depois de já ter decidido cortar
- ✗São todas do mesmo tipo (só código, só texto)
⚠️ Alerta: o viés da tarefa de brinquedo
Viés aqui é qualquer escolha de teste que empurra o resultado para o lado que você já preferia. Testar com tarefa de brinquedo é a forma mais comum e mais silenciosa de "provar" aquilo em que você já queria acreditar: numa tarefa trivial, A, B e C empatam sempre — e o empate parece uma licença para cortar tudo.
O antídoto é escolher as tarefas antes de montar B e C, e incluir de propósito uma em que você aposta que a config atual faz diferença. Se ela empatar mesmo assim, aí você aprendeu algo.
Conceitos-chave
Mínimo contra sorte
Espelha o seu trabalho real
Teste que já sabe o que quer provar
É onde as versões se separam
📏 Meça as nove dimensões
"Ficou melhor" não é medida. Nove dimensões cobrem o que importa, e cada uma tem uma forma simples de pontuar: escala de 1 a 5 quando o julgamento é inevitável, contagem objetiva sempre que der. Contagem é sempre preferível — "3 correções" não admite discussão; "qualidade 4" admite.
Três dessas dimensões costumam ser ignoradas e são justamente as que revelam config inchada: autonomia (quanto o modelo avança sozinho antes de parar para perguntar), aderência (se ele respeitou as regras que você quis manter — não todas as regras que existiam) e a capacidade de verificar o próprio trabalho.
| Dimensão | O que é | Como pontuar |
|---|---|---|
| Qualidade | O resultado atende os critérios que você definiu | 1–5 (1 = refaria do zero, 5 = entregaria como está) |
| Aderência | Respeitou as regras que você quis manter | Contagem: quantas das N regras-alvo foram cumpridas |
| Autonomia | Quanto avançou sem pedir socorro | Contagem: nº de perguntas/interrupções ao humano |
| Correções humanas | Quantas vezes você teve de intervir e corrigir | Contagem direta (0, 1, 2, …) |
| Consistência | Mesma tarefa, duas rodadas: dá o mesmo tipo de resultado? | Igual / parecido / diferente — rode a tarefa 2× |
| Tempo | Do envio até a entrega utilizável | Minutos, no relógio |
| Uso desnecessário de ferramentas | Buscas, leituras e comandos que não serviram para nada | Contagem de chamadas descartáveis |
| Complexidade | Tamanho da config que produziu aquilo | Nº de linhas / nº de regras da versão |
| Autoverificação | Ele conferiu o próprio trabalho antes de encerrar? | Não / conferiu superficial / conferiu com evidência |
📊 A função-objetivo, em uma linha
Você não está buscando a config mais curta. Está buscando o maior valor de (qualidade + autonomia + verificabilidade) ÷ complexidade.
Por isso complexidade entra na tabela como uma dimensão medida, e não como um objetivo à parte: cortar 200 linhas e perder autonomia é um péssimo negócio; cortar 200 linhas mantendo tudo igual é lucro puro de contexto.
Conceitos-chave
Cumpriu as regras-alvo
Menos interrupções = melhor
Objetivo sempre que der
A dimensão mais esquecida
📝 Registre sem se enganar
Três coisas ficam congeladas em toda rodada: mesma tarefa, mesmo modelo, mesmo prompt de entrada. Só a config muda. Comparar o A de ontem, no modelo antigo, com o C de hoje numa tarefa parecida não é ablação — é anedota.
E há uma regra que separa quem mede de quem se convence: escreva antes de olhar a resposta o que seria "bom". Se você define o critério depois de ler a saída, seu cérebro ajusta o critério à saída — você vai achar ótimo o que veio e não vai perceber que mudou a régua. Anote a régua primeiro, depois rode.
✓ Protocolo honesto
- ✓Escrever o "o que seria bom" na grade antes de rodar
- ✓Rodar A, B e C na mesma sessão de trabalho, no mesmo dia
- ✓Preencher a linha da grade logo após cada rodada, não no fim do dia
- ✓Guardar o link/arquivo da saída de cada rodada, para reler depois
✗ Como você se engana
- ✗Comparar A de ontem com C de hoje, em tarefas diferentes
- ✗Trocar de modelo no meio da rodada
- ✗Reescrever o prompt de entrada "só um pouquinho" na versão C
- ✗Julgar a qualidade de memória, dois dias depois, sem anotação
📋 Copie: a grade de registro
Objetivo: criar o arquivo ablacao-grade.md ao lado do seu ablacao-diario.md (do módulo 1.2). Uma tabela por tarefa, três linhas por tabela — A, B e C.
# Grade de ablação A/B/C Modelo usado: <nome do modelo> Data: <aaaa-mm-dd> Regras-alvo (para aderência): <liste as N regras que você quer manter> ## Tarefa 1 — <sua tarefa aqui> Prompt de entrada (idêntico nas 3): <cole o prompt> O que seria BOM (escrito ANTES de rodar): <seu critério aqui> | Versão | Qualid. 1-5 | Aderência n/N | Autonomia (interrupções) | Correções | Consistência | Tempo (min) | Ferram. inúteis | Complexidade (linhas) | Autoverificação | |---|---|---|---|---|---|---|---|---|---| | A (atual) | | | | | | | | | | | B (50% menos) | | | | | | | | | | | C (mínima) | | | | | | | | | | Observações (o que quebrou, em qual versão, com trecho): - <anote aqui> ## Tarefa 2 — <sua tarefa aqui> (repita o bloco acima)
Como verificar: a linha "O que seria BOM" está preenchida antes de qualquer célula da tabela. Se você preencheu a tabela primeiro e o critério depois, apague o critério e refaça a tarefa — o registro está contaminado.
💡 Consistência custa uma rodada extra
A dimensão "consistência" exige rodar a mesma tarefa duas vezes na mesma versão. Faça isso pelo menos na versão C e na tarefa difícil — é ali que a instabilidade aparece. Nas outras células, se faltar tempo, marque "não medido" em vez de chutar. Célula vazia é honesta; célula chutada estraga a leitura.
Conceitos-chave
Tarefa, modelo, prompt
Critério antes da resposta
Onde o teste vira registro
Melhor que chutado
⚖️ Leia o resultado e decida
A leitura da grade tem três desfechos, e só três. Onde C empatou com A, as instruções que estavam em A e sumiram em C eram peso morto: ficam fora, definitivamente. Onde C piorou uma única vez, isso não conta — uma rodada ruim é ruído, e devolver instrução por causa dela é como reescrever a config toda vez que o modelo boceja.
Onde C piorou de forma repetida, aí sim entra a regra de reintrodução. E há um quarto caso que aparece com frequência e surpreende: B ganhando de A e de C. Quando isso acontece, você achou o ponto ótimo — normalmente é ali que a config fica.
O que olhar: há quatro saídas possíveis e apenas uma devolve instrução para a config. Repare que "C piorou" sozinho não é uma saída — ele precisa passar pelo segundo losango. Esse desenho existe para você resistir ao impulso de reescrever a config na primeira frustração.
Houve falha real
Não "ficou meio esquisito": algo que você teve de corrigir, ou que quebrou um critério que estava escrito antes de rodar. Falha registrada na grade, com trecho.
A mesma classe de falha se repetiu
Duas ocorrências do mesmo tipo — não dois erros diferentes. "Esqueceu de rodar o teste" duas vezes é classe repetida; "esqueceu o teste" e "usou o autor errado" são duas classes de uma ocorrência cada.
Está claro que uma instrução específica resolve
Se você não consegue escrever a frase que teria evitado a falha, o problema não é falta de instrução — talvez seja falta de skill (procedimento) ou de contexto que o modelo não alcança.
Ela cabe na forma mais curta possível
Uma frase, um critério, uma verificação. Se a instrução que voltou tem oito passos, você não devolveu uma regra — devolveu o microgerenciamento que tinha acabado de cortar.
📊 Quando B vence, B fica
Se B empata com A em qualidade e aderência, mas ganha em autonomia e complexidade — e C perde em duas tarefas repetidamente — a resposta não é forçar C. É adotar B como nova linha de base e rodar a próxima ablação a partir dela em seis meses. Ablação é iterativa: o C de hoje é o A da próxima rodada.
Conceitos-chave
Era peso morto
Não devolve nada
Regra de reintrodução
O ponto ótimo comum
🔁 Transforme falhas em evals
Um eval é um caso de teste para modelo: uma tarefa concreta com um critério de acerto que você consegue conferir. Toda falha que apareceu na sua grade já é um eval pronto — basta escrever "esta tarefa, este critério, o modelo falhava aqui" e guardar.
Evals também envelhecem: eles sobrevivem tipicamente de 1 a 3 gerações de modelo. Quando um eval passa sempre, em todas as versões, ele saturou — não separa mais nada e só custa tempo de execução. Aposente-o e crie novos onde você viu o modelo atual tropeçar.
| Tarefa | A (atual) | B (50% menos) | C (mínima) | Leitura |
|---|---|---|---|---|
| Publicar post no blog | Qual. 4 · 2 correções | Qual. 4 · 1 correção | Qual. 4 · 1 correção | Empate → corta |
| Refatorar módulo legado | Qual. 4 · 1 correção | Qual. 4 · 1 correção | Qual. 2 · 4 correções (2×) | Piorou repetido → devolve 1 regra |
| Gerar relatório mensal | Qual. 3 · 3 correções | Qual. 4 · 1 correção | Qual. 3 · 2 correções | B venceu → B vira a base |
| Corrigir bug reportado | Qual. 5 · 0 correções | Qual. 5 · 0 correções | Qual. 4 · 1 correção (1×) | Uma vez só → ruído, mantém C |
Como ler esta tabela de exemplo: ela é ilustrativa — os números são inventados. O que importa é a coluna "Leitura": quatro tarefas, quatro desfechos diferentes. Uma grade real raramente aponta para um único veredito, e é exatamente por isso que ela vale mais que a sua intuição.
🧪 Exercício: rode a sua grade
Objetivo: montar a grade A/B/C com 5 tarefas reais e rodar pelo menos 2 delas nas três versões, preenchendo a tabela. Cole o prompt abaixo no Claude Code, uma versão de cada vez, sem mudar nada além da config.
Rodada de ablação — versão <A | B | C> Tarefa: <sua tarefa aqui, exatamente como você a pediria num dia normal> Entradas: <arquivos, links, dados reais que a tarefa usa> Faça a tarefa até o fim. Ao terminar, responda também: 1. Quais critérios você usou para decidir que estava pronto? 2. Como você verificou o próprio trabalho? Cite a evidência (comando, arquivo conferido, teste rodado). 3. Em que ponto você ficou em dúvida e teria perguntado a um humano? Não peça confirmação no meio do caminho a menos que seja bloqueante.
Como verificar (critério de saída):
ablacao-grade.md com ≥2 tarefas × 3 versões preenchida; e,
para cada instrução que voltou para a config, a falha que a justificou está registrada com trecho e
se repetiu ao menos duas vezes. Se voltou instrução sem falha repetida registrada, apague-a
e rode de novo.
Agora troque pelo seu: as respostas 1, 2 e 3 do modelo alimentam três colunas da grade direto — critérios de qualidade, autoverificação e autonomia. Cole-as no campo "Observações" da tarefa.
Checagem rápida (não bloqueia nada): na tarefa "refatorar módulo legado", a versão C esqueceu de rodar os testes — uma vez. Nas outras tarefas, C empatou com A. O que você faz?
💡 O eval que nasce da falha
Cada linha "Observações" da sua grade vira um eval de uma frase: "tarefa X, com config C, deve rodar os testes antes de encerrar — evidência: saída do comando de teste no log". Guarde esses casos num único arquivo e reexecute todos quando sair um modelo novo. É assim que a próxima ablação começa já com régua pronta.
Conceitos-chave
Caso de teste conferível
Não se perde nada observado
Passa sempre, aposente
Validade típica de um eval
📌 Resumo do Módulo
Próximo Módulo:
4.2 — O ciclo contínuo: transformar a auditoria em rotina periódica, com gatilhos de re-auditoria e política de ablação escrita.