Loop de pruebas (corregir, probar, corregir)
Imagínalo así: El ciclo natural: inténtalo, observa el resultado, corrige. Es lo que todo programador hace manualmente. La diferencia es que Claude completa decenas de ciclos en minutos.
El patrón más clásico: "ejecuta pytest, corrige los errores reportados, vuelve a ejecutarlo y repite hasta que todo pase". Claude lee la salida de la prueba, identifica la causa del fallo, edita el código y vuelve a ejecutarlo. En proyectos con buena cobertura de pruebas, esto es devastadoramente eficiente.
Consejo: incluye el comando de prueba específico en el prompt. "Ejecuta pytest tests/test_auth.py y corrige hasta que todas las pruebas pasen" es mucho mejor que "ejecuta las pruebas". Cuanto más específico sea el comando, menos tokens gastarás buscando qué ejecutar.
En 1 frase: loop de pruebas = ejecuta, lee el error, corrige y repite. El patrón más útil del loop mode.
Loop de lint/formato
Imagínalo así: Limpiar una casa desordenada: pasas el trapeador, ves que quedó una mancha y vuelves a pasar. Con el lint es igual: lo ejecutas, corriges y vuelves a ejecutarlo hasta que no haya advertencias.
Limpiar las advertencias de lint de una base de código es tedioso para las personas y perfecto para los loops. El prompt: "ejecuta eslint . y corrige todos los errores automáticamente. No cambies la lógica de negocio, solo el formato y los problemas de estilo. Repite hasta que no haya errores". Claude irá iterando archivo por archivo.
Ten cuidado con la autocorrección agresiva: configura el loop para que no cambie la lógica. Usa flags como --fix para lo que sea seguro y deja las advertencias sobre la lógica para una revisión manual. Un filtro útil: "corrige solo errores de tipo 'formatting' y 'style', ignora 'logic' y 'security'".
En 1 frase: lint loop = ejecuta, corrige los problemas de estilo y vuelve a ejecutar. No cambies la lógica, solo el formato.
Loop de migración
Imagínalo así: Mudarse de casa: caja por caja, habitación por habitación. No metas todo en el camión de una vez. La migración de código es igual: archivo por archivo, con validación entre cada uno.
Las migraciones de API, de versiones de dependencias o de frameworks son tareas perfectas para un loop: repetitivas, mecánicas y con un criterio de éxito claro (compila/no compila, las pruebas pasan/no pasan). El prompt ideal: "migra cada archivo de API v2 a v3 y ejecuta el type-check después de cada archivo".
La clave es migrar un archivo a la vez y validar entre cada uno. Si migras 50 archivos de una vez y algo falla, no sabrás cuál lo causó. Hacerlo uno por uno, con un commit entre cada uno, te da un rollback granular y claridad sobre qué migración introdujo el problema.
En 1 frase: migra un archivo por vez con validación entre cada uno. Commit granular = rollback fácil.
Cada tipo de ciclo puede usarse de forma independiente o combinarse en el ciclo compuesto.
Loop de datos
Imagínalo así: Tamizar oro: pasa el tamiz, observa qué quedó, ajusta el tamaño de la malla y vuelve a tamizar. Los datos sucios necesitan varias pasadas de limpieza.
Procesar datasets es iterativo por naturaleza: analizar, validar el schema, corregir inconsistencias y volver a validar. Claude puede ejecutar scripts de validación, leer los errores y ajustar los datos o el script de transformación. Es especialmente útil para CSV malformados, JSON inconsistentes o migraciones de bases de datos.
Define assertions claras: "ningún campo email puede ser null", "todos los timestamps deben estar en ISO 8601", "ninguna fila duplicada por ID". El loop ejecuta la validación, identifica las infracciones y las corrige hasta que se cumplan las assertions.
En 1 frase: loop de datos = analiza, valida, corrige y vuelve a validar. Las assertions claras son el criterio de parada.
Loop de documentación
Imagínalo así: La documentación es como pintar: si pintas la mitad de la pared, queda peor que si no pintas nada. El loop de documentación garantiza que todo sea coherente.
Generar y actualizar la documentación es una tarea que los humanos posponen eternamente. El loop ideal: "actualiza los docstrings de todas las funciones públicas en src/, valida que los ejemplos compilen y que los enlaces internos no estén rotos. Repite hasta que todo sea coherente".
Combina herramientas de validación: verificadores de enlaces, generadores de documentación (pydoc, typedoc) y ejecutores de ejemplos. Claude puede ejecutar estos validadores como criterio para detenerse: "detente cuando el verificador de enlaces devuelva cero enlaces rotos".
En 1 frase: loop de documentación = genera, valida los enlaces y ejemplos, corrige y repite. Documentación viva.
Loop compuesto
Imagínalo así: El gran final: no solo pasan las pruebas, sino que también el lint está limpio, los types son correctos Y el build funciona. Cuatro puertas de salida, todas en verde.
El loop compuesto combina varios criterios: "repite hasta que (1) pytest pase, (2) eslint devuelva cero errores, (3) tsc --noEmit pase y (4) npm run build termine correctamente". Es lo más parecido a ejecutar un pipeline de CI localmente.
El orden de los criterios importa: empieza por los más rápidos (lint) y termina por los más lentos (build). Esto ahorra tokens porque los errores rápidos se corrigen primero, sin perder tiempo ejecutando todo el build para descubrir un error de formato.
En 1 frase: loop compuesto = varios criterios combinados. Empieza por el más rápido y termina por el más lento.
# Loop de testes claude "rode pytest tests/ e corrija ate tudo passar" --allowedTools Edit,Bash # Loop de lint claude "rode eslint . --fix e corrija ate zero erros" --allowedTools Edit,Bash # Loop composto claude "corrija ate: pytest passe, eslint zero erros, tsc --noEmit passe e npm run build ok" --allowedTools Edit,Bash # Loop de migracao claude "migre cada arquivo de lodash para es-toolkit. Rode tsc apos cada arquivo." --allowedTools Edit,Bash,Read
Resumen del módulo
Siguiente módulo:
2-5 — Combinando Plan + Loop: el pipeline completo para tareas complejas.