Hard Compiler & Linter Gates
La práctica de revertir o bloquear inmediatamente los cambios del agente de IA si el compilador (tsc, rustc) o un linter rápido (Biome, Ruff) devuelven un código de salida no nulo.
1. Visión general del concepto y problema sistémico
Los modelos de IA tienden a escribir código que visualmente parece impecable, pero falla al intentar compilarse. Si un desarrollador acepta un diff sin una verificación automática estricta:
- Se acumulan desajustes de tipos (
Type Mismatches) en el proyecto. - Se importan módulos que fueron eliminados hace tres meses.
- Se rompen acuerdos sobre la limpieza del código (Dead Code, variables no utilizadas, reglas de formato contradictorias).
Deterministic Linter Gates transforman al linter y al compilador en un censor implacable. No se permite que el agente deje su código en el repositorio hasta que el exit_code == 0 sea confirmado por el sistema de verificación.
2. Taxonomía arquitectónica y modelo mental
┌─────────────────────────────────────────────────────────────┐
│ DETERMINISTIC GATE PIPELINE │
├─────────────────────────────────────────────────────────────┤
│ AGENT PROPOSES PATCH │
│ • Writes code directly or via unified diff │
├─────────────────────────────────────────────────────────────┤
│ │ │
│ ▼ TRIGGER HARNESS │
│ 1. Format & Lint: `biome check --write` │
│ 2. Strict Types: `tsc --noEmit --strict` │
│ 3. Security Audit: `pnpm audit --audit-level=high` │
├─────────────────────────────────────────────────────────────┤
│ │ │
│ ┌────────┴────────┐ │
│ ▼ ▼ │
│ [ EXIT CODE 0 ] [ EXIT CODE != 0 ] │
│ │ │ │
│ ▼ ▼ │
│ COMMIT & PROCEED AUTOMATIC GIT ROLLBACK │
│ & FEED ERROR BACK TO AGENT │
└─────────────────────────────────────────────────────────────┘
3. Pipeline técnico y mecánica interna
01. Prohibición de any y supresión de errores
En la configuración de Biome / ESLint se activa la regla estricta:
{
"rules": {
"suspicious": { "noExplicitAny": "error" },
"correctness": { "noUnusedVariables": "error" }
}
}
Si el agente intenta usar any para eludir rápidamente un error de tipado, el gate rechaza inmediatamente el cambio con un requerimiento claro: "Especifica un discriminated union en lugar de any".
02. Protección contra rutas de importación rotas
El gate ejecuta una verificación de resolución de módulos. Si el modelo alucina y llama a import { helper } from '@/lib/helpers', que no existe en el sistema de archivos, el compilador lo detecta en 40 milisegundos, evitando que el código llegue al commit.
4. Escenarios prácticos de ingeniería en producción
01. Prohibición de any y supresión de errores
En la configuración de Biome / ESLint se activa la regla estricta:
{
"rules": {
"suspicious": { "noExplicitAny": "error" },
"correctness": { "noUnusedVariables": "error" }
}
}
Si el agente intenta usar any para eludir rápidamente un error de tipado, el gate rechaza inmediatamente el cambio con un requerimiento claro: "Especifica un discriminated union en lugar de any".
02. Protección contra rutas de importación rotas
El gate ejecuta una verificación de resolución de módulos. Si el modelo alucina y llama a import { helper } from '@/lib/helpers', que no existe en el sistema de archivos, el compilador lo detecta en 40 milisegundos, evitando que el código llegue al commit.
5. Errores comunes, trampas y seguridad
- Bucle de retroalimentación lento (Slow Feedback Loop): Si la verificación toma 45 segundos, el agente trabajará extremadamente lento. Ejecuta la verificación solo en archivos modificados (
tsc --buildostaged-files check) en lugar de recompilar todo el monorepo. - Ciclo de auto-sabotaje: Si el linter exige un formato y el prompt del sistema del agente instruye a escribir de otra manera, el agente y el linter lucharán eternamente. Las configuraciones de formato deben tomarse exclusivamente de los archivos de configuración del proyecto (
biome.json,.prettierrc).
FAQ: Hard Compiler & Linter Gates
Términos relacionados
Verification Discipline (Disciplina de Verificación del Código Generado)
Principio ingenieril fundamental que establece que cualquier resultado de generación de inteligencia artificial se considera una hipótesis no verificada que requiere confirmación empírica obligatoria antes de su aceptación.
Código Autocurativo y Bucles de Ejecución
Un ciclo de ingeniería autónomo en el que un agente de IA modifica el código, analiza la retroalimentación del compilador y los registros de ejecución, e iterativamente corrige sus propios errores hasta alcanzar un 100% de funcionalidad.
Reglas de Agente (.cursorrules / CLAUDE.md / AGENTS.md)
Archivos legibles por máquina de regulaciones arquitectónicas y restricciones en el repositorio, que se montan automáticamente en el contexto del sistema de los agentes de IA para prevenir la degradación de la base de código.
Deuda Técnica de IA
Acumulación exponencial de entropía arquitectónica, defectos ocultos y dependencias no mantenidas en la base de código debido a la rápida adición de código generado sin una refactorización sistemática.