🚮 #1: "double-check before returning"
Esse scaffold era necessário no 4.6 para forçar revisão antes de retornar. No 4.7 em xhigh, o modelo já revisa naturalmente — a frase dispara loops redundantes.
❌ Antes
Before returning your answer,
double-check that:
1. All test files were read
2. Edge cases are handled
3. Style matches existing code✓ Depois
# Apenas remova o bloco.
# xhigh revisa sozinho.
# Se precisar reforçar, cite só
# o critério específico:
"Matches the codebase style."🚮 #2: "after every N tool calls, summarize"
Micromanagement de progresso. O 4.7 gerencia contexto melhor sozinho — interrupções periódicas forçadas causam drip-feed artificial.
❌ Antes
After every 5 tool calls,
pause and summarize what
you've learned before
continuing.✓ Depois
# Deixe o modelo decidir.
# Se a sessão for realmente
# longa, use /compact com hint,
# não forced summary.🚮 #3: "CRITICAL: MUST use tool X"
Linguagem agressiva com CAPS LOCK causava obediência no 4.6. No 4.7 — que segue instruções literalmente — amplifica demais e dispara tool mesmo sem contexto apropriado.
❌ Antes
CRITICAL: You MUST use the
Read tool before answering
ANY question about files.
NEVER skip this step.✓ Depois
Use Read when you need the
contents of a specific file
path. Prefer Grep for
searching by pattern.💡 Princípio
Troque comando emocional por condição descritiva. "Use tool X when [condition]" > "MUST use tool X".
🚮 #4: "if in doubt, use [tool]"
Fallback cego. O 4.7 tem "dúvida" calibrada — fallback externo dispara a ferramenta mesmo quando ele não está em dúvida real.
❌ Antes
If in doubt about
file locations,
use Glob.✓ Depois
Use Glob when you need
to find files by name
pattern across the repo.🚮 #5: Prefilled responses (deprecated desde 4.6+)
Truque antigo de enviar texto na mensagem do assistant para forçar formato. Quebra extended thinking e structured output moderno.
❌ Antes
messages: [
{role: 'user', content: '...'},
{role: 'assistant',
content: '{"result":'}
]✓ Depois
// Use tool schema ou
// response_format:
tools: [{
name: 'result',
input_schema: {...}
}]🚮 #6: budget_tokens no código
Campo deprecated. O 4.7 usa thinking: adaptive + effort calibrado no cliente. Código antigo precisa migrar.
❌ Antes
await claude.messages.create({
model: 'claude-3-opus-...',
thinking: {
type: 'enabled',
budget_tokens: 10000
},
...
});✓ Depois
await claude.messages.create({
model: 'claude-opus-4-7',
thinking: {type: 'adaptive'},
// effort via client config
// ou slash /effort no CC
...
});✅ Checklist imprimível de auditoria completa
Auditoria em 15 minutos
10/10: biblioteca limpa. 8–9: boa, revise restantes. < 8: bloqueie release até subir.
📋 Resumo
Próximo Módulo:
4.3 — Anti-overengineering + Anti-hardcoding