Carlos Tapia
← Todas las notas

El 86% del código de mis agentes sigue ahí, y la mayor parte de la caída vino de una semana

· 3 min de lectura

Revisar si el código de un agente es bueno es lento. Un proxy barato es cuánto de ese código sigue ahí después. Medir supervivencia de líneas con git blame es una forma conocida de medir churn en cualquier repositorio, y aquí la apliqué a un repositorio de producción donde el código lo escriben agentes, los míos y los de un equipo que trabaja solo.

La supervivencia es la parte de las líneas agregadas desde una fecha de inicio (la ventana) que sigue en HEAD. El resto es churn. La ventana empieza el 26 de agosto de 2026 y solo cuentan archivos de código.

CorridaCommitsLíneas agregadasSiguen vivasSupervivencia
7-sep18325.06823.23192,7%
9-sep23533.08328.43185,9%

TABLA 1 · Mismo repositorio, mismo inicio de ventana, dos días de diferencia.

Supervivencia contra volumen, por semana

Las barras son líneas agregadas. El marcador es qué proporción sigue en HEAD.

Líneas agregadas Siguen vivas
Semana del 24-ago — 4.933 · 95% Semana del 24-ago 4.933 95% Semana del 31-ago — 22.725 · 82% Semana del 31-ago 22.725 82% Semana del 7-sep — 5.425 · 95% Semana del 7-sep 5.425 95%

FIG. 1 · La semana pesada es la de peor supervivencia, con una semana liviana al 95% a cada lado. Es una sola observación.

Parte de esa caída es edad: la segunda corrida mide las mismas líneas dos días más viejas, y una línea borrada no vuelve. Con dos corridas no puedo decir cuánta. Por semana:

Semana delLíneas agregadasSiguen vivasSupervivencia
24-ago4.9334.70395%
31-ago22.72518.58682%
7-sep5.4255.14295%

TABLA 2 · Corrida del 9-sep. El 7-sep, la semana del 31-ago seguía en 92%.

La semana con cuatro veces el volumen tiene la peor supervivencia. Entre las dos corridas se reescribieron o borraron 2.815 líneas más, y 2.504 son de esa semana.

El peor commit

La mayoría de esas 2.504 líneas son de un solo commit: agregó 2.408 líneas y ninguna sigue ahí. Juntaba varios cambios grandes a la vez (soporte multi-tenant, una integración con un sistema externo y endurecimiento de seguridad). Ni el registro de commits, ni los tests, ni la revisión de código lo marcaron. Solo lo vi midiendo supervivencia, después. En el promedio desaparece.

Cómo se midió. Supervivencia a nivel de línea sobre un repositorio de producción: cada línea de código agregada por un commit de la ventana, contrastada con git blame en HEAD para ver si sigue ahí. Solo archivos de código. 235 commits, 331 archivos. La ventana empieza el 2026-08-26. Dos corridas, 2026-09-07 y 2026-09-09, sobre el mismo inicio de ventana.

Relacionadas