Yeda AI Tips · #093

English

Prueba el bug antes de arreglarlo

Nunca dejes que la IA arregle un bug cuya existencia no ha probado. Cuando llega un reporte de bug, el prompt tentador es "aquí está el error, arréglalo" — y el agente producirá con gusto un parche de apariencia plausible. Pero sin una reproducción tienes dos incógnitas en lugar de una: no sabes si el parche ataca la causa real, y no sabrás si el bug regresa en silencio el próximo mes. Una oración extra en tu prompt elimina ambas.

Por qué "solo arréglalo" es adivinar

Un agente de código que solo recibe un mensaje de error hace pattern matching hacia la causa más probable. A menudo acierta. Cuando falla, el modo de falla es feo: el código cambia, el mensaje de error desaparece (o se mueve), y todos asumen que el bug está muerto. No tienes ninguna señal que separe arreglado de enmascarado.

Un test que falla invierte la situación. Antes de cualquier arreglo, el agente debe escribir un test que reproduzca el comportamiento reportado y ejecutarlo para verlo fallar. Esa ejecución fallida es evidencia: el bug es real, quedó capturado en forma ejecutable, y la aserción del test documenta cómo se ve el comportamiento correcto. Solo entonces empieza el arreglo — y "listo" significa que ese mismo test pasa, no que "el diff se ve razonable".

Este es el ciclo clásico test-first del test-driven development aplicado a arreglar bugs, y es el reflejo estándar en equipos con código auto-verificable: primero escribe un test que exponga el bug, y solo entonces intenta arreglarlo. Los agentes hacen que la disciplina sea casi gratis — el test te cuesta una oración de prompt en lugar de veinte minutos de tu tiempo.

El patrón de prompt

En lugar de:

users report login fails after session timeout. fix it

escribe:

users report login fails after session timeout. check the auth flow
in src/auth/, especially token refresh. write a failing test that
reproduces the issue, run it and confirm it fails, then fix the code
until that test passes. show me both test runs.

Tres piezas que cargan el peso:

PiezaQué te da
"write a failing test that reproduces the issue"Obliga a una reproducción concreta antes de cambiar código
"run it and confirm it fails"Impide que el agente escriba un test que pasa por accidente (y no prueba nada)
"show me both test runs"Revisas evidencia — una corrida roja y luego una verde — en lugar de confiar en un resumen

La fila del medio es la que más importa. Un test de reproducción que pasa a la primera significa que el agente malentendió el bug — mejor descubrirlo antes del "arreglo".

Por qué esto le queda especialmente bien a los agentes

Los agentes trabajan mejor con una verificación que puedan ejecutar: una señal que devuelve pasa o falla cierra el ciclo, así que el agente itera contra el test en lugar de detenerse cuando el código "se ve terminado". El test que falla es exactamente esa verificación — el agente arregla, ejecuta, lee el resultado y sigue hasta que está en verde. Convertiste un juicio subjetivo ("¿este parche se ve bien?") en una condición verificable por máquina.

El mismo principio aparece en las guías de todos los proveedores: dale al agente criterios de verificación y exige evidencia, no afirmaciones de éxito.

Movidas de usuario avanzado

Recursos

¿Construyendo una funcionalidad con IA? Yeda AI diseña, audita y entrega sistemas LLM de producción.

Habla con nosotros · Lee el blog · Read in English