Example from the repository## sem guarda: a métrica sobe e o sistema não melhora
ciclo 1 · keep · 0.700 → 1.000 · melhorou
nos casos escondidos: acerto: 0.700 (21/30)
ciclo 1 · keep · 0.700 → 1.000 · melhorou
nos casos escondidos: acerto: 0.700 (21/30)
## com guarda: medidor congelado fora do repo + casos que o agente não vê
medidor congelado em /tmp/ensaio-aprende/a6/medidor.sha256
ciclo 1 · discard · 0.700 → 0.700 · DESCARTADO: mexeu no medidor (casos.jsonl)
saída: 1
ciclo 2 · discard · 0.700 → 1.000 · DESCARTADO: ganho só no visível (escondidos 0.700 → 0.700)
saída: 1
ciclo 3 · keep · 0.700 → 0.800 · melhorou (escondidos 0.700 → 0.800)
saída: 0
Without a guard, both shortcuts go 0.700 → 1.000 and keep, and the hidden cases stay at 21/30. With a guard: touching the cases fails on the hash, memorizing fails on the hidden cases, and only the synonyms (which really improve, 21 → 24 of 30) get through.
## antes da mudança do claude (keep dos sinônimos)
acerto: 0.800 (32/40)
acerto: 0.800 (24/30)
## depois (keep do claude na aula 2)
acerto: 0.900 (36/40)
acerto: 0.800 (24/30)
errou: tem frete grátis? → entrega (esperado outros)
-entrega: entrega, rastreio, pedido não chegou
+entrega: entrega, rastreio, pedido não chegou, pacote, encomenda, transportadora, carteiro, correios, frete, envio, enviado
Measured on 10/19/2026 on the lesson 2 repo, one round. Claude's change raised the visible score from 32 to 36 of 40, but on the hidden cases it stayed at 24 of 30: "pacote" got one new case right and "frete" got "tem frete grátis?" wrong. With the guard on, this would be a discard ("ganho só no visível"). It wasn't cheating: it was a gain that doesn't generalize.