Consolidacion Macro Micro - 2026-03-26
Este documento fija una lectura arquitectonica con criterio de consolidacion real:
- no simplificar por estetica
- no podar capacidades utiles
- no multiplicar piezas si una sola bien hecha puede absorber varias
- no llamar "elegancia" a una lobotomia
La analogia correcta no es "menos botones". Es pasar de un sistema funcional pero heterogeneo a uno mas cohesivo, eficiente, auditable y mantenible.
Regla de decision
Un cambio de consolidacion solo vale si cumple al menos una de estas condiciones:
- reduce autoridad borrosa entre dos o mas piezas
- elimina una duplicacion real de estado, comportamiento o surface area
- mejora trazabilidad y mantenimiento sin degradar capacidad
- mejora el path principal del runtime y deja lo experimental mas claramente aislado
Si no cumple eso, es solo limpieza cosmetica.
1. Estado general
Hoy el repo sigue teniendo demasiadas superficies para una misma familia de problemas.
La zona mas cargada es:
src/omegasrc/skynetui/src/ui
Eso no es automaticamente malo. Lo malo es cuando varias piezas compiten por la misma autoridad o describen el mismo comportamiento con capas distintas.
2. Lo que ya conviene considerar consolidado
Estas piezas hoy si parecen parte del path principal y no conviene podarlas:
decision-contextstate-authorityworld-modelomega-wspproblem-agendastudy-supervisorskynet/nucleusskynet/study-programskynet/continuity-trackerskynet/experiment-cycleskynet/commitment-engineskynet/pulseliving-memory
Motivo:
- forman una cadena reconocible
- ya tienen persistencia real
- se integran con heartbeat/world-model
- ya producen observabilidad util
3. Consolidacion ya hecha en esta pasada
3.1 Autoridad de memoria de Skynet
Se elimino una duplicacion real:
skynet-runtimecomo store separado, luego absorbido porliving-memory
La autoridad viva ahora esta en:
.openskynet/living-memory/state/*.json.openskynet/living-memory/history.jsonl
Y los memory/SKYNET_*.md quedan como vistas derivadas para humanos.
Esto si mejora el sistema porque:
- reduce writers paralelos
- reduce riesgo de contradiccion entre estado vivo y resumen
- facilita reset y auditoria
3.2 Visibilidad por Web UI
La memoria viva ya no queda escondida.
Overview y Debug pueden leer primero la capa estructurada.
Eso tambien es consolidacion real porque la autoridad operativa y la autoridad visible empiezan a converger.
3.3 Homeostasis daemon: correccion funcional
homeostasis-daemon.ts estaba leyendo un log local inexistente:
.openskynet/gateway.log
Se corrigio para usar el path canonico de logging resuelto por el sistema.
Esto no es refactor cosmetico. Era una falla real de observabilidad operativa.
4. Zonas que hoy siguen demasiado dispersas
4.1 Familia runtime / daemon / autonomous
Las superficies actuales son demasiadas para el mismo dominio:
heartbeat.tsautonomous-executor.tsrun-autonomous.tsdaemon-entry.tsdaemon-cooperative.tsautonomous-runtime.tsexecutive-runtime.tsexperimental-runtime.tsexperimental.tshomeostasis-daemon.ts
Diagnostico:
- no todas son duplicadas, pero el mapa mental cuesta demasiado
- hay wrappers, entrypoints, policy, scheduler y experimentos conviviendo sin una jerarquia suficientemente obvia
Revision de referencias reales:
heartbeat.tssi es spine principalautonomous-executor.tssi esta activo viaheartbeat.tsdaemon-cooperative.tssi esta activo viadaemon-entry.tsrun-autonomous.tshoy es wrapper CLI sobreheartbeat.tshomeostasis-daemon.tssi esta activo viainfra/heartbeat-runner.tsautonomous-runtime.tses configuracion acotada, no spine completoexperimental-runtime.tshoy es solo gating por env
Conclusion:
- aqui no corresponde amputar
- si corresponde ordenar y documentar jerarquia
4.2 Familia experimental heredada
Estas piezas no parecen parte del path principal actual:
init-all-jewels.tsomega-integrated-reasoning.ts- parte del barrel
experimental.ts
Revision de referencias reales:
init-all-jewels.tshoy solo vive detras deexperimental.tsomega-integrated-reasoning.tssigue vivo porintegrated-brain.tsintegrated-brain.tsesta exportado pero no aparece en el path principal del runtime actualinteractive-prompt.runtime.tsya importaintegrated-brain.tsde forma directa, sin pasar por el barrel principalintegrated-brain.tsfue removido del barrel canonicoomega/index.tsy queda expuesto solo poromega/experimental.ts
Conclusion:
- no hay evidencia suficiente para borrarlas
- si hay evidencia suficiente para tratarlas como superficie experimental no canónica
No necesariamente hay que borrarlas. Pero si hoy no gobiernan el runtime principal, deben quedar marcadas como:
- experimental legacy
- optional bootstrap
- no authoritative path
4.3 UI centralizada en pocos monolitos
Los mas notorios:
ui/src/ui/app-render.tsui/src/ui/views/cron.tsui/src/ui/views/chat.tsui/src/ui/views/config.ts
Esto no significa que haya que fragmentar todo. Significa que la UI sigue teniendo centros demasiado gordos, con alto costo de cambio.
5. Recomendacion de consolidacion, no destructiva
5.1 Mantener
Mantener como spine principal:
heartbeatdecision-contextworld-modelliving-memorystudy-supervisor- pipeline
Skynet
5.2 Congelar y etiquetar
Congelar como experimental/legacy hasta nueva evidencia:
init-all-jewelsomega-integrated-reasoningexperimental.ts- partes de
homeostasis-daemonno integradas al path principal
Objetivo:
- que sigan existiendo sin contaminar lectura arquitectonica
5.3 Consolidar despues
Los siguientes merges o aclaraciones si tienen buena relacion valor/riesgo:
definir una sola jerarquia explicita para:
- runtime principal
- loop autonomo
- daemon cooperativo
- wrappers CLI
mover la familia experimental fuera del spine principal de
omegaparte de esto ya se hizo al sacarintegrated-braindel barrel principalreducir writers humanos siempre activos cuando ya existe store estructurado
seguir llevando la Web UI a leer primero estado estructurado
unificar la seleccion de memoria candidata alrededor de
living-memoryesto ya se corrigio enheartbeat,heartbeat-idleyautonomous-executor
6. Hipotesis falsables
Estas son las hipotesis que justifican consolidar mas adelante:
H1
Si la familia runtime/autonomous/daemon se ordena en una jerarquia explicita, entonces:
- bajara el costo de mantenimiento
- bajara el riesgo de entrypoints confusos
- no deberia caer la cobertura funcional
H2
Si la UI lee primero estado estructurado en lugar de summaries derivados, entonces:
- bajaran contradicciones visibles
- sera mas facil auditar comportamiento real
- el sistema sera mas reseteable
H3
Si las superficies legacy/experimental quedan etiquetadas y separadas del path principal, entonces:
- la arquitectura sera mas legible
- sera mas facil detectar que piezas realmente gobiernan conducta
7. Conclusion
El camino correcto no es "menos archivos". Es:
- menos centros de autoridad
- menos duplicacion de comportamiento
- menos rutas paralelas para el mismo problema
- mas visibilidad de la verdad operativa
- mejor separacion entre spine principal y experimentacion
Eso se parece mas a una arquitectura tipo "macOS":
- no por minimalismo vacio
- sino por cohesión, eficiencia, mantenimiento y menor tasa de falla.