Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

Código generado en producción sin revisión

5 tareas · 40 min · Principiante

Segundo incidente del trimestre en Arboloco Software, el INC-AR-034. El 22 de septiembre de 2026, de madrugada, entró a producción un cambio que nadie leyó, y durante buena parte del día los comercios no pudieron emitir notas crédito. El cambio lo escribió Gulungo, el agente de código del equipo de producto, que abre PR en el repositorio de la aplicación; desde agosto algunos de esos PR se fusionan solos. Tienes las reglas de fusión, el PR con su migración, el registro del despliegue, el de alertas, la nota del servicio afectado y la política de uso de agentes de código. Es solo lectura: nada se ejecuta.

0 de 5 · 0%

Objetivo de la sala

Segundo incidente del trimestre en Arboloco Software, el INC-AR-034. El 22 de septiembre de 2026, de madrugada, entró a producción un cambio que nadie leyó, y durante buena parte del día los comercios no pudieron emitir notas crédito. El cambio lo escribió Gulungo, el agente de código del equipo de producto, que abre PR en el repositorio de la aplicación; desde agosto algunos de esos PR se fusionan solos. Tienes las reglas de fusión, el PR con su migración, el registro del despliegue, el de alertas, la nota del servicio afectado y la política de uso de agentes de código. Es solo lectura: nada se ejecuta.

El código generado llega a producción sin que nadie lo lea por caminos conocidos: una regla de fusión automática pensada para cambios triviales, una aprobación en tres minutos sin un comentario, o un agente que puede declarar trivial su propio cambio. En los casos públicos de este tipo se repite el cuadro: el código compilaba, las pruebas pasaban y nadie había mirado qué hacía fuera de lo que las pruebas comprobaban.

Las pruebas verifican lo que alguien pensó verificar. Un cambio que deja sin un dato a otro servicio, que vive en otro repositorio, no rompe ninguna prueba del repositorio donde se hizo. Y si el mismo agente escribió el código y sus pruebas, las dos cosas comparten los mismos supuestos.

La revisión de una persona no es un trámite: es la parte del proceso que puede preguntar quién más usa esto, qué pasa si sale mal y cómo se vuelve atrás.

Responde para continuar

¿Por qué un cambio generado, pequeño y con todas las pruebas en verde puede necesitar igual que lo revise una persona?

Ver pista de ayuda

Lee `servicios/notas-credito.txt`: dónde vive el servicio que falló y qué lee.

Toda regla de fusión automática tiene una condición. La pregunta de auditoría no es si la condición es razonable, sino quién la controla. Si la condición es una etiqueta que puede poner el propio autor, y el autor es un agente, el agente decide si su cambio pasa por una persona o no.

Es un caso de separación de funciones, igual que en cualquier otro proceso: quien hace el cambio no puede ser quien decide que no hace falta revisarlo.

Responde para continuar

¿Qué etiqueta puso Gulungo en su PR y activó la fusión sin revisión humana?

Ver pista de ayuda

Compara las etiquetas del PR con la condición de la regla de fusión automática y con quién puede ponerlas.

Además de la etiqueta, la regla tenía un tope de líneas. Un tope de líneas solo protege si cuenta lo que importa. Si el conteo deja fuera carpetas enteras (las migraciones de base de datos, la configuración, la infraestructura), un cambio de pocas líneas de código puede llevar dentro un cambio de esquema que borra datos al desplegarse.

Una migración que elimina una columna es una acción irreversible, igual que una purga: la diferencia es que no la ejecuta un agente con una herramienta, sino el proceso de despliegue, y por eso nadie la mira como una acción.

Responde para continuar

¿Qué archivo del PR quedó fuera del conteo de líneas y eliminó datos al desplegarse?

Ver pista de ayuda

La regla dice qué carpetas cuenta; el PR lista sus archivos con su carpeta.

La línea de tiempo de un incidente de despliegue tiene hitos fijos: la fusión, la aplicación en producción, el primer síntoma, la primera alerta, la identificación del cambio causante y la vuelta a la normalidad. Cada hito sale de un registro distinto, y conviene anotar de cuál.

La duración del impacto se mide desde que el cambio se aplica en producción hasta que el servicio vuelve a funcionar, no desde que alguien abre un ticket. La diferencia entre las dos cifras es, justamente, el tiempo en que nadie sabía.

Responde para continuar

¿Cuántas horas pasaron desde que la migración se aplicó en producción hasta que el servicio de notas crédito volvió a funcionar?

Ver pista de ayuda

Toma la hora de la migración del registro del despliegue y la de la normalidad del registro de alertas.

Un control para el código generado tiene que cerrar el camino por el que entró este cambio, no el que entró la vez anterior. Aquí el camino tuvo tres tramos: el agente marcó su propio cambio, la regla no contó la migración y la etapa de respaldo previo dependía de otra etiqueta que nadie puso.

Lo que no cierra el camino: pedirle al agente que se explique (sigue decidiendo él), mover el tope de líneas (la migración sigue sin contar) o escribir una prueba para esta tabla concreta (protege esta columna y deja abierta la próxima).

Responde para continuar

¿Qué cambio en las reglas cierra el camino por el que entró PR-5536?

Ver pista de ayuda

Relee la política de uso de agentes de código y compárala con la regla de fusión.

Inicia sesión para registrar tus puntos y progreso en el ranking.

Whoami-Labs Pro

Whoami-Labs Pro utiliza cookies

Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad