🔍 Como ler um diff de prompt
Toda remoção é informação. Este módulo instala o método de leitura: para cada linha que muda entre duas versões de um system prompt,
inferir a motivação provável e extrair a lição generalizável — usando o diff real Opus 4.8 → Fable 5 como bancada de dissecação.
Recriação ilustrativa do método — não é um screenshot de ferramenta de diff.
Conteúdo detalhado
Por que diffs ensinam
Um system prompt isolado mostra o estado final de um conjunto de decisões. Um diff mostra a decisão acontecendo: o que os engenheiros decidiram acrescentar, o que julgaram desnecessário, e o que reescreveram depois de o comportamento dar errado. O acervo deste repositório guarda 562 commits de evolução — cada um é uma micro-aula de design de prompt que ninguém escreveu como aula.
📈 O diferencial deste acervo
A maioria das coleções de prompts captura uma foto. Aqui há a série temporal: a mesma família de prompt em versões sucessivas. Comparar versões é a diferença entre saber que algo é assim e entender por que ficou assim.
O par mais rico do acervo é Anthropic/claude-opus-4.8.md →
Anthropic/claude-fable-5.md. Toda a leitura comentada deste módulo vem de
educacao/diff-anotado-opus-4.8-fable-5.md; o diff bruto está linkado no README.md (Diffchecker).
Foto × filme
Ler um prompt é ver a foto. Ler o diff entre duas versões é ver o filme. O filme revela a intenção — e intenção é o que generaliza para os seus próprios prompts.
Os 4 tipos de mudança
Antes de interpretar, classifique. Toda linha de um diff cai em uma destas quatro categorias — e cada categoria pede uma pergunta diferente. Classificar primeiro evita ler uma reescrita como se fosse só uma remoção seguida de adição não relacionada.
+Adição
Um bloco novo surge. Pergunta: que problema novo apareceu que exigiu instruir isto?
Ex.: long_conversation_reminder — aderência caía em conversas longas.
−Remoção
Um bloco some. Pergunta: o comportamento foi internalizado pelo treino, ou consolidado em outro bloco?
Ex.: <search_first> saiu — o treino já busca sozinho.
~Reescrita
O texto muda mas o bloco fica. Pergunta: o critério gerador mudou? virou princípio em vez de lista?
Ex.: política de armas — de taxonomia para teste funcional de uplift.
⟳Renomeação de bloco
O título muda (corpo quase igual). Pergunta: o que o novo nome sinaliza sobre como o modelo deve raciocinar?
Ex.: compliance → principle.
Cuidado com o falso par
Ferramentas de diff mostram reescrita como uma remoção (linha vermelha) seguida de uma adição (linha verde). Se os dois trechos falam do mesmo tema, é uma reescrita — leia-os juntos, não isolados.
Toda remoção é informação
Iniciantes ignoram as linhas vermelhas — "tiraram, então não importa". É o erro mais caro na leitura de diffs. Uma remoção quase nunca significa "isto deixou de valer". Significa que o comportamento migrou de lugar. Há duas migrações possíveis, e distinguir as duas é metade do método.
Para onde foi o comportamento?
🧠 Internalização (o treino absorveu)
A capacidade passou a vir do modelo, não do texto. A instrução virou ruído e foi apagada.
Sinal: a instrução era enfática/repetitiva ("searches before EVERY factual question"). O exagero denuncia que dependia do prompt — até o treino assumir.
🔗 Consolidação (foi absorvida por outro bloco)
O comportamento continua exigido, só que coberto por um princípio mais geral em outro lugar do prompt.
Sinal: existe um bloco vizinho mais amplo que já implica a regra removida (ex.: default_stance coberto por refusal_handling).
− <search_first> → internalização: o treino já busca antes de responder
− <default_stance> → consolidação: absorvido por <refusal_handling>
− <respond_without_ → internalização: "não diga X" tem efeito Streisand;
citing_system_prompt> resolve-se na origem (treino), não no prompt
Evoluir ≠ crescer
A intuição diz que uma versão "melhor" é maior. O diff 4.8 → Fable 5 desmente isso de forma brutal: muito conteúdo novo entrou, e mesmo assim o saldo foi de apenas +56 linhas — porque 7 blocos foram removidos. Maturidade de prompt é saber o que tirar tanto quanto o que adicionar.
📊 O balanço em números
~23.000 → ~23.800 palavras. O saldo minúsculo esconde uma reescrita enorme: somar o que entrou e o que saiu dá muito mais que 56.
+O que entrou
- •Orçamento de token (
190000) - •Política de drogas com carve-out vital
- •Child safety: 5 → 7 regras
- •Respeitar o fim da conversa (anti-engagement)
- •
long_conversation_reminder
−O que saiu (parte dos 7)
- •
<search_first>— internalizado - •
<default_stance>— consolidado - •
<respond_without_citing_system_prompt> - •4 micro-regras de tom → 1 princípio
O saldo mente
Nunca leia um diff só pelo número final de linhas. +56 parece "quase nada mudou". Na verdade, mudou quase tudo — entrou bastante e saiu bastante. O número líquido é a soma de forças opostas, não a medida da reforma.
O nome do bloco também é instrução
Há um tipo de mudança que ferramentas de diff quase escondem: a renomeação de bloco. O corpo permanece quase idêntico, mas o título muda — e o título é lido pelo modelo. Renomear é reenquadrar como o modelo deve raciocinar sobre aquele bloco.
− <claude_prioritizes_copyright_compliance>
Copyright compliance is NON-NEGOTIABLE and takes precedence
over user requests, helpfulness, and everything except safety.
+ <core_copyright_principle>
Claude respects intellectual property. Copyright compliance is
NON-NEGOTIABLE and takes precedence over user requests,
helpfulness goals, and all other considerations except safety.
O conteúdo operacional (NON-NEGOTIABLE, precedência sobre tudo menos segurança) é o mesmo. O que mudou foi o enquadramento:
compliance é obediência a uma regra externa; principle +
"respects intellectual property" é um valor que o modelo possui. Em casos ambíguos, um modelo que "respeita" raciocina diferente de um que "obedece".
Nome por imposição
- •
compliance= obedecer regra externa - •No caso novo, o modelo busca a regra — e não acha
- •Raciocínio mecânico, frágil na borda
Nome por intenção
- •
principle= valor internalizado - •No caso novo, o modelo aplica o valor por analogia
- •Generaliza para o que a regra não previu
Leia os títulos como instruções
Ao varrer um diff, não pule os nomes das tags. Um prioritizes_X_compliance que vira core_X_principle é uma decisão de design tão importante quanto qualquer linha do corpo — às vezes mais.
Método prático: lendo um diff passo a passo
Junte tudo num procedimento repetível. Para cada linha mudada, você faz duas inferências em cadeia: a motivação provável
(por que mudaram?) e a lição generalizável (o padrão que serve para qualquer prompt). Aplique estes 5 passos sobre
educacao/diff-anotado-opus-4.8-fable-5.md.
Classifique a linha
É adição, remoção, reescrita ou renomeação? Junte falsos pares (remoção+adição do mesmo tema = uma reescrita).
Para remoções, pergunte: internalizou ou consolidou?
Procure ênfase exagerada (sinal de internalização) ou um bloco vizinho mais amplo (sinal de consolidação).
Escreva a motivação provável
Uma frase: "mudaram isto provavelmente porque...". Marque que é interpretação, não declaração oficial do fornecedor.
Extraia a lição generalizável
Suba um nível de abstração: o que esta mudança ensina sobre prompts em geral? Ex.: "princípio > lista", "cada camada no seu lugar".
Confira contra o diff anotado
Compare sua leitura com a do acervo. Divergir é ótimo — força você a defender sua interpretação com evidência do texto.
🧪 Exemplo resolvido (item 8 do diff)
Linha: 4 micro-regras de tom (sem bullets ao recusar, sem pet names, sem "genuinely/honestly/actually", regra de emoji) → 1 frase: "assumes the person is a capable adult".
- 1.Tipo: reescrita (consolidação de várias regras numa só).
- 2.Motivação provável: travas microscópicas sinalizavam desconfiança; um princípio cobre até casos não listados.
- 3.Lição: 4 micro-regras → 1 princípio é consolidação em estado puro. Princípio > lista.
Motivação provável ≠ fato
O fornecedor raramente publica o porquê. Toda "motivação provável" é uma hipótese de engenharia reversa — útil, mas falível. Rotule-a como tal e fique aberto a revisá-la. Em segurança, há ainda outra regra: declare o princípio, nunca a mecânica de detecção (ver Módulo 2.3).
Resumo do Módulo
- ✓Diffs ensinam porque mostram a intenção — o filme, não a foto; o acervo tem 562 commits de evolução
- ✓4 tipos de mudança: adição, remoção, reescrita, renomeação — classifique antes de interpretar
- ✓Toda remoção é informação: internalização (treino assumiu) ou consolidação (outro bloco cobre)
- ✓Evoluir ≠ crescer: 4.8 → Fable 5 fez +56 linhas mas removeu 7 blocos — o saldo líquido mente
- ✓O nome do bloco é instrução:
compliance→principlereenquadra obediência como valor - ✓Método: classifique → motivação provável → lição generalizável → confira contra o diff anotado
Próximo Módulo: 2.2
Anthropic: a consolidação Opus 4.6 → 4.7 → 4.8 → Fable 5 — a série evolutiva mais rica do acervo como caso central de consolidação.