🔍
MÓDULO 2.1 Trilha 2 — Evolução

🔍 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.

📋6 tópicos
~35 min
🎯Intermediário
🛠Método
DIFF BRUTO — linha a linha − <search_first> removido + token_budget: 190000 ~ weapons: escopo reduzido ⟳ compliance → principle Motivação provável por que mudaram? (interpretação, não oficial) Lição generalizável o padrão reutilizável serve para qualquer prompt OS 4 TIPOS DE MUDANÇA + adiçãonasce um comportamento − remoçãointernaliza/consolida ~ reescritamuda o critério ⟳ renomeaçãoo nome é instrução

Recriação ilustrativa do método — não é um screenshot de ferramenta de diff.

Conteúdo detalhado

1

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.mdAnthropic/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.

🎞️
Série temporal
não uma foto só
🧾
562 commits
micro-aulas de design
🎯
Intenção
o que generaliza
📄
4.8 → Fable 5
o par-bancada
2

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.: complianceprinciple.

💡

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.

+
Adição
problema novo
Remoção
internalizado/consolidado
~
Reescrita
novo critério
Renomeação
nome = instrução
3

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).

diff-anotado — 3 remoções do par 4.8 → Fable 5
 <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
🧠
Internalização
treino assumiu
🔗
Consolidação
outro bloco cobre
📣
Ênfase = pista
o exagero denuncia
🌀
Efeito Streisand
"não diga X" sai
4

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

3.769
linhas — Opus 4.8
3.825
linhas — Fable 5
+56
saldo líquido
−7
blocos removidos

~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.

✂️
Tirar é evoluir
7 blocos removidos
⚖️
Saldo +56
esconde reescrita
📉
Líquido ≠ bruto
forças opostas
🧹
Maturidade
saber podar
5

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-opus-4.8.md (~L1408) → claude-fable-5.md (~L1343)
 <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.

🏷️
O título conta
é lido pelo modelo
⛓️
Compliance
obediência externa
💎
Principle
valor próprio
🔭
Borda ambígua
valor generaliza
6

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.

1

Classifique a linha

É adição, remoção, reescrita ou renomeação? Junte falsos pares (remoção+adição do mesmo tema = uma reescrita).

2

Para remoções, pergunte: internalizou ou consolidou?

Procure ênfase exagerada (sinal de internalização) ou um bloco vizinho mais amplo (sinal de consolidação).

3

Escreva a motivação provável

Uma frase: "mudaram isto provavelmente porque...". Marque que é interpretação, não declaração oficial do fornecedor.

4

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".

5

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).

🔢
5 passos
procedimento repetível
Motivação
por que mudaram
🎓
Lição
sobe de abstração
⚠️
Hipótese
não é fato oficial

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: complianceprinciple reenquadra 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.