🛡️ A Prova Real
Antes de acreditar em qualquer número, é preciso confiar na régua. Esta trilha mostra como a gente mediu três vezes — 7 sessões locais, depois amostra igualada, depois 4.892 passos do dataset aberto — e descobriu que amostra pequena engana nas duas direções. E quais soluções aplicar para medir, injetar e reproduzir sem se enganar.
Mapa da trilha
Conteúdo detalhado
🪤 A Armadilha da Amostra
Como a amostra pequena engana nas duas direções — a jornada dos três testes até o número defensável.
A jornada da medição em três rodadas: 7 sessões locais → amostra igualada (~950 passos) → 4.892 passos do dataset aberto do HF.
Cada rodada corrige um viés da anterior; ver a sequência ensina a não confiar na primeira medição.
Medir três vezes; cada amostra maior; do empolgante (enganoso) ao defensável (sólido).
7 sessões / ~950 passos do Fable local deram 99% de "pensa antes de agir" contra 54% do Opus — um delta de +45pp.
O número empolga, mas vem de apenas 7 sessões: é o tipo de resultado que parece prova e é só ruído.
99% vs 54% (+45pp); amostra de 7 sessões; empolgante ≠ confiável.
Igualando o tamanho (~950 passos de cada), o Opus salta para 94% num recorte de só 4 sessões.
Capar o tamanho ajuda a comparar, MAS 4 sessões ainda é pouco: o número balança conforme o recorte.
Amostra igualada; recorte de 4 sessões; instável; tamanho igual não basta sem volume.
4.892 passos / 30 sessões do dataset aberto Glint-Research/Fable-5-traces: Fable 85% vs Opus 54% (+31pp).
Amostra grande dos dois lados é o que torna o número defensável — a régua que vale levar pra frente.
85% vs 54% (+31pp); 4.892 passos / 30 sessões; dataset aberto; defensável.
A amostra pequena INFLOU o "pensar antes de agir" (99→85) E ESCONDEU o "teste após editar" (local dava 0%, o real é 41%).
É o ponto central da trilha: amostra pequena não erra só pra cima — ela erra pros dois lados.
Inflar (99→85) e esconder (0→41%); o viés tem duas direções; presença, não conteúdo.
Nunca conclua de amostra pequena; equilibre os tamanhos antes de comparar; confirme em amostra grande antes de crer.
É o destilado prático da armadilha — a disciplina que separa um número de uma opinião.
Não concluir cedo; equilibrar tamanhos; confirmar no grande; ceticismo até o volume bater.
🛠️ As Soluções Aplicáveis
O playbook corrigido e como medir, injetar e reproduzir direito — honestidade acima de hype.
Só duas regras transferem com lastro: pensar antes de agir (85 vs 54) e fechar o loop com teste após editar (41 vs 2).
Foco vale mais que volume: um playbook de duas regras com lastro bate um de dez sem prova.
Pensar-antes (85 vs 54); testar-depois (41 vs 2); só o que transfere de verdade.
Um hook SessionStart lê um .md separado (editável sem mexer no settings), é fail-open e MESCLA no array de hooks — não sobrescreve.
{
"hooks": {
"SessionStart": [
{ "hooks": [
{ "type": "command",
"command": "cat ~/.claude/fable-playbook.md 2>/dev/null || true" }
] }
]
}
}
Separar a regra num .md deixa você iterar o playbook sem tocar no settings, e o || true garante que nunca quebra a sessão.
SessionStart; .md editável; fail-open; mesclar (não sobrescrever) o array.
Balancear a amostra (capar pelo nº de passos, ex.: ~950) e avisar quando os tamanhos divergem demais entre os modelos.
É exatamente o que evita o +45pp falso: sem balanceamento, o modelo com mais dados parece "melhor".
Capar por passos; alerta de divergência; comparação só com tamanhos próximos.
Baixar o dump CRU de Glint-Research/Fable-5-traces (são .jsonl do Claude Code, não chat achatado) via API do HF — sem a lib datasets — e rodar no fable_lib.
BASE=https://huggingface.co/datasets/Glint-Research/Fable-5-traces/resolve/main
curl -sL "$BASE/<arquivo>.jsonl" -o sessao.jsonl
python -m fable_lib.measure sessao.jsonl
É como obter uma referência grande mesmo sem dados próprios — e preservar o formato de eventos que o medidor precisa.
Dump CRU; .jsonl de eventos; API do HF; sem datasets; rodar no fable_lib.
Os comandos que reproduzem a medição (extract_corpus.py, compare_models.py, o medidor do HF) e salvar um baseline DATADO num lugar durável — não em /tmp.
Sem baseline durável e datado, você não tem com o que comparar depois — e perde a prova de que algo mudou.
extract_corpus / compare_models; medidor do HF; baseline datado; lugar durável (não /tmp).
Presença ≠ conteúdo (o raciocínio vem cifrado nos logs); os pesos do modelo não atravessam; o playbook precisa ser iterado com novos dados.
Saber os limites é o que mantém o método honesto — você copia o ritmo, não o cérebro do modelo.
Raciocínio cifrado; pesos não transferem; iterar com novos dados; honestidade acima de hype.
🧰 Exemplos de Utilidade
Onde isso é útil de verdade — escolher modelo, diagnosticar o seu, onboarding, provar mudança e derrubar hype.
Sonnet pensa só 10% e usa poucas ferramentas (ótimo p/ tarefa rápida, mecânica e barata); Opus e Fable para trabalho que exige planejar e fechar o loop.
A régua vira critério de roteamento: você escolhe o modelo pela natureza da tarefa, com número na mão.
Sonnet 10% / poucas ferramentas; Opus e Fable para planejar+fechar loop; modelo por tarefa.
Meça os seus próprios logs e veja onde você falha. Ex.: se o seu Opus testa após editar só 2%, a maior alavanca é fechar o loop — não "pensar mais".
Transforma conselho genérico em diagnóstico pessoal: você corrige a falha que os SEUS dados mostram.
Medir os próprios logs; achar a falha real; alavanca = onde o número é mais baixo.
Injetar o ritmo bom por default (hook SessionStart ou CLAUDE.md) para todo dev começar a sessão com pensar-antes + testar-depois.
Padroniza o bom comportamento sem depender de cada pessoa lembrar — o playbook vira cultura, não folclore.
Default via hook/CLAUDE.md; pensar-antes + testar-depois; não depender de memória individual.
Baseline datado ANTES, aplica o playbook, mede DEPOIS com amostra suficiente — transforma "acho que melhorou" em número.
É a diferença entre impressão e evidência. Cuidado com diluição: isole as sessões novas para o efeito não sumir na média.
Antes/depois; baseline datado; amostra suficiente; isolar sessões novas (anti-diluição).
O mesmo método mede Codex e modelos open-source — basta ter os logs no formato de eventos. O campo model é a chave.
A régua não é específica de um fornecedor: onde houver eventos com model, você mede.
Codex e open-source; formato de eventos; campo model como chave; método agnóstico.
Use a régua para exigir número de amostra grande antes de acreditar em qualquer "modelo X é melhor que Y".
Foi exatamente assim que derrubamos o "+45pp": cobrar amostra é o que separa marketing de medição.
Exigir amostra grande; ceticismo com claims; foi assim que o +45pp caiu.