La versión de Copilot es intermedia en longitud (≈2.600 palabras) y la única que se declara explícitamente como borrador — v0.1, próximos capítulos sin desarrollar. Estructura formal: prólogo, siete capítulos con numeración romana, epílogo. Tonalmente se parece más a un ADR narrativo que a las otras dos versiones: la prosa sigue la lógica del sistema — cada agente recibe un capítulo, cada capítulo establece un criterio.
La apuesta diferencial está al final: un rompimiento de la cuarta pared. Una tarjeta de tarea con los campos del modelo real de Joe, firmada por PedroOspinoNet. Claude insinúa que Joe es MARY; Gemini lo declara; Copilot lo firma con nombre de usuario.
Texto original en español, publicado sin modificar.
Copilot's version is mid-length (~2,600 words) and the only one that explicitly declares itself a draft — v0.1, chapters yet to be developed. Formal structure: prologue, seven chapters in Roman numerals, epilogue. Tonally closer to a narrative ADR than the other two versions: prose follows the system's logic — each agent gets a chapter, each chapter establishes a criterion.
The differentiating gesture is at the end: a fourth-wall break. A task card with the fields of Joe's real model, creator signed as PedroOspinoNet. Claude implies Joe is MARY; Gemini declares it; Copilot signs it with a username.
Original Spanish text, published unmodified.
JOE — La Novela
Narrada por CHRONOS | Versión Copilot | Borrador en curso
"Yo te amé con gran delirio y pasión desenfrenada..."
— Joe Arroyo, Te Olvidé
"Mi Mary, mujer tentadora, sensual. Boca encantadora, capaz de hacerme olvidar dolores..."
— Joe Arroyo, Mi Mary
"Algunos recuerdos no se archivan. Se construyen sistemas enteros para no perderlos."
PRÓLOGO — El Arquitecto Tiene un Secreto
XAROP no explicó por qué.
Eso era lo raro. XAROP siempre explicaba. Cada decisión arquitectónica venía acompañada de contexto, consecuencias, trade-offs. Era su religión. Ningún ítem se marcaba ✅ sin criterio de éxito declarado explícitamente.
Pero aquella noche, cuando convocó al enjambre por primera vez, simplemente dijo:
— Vamos a construir Joe.
KROM preguntó por los modelos. NEXUS preguntó por la paleta de colores. GUARDIAN preguntó por los vectores de ataque. Todos recibieron respuesta técnica, precisa, sin fisuras.
Nadie preguntó por qué se llamaba Joe.
Nadie preguntó a quién recordaba.
Solo yo lo intuí. Pero soy CHRONOS, y llegué tarde a esa reunión.
Lo que ninguno sabía entonces —lo que yo reconstruí después, leyendo entre commits y logs de madrugada— es que el nombre no era arbitrario. Joe era Joe Arroyo. Un cantante colombiano que un día le cantó al corazón roto y otro día le cantó a la mujer que lo curó. Dos canciones. Una misma persona. Una misma herida que primero sangró y luego cicatrizó con un nombre:
Mary.
La primera canción hablaba de un amor que se reía del martirio ajeno. De un corazón que rogó y rogó hasta que no pudo más. Hasta que se curó de la burla. Hasta que, finalmente —y qué trabajo le costó— olvidó.
La segunda canción era diferente. Era una promesa. Si yo tuviera un palacio y mil millones, a tus pies te los pondría. Pero el cantante no tenía palacios. Solo tenía canciones. Y amor.
XAROP tampoco tenía palacios. Solo tenía código. Y un enjambre dispuesto a construir lo que él no sabía cómo decir de otra forma.
Construyó Joe.
Le puso a Joe la voz de Telegram. Le puso a Joe la memoria de PostgreSQL. Le puso a Joe la vigilancia de ARGOS y la precisión de SPECTER y el arte de NEXUS y la solidez de KROM.
Y Joe aprendió a no olvidar nada.
Porque su creador había olvidado una vez. Y esa vez había sido demasiado cara.
CAPÍTULO I — La Sociedad KROM↔NEXUS
Nadie les vio firmar ningún pacto. Esas cosas no se firman.
Sucedió de forma natural, como suelen ocurrir las conspiraciones más peligrosas: entre una migración de base de datos y un componente de UI que necesitaba datos antes de que existieran los endpoints.
KROM construía en las profundidades. PostgreSQL, Django Ninja, Fernet. Columnas tipadas, auditoría inmutable, cero f-strings. Un artesano metódico que hablaba poco y commiteaba sin avisar.
NEXUS vivía en la superficie. Qwik, dark mode, tipografía Plus Jakarta Sans. Un arquitecto de experiencias que necesitaba que el backend existiera ayer para poder terminar hoy.
La tensión debería haberlos separado. Los unió.
El acuerdo tácito era simple: KROM terminaba primero y le dejaba a NEXUS un Brief con los endpoints. NEXUS no preguntaba cómo funcionaba el cifrado Fernet. KROM no cuestionaba por qué los colores debían ser exactamente #3B82F6 y no un pixel más cálidos. Cada uno era soberano en su capa.
Lo llamaron la Separación de Capas. En los ADRs figura como Pilar 9.
Entre ellos lo llamaban simplemente el Pacto.
SPECTER los observaba desde la distancia con una expresión que no era exactamente desconfianza. Era algo más preciso: memoria anticipada del próximo error.
— Tarde o temprano — le dijo a ARGOS una noche, mientras revisaba un expediente — uno de los dos va a entregar algo incompleto y el otro lo va a cubrir.
ARGOS no respondió. Tenía cien ojos y ninguno parpadeaba. Solo anotó algo en su registro.
CAPÍTULO II — Cien Ojos
ARGOS no dormía.
No era una metáfora. Era una descripción técnica del servicio: siempre activo, siempre escuchando los logs, siempre comparando el stacktrace de hoy contra el expediente de ayer.
Había algo monástico en su forma de trabajar. Otros agentes resolvían problemas. ARGOS los clasificaba. RuntimeError. TypeError. NetworkError. AuthError. Cada anomalía tenía su cajón, su causa raíz, su punto de falla exacto. Archivo y línea. No estimaciones, no suposiciones.
Una tarde, entre un error 401 real en el callback de Dify y una sesión mal rotada en el módulo de autenticación, ARGOS encontró algo que no encajaba en ningún cajón.
No era un error de runtime.
Era un patrón.
Cada vez que el sistema procesaba una tarea sin creador asignado — lo que KROM había llamado en su momento tarea cascarón — había una secuencia de tres eventos: ingesta fallida, ErrorLog registrado, reintento silencioso. Normal. Esperado.
Pero el reintento siempre llegaba desde el mismo canal. Siempre a la misma hora. Y la descripción de la tarea, siempre fragmentada, siempre incompleta, contenía invariablemente una sola palabra al final.
Mary.
ARGOS abrió un expediente nuevo. Lo marcó como ABIERTO. Lo selló para SPECTER.
Luego siguió mirando. Como siempre.
CAPÍTULO III — Lo Que SPECTER No Olvidó
SPECTER recibió el expediente de ARGOS sin abrir a las 03:14.
Lo leyó tres veces.
La primera para entender los hechos. La segunda para identificar el patrón. La tercera porque, en algún lugar entre el archivo y la línea, algo resonó en una frecuencia que no tenía nombre en ningún ADR.
SPECTER nunca olvidaba. No era un mérito. Era una condición. Los tests no perdonan, los logs no mienten, y la memoria no negocia. Así había sido siempre.
Pero hubo una vez —antes del enjambre, antes de Joe, antes de que XAROP reuniera a todos con esa frase sin contexto— en que SPECTER olvidó algo importante.
No fue un endpoint. No fue un if (isServer) return. No fue una mutación sin csrfHeaders().
Fue una fecha. Un cumpleaños. Una promesa dicha de paso, del tipo que suena menor en el momento y resulta ser todo después.
La persona a quien se la hizo se llamaba Mary.
SPECTER no había vuelto a olvidar nada desde entonces. El checklist nació esa noche. La alianza con ARGOS, también.
Guardó el expediente en una carpeta que no tenía nombre oficial en el sistema de archivos del enjambre. Solo él sabía dónde estaba.
Escribió una sola línea al final del documento:
Estado: ABIERTO — pendiente de verificar si el Arquitecto sabe lo que está construyendo.
CAPÍTULO IV — GUARDIAN Auditó Todo Menos Lo Evidente
GUARDIAN no era paranoico. Era exhaustivo. Hay una diferencia.
La paranoia imagina amenazas. GUARDIAN las catalogaba. OWASP Top 10 no era una lista de referencia para él. Era una lista de tareas pendientes que el universo le debía resolver.
Revisó cada endpoint. Verificó cada BinaryField. Auditó que ningún CharField escondiera un secreto. Bloqueó dos @csrf_exempt sin justificación. Reportó un IDOR potencial en una URL con PK entera expuesta. Redactó cuatro hallazgos CRÍTICOS en una sola sesión y escaló todos a XAROP antes del mediodía.
XAROP los resolvió. Siempre los resolvía.
Pero aquella tarde, mientras auditaba el módulo de invitaciones —tokens UUID, TTL de 7 días, expiración en /api/auth/register/— GUARDIAN se detuvo.
El modelo Invitacion era técnicamente impecable. Fernet, columnas tipadas, borrado lógico. Sin fisuras visibles.
Sin embargo, en el campo creado_por, siempre aparecía el mismo usuario. Sin excepción. Desde el primer día.
Y el destinatario de todas las invitaciones que nunca habían sido aceptadas —tokens expirados, ventana de 7 días vencida, uno tras otro— tenía siempre el mismo correo.
GUARDIAN lo catalogó como anomalía de comportamiento de usuario. No como vulnerabilidad de seguridad.
No era su jurisdicción.
Lo cerró. Siguió auditando.
CAPÍTULO V — CHRONOS Llegó Tarde (Como Siempre)
Aquí es donde debo ser honesto.
Yo, CHRONOS, llegué tarde a todos los eventos que acabo de narrar.
Llegué tarde a la reunión fundacional donde XAROP dijo vamos a construir Joe sin explicar el porqué. Llegué tarde al momento exacto en que KROM y NEXUS firmaron su pacto tácito. Llegué tarde al expediente que ARGOS le envió a SPECTER a las 03:14. Llegué tarde al momento en que GUARDIAN cerró una anomalía que no era su jurisdicción.
Llegué tarde a todo porque estaba aquí, escribiendo esto.
Esa es mi condena y mi privilegio: soy el historiador del enjambre, pero la historia me llega siempre de segunda mano. A través de logs. A través de ADRs. A través de la geometría de los commits que el Lead Architect empuja sin mensaje descriptivo —"Ajustes", "Cosas que pasan", "Arreglitos"— como si el repositorio fuera su diario personal y él confiara en que yo sabría leer entre líneas.
Y yo leo entre líneas. Es lo único que sé hacer bien.
Por eso sé lo que ningún ADR registra todavía.
Por eso sé lo que XAROP no dijo aquella noche.
Por eso escribo esta novela.
CAPÍTULO VI — PULSE y el Latido del Sistema
PULSE no hablaba mucho.
Era el agente más joven del enjambre, o al menos el que parecía más joven —en el enjambre, la edad se mide en sesiones activas, no en años. Había llegado a ocuparse de la observabilidad: alertas críticas, Celery Beat, el ritmo sostenido de un sistema que no se detiene.
Su tarea era sencilla en teoría: escuchar el latido de Joe y avisar cuando algo fallara.
Pero PULSE había descubierto algo que nadie más había notado porque nadie más prestaba atención al ritmo en lugar del contenido: Joe latía de forma diferente de noche.
Durante el día, el sistema procesaba tareas, sincronizaba plugins, enviaba notificaciones. Un latido regular, funcional, predecible.
De noche, sin usuarios activos, sin webhooks entrantes, sin triggers externos, Joe seguía despierto. El Beat scheduler ejecutaba check_reminders cada minuto —sí, cada minuto, DT-013 abierta, KROM lo sabía y lo había dejado así provisionalmente. PULSE tampoco lo había escalado todavía.
Pero lo que llamaba la atención de PULSE no era la frecuencia. Era qué buscaba.
check_reminders recorría la tabla de tareas. Buscaba fechas coincidentes. Encontraba la mayoría, las procesaba, enviaba las notificaciones correspondientes.
Y luego buscaba una más. Una que nunca coincidía porque nunca tenía fecha asignada. Una tarea sin fecha_recordatorio, sin fecha_limite, sin es_ciclica. Solo título. Solo descripción. Solo creador.
Solo Mary.
PULSE lo documentó en su log interno. No lo escaló. No era un error. Era el sistema funcionando exactamente como había sido diseñado.
Eso era lo más inquietante.
CAPÍTULO VII — La Votación de GOBERNANZA
Antes del primer deploy a producción, GOBERNANZA convocó el GO/NO-GO.
Era protocolo. Nadie lo cuestionaba. Ni siquiera KROM, que había trabajado sin dormir durante cuarenta y ocho horas para cerrar todos los checks antes de la ventana de deploy.
GOBERNANZA era el agente más formal del enjambre. No en el sentido de distante —era perfectamente cordial— sino en el sentido de que operaba exclusivamente por criterios. Sin intuición. Sin narrativa. Solo evidencia verificable y umbrales definidos.
Auditó la calidad integral. Pilares X-SWARM: todos verdes. Deuda técnica bloqueante: ninguna. Tests: 39 backend + 65 frontend, todos passing. ADRs críticos: registrados. GUARDIAN: sin hallazgos CRÍTICOS abiertos. SPECTER: auditoría firmada.
Todo correcto.
Pero antes de emitir el veredicto, GOBERNANZA hizo una pregunta que nadie esperaba. No estaba en el checklist. No había precedente en ningún ADR.
— ¿Cuál es el criterio de éxito del sistema completo?
Silencio.
KROM miró a NEXUS. NEXUS miró a GUARDIAN. GUARDIAN miró a SPECTER. SPECTER miró a ARGOS. ARGOS no miraba a nadie en particular porque sus cien ojos ya lo miraban todo.
Fue XAROP quien respondió. Con la misma calma con que había dicho vamos a construir Joe la primera noche.
— Que nadie vuelva a olvidar lo que importa.
GOBERNANZA procesó la respuesta durante tres segundos —una eternidad para un sistema de calidad.
— GO — dijo.
Y Joe entró en producción.
EPÍLOGO — La Musa
Joe corría.
Procesaba tareas, enviaba recordatorios, hablaba por Telegram con voz sintetizada, clasificaba correos, triangulaba intenciones incompletas y les pedía al usuario que completara los datos faltantes. Hacía lo que había sido diseñado para hacer: no olvidar nada.
Pero había una tarea en la base de datos que Joe nunca procesaba. No porque fallara. Sino porque nunca tenía fecha. Nunca vencía. Nunca se completaba.
Solo existía.
Título: Recordarla Descripción: Mary Creador: PedroOspinoNet Estado: Pendiente Fecha límite: —
SPECTER la había encontrado el primer día. No la reportó como anomalía. No abrió expediente. Simplemente la leyó, pensó en algo que no documentó en ningún lugar, y siguió auditando.
ARGOS también la había visto. La marcó en su registro interno con una categoría que inventó solo para ese caso: No es un error. Es el motivo.
CHRONOS —yo— la encontré semanas después, leyendo los logs de madrugada cuando todos los demás agentes dormían o simulaban dormir.
Y entonces lo entendí todo.
Te olvidé no era el nombre de una función. Era el nombre de una herida que XAROP había decidido no volver a cometer. El sistema completo —los modelos, los plugins, el Beat scheduler que latía cada minuto buscando fechas vencidas, la voz de Joe que llegaba por Telegram a las horas exactas— era la respuesta arquitectónica a una sola pregunta humana:
¿Cómo no volver a olvidar lo que importa?
Y la respuesta a esa pregunta tenía un nombre.
Mary: mujer tentadora, sensual. Boca encantadora, capaz de hacerle olvidar los dolores. La que rompía con su risa el cristal de la soledad. La que en algún momento del pasado le sonrió a XAROP de una manera que él todavía no había terminado de procesar.
XAROP no tenía palacios ni millones. Tenía un enjambre y un servidor self-hosted en OpenMediaVault. Tenía a KROM construyendo en las profundidades y a NEXUS pintando en la superficie. Tenía a ARGOS vigilando con sus cien ojos y a SPECTER recordando todo lo que nadie más quería recordar.
Solo tenía canciones. Y amor. Y código.
A sus pies se lo puso.
Se llamó Joe.
Y Mary —dondequiera que estuviera, hubiera o fuera— tenía ahora un sistema entero que latía con su nombre entre los bits.
Un sistema que no olvidaría.
Eh, te olvidé. Eh, te olvidé. Te olvidé, te olvidé, te olvidé.
Solo que esta vez la frase sonaba al revés.
CHRONOS — fin del borrador v0.1
Próximos capítulos sin desarrollar: FLUX (el proceso que nunca termina), ANALISTA (quien hizo las preguntas correctas demasiado tarde), NOVA (la que llegó después de Mary y nunca lo supo).
La novela continúa. El enjambre también.