commit&push

~/blog $ git show 2026-08-18

La IA no lo publicó. Tú sí.

· 6 min de lectura · Victor Benavides

--ai--craft

Hace un tiempo publiqué un par de features que violaban en silencio mi propia arquitectura.

Funcionaban. Pasaron review — mi review. Entidades terminaron viviendo dentro de servicios que no tenían por qué ser sus dueños, límites que había cuidado durante meses fueron pisados en unos cientos de líneas, y yo le di merge a todo. Semanas después la forma del sistema se había enturbiado lo suficiente como para que pasara dos días devolviendo esas responsabilidades a donde pertenecían.

El código lo escribió un agente de IA. ¿De quién fue el error?

Internet tiene una respuesta lista, y creo que internet se equivoca.

El agente hizo exactamente lo que le pedí

Aquí viene la parte incómoda. El agente no falló. Se le pidió agregar una funcionalidad, y la agregó — de la forma más directa disponible, que resultó ser dentro de un servicio que ya tenía la plomería lista.

La regla que rompió — cada entidad es dueña de su propio servicio; nada viaja de aventón — era real, estructural, y había gobernado todo el diseño. También vivía exclusivamente dentro de mi cabeza. No estaba en un documento. No estaba en el brief. No estaba en ningún archivo que el agente pudiera leer.

Una regla no escrita no existe. Ni para un agente, ni para alguien que acaba de entrar al equipo, ni para ti mismo dentro de seis meses. El agente no rompió mi arquitectura; reveló que mi arquitectura era, en parte, folklore.

Delegar mueve el trabajo, no la responsabilidad

En el momento en que aprobé ese pull request, el código pasó a ser mío. No "mío para arreglarlo" — mío. Mi nombre está en el merge, mi sistema carga la consecuencia, mis dos días lo pagaron.

Eso no es humildad, es simplemente cómo funciona la autoridad. Un agente ejecuta con tus credenciales, en tu repositorio, bajo tu review, hacia objetivos que tú definiste. Cuando algo malo llega a producción por ese camino, "la IA se equivocó" no es una conclusión. Es la primera línea del post-mortem, y si también es la última, lo que publicaste en realidad es una confesión de que no tenías proceso de review.

Así que la versión honesta de mi historia no es la IA cruzó mis límites. Es: aprobé código que cruzó mis límites, porque nunca escribí los límites.

Siempre le hemos echado la culpa a la herramienta

Nada de esto es nuevo. Solo consiguió un chivo expiatorio fresco.

Le echamos la culpa al compilador. Al framework. Al equipo offshore, al contractor, al practicante, al desarrollador anterior que se fue. "En mi máquina funciona" era lavado de responsabilidad mucho antes de que alguien tuviera un agente de IA. Cada generación de herramientas pasa por una fase donde absorbe la culpa de decisiones que tomaron humanos, y cada generación termina redescubriendo lo mismo: la herramienta opera dentro de tu sistema de gates, o dentro de tu falta de uno.

Lo genuinamente nuevo es solo la velocidad. Una herramienta que produce más código por hora también produce más consecuencias por hora, lo que significa que un proceso de review débil queda expuesto más rápido que antes. Eso se siente como si la herramienta causara problemas. Es la herramienta revelándolos.

A los dos bandos ruidosos les faltan recibos

Hay una simetría que vale la pena notar.

Un bando publica que ahora son 10x, 100x, imparables — extrapolando desde un demo que funcionó. El otro bando publica que todo se está derrumbando — extrapolando desde un rewrite que se atrasó, un proyecto que murió, un equipo que tuvo que intervenir y hacer más review.

Aquí está el asunto: los atrasos, el rework y la intervención humana no son evidencia de fracaso. Son una descripción del software. Los proyectos siempre se atrasaron. Los rewrites siempre tomaron más de lo prometido. Los reviewers siempre tuvieron que devolver cosas. Juzgar a la IA contra una fantasía de entrega determinista, a la primera y sin rework es juzgarla contra un estándar que ningún equipo humano ha cumplido jamás.

El software no son bloques de Lego que encajan en una forma predeterminada. Es un organismo que crece. Cambia a medida que se encuentra con el mundo, y ese cambio no es la enfermedad — es el crecimiento. Mi refactor de dos días no fue prueba de que la IA no funciona. Con esa lógica, era prueba de que yo no funciono.

Los dos bandos hacen lo mismo: transmiten vibras sin libro contable. Lo que yo tengo es un libro contable — una mala aprobación que costó dos días, un post duplicado que tuve que borrar, y un conjunto de guardas que existen gracias a ambos.

La versión pequeña y rápida

Esa segunda vale la pena contarla, porque el ciclo fue más corto.

Mientras construía la automatización que publica este blog, mi pipeline publicó el mismo artículo dos veces en LinkedIn. La causa fue mía otra vez: reorganizar archivos hizo que cada post existente pareciera nuevo para la lógica de detección, así que volvió a anunciar uno. Borré el duplicado a mano, agregué dos guardas independientes, y las verifiqué repitiendo el rango exacto de commits que lo había roto.

La misma forma que la historia de arquitectura, un día en lugar de dos semanas. Algo automatizado hizo precisamente lo que se le dijo; lo que se le dijo era insuficiente; un humano fue dueño del hueco y lo cerró.

Qué cambié en realidad

No "confiar menos en el agente". Ese es el reflejo, y es la lección equivocada — la falla no fue exceso de autonomía, fue un estándar no dicho.

Escribí la regla. Cada entidad es dueña de su propio servicio; nada viaja de aventón. Ahora está explícita en las instrucciones de cada tarea, porque aprendí de la forma cara que un agente hereda tu autoridad pero no tus estándares — esos los tienes que decir en voz alta.

Y eso generaliza más allá de la IA. Si una regla importa y vive solo en tu cabeza, tu equipo está a un onboarding de distancia de los mismos dos días.

Átate al mástil

Alguien me lanzó hace poco el argumento de Ulises: átate al mástil antes de que tu entusiasmo te avergüence.

Me gusta la metáfora, y creo que argumenta lo contrario de para lo que suele usarse. Odiseo no se tapó los oídos — la cera fue para la tripulación. Se ató al mástil precisamente para poder escuchar a las sirenas y sobrevivirlo. La soga no era abstinencia. Era la restricción que hacía segura la experiencia.

Eso es un pull request. Eso es un build gate, y un review, y automatización que falla ruidosamente en vez de en silencio. Sogas, no tapones. El mástil no existe para que evites la cosa — existe para que puedas acercarte sin destrozar el barco.

Así que échale la culpa al agente si quieres. Pero fíjate en lo que eso admite: que tu aporte era el tipeo, y el tipeo es la parte que siempre iba a automatizarse. Los ingenieros que salgan bien parados de esto no serán los que evitaron los errores de la IA. Serán aquellos cuyos sistemas atrapan los errores, los asumen, y los convierten en dos guardas de regresión y una regla escrita. ✨

$ grep -rl --tag ~/blog