Itere em Diffs, Não em Reescritas
Uma vez que o código existe, resista ao impulso de pedir tudo de novo. Follow-ups vagos como "make it better" jogam fora código funcional e reintroduzem bugs que você já tinha corrigido. Aponte para a mudança específica que você quer.
That's not right, rewrite the whole thing.
The function works, but two issues:
1. The error on line with `throw new Error` should return a
Result type instead of throwing — match the pattern in
the validateUser function above.
2. The loop re-reads `items.length` each iteration; hoist it.
Show me just the diff for those two changes.
O ciclo saudável é um loop apertado: dê o ao modelo, leia a saída e depois refine com um diff pequeno e direcionado — nunca uma reescrita completa — até ficar certo:
┌─────────┐ ┌─────────┐ ┌─────────┐
│ PROMPT │ ──▶ │ MODEL │ ──▶ │ OUTPUT │
└─────────┘ └─────────┘ └────┬────┘
▲ │
│ ▼
│ ┌─────────┐
│ good? │ REVIEW │
│ yes ◀──────────────────┤ diff │
│ └────┬────┘
│ │ no
│ refine (small diff) │
└───────────────────────────────┘
drift? ▶ reset to last good
Pedir um diff (em vez de uma reescrita completa) mantém as mudanças revisáveis e preserva as partes que já funcionam. Trate a saída da IA como o de uma colega: comente linhas específicas, peça edições direcionadas. Quando uma mudança sai do rumo e o código se afasta cada vez mais do que você queria a cada resposta, não continue remendando — volte para a última versão em que você confiava e reformule o prompt a partir dali com uma descrição mais afiada. Iterar para a frente sobre uma base quebrada só piora a bagunça.