Claude escribe código, un test falla, y te devuelve el error para que lo resuelvas tú.
Un agente auto-corrector no hace eso: lee su propio fallo, repara la causa y vuelve a ejecutar hasta que todo esté en verde.
Configúralo una vez y dejas de ser el depurador no remunerado de tu agente.
Aquí tienes la configuración completa que necesitas 👇
Antes de sumergirnos, comparto notas diarias sobre IA y vibe coding en mi canal de Telegram: https://t.me/zodchixquant🧠

Por qué una sola pasada no es suficiente
Por defecto, Claude ejecuta una tarea una vez. Un test falla, reporta el error y espera. Tú lo lees, lo pegas de nuevo, le dices que lo intente otra vez. Tú estás haciendo la depuración, él solo está escribiendo.
Un agente auto-corrector invierte eso. Lee su propio fallo, determina qué tipo de error es, repara la causa y vuelve a ejecutar, como piensa un depurador. Tú intervienes solo cuando pasa o se queda realmente atascado.
Archivo 1: el comando de corrección
Este es el bucle que realmente ejecutas. Colócalo en .claude/commands/fix.md:
1---2description: Ejecutar una tarea y auto-corregir hasta que todos los tests pasen3argument-hint: <tarea>4allowed-tools: Read, Write, Edit, Glob, Grep, Bash5model: sonnet6---78Tarea: $ARGUMENTS910Bucle:111. Implementa la tarea.122. Ejecuta la suite de tests: `npm test` (o pytest, cargo test).133. Si todos los tests pasan: detente y muéstrame el resultado.144. Si un test falla: clasifica el tipo de error, nombra la causa raíz,15 repara esa causa y luego vuelve al paso 2.165. Límite de 5 intentos. Anuncia el número de intento en cada ronda.1718El orden de clasificar y luego corregir es todo el sentido. Diagnóstico antes19de editar, cada ronda. Nunca debilites un test para que pase, repara el código.
Escribes /fix añadir paginación al endpoint de usuarios y el agente escribe, prueba y se repara a sí mismo hasta que la suite está en verde.
Archivo 2: el hook de verificación automática
El comando funciona bajo demanda. El hook hace que la auto-verificación sea automática en cada edición.
Añade a .claude/settings.json:
1{2 "hooks": {3 "PostToolUse": [4 {5 "matcher": "Write|Edit",6 "hooks": [7 { "type": "command", "command": "npm test --silent 2>&1 | tail -5 || echo 'TESTS FALLANDO, repara antes de continuar'" }8 ]9 }10 ]11 }12}
Ahora, cada vez que Claude edita un archivo, los tests se ejecutan y el resultado vuelve a su vista.
Un fallo aparece de inmediato, así que el agente lo repara en el mismo flujo en lugar de seguir adelante y acumular más cambios sobre código roto.
Archivo 3: enséñale a leer el error
Este es el archivo que separa a un verdadero depurador de un adivinador. La mayoría de los agentes ven "test falló" y empiezan a editar al azar.
Uno bueno primero lee el tipo de error, porque cada tipo apunta a una causa diferente. Pon esto en CLAUDE.md:
1## Cómo leer un fallo antes de repararlo23Nombra siempre primero el tipo de error. Cada uno significa algo diferente:45- Error de aserción (se esperaba X, se obtuvo Y): la lógica está mal.6 Rastrea hacia atrás desde la aserción hasta donde se construyó el valor.7 Repara el cálculo, no la expectativa del test.89- Error de tipo / undefined is not a function: un desajuste de forma.10 Algo es null, o el tipo incorrecto llegó a esta línea.11 Encuentra dónde se origina ese valor, protégelo o corrígelo allí.1213- Timeout / cuelgue: falta un await, o una promesa nunca se resuelve.14 Busca llamadas asíncronas sin await, o una condición que nunca cambia.1516- Import / módulo no encontrado: un problema de ruta o dependencia, no de lógica.17 Arregla la ruta o instala, no toques el código que lo usa.1819- Inestable (a veces pasa): estado compartido o temporización, nunca aleatorio.20 Busca tests dependientes del orden o tiempo/red sin simular.2122Regla: enuncia el tipo y la causa raíz en una oración en voz alta23antes de editar. Si no puedes nombrar la causa, estás adivinando. Para.
Un error de tipo y un fallo de aserción requieren movimientos opuestos: uno es un problema de forma de datos en origen, el otro es lógica incorrecta en el lugar. Clasifica primero y el agente repara lo correcto.
Sáltatelo y editará al azar hasta que el rojo desaparezca, que es como consigues una suite verde que está silenciosamente rota.
Lo que realmente ves
Escribes una línea:
1/fix el formateador de fechas devuelve zonas horarias incorrectas
Y luego trabaja solo:
1Intento 12 ejecutó tests → FALLÓ3 tipo: aserción (se esperaba 5, se obtuvo 11)4 causa: el tamaño de página no se aplicó a la consulta5 reparé la cláusula LIMIT67Intento 28 ejecutó tests → FALLÓ9 tipo: error de tipo (offset is undefined)10 causa: la página 1 no envía offset, valor por defecto incorrecto11 añadí offset = (página-1)*tamaño1213Intento 314 ejecutó tests → TODO VERDE (7/7)1516Reparado en 3 intentos. ¿Reviso el diff?
Nunca pegaste un error de nuevo. Leyó sus propios fallos, nombró cada causa y reparó hasta que la suite pasó.
Errores comunes
Reparar antes de diagnosticar. El más grande. Un agente que edita antes de nombrar el tipo de error está adivinando, y adivinar vuelve el rojo verde por suerte, no por reparar. La regla de clasificar primero es toda la defensa.
Tratar todos los errores igual. Un timeout y un fallo de aserción no tienen nada en común, pero un agente sin la guía de tipos de error trata ambos como "algo está mal" y edita la línea más cercana. La mitad de tus correcciones caen en el archivo equivocado.
Parchear el síntoma. Envolver una llamada que lanza una excepción en try/catch hace que el test pase y deja el error. El protocolo prohíbe silenciar errores por esta misma razón.
Dejarlo debilitar tests. Un agente al que se le permite editar tests eventualmente eliminará el que falla para llegar al verde. Una suite que pasa pero no prueba nada es el peor resultado, así que esta regla es no negociable.
La configuración en 5 minutos
2 minutos: crea .claude/commands/fix.md.
1 minuto: añade el hook PostToolUse a settings.json.
1 minuto: añade el protocolo de auto-depuración a CLAUDE.md.
1 minuto: ejecuta /fix sobre un error conocido y mira cómo trabaja la causa, intento tras intento.
Dejas de ser el humano que retransmite errores. El agente lee su propio rojo y repara hasta que está en verde. No se volvió más inteligente, simplemente dejó de devolverte el problema.
¡Gracias por leer!
Comparto notas diarias sobre IA, finanzas y vibe coding en mi canal de Telegram: https://t.me/zodchixquant






