🏅 O campo de ouro message.model
Toda comparação começa separando o corpus de cada modelo, e a chave é o campo message.model.
O extract_corpus.py varre todo o histórico (todos os projetos em
~/.claude/projects) e junta num corpus combinado todos os turnos de um modelo.
# default: claude-fable-5 python extract_corpus.py # um modelo específico, com pasta de saída python extract_corpus.py --model claude-opus-4-8 --out ./corpus_opus # só listar os modelos que existem no histórico python extract_corpus.py --list
📦 O que ele produz
- •
transcript.md— transcrição leve só com os turnos daquele modelo. - •
stats.json— todas as métricas medidas. - •Um relatório legível impresso no terminal.
💡 Comece pelo --list
Antes de filtrar, rode --list para ver os nomes exatos dos modelos presentes no seu histórico. Os nomes mudam entre versões — o --list evita você filtrar por um modelo que não existe e levar corpus vazio.
message.model
todo o histórico
modelos presentes
transcript + stats
🔗 TURNO LÓGICO: a unidade certa
Vimos no módulo anterior que cada bloco é uma linha. Se você medir por linha, um turno de resposta de 5 blocos vira "5 turnos" — o sinal se dilui. A unidade certa é o turno lógico: 1 prompt humano até o próximo, com tudo o que o modelo fez no meio. Todas as métricas deste módulo são por turno lógico.
🎯 Por que essa é a unidade certa
O turno lógico responde à pergunta que importa: "para responder a este pedido, o modelo pensou antes? quantas ferramentas usou? em que ordem?". É a granularidade do ritmo de trabalho — nem a linha (fina demais), nem a sessão (grossa demais).
prompt → prompt
todos os blocos
o ritmo real
por turno lógico
📐 As métricas medidas
O extract_corpus.py não dá impressões — dá números. Cada corpus é resumido por:
turnos lógicos, % que pensaram antes, ferramentas por turno (média e mediana), read-antes-de-edit e teste-depois-de-edit.
É o vocabulário comum sobre o qual o delta vai ser tirado.
Turnos lógicos & % pensa-antes
Quantos turnos lógicos o modelo teve, e em que fração deles houve um bloco de raciocínio antes da primeira ação.
Ferramentas / turno (média & mediana)
A densidade de ação por turno. Média e mediana juntas — porque um punhado de turnos enormes pode puxar a média sem mexer no típico.
Read-antes-de-edit & teste-depois-de-edit
Heurísticas de disciplina: leu o arquivo antes de editá-lo? rodou teste depois de editar? Medidas por sequência de ferramentas.
💡 Números, não impressões
A graça é trocar "achei que o Fable pensa mais" por "o Fable pensou antes em 99% dos turnos". O número é o que se defende, se transfere e — na trilha 3 — vira regra de playbook.
presença 🧠
média + mediana
disciplina
disciplina
⚖️ Comparar 2 modelos
Com dois corpora medidos, o compare_models.py coloca os modelos
lado a lado e imprime a coluna Δ — a distância entre os dois ritmos.
É o passo onde a diferença que vira playbook fica visível em uma tabela só.
# fable-5 vs opus-4-8 (default) python compare_models.py # explícito, gravando o resultado python compare_models.py --a claude-fable-5 --b claude-opus-4-8 --out compare.json
métrica claude-fable-5 claude-opus-4-8 Δ ──────────────────────────────────────────────────────────────── % turnos c/ raciocínio 99% 54% +45% ferramentas/turno (média) 6.57 7.86 -1.29 sessões 7 1114 turnos do assistente 69 ...
📄 O compare.json
Com --out compare.json, o resultado vira um arquivo estruturado — fácil de versionar e de alimentar o make_playbook.py na trilha 3. A tabela do terminal é para ler; o JSON é para a máquina seguir o pipeline.
os dois modelos
tabela + Δ
compare.json
vira playbook
🎯 O delta real medido
Aqui está o achado que move o curso. Fable-5 pensou antes em 99% dos turnos lógicos contra 54% do Opus — um delta de +45 pontos, o sinal forte e transferível. Em ferramentas/turno: 6,57 vs 7,86 — o Fable foi mais econômico.
⚠ Atualização: medido depois em amostra grande (4.892 passos), o número honesto é ~85% (não 99%) e o gap cai pra +31 pts — e aparece um gap escondido em teste-após-editar (41% vs 2%). Veja a Trilha 4 · A Prova Real.
✓ O que o número diz
- ✓Fable pensa antes de agir quase sempre (99%).
- ✓+45 pontos é um delta grande e claro.
- ✓Fable usa menos ferramentas por turno (6,57).
✗ O que NÃO deduzir
- ✗"Menos ferramentas = pior" — pode ser densidade.
- ✗"Mais ferramentas = melhor" — pode ser thrashing.
- ✗Que o número de ferramentas, sozinho, ranqueia.
💡 Honestidade
Mais ferramentas não é melhor por si só: pode ser densidade (resolveu com poucas ações certas) ou thrashing (tentou várias coisas até acertar). O delta firme e transferível aqui é o pensa-antes-de-agir — esse vira regra-âncora na trilha 3.
99%
54%
+45 pts
6,57 vs 7,86
⚠️ Os limites
Um curso honesto também diz onde NÃO pisar. A amostra de Fable é pequena (7 sessões / 69 turnos), o que deixa read-before-edit e test-after-edit ruidosos — não tire delta robusto deles. E o texto do raciocínio vem cifrado: mede-se a presença, nunca o conteúdo.
⚠️ O que a amostra pequena custa
Com 7 sessões de Fable contra 1114 de Opus, qualquer métrica de baixa frequência (poucas edições, poucos testes) oscila muito. O pensa-antes-de-agir sobrevive porque aparece em quase todo turno; read-before-edit e test-after-edit são boa prática medida por heurística conservadora, não delta defensável.
Amostra pequena de Fable
7 sessões tornam métricas raras instáveis. Trate read/test como sinal fraco, não como delta.
Raciocínio cifrado
O texto do thinking não está nos logs. Você mede a presença (🧠), nunca o conteúdo do pensamento.
Onde o Fable era fraco
Over-thinking no trivial (pensa demais até para tarefas simples) e verbosidade. O delta não é "Fable é melhor em tudo".
💡 A regra de ouro da honestidade
Só "pensa-antes-de-agir" é delta firme. Afirme isso com confiança; trate o resto como contexto. É essa disciplina que torna o playbook da trilha 3 defensável — você injeta o que mediu, não o que torceu para ser verdade.
7 sessões
read/test
presença, não texto
só pensa-antes
📊 Resumo do Módulo
extract_corpus.py filtra por message.model — todo o histórico; --list mostra os modelos.compare_models.py dá a tabela + Δ — e o compare.json para o pipeline.Próxima Trilha:
Trilha 3 — Do Delta ao Playbook: transformar o número numa regra injetável.