
Una sola fuente de verdad: cómo el sitio se arma solo desde el catálogo
Teníamos los servicios cargados en la base y escritos otra vez en el sitio. Cada cambio había que hacerlo dos veces, y siempre había un lugar que quedaba viejo.
Un archivo de reglas no se escribe de una. Se escribe después de cada cosa que se rompe, y esa es exactamente la razón por la que funciona.

En la raíz de nuestro repositorio hay un archivo que todo agente lee antes de tocar nada. No es documentación: es un contrato. Y lo interesante no es lo que dice, sino cómo llegó a decirlo.
Casi ninguna de sus reglas nació de una discusión de arquitectura. Casi todas nacieron de algo que se rompió.
Un día había que subir un archivo de configuración a producción. La forma correcta era usar el script de deploy, pero era más rápido copiarlo a mano. Se ejecutó un comando con dos archivos de origen y un directorio de destino.
Lo que no se tuvo en cuenta es que la herramienta descarta la ruta de origen y copia por nombre base. El archivo de configuración de una aplicación aterrizó encima del archivo de configuración de la raíz del servidor. En producción.
Hoy esa regla ocupa un párrafo entero, con el ejemplo correcto, el incorrecto y la fecha del incidente. Es de las más largas del archivo, y es larga a propósito: quien la lea tiene que entender por qué existe, no solo qué prohíbe.
La diferencia entre una regla que se cumple y una que se ignora está en lo específica que sea.
"Escribí código limpio" no sirve. No es accionable, y cada uno entiende otra cosa.
"Prohibido el borrado físico, usá borrado lógico con status: deleted" sí sirve. Es verificable: o el registro sigue ahí o no.
Nuestro archivo tiene una sección entera que es una lista de prohibiciones, cada una en una línea, cada una con su motivo entre paréntesis cuando el motivo no es evidente. Es la sección que más se consulta.
Escribir estas reglas para agentes mejoró cómo trabajamos las personas.
Cosas que antes vivían en la cabeza de alguien ahora están escritas. Cuando entra alguien nuevo al proyecto, lee el mismo archivo que lee el agente y arranca sabiendo dónde están los cables pelados. La documentación que nunca hubiéramos escrito "para nosotros" la escribimos porque el agente la necesitaba.
Hay algo casi cómico en eso: nos ordenamos porque teníamos que explicarle a una máquina cómo no romper las cosas.
Después de bastante iteración, el criterio nos quedó así.
Va al archivo lo que no se puede deducir leyendo el código: convenciones que no son obvias, decisiones que ya se tomaron y no queremos rediscutir, y todo lo que rompió algo alguna vez.
No va al archivo lo que el código ya dice. Listar la estructura de carpetas es garantizar que en tres meses la lista esté desactualizada y el agente confíe en información falsa. Una regla desactualizada es peor que ninguna regla, porque las dos se leen con la misma confianza.
Cada tanto hacemos el ejercicio de leer el archivo completo preguntándonos, línea por línea, si sigue siendo cierta. Las que ya no lo son se borran sin nostalgia.
Un contrato con cláusulas muertas deja de ser un contrato y pasa a ser folklore.

Teníamos los servicios cargados en la base y escritos otra vez en el sitio. Cada cambio había que hacerlo dos veces, y siempre había un lugar que quedaba viejo.

Un agente que recuerda todo es un agente lento, caro y confundido. Diseñar qué se descarta resultó más difícil que diseñar qué se guarda.

Idempotencia, migraciones, borrado lógico, fallar temprano. Conceptos de hace décadas que se volvieron críticos justo cuando quien escribe el código no siempre es humano.
Contanos qué necesitás y te decimos cómo lo encararíamos. En minutos, no en semanas.
Sin compromiso. La primera charla es gratis y respondemos al toque.