Itera sobre diffs, no reescrituras
Una vez que el código existe, resiste la tentación de pedir todo de nuevo. Seguimientos vagos como "hazlo mejor" descartan código que funciona y reintroducen errores que ya habías corregido. Señala el cambio específico que quieres.
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.
El ciclo saludable es un bucle ajustado: dale el al modelo, lee el resultado, luego refina con un diff pequeño y dirigido —nunca una reescritura completa— hasta que quede bien:
┌─────────┐ ┌─────────┐ ┌─────────┐
│ PROMPT │ ──▶ │ MODEL │ ──▶ │ OUTPUT │
└─────────┘ └─────────┘ └────┬────┘
▲ │
│ ▼
│ ┌─────────┐
│ good? │ REVIEW │
│ yes ◀──────────────────┤ diff │
│ └────┬────┘
│ │ no
│ refine (small diff) │
└───────────────────────────────┘
drift? ▶ reset to last good
Pedir un diff (en lugar de una reescritura completa) mantiene los cambios revisables y preserva las partes que ya funcionan. Trata el resultado de la IA como el de un colega: comenta líneas específicas, pide ediciones dirigidas. Cuando un cambio se descarrila y el código se aleja cada vez más de lo que querías con cada respuesta, no sigas parcheando: vuelve a la última versión en la que confiabas y vuelve a dar el prompt desde ahí con una descripción más precisa. Iterar hacia adelante sobre una base rota solo agrava el desorden.