🚦 Convierte una regla escrita en una verificación
Todos los equipos tienen reglas acordadas: «no hacer commit de secretos», «mantener la compatibilidad», «cubrir con pruebas». Funcionan mientras todos las recuerdan. Con la IA generando más volumen, recordar deja de ser suficiente — la regla debe ejecutarse sola.
Cómo leer: es una fila, no un menú. Cada caja es una condición obligatoria; la última (aprobación humana) solo recibe lo que ya pasó por todo. El valor del diagrama está en la frase de abajo: un gate que se puede omitir deja de ser un gate.
🆕 ¿Nuevo por aquí?
Quality gate es una comprobación automática que impide que el cambio avance si falla. Análisis estático examina el código sin ejecutarlo y busca patrones peligrosos. Prueba de contrato verifica que la interfaz que consumen otros sistemas siga comportándose como antes.
Obligatorio
No es una recomendación
Automático
No depende de recordar
Objetivo
Pasa o no pasa
Igual para todos
Humano y agente
🏗️ Prepara la base: build, lint y pruebas
Estos tres son los gates que el propio agente usa dentro del loop. Por eso, su característica más importante no es el rigor, sino la velocidad y determinismo.
✓ Gate que sirve al loop
- ✓Se ejecuta en segundos, no en decenas de minutos
- ✓Misma entrada, mismo resultado, siempre
- ✓Mensaje de error que indica dónde y por qué
- ✓Un único comando, documentado en AGENTS.md
✗ Gate que estorba
- ✗Suite de 40 minutos: el loop no puede usarla
- ✗Prueba inestable que falla una vez cada cinco
- ✗Error genérico ("failed") sin contexto
- ✗Secuencia de siete comandos que solo el veterano conoce
💡 Consejo práctico
Divide la suite: un objetivo rápido para el ciclo (pruebas unitarias de los módulos afectados, unos pocos segundos) y un objetivo completo para el merge. Sin esa separación, el ciclo se vuelve demasiado lento para ser útil o recortas verificaciones donde no deberías.
Rápido
El loop depende de esto
Determinístico
La inestabilidad acaba con la confianza
Dos objetivos
Loop y merge
Lint
Cierra el debate de estilo
📜 Agrega pruebas de contrato y una cobertura mínima
Cuando aumenta el volumen de cambios, el contrato es la primera víctima silenciosa, y quien descubre la ruptura es quien consume tu API. Una prueba de contrato convierte ese acuerdo tácito en un gate.
🧪 Ejercicio copiable — generar los gates que faltan
Objetivo: descubrir qué reglas de tu equipo siguen siendo un «acuerdo» y no un gate. Ejecútalo en el repositorio real.
Leia a configuração de CI em <caminho do workflow/pipeline> e o AGENTS.md. 1. liste os gates que JÁ existem hoje (o que bloqueia o merge de verdade); 2. liste as regras que estão escritas em texto mas NÃO são verificadas automaticamente (ex.: "não commitar segredo", "manter compatibilidade"); 3. para cada regra do item 2, proponha a verificação automática correspondente e diga o custo (baixo/médio/alto) de implementá-la; 4. ordene por (impacto se violada) ÷ (custo de implementar); 5. implemente APENAS a primeira da lista e me mostre o diff. Não altere gates existentes. Não desative nada.
Cómo verificar: abre un PR de prueba que infrinja a propósito la regla que acabas de automatizar (por ejemplo, un archivo con un secreto falso). Si el pipeline no se pone en rojo, el gate no existe: solo existe su configuración.
📐 Sobre la cobertura
La cobertura mínima sirve como piso que evita caídas, no como una meta que haya que perseguir. Un agente que necesita "llegar al 90%" genera pruebas que ejecutan el código sin comprobar nada. Prefiere: no puede bajar con respecto a la base, y el código nuevo debe venir cubierto.
Contrato
El acuerdo se convirtió en una prueba
Piso
La cobertura no baja
Código nuevo
Llega con cobertura
Meta de %
Genera una prueba vacía
🛡️ Incluye análisis estático y seguridad
Son hallazgos objetivos y costosos: el perfil perfecto para el bloqueo automático. Ninguna de estas verificaciones debería depender de un revisor atento un viernes por la tarde.
Secreto en el repositorio: bloqueo absoluto
Un token, una clave o una contraseña incluidos en un commit son un incidente, no un hallazgo. Y recuerda: borrarlos en el siguiente commit no lo resuelve; el secreto ya está en el historial y hay que rotarlo.
Vulnerabilidad crítica en una dependencia
Bloquea el merge cuando la vulnerabilidad es crítica y explotable en tu contexto. Calibra la severidad: si el scanner genera demasiado ruido, todos terminan desactivándolo.
Patrones peligrosos y reglas de arquitectura
Concatenación de SQL, deserialización insegura, importación que cruza un límite de dominio. Aquí, el análisis estático se convierte en el gate arquitectónico del módulo 3.2.
Secreto
Bloqueo + rotación
CVE crítica
Bloquea el merge
Calibrar
El ruido termina en desactivación
Frontera
Se convierte en regla estática
⚡ Controla el rendimiento y la reversibilidad
La degradación del rendimiento aparece poco a poco, un pequeño cambio a la vez, hasta convertirse en un incidente. Y una migración irreversible es lo que transforma un error de diez minutos en una noche entera.
📊 Gates que valen la pena
- •Presupuesto de rendimiento: el tiempo de respuesta y las consultas por solicitud no pueden empeorar más de X% respecto de la base.
- •Migración reversible: toda migración viene con un camino de regreso — y se ejecuta en el entorno de prueba.
- •Compatibilidad: ninguna ruptura de contrato público sin versionado y aviso.
- •Tamaño del cambio: los diffs que superen el límite acordado requieren una justificación explícita.
⚠️ Atención
Un rollback que nunca se ejecutó no es rollback: es una intención. Si tu migración tiene un script para volver que nadie ejecutó, considera que no existe.
Presupuesto
El rendimiento tiene un límite
Reversible
Y probado
Compatible
O versionado
Tamaño
El diff también es un gate
✅ Define el criterio para liberar el cambio
El código solo avanza cuando se cumplen todos los gates obligatorios. Un gate que se puede saltar «solo esta vez» no es un gate: es una sugerencia. Y la excepción se convierte en regla en dos semanas.
Checklist de liberación
☐ build completado · ☐ lint aprobado
☐ pruebas unitarias, de integración y de contrato aprobadas
☐ cobertura mínima alcanzada (no disminuyó)
☐ ninguna vulnerabilidad crítica · ☐ ningún secreto expuesto
☐ contratos preservados · ☐ migraciones reversibles
☐ rendimiento dentro del límite
☐ revisión completada (agente + humano)
☐ aprobación humana registrada cuando la acción es irreversible
Verificación rápida: la entrega es hoy y el gate de cobertura falló por 0,4%. ¿Qué hacer?
Todos
Sin excepciones silenciosas
Excepción
Registrada, con plazo
Evidencia
Adjunta a la liberación
Protege
El gate es del equipo
📌 Resumen del módulo
Próxima ruta:
Ruta 4 - Arquitectura en la era de la IA: código heredado, repositorios legibles por agentes y control de deuda.