En pocas palabras
Conecta agentes de programación con verificaciones automáticas para que detecten y corrijan sus propios errores.
Qué problema resuelve
Revisión humana consumida por fallos rutinarios que compiladores, linters o pruebas ya pueden detectar.
Cuándo utilizarlo
Flujos de programación asistida. Ejemplo: ejecutar tipos y pruebas relevantes después de cada cambio.
De la idea a la práctica
Funcionamiento, ejemplos y decisiones para pasar al siguiente nivel.
En el Radar compartido: Trial (valoración de la edición aportada).
Cómo funciona
Un sensor expone una señal accionable: código de salida, ubicación y causa del fallo. El agente usa esa evidencia para corregir y vuelve a verificar.
Ejemplo de uso
Tras modificar una API, ejecutar compilación, pruebas de contrato y un linter de arquitectura. Entregar al agente los errores concretos y exigir un resultado limpio antes de solicitar revisión.
Tipos de sensor
| Sensor | Velocidad | Qué detecta |
|---|---|---|
| Formateador | Milisegundos | Estilo (se corrige solo) |
| Compilador / type checker | Segundos | Errores de tipos, firmas, imports |
| Linter | Segundos | Patrones prohibidos, código muerto, seguridad básica |
| Pruebas unitarias afectadas | Segundos | Regresiones de comportamiento |
| Fitness functions | Segundos | Dependencias prohibidas entre capas |
| Pruebas de integración y contrato | Minutos | Compatibilidad con otros servicios |
| Escáneres de seguridad | Minutos | Secretos, dependencias vulnerables |
| Mutation testing | Minutos u horas | Pruebas que no prueban nada |
Los sensores rápidos van dentro del bucle del agente; los lentos, en CI antes de integrar.
Ejemplo: hooks en Claude Code
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write",
"hooks": [{ "type": "command", "command": "npm run --silent lint:fix" }]
}
],
"Stop": [
{
"hooks": [
{ "type": "command", "command": "./scripts/verificar-rapido.sh" }
]
}
]
}
}
#!/usr/bin/env sh
# scripts/verificar-rapido.sh: si algo falla, el agente recibe el error y continúa trabajando
npm run --silent typecheck && npm test --silent -- --changed || {
echo "Hay errores de tipos o pruebas fallidas; corrígelos antes de terminar." >&2
exit 2
}
En Claude Code, un hook que termina con código 2 bloquea la acción y entrega el mensaje de error al agente. Otros agentes ofrecen mecanismos equivalentes (reglas, comandos de verificación en las instrucciones).
Diseñar mensajes útiles para un agente
| Mensaje poco útil | Mensaje accionable |
|---|---|
Tests failed |
FAIL CalculoInteresTest.mora_30_dias: esperado 15000, obtenido 14999 (línea 42) |
Lint error |
src/pagos/api.ts:18 — no importes de 'infraestructura' desde 'dominio' (regla capas) |
| Salida de 2 000 líneas | Resumen con los primeros errores y la ruta del informe completo |
Protecciones
- Límite de iteraciones: si el agente no consigue un resultado verde en N intentos, debe detenerse y pedir ayuda.
- Impedir que «arregle» sensores: cambios en configuración de linters, umbrales o pruebas existentes requieren revisión humana.
- Registro de qué sensores se ejecutaron y su resultado en el resumen del PR.
Criterios de implementación
Priorizar controles rápidos durante la sesión y reservar los costosos para etapas posteriores. Evitar bucles ilimitados y registrar comandos y resultados para poder revisar la corrección.
Continúa en las fuentes
Documentación oficial para verificar detalles y explorar más.