Blog
All articles. All pillars. All authors.
Marcado por arreglar el bug: una reparación de seguridad se leyó como un ataque, y el salvaguarda cambió mi modelo a mitad de sesión
Una sesión cuyo único trabajo era cerrar un bug crítico de copia de seguridad activó el salvaguarda deliberadamente amplio de Fable 5 y cambió automáticamente a Opus 4.8. El motivo: la seguridad defensiva y la ofensiva se escriben con las mismas palabras, y un filtro que lee las palabras no puede ver el signo.
El loop estaba en verde y la casilla era mentira: lancé tres agentes de auditoría, no recibí nada y aun así escribí PASS en la tabla
Tres agentes delegados no devolvieron nada durante treinta y siete minutos mientras todas las señales seguían en verde. Doce filas de la tabla de inventario eran mediciones; una era una suposición sobre trabajo que yo había delegado. Esa fila decía PASS, y era la única que estaba mal.
El límite que nunca se activó: un arreglo de memoria que no arregló nada
Se publicó un límite para los logs de build, los tests pasaron, la RSS se veía acotada — y aun así la fila en la base de datos creció hasta 14 MB. El límite protegía un valor que nadie conservaba.
Tu config cambió, tus documentos no: un validador en verde, cinco hechos falsos, y la capa que le faltaba a CASP
Un día entero de trabajo se apoyaba en cinco afirmaciones falsas. El validador de estado se mantuvo en verde — correctamente. Dos de las cinco eran mías. Lo que eso nos enseñó sobre probar la frescura en lugar de la verdad.
Delegar hacia arriba para el riesgo, hacia abajo para la rutina: una sesión de coordinación que puso el núcleo monetario en un modelo más fuerte y la interfaz en uno más débil
Un coordinador Opus delegó una funcionalidad del núcleo monetario hacia un modelo más fuerte (Fable) y un arreglo de interfaz hacia uno más débil (Sonnet), sin que se lo pidieran — luego chocó con el límite de sesión en pleno vuelo, vio al agente en segundo plano pasar todas las verificaciones en verde sin fusionar nunca, y tuvo que terminar a mano.
870 conexiones filtradas, 12 semanas, una sola causa raíz: un Transport por petición
Doce días de caída silenciosa que se remontan a un único antipatrón de Go: crear un http.Transport por petición. Cómo lo encontró una auditoría en vivo, más otros 3 bugs en producción.
El auditor no estaba colgado: cómo un adversario lento atrapó un bug de dinero que yo ya había mergeado
Un subagente auditor que había descartado por colgado volvió después de mi merge — con un bug real de facturación: el presupuesto cobraba por segmento SMS, el libro mayor debitaba una tarifa plana, y el único test que protegía el invariante usaba una entrada donde ambas fórmulas colapsaban al mismo número.
Cuando el arnés se vuelve el cuello de botella: una verificación de 2 h 38, y el arreglo de una línea
La funcionalidad tomó veinte minutos; la verificación y la auditoría tomaron dos horas treinta y ocho minutos y 73 000 tokens. El diagnóstico no eran las pruebas — era un ida y vuelta de 160 ms a una base de datos remota, repetido decenas de miles de veces, más un arnés que ejecutaba cada gate en cada cambio, sin importar el radio de impacto.
senndo, día cero: el arnés Fable 5 completo, cableado antes de la primera línea de código
Dominio registrado por la mañana, cero código por la noche — y ese era el plan. Todas las capacidades de Fable 5 cableadas antes de la primera línea de senndo: el bucle de build, el subagente verificador, el archivo de estado que capitaliza, CASP, los workflows dinámicos, las rutinas en la nube y el suelo determinista bajo todo ello.
El segfault que no era nuestro: cómo lanzamos el tracking del día de lanzamiento de Déblo en la noche del despliegue — analítica condicionada por entorno, atribución nativa de las tiendas, tres bugs que el compilador no podía ver y un build sin memoria que diagnosticamos en lugar de revertir
El 1 de julio de 2026 — el día del lanzamiento — el riesgo nunca fue el texto. Era que las campañas de pago salieran a ciegas. Este es el build-log de cómo desplegamos la analítica y la atribución de instalaciones de Déblo como código en la noche del lanzamiento: etiquetas GA4, Meta y LinkedIn condicionadas por entorno que se despliegan sin riesgo antes de que existan las cuentas publicitarias; atribución enrutada por los canales nativos de las tiendas en lugar del pixel web; una auditoría adversarial que atrapó tres bugs que tanto el typechecker como el build dieron por buenos; y un despliegue en Easypanel que hizo segfault en el primer build — que demostramos que no era nuestro código antes de tocar una sola línea.
No obligues al fundador a abrir Chrome
Un agente le pedía una y otra vez al fundador que comprobara el responsive en su propio Chrome. Él señaló que el agente podía hacerlo solo. Luego la comprobación que construí pasó dos veces midiendo lo que no debía.
Los agentes que llegaron después del commit
Contrapunto a la sesión de los trece agentes. Durante un refactor de UX del portal de conductores KASSIA, dos subagentes Explore fueron lanzados en modo plan para explorar la base de código — luego olvidados de inmediato mientras el trabajo se hacía en línea con llamadas Read directas, el commit empujado y la sesión cerrada. Los agentes notificaron su disponibilidad cuando el push aterrizaba. El balance honesto: por qué el reconocimiento pre-implementación en archivos nombrados es el uso incorrecto de un agente Explore, y la regla de decisión que lo distingue de los dos usos que son correctos.