diff --git a/adn/01_ontologia.md b/adn/01_ontologia.md index 80b8ffa2..b134732d 100644 --- a/adn/01_ontologia.md +++ b/adn/01_ontologia.md @@ -26,12 +26,13 @@ El ecosistema ADN implementa una jerarquía **Ámbito → Nodos** que agrupa ló ### Jerarquía de Ámbitos -| Ámbito | Descripción | Nodos | -|--------|-------------|-------| -| `dtic-DIIAA` | Ámbito raíz: Infraestructura y servicios propios | srv-ns8, srv-pmox*, srv-xen1, srvv-*, dtic-BITACORAS | -| `dtic-ADN` | Ecosistema core y marco de trabajo | *lógico/transversal* | -| `dtic-DASUTEN` | Sub-ámbito: Departamento de Servicios UTN (gestionado) | srv-dasu, sql-dasuten, dc-dasuten, dasu-pc, dasu-pcv* | -| `dtic-BITACORAS` | Sistema de registro ADN | dtic-BITACORAS | +| Código | Ámbito | Descripción | Nodos | +|--------|--------|-------------|-------| +| **A01** | `dtic-ADN` | Ámbito raíz: Ecosistema core y marco de trabajo | srv-ns8, dtic-BITACORAS | +| **A02** | `dtic-DIGIs` | Digitalización y Gestión Documental | *ver docs/ambito/dtic-DIGIs/* | +| **A03** | `dtic-BKPs` | Backups de servidores | srv-ns8, pve_PMOX3, srvv-maurik | +| **A04** | `dtic-DASUTEN` | Sub-ámbito: Departamento de Servicios UTN (gestionado) | srv-dasu, dasu-sql2, dasu-pcv2, dasu-pc | +| `dtic-DIIAA` | (infrastructure root) | Infraestructura física y servicios propios | srv-pmox*, srv-xen1, srvv-* | ### Relaciones - **Ámbito → Nodos**: Uno a muchos (1:N) diff --git a/adn/07_proyectos.md b/adn/07_proyectos.md index 26e07365..41c3028f 100644 --- a/adn/07_proyectos.md +++ b/adn/07_proyectos.md @@ -109,6 +109,6 @@ Los proyectos son el **tejido conectivo** que une nodos y bitácoras en un prop | P2601 | Sistema DASUTEN | ⏳ | [P2601_Dasuten](../docs/ambito/dtic-DASUTEN/P2601_dasuten.md) | | P2602 | Backups DTIC | ⏳ | [P2602_Backups](../docs/proy/P2602_Backups/P2602_backups.md) | | P2603 | Sistema de Bitácoras | ⏳ | [P2603_Bitacoras](../docs/proy/P2603_Bitacoras/P2603_bitacoras.md) | -| P2604 | Mejoras ADN | ⏳ | [dtic-ADN](../docs/ambito/dtic-ADN/P2604_Mejoras-ADN.md) | +| A01 | Ecosistema ADN | ⏳ | [A01_dtic-ADN](../docs/ambito/dtic-ADN/A01_dtic-ADN.md) | | P2606 | WebServer NGINX | ⏳ | [P2606_WebServer-NGINX](../docs/proy/P2606_WebServer-NGINX/P2606_WebServer-NGINX.md) | diff --git a/adn/tools/run b/adn/tools/run index ff0e14c3..dd8654f3 100755 --- a/adn/tools/run +++ b/adn/tools/run @@ -27,7 +27,7 @@ ENV['TZ'] = 'America/Argentina/Buenos_Aires' # candados [opciones] Gestión de secretos y autorización SSH # ayuda [subcomando] Mostrar ayuda detallada # -# Documentación completa: docs/proy/p2604_mejoras_ADN/P2604_mejoras_ADN.md +# Documentación completa: docs/ambito/dtic-ADN/A01_dtic-ADN.md require 'optparse' require 'json' @@ -48,7 +48,7 @@ require_relative 'cli/triggers/eventos' require_relative 'cli/triggers/motor' require_relative 'cli/db' require_relative 'cli/plan' -require_relative 'cli/backup' +# require_relative 'cli/backup' # Archivado → _hist/ (A03.P001) require_relative 'cli/triggers' require_relative 'cli/conocimiento' require_relative 'cli/jornada' @@ -77,6 +77,8 @@ require_relative 'cli/msp' require_relative 'cli/wzombi' require_relative 'cli/dasuten' require_relative 'cli/digis' +require_relative 'bkps/bkps' +require_relative 'cli/dron' require_relative 'proy/proy' # ─── CLI Principal ────────────────────────────────────────────────────── @@ -116,7 +118,7 @@ class ADNCLI when 'db' ADN::SubcomandoDB.new(args, @logger).ejecutar when 'backup', 'backups' - ADN::SubcomandoBackup.new(args, @logger).ejecutar + ADN::SubcomandoBkps.new(args, @logger).ejecutar # Redirigido desde legacy backup → bkps when 'triggers' ADN::SubcomandoTriggers.new(args, @logger).ejecutar when 'jornada' @@ -157,6 +159,10 @@ class ADNCLI ADN::SubcomandoWZombi.new(args, @logger).ejecutar when 'dasuten' ADN::SubcomandoDasuten.new(args, @logger).ejecutar + when 'bkps' + ADN::SubcomandoBkps.new(args, @logger).ejecutar + when 'dron', 'copiloto', 'novato' + ADN::SubcomandoDron.new(args, @logger).ejecutar when 'digis' ADN::SubcomandoDigis.new(args, @logger).ejecutar else diff --git a/docs/ambito/dtic-ADN/A01.P001_Estandarizacion-Ayudas-ADN.md b/docs/ambito/dtic-ADN/A01.P001_Estandarizacion-Ayudas-ADN.md new file mode 100644 index 00000000..adbd48c1 --- /dev/null +++ b/docs/ambito/dtic-ADN/A01.P001_Estandarizacion-Ayudas-ADN.md @@ -0,0 +1,76 @@ +# Plan: Estandarización de Ayudas en Pantalla para Herramientas ADN + +**Fecha:** 17 de marzo de 2026 +**Autor:** Sistema ADN +**Versión:** 1.0 +**Ubicación:** `docs/ambito/dtic-ADN/A01.P001_Estandarizacion-Ayudas-ADN.md` +**Estado:** ⏳ En Ejecución + +## 📋 Resumen Ejecutivo + +Estandarizar el formato y contenido de las ayudas en pantalla (--help) para todas las herramientas del ecosistema ADN, utilizando el formateador de ayuda estandarizado (`adn/tools/core/help_formatter.rb`) para garantizar consistencia, reutilización y mantenibilidad. + +## 📅 Fases de Implementación + +### ✅ **FASE 1: Análisis y Creación de Estándar (Completado)** + +#### Semana 1: Análisis Inicial +- [x] **1.1:** Análisis de ayudas actuales en subcomandos CLI +- [x] **1.2:** Creación de plantilla estándar de ayuda usando HelpFormatter + +#### Semana 2: Implementación Crítica +- [x] **1.3:** Actualización de subcomando principal (ayuda.rb) +- [x] **1.4:** Actualización de subcomandos críticos (jornada.rb, nodos.rb, db.rb) +- [x] **1.5:** Actualización de subcomandos intermedios (generar.rb, proceso.rb, conocimiento.rb) + +#### Semana 3: Implementación Completa +- [x] **1.6:** Actualización de subcomandos (msp.rb, ssh.rb, triggers.rb, contexto.rb, backup.rb ✅) y pendientes (plan.rb, tailscale.rb, estados.rb, salud.rb, validador.rb, wzombi.rb 📍) +- [ ] **1.7:** Verificación y pruebas de consistencia + +### ⏳ **FASE 2: Documentación y Soporte (Pendiente)** + +#### Semana 4: Documentación +- [ ] **2.1:** Documentación de guías para desarrolladores sobre el nuevo estándar +- [ ] **2.2:** Integración de verificaciones automáticas en CI (si aplica) + +## 🔧 Herramientas Utilizadas + +- Ruby CLI (ADN): Subcomandos en `adn/tools/cli/` que requieren estandarización de ayuda +- Help Formatter (`adn/tools/core/help_formatter.rb`): Componente central para formateo consistente de ayudas + +## 👥 Stakeholders + +| Rol | Persona | Visibilidad | +| :--- | :--- | :--- | +| **Responsable Técnico** | Lic. Ricardo MONLA | Operador directo | +| **Dirección de TIC** | (Jerárquico superior) | Dashboard asíncrono | +| **Desarrolladores ADN** | Equipo de desarrollo | Uso diario de herramientas | + +## 🖥️ Nodos Involucrados + +Este proyecto se enfoca en las herramientas CLI del ecosistema ADN, por lo que no involucra nodos de infraestructura específicos. Los cambios se aplicarán a nivel de código en el repositorio. + +## 📊 Progreso + +``` +Fase 1: ████████░░ 85% Implementación (85% completado) +Fase 2: ░░░░░░░░░░ 0% Documentación y Soporte +``` + +## 📖 Comandos ADN (Referencia) + +```bash +# Ver ayuda principal +./adn/tools/run ayuda + +# Ver ayuda de un subcomando específico +./adn/tools/run ayuda jornada +./adn/tools/run ayuda nodos +./adn/tools/run ayuda db +``` + +## 🔗 Referencias + +- **ADN**: [Principios Rectores](../../../adn/06_gobernanza.md) | [Herramienta CLI](../../../adn/README.md#herramienta-cli-adn-toolsrun) +- **Help Formatter**: [`adn/tools/core/help_formatter.rb`](../../../adn/tools/core/help_formatter.rb) +- **Subcomandos CLI**: [`adn/tools/cli/`](../../../adn/tools/cli/) \ No newline at end of file diff --git a/docs/ambito/dtic-ADN/A01.P002_Generacion-Proyectos-ADN.md b/docs/ambito/dtic-ADN/A01.P002_Generacion-Proyectos-ADN.md new file mode 100644 index 00000000..18765b43 --- /dev/null +++ b/docs/ambito/dtic-ADN/A01.P002_Generacion-Proyectos-ADN.md @@ -0,0 +1,66 @@ +# A01.P002.01 - Plan: Herramienta de Generación de Proyectos ADN + +**Fecha:** 17 de marzo de 2026 +**Autor:** Antigravity (IA ADN) +**Estado:** ✅ Completado +**Proyecto Padre:** [A01 - Ecosistema ADN](A01_dtic-ADN.md) + +## 📋 Objetivo +Automatizar la creación de estructuras de proyectos (planes, hitos, tareas) en el ecosistema ADN para garantizar consistencia en la nomenclatura y ubicación de los archivos en `docs/proy/`. + +## 📅 Fases de Implementación + +### **Fase 1: Estructura y Lógica Base (Completado)** +- [x] **1.A:** Desarrollo de `adn/tools/proy/proy.rb` para despacho de comandos. +- [x] **1.B:** Implementación de `GeneradorProy` en `generador.rb` con lógica de rutas inteligentes. +- [x] **1.C:** Integración de plantillas dinámicas en `plantillas.rb`. + +### **Fase 2: Integración al Ecosistema (Completado)** +- [x] **2.A:** Registro del subcomando `proy` en el entrypoint principal `adn/tools/run`. +- [x] **2.B:** Soporte para parámetros avanzados (`--proy`, `--fase`) y normalización de títulos. +| **2.C** | ✅ | Validación de creación automática de directorios según código de proyecto. | + +--- + +## 📊 Progreso + +``` +Fase 1: ██████████ 100% Estructura y Lógica Base +Fase 2: ██████████ 100% Integración al Ecosistema +``` + +--- + +## 📑 Plantillas Disponibles + +La herramienta `proy` permite generar los siguientes componentes estandarizados: + +| Tipo | Propósito | Formato | +| :--- | :--- | :--- | +| **`plan`** | Plan de ejecución principal de una fase | `PROY.FASE_Titulo.md` | +| **`subplan`** | Detalle técnico o procedimiento específico | `PROY.FASE_Subplan.md` | +| **`mejora`** | Propuesta o registro de mejora puntual | `PROY.FASE_Mejora.md` | +| **`incidente`** | Documentación de fallos y su resolución | `PROY.FASE_Incidente.md` | +| **`tarea`** | Seguimiento de una tarea individual compleja | `PROY.FASE_Tarea.md` | + +### 🚀 Ejemplos de Uso + +```bash +# Crear un plan para la fase 2 del proyecto A01 +./adn/tools/run proy nuevo plan --proy:A01 --fase:02 "Generación de Documentos" + +# Crear un registro de mejora sin fase específica +./adn/tools/run proy nuevo mejora --proy:P2601 "Optimización de Red" + +# Crear una tarea dentro de una fase +./adn/tools/run proy nuevo tarea --proy:P2602 --fase:1.2 "Validación rclone" +``` + +> 💡 **Nota**: Todos los archivos generados incluyen automáticamente la sección de **📊 Progreso** con barras Unicode pre-configuradas al 0% o con ejemplos listos para editar. + +--- + +## 🔗 Referencias +- **Herramienta:** `adn/tools/proy/` +- **EntryPoint:** `adn/tools/run proy` +- **Gobernanza:** [06_gobernanza.md](../../../adn/06_gobernanza.md) diff --git a/docs/ambito/dtic-ADN/A01.P003_W-ZOMBI-v2.0.md b/docs/ambito/dtic-ADN/A01.P003_W-ZOMBI-v2.0.md new file mode 100644 index 00000000..a9e19781 --- /dev/null +++ b/docs/ambito/dtic-ADN/A01.P003_W-ZOMBI-v2.0.md @@ -0,0 +1,53 @@ +# A01.P003.01 - Plan de Implementación W-ZOMBI v2.0 (Despliegue Limpio) + +> Proyecto: A01 - Ecosistema ADN | Estado: ⏳ Planificación + +## Contexto +Se requiere reemplazar la herramienta legacy `adn/tools/sonda_w-zombi` por la nueva versión modular v2.0 (ubicada en `docs/ambito/dtic-ADN/w-zombi/w-zombi_v2.0`). Para mantener un ecosistema higiénico y evitar monolitos indeseados, se optó por un enfoque de **"borrón y cuenta nueva"**. + +## Objetivos +1. **Archivado Histórico**: Mover la antigua sonda a `adn/tools/_hist/sonda_w-zombi` preservando su estado. +2. **Despliegue Limpio**: Copiar la limpia arquitectura v2.0 directamente en `adn/tools/w-zombi`. +3. **Integración ADN-CLI**: Modificar el CLI (`adn/tools/run`) para soportar `w-zombi` como namespace enקום de `sonda_w-zombi`. +4. **Preservación de Datos**: Importar el archivo `telemetria.log` de la antigua base de datos antes de darla de baja. + +## Tareas + +### Fase 1: Backup e Histerización (10 min) +- [x] Revertir repositorio a estado limpio para `sonda_w-zombi`. +- [x] Mover directorio original `sonda_w-zombi` a `adn/tools/_hist/`. +- [x] Respaldar `telemetria.log` original a `adn/tools/w-zombi/data/telemetria.log`. + +### Fase 2: Despliegue Estructural (20 min) +- [x] Copiar contenido limpio de `w-zombi_v2.0` al nuevo directorio `adn/tools/w-zombi/`. +- [x] Ajustar `lib/wzombi/routes/zombi.rb` para usar asignación de entorno (ej. `WZ_HOST`) con un fallback fallback `100.111.195.4`. +- [x] Inicializar `data/cmd.json` con `{ "id": 0, "cmd": "NO_CMD" }`. + +### Fase 3: Integración ADN-CLI (20 min) +- [x] Crear `adn/tools/cli/wzombi.rb` con la clase `SubcomandoWZombi` referenciando el nuevo directorio. +- [x] Modificar `adn/tools/run` para registrar el subcomando `wzombi` vinculándole a la nueva ubicación. + +### Fase 4: Verificación (10 min) +- [x] Ejecutar `./adn/tools/run wzombi ayuda`. +- [x] Enviar comando de prueba: `./adn/tools/run wzombi cmd "hostname"`. +- [x] Ejecutar `./adn/tools/run wzombi start` y verificar puerto 8000. +- [x] Verificar recepción de logs (Ej. `ping`). + +## Riesgos y Mitigación +- **Riesgo**: Pérdida de conectividad con agentes activos si la IP del host cambia en `zombi.ps1`. +- **Mitigación**: Usar variables de entorno (ej. `WZ_HOST`) para inyectar la IP correcta en el generador de PS1. + +--- + +## 📊 Progreso + +``` +Fase 1: ██████████ 100% Backup e Histerización +Fase 2: ██████████ 100% Despliegue Estructural +Fase 3: ██████████ 100% Integración ADN-CLI +Fase 4: ██████████ 100% Verificación Final +``` + +--- + +**Registro de Avance**: 100% (✅ COMPLETADO) diff --git a/docs/ambito/dtic-ADN/A01.P004_Estandarizacion-Barras-Progreso.md b/docs/ambito/dtic-ADN/A01.P004_Estandarizacion-Barras-Progreso.md new file mode 100644 index 00000000..086a0e61 --- /dev/null +++ b/docs/ambito/dtic-ADN/A01.P004_Estandarizacion-Barras-Progreso.md @@ -0,0 +1,47 @@ +# A01.P004.01 - Plan: Estandarización de Barras de Progreso + +**Fecha:** 18 de marzo de 2026 +**Autor:** Antigravity (IA ADN) +**Estado:** ✅ FINALIZADO +**Proyecto Padre:** [A01 - Ecosistema ADN](A01_dtic-ADN.md) + +## 📋 Objetivo +Unificar la representación visual del avance de los proyectos y sus fases mediante una notación basada en barras Unicode (`█`, `░`). Esto permite un diagnóstico visual rápido de la salud de los proyectos siguiendo el principio de **Menos es Más**. + +## 📅 Fases de Implementación + +### **Fase 1: Definición de Estándar (Completada)** +- [x] **1.A:** Definir caracteres Unicode para la barra (`█` para completado, `░` para pendiente). +- [x] **1.B:** Establecer longitud estándar de 10 caracteres para representar 10% por bloque. +- [x] **1.C:** Documentar formato: `Fase N: ██████░░░░ 60% Nombre`. + +### **Fase 2: Ejecución en A01 (Completada)** +- [x] **2.A:** Aplicar barras en el manifiesto principal de A01. +- [x] **2.B:** Verificar alineación y legibilidad en terminal/visor MD. + +### **Fase 3: Propagación a P2601 (Completada)** +- [x] **3.A:** Identificar fases en `P2601_dasuten.md`. +- [x] **3.B:** Implementar sección de progreso con barras. +- [x] **3.C:** Vincular porcentajes con los hitos completados. + +### **Fase 4: Consolidación Normativa (Completada)** +- [x] **4.A:** Agregar la notación visual a la hebra [04_iconografia.md](../../../adn/04_iconografia.md). +- [x] **4.B:** Actualizar plantilla de proyectos y hebra 07. + +--- + +## 📊 Progreso + +``` +Fase 1: ██████████ 100% Definición de Estándar +Fase 2: ██████████ 100% Ejecución en A01 +Fase 3: ██████████ 100% Propagación a P2601 +Fase 4: ██████████ 100% Consolidación Normativa +``` + +--- + +## 🔗 Referencias +- **Hebra Iconografía:** [04_iconografia.md](../../../adn/04_iconografia.md) +- **Hebra Proyectos:** [07_proyectos.md](../../../adn/07_proyectos.md) +- **Ejemplo Maestro:** [A01_dtic-ADN.md](A01_dtic-ADN.md) diff --git a/docs/ambito/dtic-ADN/A01.P005_Estudio-Friccion-IA.md b/docs/ambito/dtic-ADN/A01.P005_Estudio-Friccion-IA.md new file mode 100644 index 00000000..e6667499 --- /dev/null +++ b/docs/ambito/dtic-ADN/A01.P005_Estudio-Friccion-IA.md @@ -0,0 +1,43 @@ +# A01.P005 - Plan de Acción: Estudio de Fricción IA (Antigravity) y Mejora Continua + +## Objetivo +Analizar los patrones de uso, toma de decisiones y errores de flujo detectados en conversaciones recientes con IA (Antigravity, específicamente ayer). +**Problema central:** La IA repite ciclos de exploración innecesarios (ej. "no estoy seguro de cómo empezar a buscar contraseñas") lo cual genera fricción. +**Meta:** Diseñar e instrumentar soluciones y directivas que provean el conocimiento/contexto base requerido desde el arranque, propiciando que los pasos de intervención/exploración previa de la IA “tiendan a cero” (más velocidad, menos gasto computacional y asertividad inmediata). + +## Fases +### Fase 1: Diagnóstico de la Conversación +- [x] Extraer y revisar logs de *thought* y llamadas a herramientas (tools calls) de ayer. +- [x] Clasificar las vacilaciones de la IA (Listado de directorios repetitivos, dudas sobre secretos y bóvedas, etc). +- [x] Auditoría de `adn/triggers.yml`: Identificado como **OBSOLETO** (sistema deshabilitado, lógica pre-migración DB). +- [x] Cuantificar los "saltos" y comandos ejecutados que se hubiesen evitado con contexto. + +### Fase 2: Diseño de Puntos de Mejora al Ecosistema ADN +- [x] Migrar lógica de `triggers.yml` a **DB Hooks/Ruby** para automatizar sincronizaciones manuales. +- [x] Integrar solución para acceso rápido a bóveda de contraseñas (`candados`) en CLI principal (`adn candados`). +- [x] Estandarizar cómo la IA obtiene la topología de la red sin usar herramientas exploratorias innecesarias (- ej: proveer el manifiesto explícitamente). +- [x] Actualizar el canon (`05_ia.md` u otros) de acuerdo con el principio de *Menos es Más*. + +### Fase 3: Implementación y Validación +- [x] Implementar cambios en las normas y scripts de arranque. +- [x] Testear con nuevas peticiones y comparar la métrica de *tool calls* utilizados para tareas análogas. (IA) Validado con `adn network` vs exploración manual. + +--- + +## 📊 Progreso +```text +Fase 1: ██████████ 100% Diagnóstico de la Conversación +Fase 2: ██████████ 100% Puntos de Mejora Ecosistema +Fase 3: ██████████ 100% Implementación y Validación +``` + +## 💡 Lecciones Aprendidas (IA Antigravity) +* **Contexto es Eficiencia**: El uso de herramientas centralizadas (`network`, `candados`) reduce los tool calls de 5-6 a 1 para obtención de identidad. +* **Bitácora First**: Documentar antes de actuar previene estados inconsistentes y mejora la trazabilidad del operador humano. + +## 📝 Registro de Hallazgos (Log 18/03 - 19/03) +* **Gestión de Secretos (COMPLETO)**: Migración de `adn/tools/seguridad` a `adn/tools/candados` e integración directa en orquestador. +* **Fricción de Conectividad**: Exceso de conexiones PostgreSQL no persistentes (8 conexiones en 5s). Causa: Herramientas `db` cierran sesión en cada comando. +* **Automatización Muerta**: `adn/triggers.yml` está deshabilitado. La IA hace manualmente la propagación de datos que el sistema debería automatizar (ej. Bitácora ↔ Proyectos). +* **Ambigüedad de Comandos**: Errores recurrentes en subcomandos de `db` por sintaxis inconsistente. +--- diff --git a/docs/ambito/dtic-ADN/A01.P006_Sensor-de-Mejora-Continua.md b/docs/ambito/dtic-ADN/A01.P006_Sensor-de-Mejora-Continua.md new file mode 100644 index 00000000..5d838741 --- /dev/null +++ b/docs/ambito/dtic-ADN/A01.P006_Sensor-de-Mejora-Continua.md @@ -0,0 +1,83 @@ +# A01.P006 - Plan: Sensor de Mejora Continua para el Ecosistema ADN + +## Objetivo +Diseñar e implementar un sistema de detección automática de patrones de fricción en el uso del ecosistema ADN que genere sugerencias de mejora trazables y accionables, reduciendo la carga cognitiva de identificar oportunidades de mejora continua y acelerando el ciclo de evolución del sistema. + +## Fases + +### Fase 1: Diseño y Arquitectura (06.01) +- [x] Definir métricas clave a recolectar (conexiones DB, frecuencia de comandos, tiempos de respuesta, etc.) +- [x] Diseñar esquema de tabla auxiliar para almacenamiento de métricas +- [x] Establecer reglas de detección de patrones (umbrales, ventanas temporales, etc.) +- [x] Definir formato de salida de sugerencias (entradas bitácora pen### Fase 2: Implementación del Sensor (06.02) +- [x] Crear módulo `MejorasSensor` en `adn/tools/db/core/` +- [x] Implementar registro pasivo de métricas en operaciones clave (evento:crear, network show, etc.) +- [x] Desarrollar lógica de detección de patrones basada en reglas simples y transparentes +- [x] Generar sugerencias como entradas `⏳` en bitácora con formato estándar + +### Fase 3: Integración y Validación (06.03) +- [x] Crear subcomando `salud --mejoras` para visualizar sugerencias +- [x] Implementar activación/desactivación via variable de entorno `ADN_MEJORAS` (Integrado en BitacoraDB) +- [x] Validar con patrones de fricción reales identificados previamente (conexiones DB excesivas, comandos repetitivos) +- [x] Documentar uso y reglas en `05_ia.md` ✅ + +### Fase 4: Cultura y Adopción (06.04) +- [x] Definir rituales de revisión de sugerencias (Premisa 17 en 05_ia.md) +- [x] Documentar `./adn/tools/run salud --mejoras` como obligatorio al inicio de sesión +- [x] Crear ejemplos de mejoras exitosas detectadas por el sensor +- [x] Medir reducción en trabajo manual de detección de fricción +- [x] Ajustar umbrales y reglas basado en feedback de uso real + +**Métricas de Impacto (19/03/2026):** +- Total entradas: 497 | IA: 84 (16%) | Completadas: 371 (74%) +- Fricción detectada y resuelta automáticamente: 3 patrones +- Umbrales actuales: conexiones_por_minuto: 5, comandos_repetidos: 5, ventana: 300s + +## 📊 Progreso +```text +Fase 1: ██████████ 100% Diseño y Arquitectura +Fase 2: ██████████ 100% Implementación del Sensor +Fase 3: ████████░░ 80% Integración y Validación +Fase 4: ██████████ 100% Cultura y Adopción ✅ +``` + +## 📝 Registro de Hallazgos y Conclusión por Fase + +### Fase 1: Diseño y Arquitectura (Completada ✅) +- **Logrado**: Definición completa de métricas clave (conexiones DB, frecuencia de comandos, tiempos de respuesta) +- **Conclusión**: Base teórica sólida basada en principios Menos es Más. + +### Fase 2: Implementación del Sensor (Completada ✅) +- **Logrado**: Núcleo funcional en Ruby integrado en el flujo de `BitacoraDB`. +- **Logrado**: Detección de 3 tipos de fricción (Conexiones, Repetición, Inconsistencia). + +### Fase 3: Integración y Validación (En Progreso 🟡 80%) +- **Logrado**: Comando `./adn/tools/run salud --mejoras` funcional. +- **Logrado**: Corrección de infraestructura de constantes del ADN. +- **Pendiente**: Documentación formal en el canon de la IA. + +## 📊 Progreso General +```text +Fase 1: ██████████ 100% Diseño y Arquitectura +Fase 2: ██████████ 100% Implementación del Sensor +Fase 3: ██████████ 100% Integración y Validación ✅ +Fase 4: ██████████ 100% Cultura y Adopción ✅ +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +TOTAL: ██████████ 100% PLAN COMPLETO ✅ +``` + +## 📝 Registro de Hallazgos (Log 19/03) +* **Integración Exitosa**: El sensor ahora detecta conexiones PostgreSQL no persistentes y sugiere connection pooling de forma automática. +* **Arquitectura Refinada**: Implementada activación proactiva y namespaces correctos (`::ADN::MejorasSensor`). +* **Concepto**: Confirmado que patrones similares (comandos repetitivos, inconsistencias documento-DB) se detectan en logs históricos +* **Alineación con ADN**: Propone mejora continua mediante detección automática + intervención humana trazable, siguiendo principios DB-First y Menos es Más + +## 📝 Ejemplo de Mejora Exitosa (19/03 - A01.P006.06) +**Fricción Detectada**: IP Tailscale cambió de `100.88.252.26` a `100.111.195.4`, causando errores 404 en acceso remoto. +**Causa Raíz**: `srv-ns8` no estaba en nginx server_names ni en Vite allowedHosts. +**Resolución**: +- Actualizar IPs en nginx.conf y Vite config +- Agregar todos los hosts Tailscale a allowedHosts +**Impacto**: Acceso remoto funciona desde cualquier host Tailscale. + +**Mejora Propuesta para el Sensor**: Detectar cambios en IPs de Tailscale y sugerir actualización automática de configs. \ No newline at end of file diff --git a/docs/ambito/dtic-ADN/A01.P007_Plantillas-Escritura-Eventos.md b/docs/ambito/dtic-ADN/A01.P007_Plantillas-Escritura-Eventos.md new file mode 100644 index 00000000..1d529f55 --- /dev/null +++ b/docs/ambito/dtic-ADN/A01.P007_Plantillas-Escritura-Eventos.md @@ -0,0 +1,101 @@ +# A01.P007 - Plan: Plantillas de Escritura para Detalles de Eventos + +## Objetivo +Sistema unificado de plantillas Markdown para enriquecer los detalles de eventos en la bitácora, mejorando trazabilidad, consistencia y escaneo visual. + +## Contexto +Ya existe `adn/tools/proy/plantillas.rb` con plantillas para planes/proyectos/nodos, pero faltan plantillas específicas para los **detalles de eventos** en la cronología de bitácoras. + +## Herramientas ADN Existentes +``` +./adn/tools/run generar bitacora - Generar bitácora desde plantilla +./adn/tools/run generar nodo - Generar ficha de nodo +./adn/tools/run generar proyecto - Generar manifiesto de proyecto +./adn/tools/run db evento:crear - Crear evento en bitácora +./adn/tools/run db evento:listar - Listar eventos +``` + +## Fases + +### Fase 1: Investigación y Auditoría +- [x] Inventariar plantillas existentes en `adn/tools/proy/plantillas.rb` +- [x] Identificar tipos de eventos recurrentes en bitácoras +- [x] Documentar formato actual de descripciones de eventos +- [x] Analizar herramientas ADN a utilizar + +### Fase 2: Diseño de Plantillas +- [x] Definir plantillas por tipo de evento: + - `implementacion` - Implementación técnica + - `investigacion` - Investigación/exploración + - `resolucion` - Resolución de incidentes + - `documentacion` - Documentación/corrección + - `reunion` - Reuniones/comunicaciones + - `test` - Pruebas/validación + - `debug` - Depuración + - `planificacion` - Planificación +- [x] Diseñar formato de detalle enriquecido (contexto, acción, resultado) +- [x] Definir convenciones de formato (emojis, Prefijos, etc.) + +### Fase 3: Implementación +- [x] Crear módulo `adn/tools/templates/plantillas_eventos.rb` +- [x] Integrar con `./adn/tools/run generar evento ` +- [x] Documentar uso en `02_bitacora.md` +- [x] Integrar con `db evento:crear` (opcional `--plantilla`) +- [x] Agregar a `05_ia.md` como buena práctica + +### Fase 4: Adopción +- [x] Probar con eventos reales (usado en este mismo evento) +- [x] Medir mejora en consistencia +- [x] Recopilar feedback + +## Progreso +```text +Fase 1: ██████████ 100% Investigación y Auditoría +Fase 2: ██████████ 100% Diseño de Plantillas +Fase 3: ██████████ 100% Implementación +Fase 4: ██████████ 100% Adopción +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +TOTAL: ██████████ 100% PLAN COMPLETO ✅ +``` + +## Registro de Implementación (19/03 - 22:50) +- Plan creado: A01.P007 +- Ámbito: dtic-ADN + +## Registro de Corrección (19/03 - 21:30) +- [x] Bugfix: Formato de hora en `db evento:listar` ahora muestra `HH:MM:SS` +- [x] Entrada acepta `--inicio HH:MM[:SS]` y `--fin HH:MM[:SS]` +- [x] Archivo: `adn/tools/cli/db/evento.rb` +- [x] `--inicio` usa hora actual por defecto si no se especifica +- [x] Corregidos 7 eventos con horas incorrectas + +## Formato Estándar para Eventos + +**Estructura**: +``` +[PROY.COD] Título breve ✅ + +**Tipo de evento** + +**Campo 1**: +**Campo 2**: +... +``` + +**Tipos con iconos**: +| Ícono | Tipo | Campos | +|-------|------|--------| +| 🔧 | `implementacion` | Contexto, Acción, Resultado | +| 🔍 | `investigacion` | Problema, Hallazgos, Conclusión | +| 🛠️ | `resolucion` | Síntoma, Causa, Solución, Verificación | +| 📝 | `documentacion` | Qué, Ubicación, Cambios, Impacto | +| ✅ | `test` | Qué se probó, Resultado, Pasos, Conclusión | +| 🐛 | `debug` | Error, Diagnóstico, Solución, Verificación | +| 📋 | `planificacion` | Objetivo, Fases, Recursos, Próximo | +| 👥 | `reunion` | Participantes, Temas, Acuerdos, Acciones | + +## Registro de Mejora de Eventos (19/03 - 21:55) +- [x] **TODOS LOS 34 EVENTOS** de hoy (1186-1239) mejorados con formato enriquecido +- [x] Tipos usados: planificación, implementación, debug, test, documentación, resolución, investigación +- [x] Documentado formato estándar para nuevos eventos +- [x] IDs mejorados: 1186-1239 diff --git a/docs/ambito/dtic-ADN/A01.P008_Modelo-Ambito-Nodo.md b/docs/ambito/dtic-ADN/A01.P008_Modelo-Ambito-Nodo.md new file mode 100644 index 00000000..8cc71626 --- /dev/null +++ b/docs/ambito/dtic-ADN/A01.P008_Modelo-Ambito-Nodo.md @@ -0,0 +1,419 @@ +# A01.P008 - Implementación del Modelo Ámbito/Nodo en el Ecosistema ADN + +> **Estado**: ⏳ Propuesto +> **Pertenece a**: [A01 - Ecosistema ADN](./A01_dtic-ADN.md) +> **Fecha**: 2026-03-20 +> **Responsable**: Lic. Ricardo MONLA +> **Versión**: 1.7 +> +> ### Progreso General: `██████████ 100%` (PLAN COMPLETO ✅) +> - **Fase 1 (DB-First)**: `██████████` 100% +> - **Fase 2 (CLI Ruby)**: `██████████` 100% +> - **Fase 3 (API REST)**: `██████████` 100% +> - **Fase 4 (Frontend)**: `██████████` 100% +> - **Fase 5 (Validación)**: `██████████` 95% + +--- + +## Resumen + +El ecosistema ADN necesita evolucionar para reflejar la jerarquía organizativa real donde los **ámbitos** agrupen lógicamente a los **nodos**. Esto impacta en la base de datos, CLI, API y frontend web. La implementación sigue el principio DB-First y el patrón "Menos es Más" del ADN. + +**Cambio conceptual principal:** +- **Antes**: Fichas por Nodo → seleccionar nodo → ver eventos +- **Ahora**: Fichas por Ámbito → seleccionar ámbito → ver eventos de todos sus nodos (con columna Nodo) + +**Estructura:** +- **Ámbito raíz**: `dtic-DIIAA` (agrupa infraestructura, servicios y bitácoras) +- **Sub-ámbito**: `dtic-DASUTEN` (departamento externo gestionado) +- **Nodos**: `srv-dasu`, `sql-dasuten`, `dc-dasuten`, `srv-ns8`, `srvv-koha`, etc. + +--- + +## Análisis de Impacto + +### Herramientas y Componentes Afectados + +| # | Componente | Tipo | Impacto | Prioridad | +|---|------------|------|---------|-----------| +| 1 | `bitacoras.nodos` | Base de Datos | Alta | Crítica | +| 2 | `bitacoras.entradas` | Base de Datos | Alta | Crítica | +| 3 | `bitacoras.temas` | Base de Datos | Media | Alta | +| 4 | `bitacoras.resumen_nodos` | Base de Datos | Media | Alta | +| 5 | `bitacoras.hitos` | Base de Datos | Baja | Media | +| 6 | `adn/tools/cli/db/nodo.rb` | CLI Ruby | Alta | Crítica | +| 7 | `adn/tools/cli/db/evento.rb` | CLI Ruby | Alta | Crítica | +| 8 | `adn/tools/cli/nodos.rb` | CLI Ruby | Alta | Crítica | +| 9 | `adn/tools/cli/ambitos.rb` | CLI Ruby | Alta | Crítica | +| 10 | `adn/tools/core/` (helpers) | CLI Ruby | Media | Alta | +| 11 | API Node.js (`backend/`) | API REST | Alta | Crítica | +| 12 | Frontend Vite (`frontend/src/`) | UI Web | Alta | Crítica | +| 13 | `adn/tools/core/mejoras_sensor.rb` | Herramienta | Baja | Media | +| 14 | Hooks pre-commit | Git | Baja | Baja | + +--- + +## Modelo de Datos + +### Diagrama de Relaciones + +``` +┌─────────────┐ 1:N (parent) ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ +│ ambitos │───────────────│ ambitos │ │ nodos │ │ entradas │ +│ (raíz) │ │ (hijos) │ │ │ │ │ +├─────────────┤ ├─────────────┤ ├─────────────┤ ├─────────────┤ +│ id (PK) │ │ id (PK) │──1:N──│ ambito_id │──1:N──│ nodo_id │ +│ nombre │ │ nombre │ │ id (PK) │ │ ambito_id │ +│ parent_id │ │ parent_id │ │ nombre │ │ descripcion │ +│ descripcion │ │ descripcion │ │ ip │ │ estado │ +│ activo │ │ activo │ │ tipo │ │ modo │ +└─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ +``` + +**Jerarquía de ámbitos:** +- `dtic-DIIAA` (raíz, parent_id = NULL) + - `dtic-DASUTEN` (parent_id → dtic-DIIAA) + - Nodos de infraestructura y servicios (parent_id → dtic-DIIAA) + +**Relaciones:** +- `ambitos` → `ambitos` (self-reference): Uno a muchos (1:N) — jerarquía padre/hijo +- `ambitos` → `nodos`: Uno a muchos (1:N) — Un ámbito contiene muchos nodos +- `nodos` → `entradas`: Uno a muchos (1:N) — Un nodo contiene muchos eventos +- `entradas` → `ambitos`: Muchos a uno (N:1) — Cada evento pertenece a un ámbito (derivado del nodo) + +**Nota**: El `ambito_id` en `entradas` se propaga automáticamente desde el `nodo_id` (app-level o trigger). El nodo sigue siendo la entidad primaria de registro. + +### Nueva Tabla: `bitacoras.ambitos` + +```sql +CREATE TABLE bitacoras.ambitos ( + id SERIAL PRIMARY KEY, + nombre VARCHAR(50) NOT NULL UNIQUE, + descripcion TEXT, + parent_id INTEGER REFERENCES bitacoras.ambitos(id) ON DELETE SET NULL, + activo BOOLEAN DEFAULT true, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP +); + +CREATE INDEX idx_ambitos_nombre ON bitacoras.ambitos(nombre); +CREATE INDEX idx_ambitos_parent ON bitacoras.ambitos(parent_id); +``` + +### Modificación: `bitacoras.nodos` + +```sql +ALTER TABLE bitacoras.nodos +ADD COLUMN ambito_id INTEGER REFERENCES bitacoras.ambitos(id) ON DELETE SET NULL; + +CREATE INDEX idx_nodos_ambito ON bitacoras.nodos(ambito_id); +``` + +### Modificación: `bitacoras.entradas` + +```sql +ALTER TABLE bitacoras.entradas +ADD COLUMN ambito_id INTEGER REFERENCES bitacoras.ambitos(id) ON DELETE SET NULL; + +CREATE INDEX idx_entradas_ambito ON bitacoras.entradas(ambito_id); +``` + +--- + +## Ámbitos Detectados (Propuestos) + +| Ámbito | Nodos Asociados | Descripción | +|--------|-----------------|-------------| +| `dtic-DIIAA` | srv-ns8, srv-pmox1, srv-pmox2, srv-pmox3, srv-xen1, srvv-*, dtic-BITACORAS | Ámbito raíz que agrupa toda la infraestructura y servicios propios de DIIAA | +| `dtic-DASUTEN` | srv-dasu, dasu-srvv-dc, sql-dasuten, dc-dasuten, pc-dasu0, pcv-dasu* | Departamento de Servicios de UTN (sistema externo gestionado por DIIAA) | +| `dtic-BITACORAS` | Sistema de bitácoras (auto-referencia) | Sistema de registro ADN (se incluye en dtic-DIIAA) | + +**Jerarquía propuesta:** +``` +dtic-DIIAA (raíz) +├── Infraestructura: srv-ns8, srv-pmox1, srv-pmox2, srv-pmox3, srv-xen1 +├── Servicios: srvv-dtic, srvv-koha, srvv-sitio*, srvv-docs, srvv-dns +├── Bitácoras: dtic-BITACORAS +└── Sub-ámbitos: + └── dtic-DASUTEN: srv-dasu, dasu-srvv-dc, sql-dasuten, dc-dasuten, pc-dasu0, pcv-dasu* +``` + +--- + +## Fases de Implementación + +### Fase 1: Base de Datos (DB-First) + +#### 1.1 - Crear tabla `ambitos` +- [x] Script de migración `adn/tools/db/migrations/001_create_ambitos.sql` +- [x] Datos iniciales: seed con ámbitos detectados (`dtic-DASUTEN`, `dtic-BITACORAS`, etc.) +- [x] Verificar integridad referencial + +#### 1.2 - Modificar tabla `nodos` +- [x] Añadir columna `ambito_id` +- [x] Migrar nodos existentes al ámbito correspondiente +- [x] Crear índice para queries por ámbito + +#### 1.3 - Modificar tabla `entradas` +- [x] Añadir columna `ambito_id` (nullable) +- [x] Propagar ámbito automáticamente desde el `nodo_id` asociado (app-level o trigger PostgreSQL) +- [x] Queries disponibles: + - `entradas.nodo_id` → Obtener eventos por nodo (N:1) + - `entradas.ambito_id` → Obtener eventos por ámbito (N:1, derivado) + - JOIN con `nodos` → Obtener ámbito del nodo directamente + - JOIN triple `entradas → nodos → ambitos` → Filtrar eventos por ámbito y ver nodo +- [x] Verificar historial de eventos existentes + +#### 1.4 - Nueva tabla `resumen_ambitos` (vista materializada) +```sql +CREATE TABLE bitacoras.resumen_ambitos ( + id SERIAL PRIMARY KEY, + ambito_id INTEGER REFERENCES bitacoras.ambitos(id), + fecha DATE, + total_entradas INTEGER DEFAULT 0, + tiempo_total INTERVAL, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + UNIQUE(ambito_id, fecha) +); +``` + +--- + +### Fase 2: CLI Ruby (`adn/tools/`) + +#### 2.1 - Nuevo comando: `ambitos` +```bash +./adn/tools/run ambitos listar +./adn/tools/run ambitos crear --nombre --descripcion +./adn/tools/run ambitos info +./adn/tools/run ambitos nodos # Lista nodos del ámbito +./adn/tools/run ambitos --help # Mostrar ayuda del comando +``` + +#### 2.2 - Estructura del comando +- [x] Crear `adn/tools/cli/ambitos.rb` +- [x] Crear `adn/tools/db/core/ambito_db.rb` +- [x] Incluir ayuda normalizada (heredada de `core/help_formatter.rb`) +- [x] Integrar en dispatcher principal (`adn/tools/run`) + +#### 2.3 - Modificar `nodo.rb` +- [x] Añadir `--ambito ` a `nodo:crear` +- [x] Listar nodos mostrando la columna/etiqueta de su ámbito actual + +#### 2.4 - Modificar `evento.rb` +- [x] Filtrar eventos mediante `--ambito ` en `evento:listar` +- [x] (Opcional) Poder asignar evento a ámbito si no tiene nodo + +#### 2.5 - Modificar `nodos.rb` +- [x] Subcomando `nodos listar --ambito ` +- [x] Subcomando `nodos agrupar --por ambitos` +- [x] Incluir `--help` normalizado + +#### 2.6 - Modificar `salud.rb` +- [x] Añadir métricas por ámbito en `--dashboard` +- [x] Soportar `--ambito ` en estadísticas +- [x] Incluir `--help` normalizado + +#### 2.7 - Helpers compartidos (`core/`) +- [x] Verificar/crear `core/help_formatter.rb` para normalizar `--help` +- [x] Verificar/crear `core/error_handler.rb` para mensajes de error +- [x] Asegurar consistencia en todos los subcomandos + +--- + +## Resumen de Implementación Fase 2 (20/03) +- **`db nodo:crear`**: Soporte para `--ambito ` para asociar nodo en creación. +- **`db nodo:listar`**: Re-escrito para soportar metadata cruzada (LEFT JOIN) incluyendo `--ambito` y columna de Ámbito. +- **`db evento:listar`**: Filtro expandido a múltiples nodos mediante `--ambito ` en modo DB-first. +- **`nodos.rb`**: Mantenido pero compatibilizado; soporta `nodos agrupar --por ambitos` (DB) y `nodos listar --ambito` (Cruce MD-DB). +- **`salud.rb`**: Formateado `--help` y se añadieron querys DB para ámbitos y nodos. + +--- + +### Fase 3: API Node.js (`servicios/nginx/dtic-bitacoras/backend/`) + +#### 3.2 - Modificar endpoints existentes +- [x] `GET /api/nodos` → incluir `ambito_id` y `ambito_nombre` +- [x] `GET /api/entradas` → filtrar por `ambito_id` +- [x] `GET /api/bitacoras/:id` → incluir resumen por ámbito + +#### 3.1 - Nuevos endpoints REST +- [x] `GET /api/ambitos` → Listar ámbitos +- [x] `POST /api/ambitos` → Crear ámbito +- [x] `GET /api/ambitos/:id` → Info de ámbito +- [x] `PUT /api/ambitos/:id` → Actualizar ámbito +- [x] `DELETE /api/ambitos/:id` → Eliminar ámbito +- [x] `GET /api/ambitos/:id/nodos` → Nodos del ámbito +- [x] `GET /api/nodos?ambito=:id` → Filtrar nodos por ámbito +- [x] `POST /api/entradas` → Crear entrada (con ambito_id automático/manual) +- [x] `GET /api/ambitos/stats/global` → Métricas por ámbito +- [x] `GET /api/ambitos/:id/dashboard` → Dashboard unificado + +--- + +### Fase 4: Frontend Vite (`servicios/nginx/dtic-bitacoras/frontend/`) + +#### 4.1 - Diseño visual: Fichas por Ámbito + +**Cambio principal**: +- **Antes**: Fichas por Nodo (seleccionar nodo → ver eventos) +- **Ahora**: ✅ Fichas por Ámbito (implementado 2026-03-25) + +**Implementado**: +- Vista principal agrupa entradas por ámbito en lugar de por nodo +- Cada ficha de ámbito muestra todos los eventos de sus nodos +- Columna "Nodo" identifica el origen de cada evento +- Badge muestra cantidad de nodos y entradas del ámbito + +``` +📅 2026-03-20 + +📂 dtic-DASUTEN +Resumen de eventos registrados. + +├───────────────────────────────────────────────────────────────────────┤ +| ID | I | F | Descripción | J | E | Nodo | Acc. │ +│────┼───┼───┼────────────────────────────────────┼───┼───┼──────┼──────│ +``` + +**Columnas:** +- `ID`: Identificador de entrada +- `I`: Hora de inicio +- `F`: Hora de fin +- `Descripción`: Detalle del evento +- `J`: Modo (P=Presencial, R=Remoto) +- `E`: Estado (⏳, ✅, ❌) +- `Nodo`: Nodo origen del evento (nuevo) +- `Acc`: Acciones (editar, eliminar) + +**Flujo de navegación:** +1. Seleccionar **Ámbito** (ej: `dtic-DASUTEN`) +2. Ver todos los eventos de los nodos del ámbito +3. Columna **Nodo** muestra el origen de cada evento + +#### 4.2 - Modificaciones en componentes + +**Cambio de paradigma**: Fichas por Nodo → **Fichas por Ámbito** ✅ COMPLETADO + +**Vista Principal (Ámbito)** - ✅ Implementado +- Agrupación de entradas por ámbito (en lugar de por nodo) +- Cada ficha de ámbito muestra todos los eventos de sus nodos +- Badge con cantidad de nodos y entradas del ámbito +- Tabla con columnas: ID, I, F, Descripción, **Nodo**, J, E, Acc + +**Tabla de Entradas** - ✅ Implementado +- Columna "Nodo" añadida — muestra el origen de cada evento +- Eventos ordenados por hora de inicio (descendente) +- Nodo se muestra destacado en color primario + +**Fichas de Nodo (Alternativa)** +- [ ] Acceso directo para ver eventos de un nodo específico +- [ ] Mostrar ámbito asociado en el header + +--- + +### Fase 5: Documentación y Migración + +#### 5.1 - Actualizar hebras ADN +- [x] `01_ontologia.md` → Definir modelo ámbito/nodo +- [x] `02_bitacora.md` → Referenciar ámbito en formato +- [ ] `05_ia.md` → Añadir premisa de ámbito en contexto +- [x] `adn/README.md` → Actualizar subcomandos disponibles y tabla de comandos +- [x] `06_gobernanza.md` → Añadir nomenclatura de ámbitos +- [ ] `05_ia.md` → Añadir premisa de ámbito en contexto (pendiente) + +#### 5.2 - Migrar datos existentes +```bash +./adn/tools/run db migrar:ambitos # Mapear nodos existentes a ámbitos +./adn/tools/run db ambito:propagar # Propagar a entradas +``` + +#### 5.3 - Script de migración de datos +```ruby +# adn/tools/db/migrations/002_migrate_ambitos.rb +# Mapear nodos detectados: +# - srv-dasu, dasu-srvv-dc, sql-dasuten, dc-dasuten → dtic-DASUTEN +# - srv-ns8, srv-pmox* → dtic-Infraestructura +# - srvv-* → dtic-Servicios +# - bitacoras services → dtic-BITACORAS +``` + +--- + +## Cronograma y Avances + +| Fase | Descripción | Progreso | Estado | +|------|-------------|----------|--------| +| F1 | DB-First: Tablas y Migraciones | 100% | ✅ | +| F2 | CLI Ruby: comandos `ambitos` y filters | 100% | ✅ | +| F3 | API Node.js: Endpoints y Dashboard | 100% | ✅ | +| F4 | Frontend Vite: UI/UX Ámbitos | 100% | ✅ **Fichas por Ámbito implementadas** (2026-03-25) | +| F5 | Validación: Documentación y QA | 100% | ✅ | + +--- + +## Log de Actividades (Hitos) + +| Fecha | Hora | Hito | Descripción | +|-------|------|------|-------------| +| 20/03 | 08:30 | 📋 Inicio Plan | Elaboración y aprobación del plan A01.P008 | +| 20/03 | 09:10 | 🗄️ Fase 1 OK | Tablas `ambitos` creadas y datos migrados | +| 20/03 | 09:29 | 🛠️ Fase 2 OK | CLI `ambitos` implementada y normalizada | +| 20/03 | 16:10 | 🔌 Fase 3 OK | API Node.js extendida con soporte para ámbitos | +| 20/03 | 16:37 | 💻 Fase 4 OK | Frontend Vite con dashboards de ámbitos | +| 20/03 | 16:40 | ✅ Fase 5 OK | Validación técnica: integración CLI/DB/Web exitosa | +| 20/03 | 20:45 | 📝 Fase 5 OK | Hebras ADN actualizadas (01, 02, 06, README.md) | +| 20/03 | 21:00 | 🎨 Fase 4 OK | Corrección CSS responsivo en tablas (table-layout: fixed, overflow-x) | + +--- + +## Criterios de Éxito + +1. ✅ Base de datos con tabla `ambitos` funcional +2. ✅ CLI permite crear/listar/gestionar ámbitos (con `--help` normalizado) +3. ✅ Eventos registran ámbito automáticamente desde nodo +4. ✅ API expone endpoints de ámbito +5. ✅ Frontend muestra selector de ámbito en mini header +6. ✅ Datos migrados correctamente +7. ✅ Documentación actualizada en todas las hebras ADN (incluido README.md) + +--- + +## Notas Técnicas + +- **Principio DB-First**: Todas las operaciones van primero a PostgreSQL +- **Integridad referencial**: Usar `ON DELETE SET NULL` para no perder datos +- **Menos es Más**: Un ámbito agrupa, no crea nueva entidad sin propósito +- **Compatibilidad**: Mantener `--nodo` existente; `--ambito` es complementario +- **Migración**: Los nodos existentes reciben `ambito_id = NULL` hasta ser migrados +- **Normalización CLI**: Todos los subcomandos DEBEN incluir `--help` usando `core/help_formatter.rb` + +--- + +## Archivos a Crear/Modificar + +### Nuevos +- `adn/tools/db/migrations/001_create_ambitos.sql` +- `adn/tools/db/migrations/002_migrate_nodos_ambitos.sql` +- `adn/tools/db/migrations/002_migrate_ambitos.rb` +- `adn/tools/db/core/ambito_db.rb` +- `adn/tools/cli/ambitos.rb` +- `servicios/nginx/dtic-bitacoras/backend/src/routes/ambitos.js` +- `servicios/nginx/dtic-bitacoras/frontend/src/pages/Ambitos.tsx` + +### Modificar +- `adn/tools/cli/db/nodo.rb` (añadir `--ambito`, `--help`) +- `adn/tools/cli/db/evento.rb` (añadir `--ambito`, `--help`) +- `adn/tools/cli/nodos.rb` (filtros por ámbito, `--help`) +- `adn/tools/cli/salud.rb` (métricas por ámbito, `--help`) +- `adn/tools/db/core/bitacora_db.rb` +- `adn/tools/db/core/evento_db.rb` +- `adn/tools/core/help_formatter.rb` (si no existe) +- `adn/tools/core/error_handler.rb` (si no existe) +- `servicios/nginx/dtic-bitacoras/backend/src/server.js` +- `servicios/nginx/dtic-bitacoras/frontend/src/App.tsx` +- `adn/01_ontologia.md` +- `adn/02_bitacora.md` +- `adn/05_ia.md` +- `adn/06_gobernanza.md` +- `adn/README.md` diff --git a/docs/ambito/dtic-ADN/A01_dtic-ADN.md b/docs/ambito/dtic-ADN/A01_dtic-ADN.md new file mode 100644 index 00000000..e5c0a3f2 --- /dev/null +++ b/docs/ambito/dtic-ADN/A01_dtic-ADN.md @@ -0,0 +1,184 @@ +# A01 - Ámbito dtic-ADN + +> Manifiesto de Ámbito | Referencia: [`adn/01_ontologia.md`](../../../adn/01_ontologia.md) + +## Identificación + +| Campo | Valor | +| :--- | :--- | +| **Código** | A01 | +| **Nombre** | Ecosistema ADN — Marco de Trabajo y Automatización | +| **Estado** | ⏳ En Ejecución | +| **Inicio** | 14/03/2026 | +| **Fin Estimado** | Continuo (mejora continua) | + +## Objetivo + +El ámbito **dtic-ADN** (Arquitectura de Datos y Normas) es el marco de trabajo transversal que define los principios, herramientas y procesos para la gestión de infraestructura y documentación del dtic-DIIAA. + +Este ámbito cubre: + +1. **Principios rectores** — Menos es Más, Armonía Integral, Mejora Continua. +2. **Herramientas CLI** — Ecosistema Ruby para gestión de bitácoras, nodos, proyectos y ámbitos. +3. **Base de datos PostgreSQL** — Fuente de verdad única (DB-First) para bitácoras y metadata. +4. **Automatización** — Drones (tareas autónomas), sondas remotas (W-ZOMBI), triggers. +5. **Documentación viva** — Hebras normativas (`01_ontologia.md` a `08_procesos.md`). + +## Herramientas + +| Herramienta | Uso | +| :--- | :--- | +| **Ruby 3.x** | Lenguaje del ecosistema ADN | +| **PostgreSQL** | Base de datos (puerto 5433, schema `bitacoras`) | +| **ADN CLI** | `./adn/tools/run ` — herramientas unificadas | +| **RSpec** | Framework de tests | +| **RuboCop** | Lint automatizado | +| **GitHub Actions** | CI/CD (tests + lint) | +| **W-ZOMBI v2.0** | Sonda remota modular (telemetría y comandos) | +| **Dron** | `./adn/tools/run dron` — vigía de tareas largas con auto-bitácora | + +## Nodos Involucrados + +### Nodo Core (Desarrollo y Ejecución) + +| Nodo | IP | Rol en el Ámbito | +| :--- | :--- | :--- | +| [**srv-ns8**](../../../nodos/srv-ns8.md) | `10.0.10.8` | Workstation de desarrollo, CI/CD, Docker Host | + +### Nodos de Infraestructura (Bitácoras Web) + +| Nodo | IP | Rol en el Ámbito | +| :--- | :--- | :--- | +| **dtic-BITACORAS** | `localhost:5174` (frontend), `localhost:3002` (API) | Sistema web de bitácoras (Docker Compose) | + +## Tareas Configuradas + +| ID | Descripción | Tipo | +| :--- | :--- | :--- | +| `db_evento_crear` | Crear evento en bitácora | db | +| `db_evento_listar` | Listar eventos con filtros | db | +| `db_nodo_crear` | Crear nodo en DB | db | +| `db_ambito_listar` | Listar ámbitos | db | +| `wzombi_start` | Iniciar sonda remota | wzombi | +| `wzombi_cmd` | Enviar comando a agentes | wzombi | +| `dron_lanzar` | Lanzar tarea en background | dron | + +## Comandos Compuestos + +| ID | Descripción | Tareas | +| :--- | :--- | :--- | +| `jornada_completa` | Registro completo de jornada | jornada iniciar → db evento:crear → jornada cerrar | +| `salud_completa` | Verificación integral del sistema | salud --dashboard --mejoras | +| `dron_test` | Test de dron con auto-bitácora | dron lanzar --evento AUTO --nota "Test" -- sleep 3 | + +## Flujo de Trabajo Típico + +``` +1. Iniciar jornada: ./adn/tools/run jornada iniciar presencial 08:00 +2. Registrar evento: ./adn/tools/run db evento:crear --nodo srv-ns8 --descripcion "..." +3. Ejecutar tarea: ./adn/tools/run +4. Para tareas largas: ./adn/tools/run dron lanzar --evento AUTO --nota "X" -- +5. Actualizar evento: ./adn/tools/run db evento:actualizar --fin HH:MM +6. Verificar en web: http://localhost:5174 +``` + +### Subcomandos ADN disponibles + +```bash +# Gestión de bitácoras +./adn/tools/run db evento:crear --nodo --descripcion "..." +./adn/tools/run db evento:listar [--ambito ] [--detalle] +./adn/tools/run db evento:actualizar --fin HH:MM + +# Gestión de ámbitos y nodos +./adn/tools/run db ambito:listar +./adn/tools/run db nodo:listar [--ambito ] +./adn/tools/run nodos info + +# Drones (tareas autónomas) +./adn/tools/run dron lanzar --evento AUTO --nota "X" -- +./adn/tools/run dron flota +./adn/tools/run dron salud + +# Sonda remota W-ZOMBI +./adn/tools/run wzombi start +./adn/tools/run wzombi cmd "hostname" +./adn/tools/run wzombi ayuda + +# Salud del sistema +./adn/tools/run salud --dashboard --mejoras +``` + +## Planes Asociados + +| Código | Nombre | Estado | +| :--- | :--- | :--- | +| [A01.P001](A01.P001_Estandarizacion-Ayudas-ADN.md) | Estandarización de Ayudas en Pantalla | 📍 En Ejecución (85%) | +| [A01.P002](A01.P002_Generacion-Proyectos-ADN.md) | Herramienta de Generación de Proyectos | ✅ Completado | +| [A01.P003](A01.P003_W-ZOMBI-v2.0.md) | Implementación W-ZOMBI v2.0 | ✅ Completado | +| [A01.P004](A01.P004_Estandarizacion-Barras-Progreso.md) | Estandarización de Barras de Progreso | ✅ Completado | +| [A01.P005](A01.P005_Estudio-Friccion-IA.md) | Estudio de Fricción IA (Antigravity) | ✅ Completado | +| [A01.P006](A01.P006_Sensor-de-Mejora-Continua.md) | Sensor de Mejora Continua | ✅ Completado | +| [A01.P007](A01.P007_Plantillas-Escritura-Eventos.md) | Plantillas de Escritura para Eventos | ✅ Completado | +| [A01.P008](A01.P008_Modelo-Ambito-Nodo.md) | Modelo Ámbito/Nodo | ✅ Completado | + +## 🛸 Sistema de Drones (Operación Autónoma) + +**Herramienta:** `./adn/tools/run dron ` + +| Subcomando | Función | +| :--- | :--- | +| `dron lanzar --evento ID/AUTO --nota "X" -- ` | Lanzar tarea en background con auto-bitácora | +| `dron flota` | Dashboard compacto de la flota | +| `dron salud` | Health check activo (detecta zombies/estancados) | +| `dron estado` | Estado detallado de cada dron | +| `dron limpiar` | Limpiar tareas completadas/fallidas | + +**Evento AUTO:** Crea evento de bitácora automáticamente y lo cierra al finalizar. El `tarea_id` del dron se incluye en la descripción del evento con formato `🛸 dron_HHMMSS_PID: `. + +**Ejemplo:** +```bash +./adn/tools/run dron lanzar --evento AUTO --nota "Backup nocturno" -- ./adn/tools/run db bitacora:crear +``` + +## 📊 Sensor de Mejora Continua + +**Herramienta:** `./adn/tools/run salud --mejoras` + +El sensor detecta automáticamente patrones de fricción en el uso del ecosistema: + +| Patrón | Umbral | Acción | +| :--- | :--- | :--- | +| Conexiones DB excesivas | >5 por minuto | Sugiere connection pooling | +| Comandos repetitivos | >5 en 5 min | Sugiere automatización | +| Inconsistencias documento-DB | Detectada | Sugiere armonía integral | + +**Activación:** Variable de entorno `ADN_MEJORAS=1` (activada por defecto en BitacoraDB). + +## 🔄 Armonía Integral + +**Última actualización:** 2026-04-07 (migración a estándar de ámbito completada) + +| Documento | Estado | Notas | +| :--- | :--- | :--- | +| `docs/contexto/IA.md` | ✅ Actualizado | Referencia a A01 agregada | +| `A01_dtic-ADN.md` | ✅ Creado | Manifiesto nuevo siguiendo estándar A03/A04 | +| `A01.P001_Estandarizacion-Ayudas-ADN.md` | ✅ Migrado | Desde P2604.01.01 | +| `A01.P002_Generacion-Proyectos-ADN.md` | ✅ Migrado | Desde P2604.02.01 | +| `A01.P003_W-ZOMBI-v2.0.md` | ✅ Migrado | Desde P2604.03.01 | +| `A01.P004_Estandarizacion-Barras-Progreso.md` | ✅ Migrado | Desde P2604.04.01 | +| `A01.P005_Estudio-Friccion-IA.md` | ✅ Migrado | Desde P2604.05.01 | +| `A01.P006_Sensor-de-Mejora-Continua.md` | ✅ Migrado | Desde P2604.06 | +| `A01.P007_Plantillas-Escritura-Eventos.md` | ✅ Migrado | Desde P2604.07 | +| `A01.P008_Modelo-Ambito-Nodo.md` | ✅ Migrado | Desde P2604.08 | +| `_hist/P2604_Mejoras-ADN.md` | ✅ Archivado | Manifiesto legacy preservado | + +--- + +## Referencias + +- **CLI ADN**: `./adn/tools/run ayuda` +- **Código fuente**: [`adn/tools/`](../../../adn/tools/) +- **Hebras normativas**: [`adn/01_ontologia.md`](../../../adn/01_ontologia.md) a [`adn/08_procesos.md`](../../../adn/08_procesos.md) +- **Bitácoras**: `./adn/tools/run db evento:listar --ambito dtic-ADN` +- **Legacy (archivado)**: [`_hist/P2604_Mejoras-ADN.md`](_hist/P2604_Mejoras-ADN.md) — manifiesto anterior del proyecto diff --git a/docs/ambito/dtic-ADN/_hist/P2604_Mejoras-ADN.md b/docs/ambito/dtic-ADN/_hist/P2604_Mejoras-ADN.md new file mode 100644 index 00000000..82ca5d7f --- /dev/null +++ b/docs/ambito/dtic-ADN/_hist/P2604_Mejoras-ADN.md @@ -0,0 +1,276 @@ +# P2604 - Mejoras al ADN + +> Manifiesto de Proyecto | Referencia: [`adn/07_proyectos.md`](../../../adn/07_proyectos.md) + +## Identificación + +| Campo | Valor | +| :--- | :--- | +| **Código** | P2604 | +| **Nombre** | Mejoras al Ecosistema ADN | +| **Estado** | ⏳ En Ejecución | +| **Inicio** | 14/03/2026 | +| **Fin Estimado** | Continuo (mejora continua) | + +## Objetivo + +Mejoras atómicas, incrementales y reutilizables al ecosistema ADN. Una herramienta por vez, siguiendo los principios: **Menos es Más + Mejora Continua + Armonía Integral**. + +## Stakeholders + +| Rol | Persona | Visibilidad | +| :--- | :--- | :--- | +| **Responsable Técnico** | Lic. Ricardo MONLA | Operador directo | +| **Dirección de TIC** | (Jerárquico superior) | Dashboard asíncrono | + +## Nodos Involucrados + +### Nodos Exclusivos (Core) +| Nodo | IP | Rol en el Proyecto | +| :--- | :--- | :--- | +| [**srv-ns8**](../../../nodos/srv-ns8.md) | `10.0.10.8` | Servidor de desarrollo y ejecución del ADN | + +## Herramientas + +| Herramienta | Uso | +| :--- | :--- | +| **Ruby 3.x** | Lenguaje del ecosistema ADN | +| **RSpec** | Framework de tests | +| **RuboCop** | Lint automatizado | +| **GitHub Actions** | CI/CD (tests + lint) | + +## Hitos Clave + +| Fecha | ID | Estado | Hito | +| :--- | :--- | :---: | :--- | +| 14/03 | F1-F8 | ✅ | Tests core, deprecation banners, error handler, constants, logger, HelpFormatter, docs técnica, CI/CD | +| 15/03 | F9-F10 | ✅ | Integración MSPs con ADN + Saneamiento y consolidación (S1-S15) | +| 15/03 | F11-F12 | ✅ | Bitácora Web auto-refresh + Estado/Modo calculado automáticamente | +| 16/03 | RFC-01 | ✅ | Convención de nomenclature de proyectos (RFC-ADN-01) | +| 18/03 | WZ-v2 | ✅ | Plan e implementación de W-ZOMBI v2.0 (reemplazo sonda legacy) | +| — | DOC | 📍 | Actualizar README.md con funcionalidades nuevas (auto-refresh, estado/modo) | +| — | P2604.08 | ✅ | Implementación del modelo Ámbito/Nodo en el ecosistema ADN | + +--- + +## Diagnóstico Integral + +### Problemas Identificados + +| # | Problema | Archivo(s) | Principio | Severidad | +| :--- | :--- | :--- | :--- | :--- | +| 1 | Sin tests para módulos core | `core/*.rb` | Menos es Más | Alta | +| 2 | Banner DEPRECATED incompleto | `cli/validador.rb` | Armonía | Media | +| 3 | core/validador.rb sin deprecation | `core/validador.rb` | Armonía | Media | +| 4 | Constantes de colores hardcodeadas | `core/colores.rb` | Menos es Más | Baja | +| 5 | Sin handler de errores global | `run` | Armonía | Alta | +| 6 | db/exporters sin tests | `db/exporters/*.rb` | Menos es Más | Media | +| 7 | Logger sin rotación | `core/logger.rb` | Mejora Cont. | Baja | +| 8 | Help inconsistente entre CLI | `cli/*.rb` | Armonía | Baja | +| 9 | Sonda W-ZOMBI monolítica e inflexible | `adn/tools/sonda_w-zombi/servidor.rb` | Menos es Más | Alta | + +--- + +## Plan de Mejoras (13 Fases) + +### Fase 1: Tests Core (Menos es Más) + +| ID | Módulo | Tests | Estado | +| :--- | :--- | :--- | :--- | +| T1 | `spec/db/evento_spec.rb` | 3 | ✅ | +| T2 | `spec/core/colores_spec.rb` | 6 | ✅ | +| T3 | `spec/core/validador_spec.rb` | 6 | ✅ | +| T4 | `spec/cli/help_spec.rb` | 0 | 📍 | + +### Fase 2: Deprecation Banners (Armonía) + +| ID | Archivo | Acción | Estado | +| :--- | :--- | :--- | :--- | +| D1 | `cli/validador.rb` | Banner agregado | ✅ | +| D2 | `core/validador.rb` | Revisar - útil para validaciones | ⏸️ | +| D3 | `db/exporters/md_exporter.rb` | Banner agregado | ✅ | + +### Fase 3: Manejo de Errores (Armonía) + +| ID | Mejora | Estado | +| :--- | :--- | :--- | +| E1 | Agregar `rescue` global en `run` | ✅ | +| E2 | Estandarizar mensajes de error | ✅ | +| E3 | Logging de excepciones no manejadas | ✅ | + +**Herramientas creadas:** `core/error_handler.rb`, excepciones en `core/constants.rb` + +### Fase 4: Constantes y Config (Menos es Más) + +| ID | Mejora | Estado | +| :--- | :--- | :--- | +| C1 | Documentar constantes en constants.rb | ✅ | +| C2 | Agregar constantes reutilizables (estados, modos) | ✅ | +| C3 | Validar constantes al inicio | ✅ | + +### Fase 5: Logger Mejorado (Mejora Continua) + +| ID | Mejora | Estado | +| :--- | :--- | :--- | +| L1 | Agregar rotación de logs | ✅ | +| L2 | Niveles de log configurables | ✅ | +| L3 | Output JSON estructurado | ✅ | + +### Fase 6: Help Consistente (Armonía) + +| ID | Mejora | Estado | +| :--- | :--- | :--- | +| H1 | HelpFormatter helper reutilizable | ✅ | + +### Fase 7: Documentación Técnica + +| ID | Documento | Estado | +| :--- | :--- | :--- | +| DOC1 | `docs/tecnica/adn_cli.md` | ✅ | +| DOC2 | `docs/tecnica/adn_core.md` | ✅ | +| DOC3 | `docs/tecnica/adn_tests.md` | ✅ | + +### Fase 8: CI/CD + +| ID | Mejora | Estado | +| :--- | :--- | :--- | +| CI1 | GitHub Actions para tests | ✅ | +| CI2 | Lint automatizado (.rubocop.yml) | ✅ | + +### Fase 9: Integración MSP (Armonía Integral) + +| ID | Mejora | Estado | +| :--- | :--- | :--- | +| M1 | Auditoría de MSPs | ✅ | +| M2 | Registro de MSPs en BD | ✅ | +| M3 | Listado de MSPs disponibles | ✅ | +| M4 | Documentación de integración | ✅ | +| M5 | Reutilizar NodosInfo en CLI | ✅ | + +### Fase 10: Saneamiento y Consolidación + +| ID | Mejora | Estado | +| :--- | :--- | :--- | +| S1-S9 | Limpieza de código muerto y duplicaciones | ✅ | +| S10 | Migrar SubcomandoSalud a namespace ADN | ✅ | +| S11 | CLI `ssh` — ejecución remota reutilizable | ✅ | +| S12 | Refactorizar ssh.rb — leer datos de fichas | ✅ | +| S13 | Consolidar core/ — submódulos CLI | ✅ | +| S14 | Subcomando `nodos info` | ✅ | +| S15 | Actualizar README.md con estructura real | ✅ | + +### Fase 11: Bitácora Web (Mejora Continua) + +| ID | Mejora | Estado | +| :--- | :--- | :--- | +| B1 | Auto-refresh cada 30 segundos | ✅ | +| B2 | Refresh al recuperar foco | ✅ | +| B3 | Smart refresh (comparando max_id) | ✅ | + +### Fase 12: Consistencia de Eventos (Menos es Más) + +| ID | Mejora | Estado | +| :--- | :--- | :--- | +| E1 | Estado calculado automáticamente | ✅ | +| E2 | Modo resuelto desde última jornada | ✅ | +| E3 | Estado automático al actualizar con --fin | ✅ | + +### Fase 13: Implementación W-ZOMBI v2.0 (Mejora Continua) + +| ID | Mejora | Estado | +| :--- | :--- | :--- | +| W1 | Implementación de arquitectura modular | ✅ | +| W2 | Integración como subcomando ADN-CLI | ✅ | +| W3 | Test de despliegue y telemetría | ✅ | + +### Fase 14: Estandarización Visual (Armonía Integral) + +| ID | Mejora | Estado | +| :--- | :--- | :--- | +| V1 | Implementar barras de progreso Unicode en P2604 | ✅ | +| V2 | Propagar notación de barras a P2601 | ✅ | +| V3 | Crear guía de estilo para indicadores visuales | ✅ | + +### Fase 15: Optimización de Intervención IA (Mejora Continua) + +| ID | Mejora | Estado | +| :--- | :--- | :--- | +| IA1 | Diagnóstico de logs y fricción (sesión 18/03) | ✅ | +| IA2 | Refactorización de directivas en 05_ia.md | ✅ | +| IA3 | Automatización de contexto de seguridad (candados) | ✅ | +| IA4 | Validación de reducción de pasos exploratorios | ✅ | + +### Fase 16: Modelo Ámbito/Nodo (Armonía Integral) + +| ID | Mejora | Estado | +| :--- | :--- | :--- | +| A1 | Base de Datos: tabla `ambitos`, columnas `ambito_id` | ✅ | +| A2 | CLI Ruby: comando `ambitos`, normalización `--help` | ✅ | +| A3 | API REST: endpoints `/api/ambitos/*` | ✅ | +| A4 | Frontend: AmbitoDashboard con selector de ámbito | ✅ | +| A5 | Documentación: hebras ADN actualizadas | ✅ | + +### Fase 17: Optimización Hardware srv-ns8 + +| ID | Mejora | Estado | +| :--- | :--- | :--- | +| H1 | Aumentar RAM de srv-ns8 (mínimo 32 GB para Ollama) | ⏳ | +| H2 | Evaluar SSD para mejorar rendimiento | ⏳ | + +### Fase 18: Integración Ollama (LLM Local) + +| ID | Mejora | Estado | +| :--- | :--- | :--- | +| O1 | Instalar modelo LLM liviano (1-3B params) | ⏳ | +| O2 | Integrar Ollama como backend de IA en herramientas ADN | ⏳ | +| O3 | Capacidad de análisis de código/documentos via LLM local | ⏳ | + +--- + +## Progreso + +``` +Fase 1: ██████████ 100% Tests Core +Fase 2: ██████░░░░ 67% Deprecation +Fase 3: ██████████ 100% Error Handler +Fase 4: ██████████ 100% Constants +Fase 5: ██████████ 100% Logger +Fase 6: ██████████ 100% HelpFormatter +Fase 7: ██████████ 100% Documentación +Fase 8: ██████████ 100% CI/CD +Fase 9: ██████████ 100% MSP +Fase 10: ██████████ 100% Saneamiento +Fase 11: ██████████ 100% Bitácora Web +Fase 12: ██████████ 100% Eventos +Fase 13: ██████████ 100% W-ZOMBI v2.0 +Fase 14: ██████████ 100% Visibilidad +Fase 15: ██████████ 100% Optimización IA +Fase 16: ██████████ 100% Ámbito/Nodo +Fase 17: ░░░░░░░░░░ 0% Hardware srv-ns8 +Fase 18: ░░░░░░░░░░ 0% Ollama (LLM Local) +``` + +## Métricas Totales + +| Métrica | Valor | +| :--- | :--- | +| Tests pasando | 15 | +| Archivos creados | 14 | +| Archivos modificados | 12 | +| Archivos limpiados/movidos | 20+ | +| Fases completadas | 13/13 (100%) | + +## Planes de Ejecución + +- [Estandarización de Ayudas en Pantalla para Herramientas ADN](P2604.01.01_Estandarizacion-Ayudas-ADN.md) +- [Implementación W-ZOMBI v2.0](P2604.03.01_Plan-W-ZOMBI-v2.0.md) +- [Estandarización de Indicadores Visuales de Progreso](P2604.04.01_Estandarizacion-Barras-Progreso.md) +- [Estudio de Fricción IA (Antigravity) y Mejora Continua](P2604.05.01_Estudio-Friccion-IA.md) +- [Modelo Ámbito/Nodo para el Ecosistema ADN](P2604.08_Ambito-Nodo.md) + +## Referencias + +- **Punto de verdad**: [`adn/README.md`](../../../adn/README.md) +- **ADN**: [Ontología](../../../adn/01_ontologia.md) | [Proyectos](../../../adn/07_proyectos.md) +- **ADN IA**: [05_ia.md](../../../adn/05_ia.md) +- **Bitácoras**: IDs 1054-1056, 1073, 1106, 1112, 1163 vía `./adn/tools/run db evento:listar --detalle` diff --git a/docs/contexto/IA.md b/docs/contexto/IA.md index 63ccd3ff..ca51ee61 100644 --- a/docs/contexto/IA.md +++ b/docs/contexto/IA.md @@ -9,7 +9,7 @@ 1. **Menos es Más**: Este archivo contiene solo lo esencial para operar. Para detalles, consultar fuentes canónicas o usar `--help` en las herramientas ADN. 2. **Mejora Continua**: Al inicio de cada sesión, ejecutar `./adn/tools/run salud --mejoras --json` para identificar oportunidades de optimización. -3. **Armonía Integral**: Toda acción debe alinearse con las normas vivas del ADN (ver `adn/06_gobernanza.md`). +3. **Armonía Integral**: Toda acción debe alinearse con las normas vivas del ADN. Ver procedimiento abajo. --- @@ -166,6 +166,38 @@ La vista principal de la Bitácora Web ahora agrupa las entradas **por Ámbito** --- +## 🔄 Armonía Integral — Procedimiento de Actualización Documental + +**Cuándo aplicar:** Después de cualquier cambio significativo (nueva herramienta, refactorización, cambio de estructura, plan completado, etc.). + +### Checklist obligatorio (en orden): + +| # | Documento | Qué actualizar | Cuándo | +|---|-----------|----------------|--------| +| 1 | **Bitácora** | Evento con resultados y próximos pasos | Siempre (antes de salir) | +| 2 | `docs/contexto/IA.md` | Estado de drones, lecciones aprendidas, quick changes | Si hay cambios operativos o de flujo | +| 3 | `docs/ambito/<ámbito>/_manifiesto.md` | Tabla de planes, herramientas, nodos, estado | Si el cambio afecta al ámbito | +| 4 | `docs/ambito/<ámbito>/_plan.md` | Estado del plan, fases, hitos | Si el plan fue modificado/completado | + +### Ejemplo de aplicación (2026-04-06): + +``` +Cambio: Reestructuración de dtic-DASUTEN a estándar A03 +→ 1. Bitácora: Evento #XXXX registrado +→ 2. Contexto/IA.md: No requería (sin cambios operativos) +→ 3. A04_dtic-DASUTEN.md: Manifiesto creado + tabla de planes actualizada +→ 4. A04.P005_DASUTEN-sin-DC.md: Referencias actualizadas +→ 5. Legacy: P2601_dasuten.md → _hist/ +``` + +### Reglas: + +- **Menos es Más**: Actualizar solo lo necesario, sin duplicar información. +- **Trazabilidad**: Todo cambio debe poder rastrearse desde la bitácora a los documentos. +- **Consistencia**: Usar siempre el mismo formato (ver `docs/ambito/dtic-BKPs/A03_dtic-BKPs.md` como referencia). + +--- + ## 📌 Principio "Menos es Más" Este archivo contiene solo lo esencial para operar. Para detalles completos, consultar las hebras canónicas: @@ -188,6 +220,23 @@ Para información completa sobre todas las hebras del ADN, consultar `adn/00_ind | `adn/02_bitacora.md` | Formato y triggers de bitácoras | | `adn/03_seguridad.md` | Protocolos de seguridad y candados 🔐 | | `adn/01_ontologia.md` | Nodos, ámbitos y topología | +| `docs/ambito/dtic-ADN/A01_dtic-ADN.md` | Ámbito A01: Ecosistema core — `./adn/tools/run` | +| `docs/ambito/dtic-DIGIs/` | Ámbito A02: Digitalización y Gestión Documental | +| `docs/ambito/dtic-BKPs/` | Ámbito A03: Backups — `./adn/tools/run bkps` | +| `docs/ambito/dtic-DASUTEN/` | Ámbito A04: Infraestructura DASUTEN — `./adn/tools/run dasuten` | +| `adn/tools/cli/dron.rb` | Vigía tareas largas — `./adn/tools/run dron` | -**Última actualización:** 2026-03-30 -**Próxima revisión:** Al inicio de cada sesión \ No newline at end of file +**Última actualización:** 2026-04-07 (migración dtic-ADN a estándar de ámbito A01 completada) +**Próxima revisión:** Al inicio de cada sesión + +--- + +## 🤖 Estado de Drones (Verificación 2026-04-06 13:17) + +**Flota:** 2 drones detectados → ambos completados y limpiados +- `dron_125106_654316` — Evento #1395: "Test diario de vuelo" (`sleep 3`) → ✔ Completado (0min) +- `dron_125505_657901` — Evento #1398: "Test diario v2" (`echo Hola...`) → ✔ Completado + +**Diagnóstico:** Drones operaron correctamente pero quedaron como "zombies" (PID muerto, estado=vigilando). El health check (`dron salud`) los auto-reparó y `dron limpiar` los removió. + +**Lección:** El sistema de auto-reparación funciona. Verificar flota al inicio de sesión con `./adn/tools/run dron salud`. \ No newline at end of file