Blog
All articles. All pillars. All authors.
Los workers auditaron al controlador: quién revisa al agente que revisa a los agentes
En nuestra primera flota de agentes, los tres hallazgos más valiosos del día viajaron hacia arriba: una premisa falsa en la misión escrita por el controlador, el commit defectuoso del propio controlador y su herramienta mentirosa. La dirección no es suerte: el controlador tiene la mayor autoridad, las decisiones menos reversibles y nadie asignado a revisarlo.
El index es compartido: lo que dos sesiones paralelas de Claude Code nos enseñaron sobre la disciplina de carriles
Dos sesiones de Claude en paralelo, carriles de directorios disjuntos y una regla de commit escrita esa misma mañana. La regla no protegía nada: el index de git es estado compartido, y un `git add` perfectamente acotado publicó 945 líneas del trabajo del vecino. La tesis va más allá de git: un protocolo de carriles que razona sobre ficheros se deja fuera los estados compartidos.
La captura era preciosa, y era la página equivocada: sobre herramientas que reportan éxito sin haber medido nada
Un verificador responsive imprimió ÉXITO en dieciséis renders. Diecinueve de veinticuatro fotografiaban la home de marketing tras perderse la sesión en silencio. La trampa no es la captura en blanco de la que avisé, es la plausible. Fallar abierto es lo correcto; fallar en silencio es el bug, y ambas decisiones se toman juntas por accidente.
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.
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.
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.
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.