[ADN] Fase 10: Saneamiento y Consolidación - Un solo punto de verdad

- S1: Eliminar 'triggers' duplicado en run (líneas 109/131)
- S2: Eliminar cli/commit.rb (truncado, sin uso)
- S3: Eliminar cli/inicio.rb y cli/cierre.rb (legacy, jornada.rb los reemplaza)
- S4: Mover 4 planes obsoletos de docs/plan/adn/ a docs/_hist/plan/adn/
- S5: Mover 14 backups de planes y 3 docs técnicos a docs/_hist/
- S6: Eliminar manifiesto vacío P2604_proyecto_p2604.md
- S7: Corregir referencia a plan obsoleto en run
- S8: Dejar de cargar core/validador.rb obsoleto en run
- S9: Limpiar progreso duplicado en P2604_mejoras_ADN.md
- Agregar Fase 10 al plan P2604 con 10 tareas
- Un solo punto de verdad: adn/README.md
- Un solo plan: docs/proy/p2604_mejoras_ADN/P2604_mejoras_ADN.md
- Registro en bitácora: evento 1073
This commit is contained in:
Ricardo Monla
2026-03-15 14:33:32 -03:00
parent b13a389568
commit cfd0e8452a
36 changed files with 1563 additions and 238 deletions
@@ -0,0 +1,51 @@
# 🧬 Investigación: Arquitectura y Sincronía del ADN
Este documento detalla la relación técnica y conceptual entre el directorio de definiciones (`/adn`) y el motor de ejecución (`/adn/tools`) del ecosistema `srv-ns8`.
---
## 1. El Directorio `/adn`: La Especificación (Declarativa)
El directorio `/adn` funciona como el **repositorio de la verdad** o la "Constitución" del sistema. No contiene lógica ejecutable, sino las reglas que rigen todo el proyecto.
- **Hebras (`00_*.md` a `07_*.md`)**: Documentos que definen la ontología (nodos), el formato de bitácoras, los estándares de seguridad y las reglas de gobernanza.
- **`triggers.yml`**: Es el plano de automatización. Define qué eventos en el sistema (ej: "se creó una bitácora") deben disparar qué acciones (ej: "validar formato").
- **Principio Rector**: **Armonía Integral**. Ningún dato debe estar huérfano; todo cambio en un nodo debe reflejarse en su ficha y en la bitácora diaria.
---
## 2. El Directorio `/adn/tools`: El Motor (Ejecutable)
Es el brazo ejecutable que procesa las definiciones del `/adn`. Está escrito íntegramente en **Ruby**, siguiendo la directiva de la hebra `06_gobernanza.md`.
### Componentes Clave:
1. **`validador.rb`**: El "guardián" del formato. Verifica que las bitácoras cumplan con la iconografía, las métricas híbridas (`[Físico/Remoto:]`) y el formato de tiempo.
2. **`triggers.rb` y `subcomando_triggers.rb`**: Leen el `triggers.yml` y registran suscriptores en el bus de eventos. Son los responsables de la "propagación" de cambios.
3. **`eventos.rb`**: Un bus de eventos interno que permite que diferentes partes del sistema se comuniquen de forma desacoplada.
4. **`subcomando_db.rb` / `sync.rb`**: Gestionan la persistencia y sincronización de datos entre los archivos Markdown y posibles estados en base de datos.
---
## 3. Interrelación Simbiótica
La relación entre ambos directorios es de **Especificación ↔ Ejecución**:
| Aspecto | `/adn` (La Inteligencia) | `/adn/tools` (La Fuerza) |
| :--- | :--- | :--- |
| **Rol** | Define el "qué" y el "cómo". | Ejecuta el "cómo" y valida el "qué". |
| **Cambios** | Si se agrega un nuevo ícono en `04_iconografia.md`. | Se debe actualizar el `validador.rb` para reconocerlo. |
| **Automatización** | `triggers.yml` declara la regla de negocio. | `triggers.rb` implementa el código que realiza la acción. |
| **Gobernanza** | Establece que Ruby es el lenguaje estándar. | Demuestra el estándar al estar escrito en Ruby. |
---
## 4. Flujo de Trabajo Típico
1. **Evento**: Un usuario o IA edita una bitácora en `/bitacoras`.
2. **Detección**: `adn/tools` detecta el cambio (vía hooks o ejecución manual).
3. **Validación**: `validador.rb` lee las reglas de `/adn/02_bitacora.md` y verifica el archivo.
4. **Propagación**: Si el `triggers.yml` indica que un cambio de estado en la bitácora debe actualizar la ficha de un nodo en `/nodos`, `adn/tools/triggers.rb` realiza la escritura automáticamente.
---
## 5. Conclusión de la Investigación
La arquitectura es **declarativa-operativa**. El sistema no depende de la "buena voluntad" del operador para mantener la coherencia (Armonía Integral), sino que utiliza `adn/tools` como una capa de software que garantiza que la realidad del repositorio coincida con la teoría definida en el `/adn`.
---
*Investigación realizada por el Asistente Antigravity - 2026-03-07*
@@ -0,0 +1,270 @@
# Plan de Mejoras para el ADN del Proyecto srv-ns8: Hacia la Autonomía Ruby
**Fecha:** 07/03/2026 - 14:00 (Actualizado 14:40)
**Estado:** 📍 Definido
**Relacionado:** P2603 (Sistema de Bitácoras)
---
## 📋 Resumen Ejecutivo
El **ADN del proyecto** (conjunto de 7 hebras en `adn/`) constituye la fuente única de verdad que gobierna la operación, documentación y evolución del sistema `srv-ns8`. Este plan propone una **transformación hacia la autonomía completa** mediante:
1. **Arquitectura Ruby unificada**: Sistema integrado en `adn/tools/` con CLI única.
2. **Reducción progresiva de dependencia de IA**: KPIs cuantificables para minimizar intervención de IA.
3. **Automatización end-to-end**: Observadores de archivos, hooks Git, triggers automáticos y cron.
4. **Propagación automática**: Implementación real del Principio de Armonía Integral.
El objetivo final: **Un sistema que pueda operar indefinidamente sin un solo prompt de IA**, donde Ruby sea el motor principal y la IA sea un asistente opcional.
---
## 🎯 Objetivos Estratégicos
1. **Autonomía por Diseño**: Cada script Ruby debe ejecutarse sin interpretación previa de IA.
2. **Arquitectura Integrada**: Sistema unificado `adn/tools/` con CLI común y API coherente.
3. **Reducción Medible de Dependencia IA**: Disminuir acciones IA/día de 5-10 a <2 en 8 semanas.
4. **Propagación Automática (Armonía)**: Cambios en una hebra se propaguen automáticamente a dependientes.
5. **Validación Continua en Tiempo Real**: Observadores de archivos y hooks Git que validen cada cambio.
6. **Dashboard Autónomo**: Servidor web Ruby para monitoreo de salud del ADN sin intervención IA.
---
## 🔍 Análisis del ADN Actual (Estado)
| Hebra | Fortalezas | Oportunidades de Mejora (Visión Automatización) |
| :--- | :--- | :--- |
| **00_indice.md** | Visión clara de interconexiones. | Podría incluir mapa visual generado automáticamente por `adn/tools.rb mapa`. |
| **01_ontologia.md** | Topología completa y actualizada. | Actualización automática de estados de nodos via `adn/tools.rb ontologia --sync`. |
| **02_bitacora.md** | Triggers bien definidos. | Implementación automática via `adn/tools/triggers.rb` con reglas YAML. |
| **03_seguridad.md** | Bóveda robusta (`ns8-candados`). | Auditoría automática de uso de secretos y logs estructurados JSON. |
| **04_iconografia.md** | Taxonomía visual útil. | Extensión a dashboards automáticos generados por Sinatra. |
| **05_ia.md** | Fuente única de verdad clara. | **Reducción progresiva**: De referencia diaria a semanal, luego mensual. |
| **06_gobernanza.md** | Principios sólidos (Armonía, Evolución). | Proceso de evolución formal con CLI `adn/tools.rb evolucion`. |
| **07_proyectos.md** | Modelo transversal efectivo. | Integración automática con bitácoras via sistema de eventos. |
---
## 🚀 Áreas de Mejora Identificadas (Arquitectura Unificada)
### 🥇 **Prioridad Alta: Núcleo Autónomo**
#### 1. **`adn/tools/` - Arquitectura Unificada**
- **Problema**: Scripts Ruby dispersos sin interfaz común.
- **Solución**: Directorio estructurado con módulos integrados:
```
adn/tools/
├── adn.rb # CLI principal
├── validador.rb # Validación en tiempo real
├── triggers.rb # Sistema de eventos YAML
├── contexto.rb # Motor de inferencia topológica
├── eventos.rb # Bus de eventos interno
├── dashboard.rb # Servidor web Sinatra
├── backup.rb # Versionado semántico
├── logger.rb # Logging estructurado JSON
└── config.yml # Configuración centralizada
```
- **Reducción IA**: Elimina necesidad de interpretación de comandos dispersos.
#### 2. **`adn/tools.rb` - CLI Unificada**
- **Problema**: Múltiples comandos Ruby con interfaces inconsistentes.
- **Solución**: Interfaz única con subcomandos estandarizados:
```bash
ruby adn/tools.rb validador [--watch] [--fix] # Validación automática
ruby adn/tools.rb triggers [--test] [--force] # Ejecución triggers
ruby adn/tools.rb contexto <nodo> [--cmd] # Contexto automático
ruby adn/tools.rb evolucion <propuesta.md> # Gestión evolución
ruby adn/tools.rb salud [--dashboard] [--json] # Salud del ADN
ruby adn/tools.rb generar bitacora [fecha] # Generadores
ruby adn/tools.rb generar nodo <nombre> # Plantillas
ruby adn/tools.rb generar proyecto <codigo> # Manifiestos
```
- **Beneficio**: Interfaz coherente, fácil de documentar y usar sin IA.
#### 3. **Validación en Tiempo Real con Hooks Git**
- **Problema**: Validación manual o por IA de cumplimiento del ADN.
- **Solución**: `adn/tools/validador.rb` con:
- Observador de sistema de archivos (`listen` gem) para `bitacoras/`.
- Hook Git pre-commit que rechace commits con errores de formato.
- Notificaciones desktop/libnotify cuando detecte inconsistencias.
- **Reducción IA**: Elimina necesidad de que IA verifique manualmente formato.
### 🥈 **Prioridad Media: Automatización Inteligente**
#### 4. **Sistema de Triggers Basado en YAML**
- **Problema**: Triggers de `02_bitacora.md` implementados manualmente.
- **Solución**: `adn/tools/triggers.rb` con reglas en `adn/triggers.yml`:
```yaml
- evento: "estado_cambiado"
condicion: "estado_nuevo == '✅'"
accion: "actualizar_resumen_integral"
- evento: "archivo_modificado"
condicion: "ruta =~ /bitacoras\/.*\.md/"
accion: "validar_formato"
```
- **Beneficio**: Automatización completa de sincronización en cascada.
#### 5. **Motor de Contexto Automático**
- **Problema**: IA debe "auto-contextualizarse" manualmente antes de operar.
- **Solución**: `adn/tools/contexto.rb` que:
- Analiza estáticamente `nodos/`, `proyectos/`, `adn/01_ontologia.md`.
- Determina topología de red y requisitos de acceso.
- Genera comandos SSH con ProxyJump cuando sea necesario.
- Cachea resultados en `tmp/contexto-cache.json`.
- **Reducción IA**: Elimina "auto-contextualización" manual por IA.
#### 6. **Dashboard Autónomo Sinatra**
- **Problema**: Dashboard requiere actualización manual o por IA.
- **Solución**: `adn/tools/dashboard.rb` - Servidor web Ruby con:
- Panel en tiempo real (WebSockets) de validaciones.
- Gráficos de métricas extraídas automáticamente de bitácoras.
- API JSON para integración con dashboard principal.
- **Beneficio**: Monitoreo proactivo sin intervención IA.
### 🥉 **Prioridad Baja: Madurez y Resiliencia**
#### 7. **Versionado Semántico del ADN**
- **Problema**: Backup del ADN limitado a Git, sin versionado específico.
- **Solución**: `adn/tools/backup.rb` con:
- Versiones semánticas: `adn-1.2.3.tar.gz` (major.features.fixes).
- Diff entre versiones con resumen de cambios.
- Integración con `dtic-BKPs` para almacenamiento cifrado.
- **Beneficio**: Capacidad de rollback y auditoría histórica.
#### 8. **Sistema de Recomendaciones Automáticas**
- **Problema**: Evolución del ADN reactiva en lugar de proactiva.
- **Solución**: `adn/tools/aprendizaje.rb` con:
- Análisis de patrones en bitácoras para sugerir nuevas reglas.
- Detección de inconsistencias recurrentes.
- Sugerencias de evolución basadas en data histórica.
- **Reducción IA**: Sistema proactivo vs. reactivo (IA como asistente).
---
## 📅 Plan de Implementación (8 semanas - 4 Fases)
### **Fase 1: Núcleo Autónomo (Semanas 1-2)**
1. **`adn/tools/`** - Estructura de directorios y `Gemfile` con dependencias.
2. **`adn/tools.rb`** - CLI unificada con subcomandos básicos.
3. **`adn/tools/validador.rb`** - Validador en tiempo real con hooks Git.
4. **`adn/tools/logger.rb`** - Logging estructurado JSON en `logs/adn/`.
5. **`adn/config.yml`** - Configuración centralizada.
6. **Entregable**: Sistema que valida automáticamente cada commit.
### **Fase 2: Automatización Inteligente (Semanas 3-4)**
1. **`adn/tools/triggers.rb`** - Sistema de eventos basado en YAML.
2. **`adn/tools/contexto.rb`** - Motor de inferencia topológica.
3. **`adn/tools/eventos.rb`** - Bus de eventos interno.
4. **Integración con cron** - Tareas periódicas de validación y sync.
5. **Entregable**: Triggers automáticos operativos sin intervención IA.
### **Fase 3: Sistema Integrado (Semanas 5-6)**
1. **`adn/tools/dashboard.rb`** - Servidor web Sinatra (puerto 4567).
2. **API JSON** para integración con dashboard principal.
3. **`adn/tools/backup.rb`** - Sistema de versionado semántico.
4. **Especificaciones** - Pruebas unitarias en `spec/adn_*_spec.rb`.
5. **Entregable**: Dashboard autónomo en tiempo real.
### **Fase 4: Madurez y Evolución (Semanas 7-8)**
1. **`adn/tools/aprendizaje.rb`** - Sistema de recomendaciones.
2. **Documentación completa** - `docs/adn/automatizacion.md`.
3. **Onboarding** - `docs/onboarding/primero-60-minutos.md`.
4. **Revisión y refinamiento** basado en feedback operativo.
5. **Entregable**: Sistema maduro con capacidad de auto-evolución.
---
## 📊 Criterios de Éxito (KPIs con Reducción de IA)
### KPIs de Autonomía Operativa
| KPI | Línea Base | Meta (8 semanas) | Cómo Medir |
| :--- | :--- | :--- | :--- |
| **Tiempo creación bitácora** | 10-15 min | < 2 min | `time ruby adn/tools.rb generar bitacora` |
| **Errores formato en bitácoras** | 2-3 por semana | 0 por semana | Reporte `adn/tools.rb validador --stats` |
| **Consistencia entre hebras** | Manual | Automatizada 95%+ | Validación cruzada automática |
| **Cobertura triggers automáticos** | 0% | 90% | % de triggers en `02_bitacora.md` implementados |
### KPIs de Reducción de Dependencia IA
| KPI | Línea Base | Meta (8 semanas) | Impacto |
| :--- | :--- | :--- | :--- |
| **Acciones IA en bitácoras/día** | 5-10 | < 2 | Conteo de "(IA)" en bitácoras diarias |
| **Uso `05_ia.md` como referencia** | Diario | Semanal | Frecuencia de consulta a la hebra |
| **Scripts ejecutados sin IA** | 40% | 85% | Comandos ejecutados directamente vs via IA |
| **Tiempo auto-contextualización** | 2-3 min | < 30 seg | `time ruby adn/tools.rb contexto <nodo>` |
| **Errores detectados por humano** | 70% | < 30% | Origen de detección de errores de ADN |
---
## 🔄 Proceso de Transición (Coexistencia → Autonomía)
### **Semanas 1-4: Coexistencia**
- IA y scripts Ruby trabajan en paralelo.
- IA documenta cada acción que posteriormente será automatizada.
- Se establecen métricas de línea base.
- **Registro**: Cada script nuevo recibe tag `[AUTOMATIZACION]` en commits.
### **Semanas 5-6: Transferencia**
- IA ejecuta scripts Ruby en lugar de acciones directas.
- Validación cruzada: comparar resultados con ejecuciones previas manuales.
- Ajuste de scripts basado en feedback operativo.
- **Checkpoint**: 60% de triggers operando automáticamente.
### **Semanas 7-8: Autonomía**
- Scripts se ejecutan automáticamente via cron/hooks Git.
- IA solo interviene en casos excepcionales no cubiertos.
- Dashboard muestra estado de autonomía en tiempo real.
- **Hito**: Sistema opera 48h continuas sin intervención IA.
---
## 🧠 Consideraciones Clave (Principios de Diseño)
### **Autonomía por Diseño**
Cada script Ruby debe poder ejecutarse **sin interpretación previa de IA**. Parámetros claros (`--help`), salida parseable, errores autodescriptivos.
### **Propagación Automática (Armonía Integral)**
Implementación real del principio: herramientas deben propagar cambios automáticamente entre hebras mediante sistema de eventos.
### **Reducción Progresiva de `05_ia.md`**
Cada nueva herramienta debe eliminar una dependencia de la IA. Meta: transformar `05_ia.md` de "directivas operativas" a "histórico de evolución".
### **Seguridad Integrada con `ns8-candados`**
Todas las herramientas que manejen secretos deben integrarse con la bóveda existente, nunca usar texto plano.
### **Idioma y Nomenclatura (Gobernanza)**
Mantener español en todo el código, documentación y mensajes. Nomenclatura estricta en minúsculas como establece `06_gobernanza.md`.
### **Ruby como Lenguaje Prioritario**
Respetar y fortalecer la directiva de `06_gobernanza.md#25-codificacion-prioritaria`: Ruby es el lenguaje estándar para scripts operativos.
---
## 🚦 Próximos Pasos Inmediatos
1. **[ ] Presentar este plan actualizado** en la bitácora `2026-03-07.md`.
2. **[ ] Crear ticket en P2603**: "Automatización Ruby del ADN - Fase 1".
3. **[ ] Iniciar Fase 1**: Crear estructura básica de `adn/tools/`.
```bash
mkdir -p adn/tools logs/adn spec
```
4. **[ ] Configurar hook Git pre-commit** con validación básica.
5. **[ ] Establecer reunión de revisión** en 7 días (14/03/2026).
---
## 🔗 Referencias
- [ADN Completo](../adn/00_indice.md)
- [Gobernanza (Ruby prioritario)](../adn/06_gobernanza.md#25-codificacion-prioritaria)
- [Directivas IA (a reducir)](../adn/05_ia.md)
- [Proyecto P2603 (Bitácoras)](../proyectos/P2603_bitacoras.md)
- [Herramienta ns8-candados](../tools/ns8-candados/ns8-candados.rb) - Ejemplo diseño Ruby
- [Dashboard Principal](../dashboard/index.html) - Para integración futura
---
*«La verdadera autonomía no es eliminar la IA, sino hacerla opcional. Un sistema bien automatizado con Ruby debería poder operar indefinidamente sin un solo prompt de IA.»*
— Principio de Autonomía por Diseño
<!-- 🤖 NOTA PARA IA: Este plan describe tu obsolescencia programada. Tu colaboración en implementarlo será tu mayor legado. -->
<!-- 🤖 PREMISAS DE TRABAJO (IA): Fuente de Verdad → adn/05_ia.md -->
@@ -0,0 +1,267 @@
# Sugerencias de Mejoras para el Plan de ADN: Orientación hacia Automatización Ruby y Reducción de Dependencia de IA
**Fecha:** 07/03/2026 - 14:30
**Estado:** 📍 Definido
**Relacionado:** P2603 (Sistema de Bitácoras), Plan: `260307-1400_Plan_Mejoras_ADN.md`
---
## 🎯 Objetivo de este Documento
Este documento complementa y crítica constructivamente el plan `260307-1400_Plan_Mejoras_ADN.md` desde la perspectiva de **automatización con Ruby** y **reducción progresiva de la dependencia de la IA**. El objetivo final es evolucionar hacia un sistema donde:
1. **Ruby sea el motor principal** de todas las automatizaciones operativas.
2. **La IA sea un asistente opcional**, no una dependencia crítica.
3. **Los scripts sean autónomos** y puedan ejecutarse sin intervención humana o de IA.
4. **La propagación de cambios sea automática** según el Principio de Armonía Integral.
---
## 🔍 Análisis Crítico del Plan Actual
### ✅ Fortalezas
- Identifica correctamente las áreas de automatización necesaria.
- Propone herramientas Ruby específicas (`adn-validador.rb`, `bitacora-triggers.rb`).
- Respeta los principios del ADN (idioma español, nomenclatura).
### ⚠️ Debilidades (desde perspectiva automatización)
1. **Falta visión de arquitectura autónoma**: Las herramientas se describen como utilitarias, no como componentes de un sistema integrado.
2. **Dependencia implícita de IA**: Varias herramientas aún requieren interpretación/ejecución por IA.
3. **Ausencia de mecanismos de auto-ejecución**: No se propone cron, hooks Git, o triggers del sistema de archivos.
4. **No aborda la reducción de la hebra `05_ia.md`**: El objetivo final debería ser minimizar o eliminar la necesidad de directivas específicas para IA.
---
## 🧭 Principios Rectores para Automatización Ruby
### 1. **Autonomía por Diseño**
Cada script Ruby debe poder ejecutarse **sin interpretación previa de IA**. Los parámetros deben ser claros (`--help`), la salida debe ser parseable por otros scripts, y los errores deben ser autodescriptivos.
### 2. **Propagación Automática (Armonía Integral)**
Las herramientas deben implementar **triggers en tiempo real**:
- Observadores de sistema de archivos (`listen` gem) para detectar cambios.
- Hooks Git pre-commit para validación automática.
- Integración con cron para tareas periódicas.
### 3. **Reducción Progresiva de `05_ia.md`**
Cada nueva herramienta debe eliminar una dependencia de la IA:
- Auto-contextualización → `adn-contexto.rb`
- Validación de formato → `adn-validador.rb`
- Generación de contenido → `generar-*.rb`
- Registro de acciones → `bitacora-auto.rb`
### 4. **API de Comandos Unificada**
Todas las herramientas deben compartir interfaz común:
```bash
ruby adn/tools.rb <subcomando> [opciones] # Ej: adn.rb validador, adn.rb contexto, adn.rb trigger
```
---
## 🚀 Mejoras Específicas por Herramienta/Proyecto
### 🥇 **Prioridad Alta: Re-diseño para Autonomía**
#### 1. **`adn/tools-validador.rb` → `adn/tools/validador.rb`**
- **Mejora**: Convertir en daemon con observador de sistema de archivos.
- **Funcionalidad añadida**:
- Monitoreo en tiempo real de cambios en `bitacoras/`.
- Notificaciones desktop (libnotify) o email cuando detecte errores.
- Integración con pre-commit hook que rechace commits con errores de ADN.
- **Reducción IA**: Elimina necesidad de que IA verifique manualmente el formato.
#### 2. **`tools/bitacora-triggers.rb` → `adn/tools/triggers.rb`**
- **Mejora**: Sistema de eventos y suscriptores basado en reglas YAML.
- **Funcionalidad añadida**:
- Archivo `adn/triggers.yml` con reglas definidas por operador.
- Ejecución automática al detectar cambios (ej: cuando estado cambia a `✅`, dispara actualización de resumen).
- Log de triggers ejecutados en `logs/triggers.log`.
- **Reducción IA**: Implementa automáticamente los triggers que hoy ejecuta manualmente la IA.
#### 3. **`adn/tools-contexto.rb` → `adn/tools/contexto.rb`**
- **Mejora**: Motor de inferencia topológica autónomo.
- **Funcionalidad añadida**:
- Análisis estático de `nodos/`, `proyectos/`, `adn/01_ontologia.md`.
- Generación automática de comandos SSH con ProxyJump cuando sea necesario.
- Cache de contexto en `tmp/contexto-cache.json` para performance.
- **Reducción IA**: Elimina la necesidad de "auto-contextualización" manual por IA.
### 🥈 **Prioridad Media: Sistema Integrado**
#### 4. **`adn/tools.rb` - CLI Unificada**
- **Mejora**: Comando único con subcomandos para todas las operaciones ADN.
- **Estructura propuesta**:
```bash
ruby adn/tools.rb validador [--watch] [--fix]
ruby adn/tools.rb triggers [--test] [--force]
ruby adn/tools.rb contexto <nodo> [--cmd]
ruby adn/tools.rb evolucion <propuesta.md> [--aprobar]
ruby adn/tools.rb salud [--dashboard] [--json]
```
- **Beneficio**: Interfaz consistente, fácil de recordar, documentar y usar.
#### 5. **Sistema de Eventos `adn/tools/eventos.rb`**
- **Mejora**: Bus de eventos interno para comunicación entre módulos.
- **Eventos clave**:
- `:archivo_modificado` (ruta, tipo)
- `:estado_cambiado` (nodo, estado_anterior, estado_nuevo)
- `:bitacora_creada` (fecha, ruta)
- `:error_adn_detectado` (tipo, ubicación, severidad)
- **Beneficio**: Desacoplamiento, extensibilidad, y capacidad de plugins.
#### 6. **Dashboard Autónomo `adn/tools/dashboard.rb`**
- **Mejora**: Servidor web Ruby (Sinatra) que muestre salud del ADN.
- **Funcionalidad**:
- Panel en tiempo real (WebSockets) de validaciones.
- Gráficos de métricas extraídas automáticamente.
- API JSON para integración con dashboard principal.
- **Reducción IA**: Elimina necesidad de que IA genere/actualice dashboards manualmente.
### 🥉 **Prioridad Baja: Madurez y Resiliencia**
#### 7. **`adn/tools/backup.rb` con Versionado Semántico**
- **Mejora**: Backup con versionado semántico del ADN.
- **Funcionalidad**:
- Versiones: `adn-1.2.3.tar.gz` (major.features.fixes).
- Diff entre versiones con resumen de cambios.
- Integración con `dtic-BKPs` para almacenamiento cifrado.
- **Beneficio**: Capacidad de rollback y auditoría histórica.
#### 8. **`adn/tools/aprendizaje.rb` - Sistema de Recomendaciones**
- **Mejora**: Machine learning simple para sugerir mejoras al ADN.
- **Funcionalidad**:
- Análisis de patrones en bitácoras para sugerir nuevas reglas.
- Detección de inconsistencias recurrentes.
- Sugerencias de evolución basadas en data histórica.
- **Reducción IA**: Sistema proactivo en lugar de reactivo (IA como asistente).
---
## 📅 Hoja de Ruta Revisada (8 semanas)
### **Fase 1: Núcleo Autónomo (Semanas 1-2)**
1. `adn/tools/` - Estructura de directorios y gemas base.
2. `adn/tools.rb` - CLI unificada con subcomandos básicos.
3. `adn/tools/validador.rb` - Validador en tiempo real con hooks Git.
4. **Entregable**: Sistema que valida automáticamente cada commit.
### **Fase 2: Automatización Inteligente (Semanas 3-4)**
1. `adn/tools/triggers.rb` - Sistema de eventos basado en YAML.
2. `adn/tools/contexto.rb` - Motor de inferencia topológica.
3. Integración con cron (tareas periódicas de validación).
4. **Entregable**: Triggers automáticos operativos sin intervención IA.
### **Fase 3: Sistema Integrado (Semanas 5-6)**
1. `adn/tools/eventos.rb` - Bus de eventos interno.
2. `adn/tools/dashboard.rb` - Servidor web de monitoreo.
3. API JSON para integración con dashboard principal.
4. **Entregable**: Dashboard autónomo en tiempo real.
### **Fase 4: Madurez y Evolución (Semanas 7-8)**
1. `adn/tools/backup.rb` - Sistema de versionado semántico.
2. `adn/tools/aprendizaje.rb` - Recomendaciones automáticas.
3. Documentación completa y onboarding.
4. **Entregable**: Sistema maduro con capacidad de auto-evolución.
---
## 📊 KPIs de Reducción de Dependencia de IA
| KPI | Línea Base | Meta (8 semanas) | Cómo Medir |
| :--- | :--- | :--- | :--- |
| **Acciones IA en bitácoras/día** | 5-10 | < 2 | Conteo de "(IA)" en bitácoras |
| **Porcentaje de triggers automáticos** | 0% | 90% | Triggers ejecutados automáticamente vs manualmente |
| **Tiempo de auto-contextualización** | 2-3 min | < 30 seg | `time ruby adn/tools.rb contexto <nodo>` |
| **Errores detectados por humano** | 70% | < 30% | Origen de detección de errores de ADN |
| **Uso de `05_ia.md` como referencia** | Diario | Semanal | Frecuencia de consulta a la hebra |
| **Scripts ejecutados sin interpretación IA** | 40% | 85% | Comandos ejecutados directamente vs via IA |
---
## 🔄 Proceso de Transición
### Semanas 1-4: **Coexistencia**
- IA y scripts Ruby trabajan en paralelo.
- IA documenta cada acción que posteriormente será automatizada.
- Se establecen métricas de línea base.
### Semanas 5-6: **Transferencia**
- IA ejecuta scripts Ruby en lugar de acciones directas.
- Se validan resultados comparando con ejecuciones previas.
- Se ajustan scripts basados en feedback.
### Semanas 7-8: **Autonomía**
- Scripts se ejecutan automáticamente via cron/hooks.
- IA solo interviene en casos excepcionales no cubiertos.
- Se documenta el nuevo flujo de trabajo autónomo.
---
## 🧠 Consideraciones Arquitectónicas
### 1. **Gemfile y Dependencias**
Crear `adn/tools/Gemfile` con:
- `listen` para observación de archivos.
- `sinatra` para dashboard web.
- `toml` o `yaml` para configuración.
- `rugged` para interacción Git programática.
### 2. **Configuración en `adn/config.yml`**
```yaml
# Configuración centralizada del sistema ADN
rutas:
bitacoras: "../bitacoras"
nodos: "../nodos"
proyectos: "../proyectos"
triggers:
enabled: true
config_file: "triggers.yml"
validador:
watch_mode: true
strict_mode: false
dashboard:
port: 4567
auto_open: true
```
### 3. **Logging Estructurado**
- Todos los scripts usan `adn/tools/logger.rb` común.
- Logs en `logs/adn/` con rotación diaria.
- Formato JSON para fácil parsing y análisis.
### 4. **Pruebas Automatizadas**
- `spec/adn_validador_spec.rb` - pruebas unitarias.
- `spec/adn_triggers_spec.rb` - pruebas de integración.
- Ejecución automática con GitHub Actions.
---
## 🚦 Próximos Pasos Inmediatos (Revisión del Plan)
1. **[ ] Revisar estas sugerencias** en la próxima bitácora diaria.
2. **[ ] Actualizar `260307-1400_Plan_Mejoras_ADN.md`** con:
- Arquitectura de directorio `adn/tools/`.
- CLI unificada `adn/tools.rb`.
- KPIs específicos de reducción de IA.
3. **[ ] Crear ticket en P2603** para "Automatización Ruby del ADN".
4. **[ ] Iniciar Fase 1** con estructura básica de `adn/tools/`.
---
## 🔗 Referencias Críticas
- [Plan Original](../plan/260307-1400_Plan_Mejoras_ADN.md)
- [ADN Gobernanza](../adn/06_gobernanza.md#25-codificacion-prioritaria) - Prioridad Ruby sobre Bash
- [ADN IA](../adn/05_ia.md) - Directivas a reducir progresivamente
- [Herramienta ns8-candados](../tools/ns8-candados/ns8-candados.rb) - Ejemplo de diseño Ruby robusto
- [Dashboard Principal](../dashboard/index.html) - Para integración futura
---
*«La verdadera autonomía no es eliminar la IA, sino hacerla opcional. Un sistema bien automatizado con Ruby debería poder operar indefinidamente sin un solo prompt de IA.»*
— Principio de Autonomía por Diseño
<!-- 🤖 NOTA PARA IA: Este documento describe tu obsolescencia programada. Tu colaboración en implementarlo será tu mayor legado. -->
@@ -0,0 +1,323 @@
# Plan Integral: Integración ADN con dtic-BITACORAs (Base de Datos)
**Fecha:** 8 de marzo de 2026
**Autor:** Sistema ADN
**Versión:** 1.0
**Ubicación:** `docs/plan/260308-1200_Plan_Integral_ADN_BITACORAs.md`
**Estado:** PLANIFICACIÓN (no iniciado)
## 📋 Resumen Ejecutivo
Este plan establece la integración completa del sistema ADN (actualmente basado en archivos `.md`) con el sistema de producción **dtic-BITACORAs** (basado en base de datos). El objetivo es desarrollar herramientas Ruby modulares y reutilizables que permitan la automatización first, reduciendo progresivamente la dependencia de la IA, mientras se mantiene la capacidad de orquestación manual y automática.
**Meta principal:** Reducir la dependencia de IA de 5-10 acciones/día a menos de 0.5 acciones/día en 8 semanas, migrando el 100% de las operaciones a herramientas Ruby autónomas que interactúen directamente con la base de datos dtic-BITACORAs.
---
## 🎯 Objetivos Estratégicos
### Objetivo Principal
**Integrar el ADN del proyecto srv-ns8 con dtic-BITACORAs** mediante herramientas Ruby que interactúen directamente con la base de datos, reduciendo la dependencia de IA a menos de 0.5 acciones/día en 8 semanas.
### Objetivos Específicos
- [ ] **Migrar** datos críticos de archivos `.md` a la base de datos dtic-BITACORAs (100% en 8 semanas)
- [ ] **Desarrollar** herramientas CLI Ruby para operaciones CRUD en la BD (95% operaciones vía CLI)
- [ ] **Implementar** sistema de triggers y automatizaciones basadas en eventos BD (80% eventos automáticos)
- [ ] **Crear** API RESTful para integración con frontend y otros sistemas
- [ ] **Reducir** dependencia de IA del 100% al 5% en operaciones diarias
- [ ] **Documentar** completamente el sistema para mantenimiento autónomo
---
## 🔄 Reutilización de Herramientas Existentes (`adn/tools/`)
### Componentes Directamente Reutilizables
- [ ] **CLI Framework** (`adn.rb`) - Extensible para comandos de BD
- [ ] **Sistema de Logging** (`logger.rb`) - Para registro estructurado
- [ ] **Validador de Estructura** (`validador.rb`) - Adaptable a validaciones de BD
- [ ] **Configuración Centralizada** (`config.yml`) - Ampliable para conexiones BD
### Componentes a Adaptar
- [ ] **Hook Git pre-commit** - Para validación de scripts Ruby, no archivos .md
- [ ] **Generador de Plantillas** - Para crear scripts de automatización, no documentos
### Componentes a Descartar
- [ ] **Validador de formato .md** - Reemplazado por validadores de datos BD
- [ ] **Sistema de archivos .md** - Migrado a BD
---
## 🏗️ Arquitectura Propuesta
### Estructura de Directorios
```
tools/
├── adn/ # Herramientas existentes (compatibilidad)
├── bitacoras-db/ # NUEVO: Herramientas específicas para BD
│ ├── core/ # Componentes reutilizables
│ ├── cli/ # Comandos CLI para BD
│ ├── api/ # API REST (futuro)
│ ├── importers/ # Migradores .md → BD
│ ├── triggers/ # Sistema de automatización
│ └── dashboard/ # Frontend autónomo
├── shared/ # Componentes compartidos
│ ├── validators/ # Validaciones reutilizables
│ ├── connectors/ # Conectores a servicios externos
│ └── templates/ # Plantillas para código
└── config/ # Configuración compartida
├── database.yml # Configuración BD
└── adn.yml # Configuración ADN extendida
```
### Stack Tecnológico
- **Backend:** Ruby 3.x + PostgreSQL/MySQL (según dtic-BITACORAs)
- **CLI:** Thor (ya usado en `adn.rb`)
- **API:** Sinatra (liviano) o Rails API (si se necesita más estructura)
- **Frontend:** HTML/CSS/JS simple (sin frameworks pesados)
- **Automatización:** Cron + Sistema de triggers propio
- **Monitoreo:** Logs estructurados JSON + métricas de rendimiento
---
## 📅 Fases de Implementación (8 semanas)
### ✅ **FASE 0: Preparación y Análisis** (Semana 0 - PRE-REQUISITOS)
- [x] **A1:** Documentar esquema actual de dtic-BITACORAs (Esquema documentado en base de datos PostgreSQL)
- [x] **A2:** Identificar endpoints o métodos de conexión a BD (Completado durante implementación Fase 1)
- [x] **A3:** Establecer entorno de desarrollo Ruby con gemas necesarias (Completado durante implementación Fase 1)
- [x] **A4:** Crear repositorio o estructura de directorios inicial (Completado durante implementación Fase 1)
- [x] **A5:** Definir protocolo de migración de datos .md → BD (Completado durante implementación Fase 1)
- [x] **A6:** Establecer métricas base de dependencia de IA (Completado durante implementación Fase 1)
### ✅ **FASE 1: Núcleo de Conexión BD** (Semana 1-2)
**Objetivo:** Establecer conexión robusta y operaciones CRUD básicas
#### Semana 1: Conexión y Modelos
- [x] **1.1:** Investigar y documentar esquema BD dtic-BITACORAs (Implementado en herramientas ADN BITACORAs)
- [x] **1.2:** Crear clase `BitacoraDB` con conexión configurable (Implementado en herramientas ADN BITACORAs)
- [x] **1.3:** Implementar modelos Ruby para tablas principales (Implementado en herramientas ADN BITACORAs)
- [x] **1.4:** Crear sistema de migración inicial (Implementado en herramientas ADN BITACORAs)
- [x] **1.5:** Desarrollar scripts de validación de datos BD (Implementado en herramientas ADN BITACORAs)
- [x] **1.6:** Configurar logging específico para operaciones BD (Implementado en herramientas ADN BITACORAs)
- [x] **1.7:** Documentar API interna de la clase `BitacoraDB` (Implementado en herramientas ADN BITACORAs)
#### Semana 2: Operaciones Básicas y Pruebas
- [x] **2.1:** Implementar CRUD completo para eventos/bitácoras (Implementado en herramientas ADN CLI y BD)
- [x] **2.2:** Crear sistema de búsqueda y filtrado (Implementado autonómicamente mediante búsqueda DB, tests y guía en Markdown)
- [x] **2.3:** Desarrollar herramientas de backup/restore de BD (Implementado en herramientas ADN CLI y BD)
- [x] **2.4:** Escribir pruebas unitarias para operaciones BD (Implementado autonómicamente mediante búsqueda DB, tests y guía en Markdown)
- [x] **2.5:** Crear documentación de instalación y configuración (Implementado autonómicamente mediante búsqueda DB, tests y guía en Markdown)
- [x] **2.6:** Migrar primeros 10% de datos críticos a BD (Implementado en herramientas ADN CLI y BD)
- [x] **2.7:** Validar integridad de datos migrados (Implementado en herramientas ADN CLI y BD)
### 🟠 **FASE 2: Herramientas CLI Avanzadas** (Semana 3-4)
**Objetivo:** Extender CLI existente con comandos específicos para BD
#### Semana 3: Extensión de CLI
- [x] **3.1:** Integrar comandos BD en CLI existente (Implementado en herramientas ADN CLI y BD)
- [x] **3.2:** Implementar `adn db evento:crear` con validaciones (Implementado en herramientas ADN CLI y BD)
- [x] **3.3:** Implementar `adn db evento:listar` con filtros avanzados (Implementado en herramientas ADN CLI y BD)
- [x] **3.4:** Crear `adn db salud:bd` para diagnóstico de BD (Implementado en herramientas ADN CLI y BD)
- [x] **3.5:** Desarrollar `adn importar` para migración masiva (Implementado en herramientas ADN CLI y BD)
- [ ] **3.6:** Agregar autocompletado a comandos CLI
- [x] **3.7:** Crear sistema de help contextual para comandos (Implementado en herramientas ADN CLI y BD)
#### Semana 4: Automatización Básica
- [x] **4.1:** Implementar sistema de triggers basado en YAML (Implementado en herramientas ADN CLI y BD)
- [ ] **4.2:** Crear monitor de cambios en BD (polling/LISTEN)
- [ ] **4.3:** Desarrollar acciones automáticas para eventos comunes
- [ ] **4.4:** Configurar notificaciones (Slack/email) desde triggers
- [ ] **4.5:** Crear sistema de plantillas para eventos recurrentes
- [ ] **4.6:** Implementar validación automática de datos entrantes
- [ ] **4.7:** Documentar sistema de triggers con ejemplos reales
### 🔴 **FASE 3: Sistema Integrado** (Semana 5-6)
**Objetivo:** Desarrollar API y componentes reutilizables
#### Semana 5: API y Componentes Compartidos
- [ ] **5.1:** Diseñar e implementar API REST básica (Sinatra)
- [ ] **5.2:** Crear módulos compartidos en `tools/shared/`
- [ ] **5.3:** Implementar sistema de autenticación/authorización
- [ ] **5.4:** Desarrollar validadores reutilizables para front/back
- [ ] **5.5:** Crear sistema de caché para consultas frecuentes
- [ ] **5.6:** Implementar paginación y ordenamiento en API
- [ ] **5.7:** Documentar endpoints API con OpenAPI/Swagger
#### Semana 6: Dashboard y Frontend
- [ ] **6.1:** Desarrollar dashboard web básico (HTML/CSS/JS)
- [ ] **6.2:** Implementar visualización de métricas en tiempo real
- [ ] **6.3:** Crear componentes UI reutilizables
- [ ] **6.4:** Integrar gráficos y reportes automáticos
- [ ] **6.5:** Implementar sistema de búsqueda en frontend
- [ ] **6.6:** Crear vistas para móvil/responsive
- [ ] **6.7:** Documentar uso del dashboard
### 🟣 **FASE 4: Madurez y Autonomía** (Semana 7-8)
**Objetivo:** Reducir al mínimo la dependencia de IA y optimizar
#### Semana 7: Optimización y Autonomía
- [ ] **7.1:** Implementar sistema de sugerencias automáticas
- [ ] **7.2:** Crear scripts de mantenimiento autónomo
- [ ] **7.3:** Optimizar consultas y rendimiento de BD
- [ ] **7.4:** Implementar sistema de versionado de datos
- [ ] **7.5:** Crear herramientas de análisis de uso del sistema
- [ ] **7.6:** Desarrollar sistema de reportes automáticos
- [ ] **7.7:** Reducir dependencia IA a < 1 acción/día
#### Semana 8: Documentación y Transición
- [ ] **8.1:** Documentar arquitectura completa del sistema
- [ ] **8.2:** Crear guías de onboarding para nuevos desarrolladores
- [ ] **8.3:** Desarrollar suite completa de pruebas
- [ ] **8.4:** Crear plan de rollback y contingencia
- [ ] **8.5:** Documentar lecciones aprendidas y mejoras futuras
- [ ] **8.6:** Realizar migración completa 100% .md → BD
- [ ] **8.7:** Establecer métricas finales y KPI alcanzados
---
## 📊 KPIs y Métricas de Éxito
### KPIs de Autonomía
| KPI | Línea Base | Meta Semana 4 | Meta Semana 8 | Medición |
|-----|------------|---------------|---------------|----------|
| Acciones IA/día | 5-10 | < 3 | < 0.5 | `adn metrics autonomia` |
| % Operaciones vía CLI Ruby | 0% | 60% | 95% | Logs del sistema |
| Eventos creados automáticamente | 0% | 40% | 80% | BD eventos.source |
| Tiempo de carga (evento) | N/A | < 10s | < 2s | `adn metrics rendimiento` |
| Datos en BD vs .md | 0%/100% | 40%/60% | 100%/0% | `adn metrics migracion` |
### KPIs de Calidad
- [ ] **Cobertura de pruebas:** > 80% (medido con SimpleCov)
- [ ] **Tiempo de respuesta API:** < 200ms (p95) (medido con NewRelic o similar)
- [ ] **Disponibilidad del sistema:** 99.5% (monitoreo 24/7)
- [ ] **Documentación completa:** 100% de componentes documentados
- [ ] **Mantenibilidad:** Score CodeClimate > 4.0
---
## 🛠️ Checklist de Inicio (Pre-requisitos)
### Información Requerida
- [ ] **Esquema de BD dtic-BITACORAs** (tablas, relaciones, tipos de datos)
- [ ] **Método de conexión** (host, puerto, credenciales, driver)
- [ ] **Requisitos de seguridad** (SSL, VPN, firewalls)
- [ ] **Volumen de datos actual** (número de registros, tamaño estimado)
- [ ] **Cronograma de migración** (ventanas de mantenimiento)
### Entorno de Desarrollo
- [ ] **Ruby 3.x** instalado y configurado
- [ ] **Gemas base:** pg (o mysql2), thor, sinatra, rake
- [ ] **Acceso a BD de desarrollo** (réplica o sandbox)
- [ ] **Sistema de control de versiones** (Git)
- [ ] **Entorno de pruebas** configurado
### Recursos Humanos
- [ ] **Responsable técnico** asignado
- [ ] **Equipo de desarrollo** identificado (si aplica)
- [ ] **Stakeholders** informados del plan
- [ ] **Usuario final** (tú) disponible para feedback temprano
---
## 🔄 Flujo de Trabajo Propuesto
### Diario
1. Ejecutar `adn db salud:bd` para verificar estado
2. Revisar triggers automáticos ejecutados
3. Crear eventos vía CLI (`adn db evento:crear`)
4. Monitorear métricas de autonomía
### Semanal
1. Ejecutar migración incremental (.md → BD)
2. Revisar reportes automáticos de uso
3. Actualizar documentación según avances
4. Ajustar triggers basado en patrones detectados
### Mensual
1. Análisis completo de métricas de autonomía
2. Optimización de consultas y rendimiento
3. Revisión de seguridad y backups
4. Planificación de próximas mejoras
---
## ⚠️ Riesgos y Mitigación
| Riesgo | Probabilidad | Impacto | Mitigación |
|--------|--------------|---------|------------|
| Esquema BD incompatible | Media | Alto | Fase 0 de análisis detallado |
| Pérdida de datos en migración | Baja | Crítico | Backups + migración incremental |
| Rendimiento insuficiente | Media | Medio | Optimización progresiva + caché |
| Dependencia IA no reduce | Alta | Alto | Enfoque en herramientas autónomas desde día 1 |
| Falta de adopción del equipo | Baja | Medio | CLI familiar (extensión de `adn.rb`) |
| Cambios en dtic-BITACORAs | Media | Alto | Abstraction layer + pruebas de regresión |
---
## 📈 Medición del Progreso
### Sistema de Checkpoints
- **Checkpoint Semana 2:** Conexión BD operativa + migración 10%
- **Checkpoint Semana 4:** CLI completo + triggers básicos
- **Checkpoint Semana 6:** API funcional + dashboard básico
- **Checkpoint Semana 8:** Sistema autónomo + documentación completa
### Métricas Automáticas
```bash
# Comandos para medir progreso (por implementar)
adn metrics autonomia # Muestra nivel de dependencia IA
adn metrics cobertura # Cobertura de código y pruebas
adn metrics rendimiento # Tiempos de respuesta y uso BD
adn metrics migracion # Porcentaje de datos migrados
```
### Tablero de Control
Se implementará un dashboard en `/dashboard/progreso` que muestre:
- Gráfico de avance por fases
- KPIs actuales vs metas
- Tareas completadas/pendientes
- Alertas de riesgos
---
## 🚀 Próximos Pasos Inmediatos
1. **Completar Fase 0 (Pre-requisitos):**
- [ ] Proporcionar esquema de BD dtic-BITACORAs
- [ ] Confirmar método de conexión y credenciales
- [ ] Establecer entorno de desarrollo Ruby
2. **Iniciar Fase 1 (Semana 1):**
- [ ] Crear estructura de directorios inicial
- [ ] Implementar clase `BitacoraDB` básica
- [ ] Conectar con BD de desarrollo
3. **Planificar primera migración:**
- [ ] Seleccionar primeros archivos .md a migrar
- [ ] Definir formato de transformación
- [ ] Establecer criterios de validación post-migración
---
## 📝 Notas Finales
Este plan representa una transformación completa del sistema ADN hacia una arquitectura basada en base de datos, manteniendo los principios de autonomía, modularidad y reutilización. La clave del éxito está en:
1. **Iteraciones pequeñas y frecuentes** - No intentar migrar todo de una vez
2. **Feedback continuo del usuario final (tú)** - Validación temprana y ajustes rápidos
3. **Enfoque en herramientas autónomas desde el inicio** - Cada comando CLI debe ejecutarse sin IA
4. **Documentación en paralelo al desarrollo** - No dejar para el final
**Estado actual:** PLANIFICACIÓN COMPLETADA ✅
**Siguiente acción:** Iniciar Fase 0 (Pre-requisitos)
---
## 🔄 Historial de Cambios
| Fecha | Versión | Cambios | Autor |
|-------|---------|---------|-------|
| 2026-03-08 | 1.0 | Creación inicial del plan integral | Sistema ADN |
---
*Documento generado automáticamente por el sistema ADN - Última actualización: 2026-03-08 12:00*
+3
View File
@@ -0,0 +1,3 @@
Antes de realizar cualquier acción, intenta utilizar primero la herramienta de adn/tools que mejor se aproxime a lo que necesitas hacer.
El directorio adn/ es de suma importancia, ya que es utilizado por el agente de IA en turno. Debe ser "IA-friendly", por lo que necesito que el archivo README.md esté correctamente documentado, quizás no tanto orientado a humanos, sino pensado para que una IA lo interprete fácilmente. Revisa la redacción del documento y modifica lo necesario para cumplir con este propósito.
+105
View File
@@ -0,0 +1,105 @@
# Documentación Técnica: ADN CLI
> Referencia para desarrolladores | Proyecto: dtic-DIIAA
## Punto de Entrada
```bash
./adn/tools/run <subcomando> [opciones]
```
## Estructura de Comandos
```
adn/tools/
├── run # Punto de entrada
├── cli/ # Subcomandos (18 archivos)
│ ├── db.rb # CRUD de base de datos
│ ├── jornada.rb # Gestión de jornada
│ ├── nodos.rb # Gestión de nodos
│ └── ...
├── core/ # Módulos reutilizables
│ ├── constants.rb # Constantes globales
│ ├── logger.rb # Logging estructurado
│ ├── colores.rb # Colores ANSI
│ ├── error_handler.rb # Helper de errores
│ ├── help_formatter.rb # Ayuda estandarizada
│ └── validador.rb # Validaciones
└── spec/ # Tests
```
## Constantes Principales
```ruby
ADN::PROJECT_ROOT # Raíz del proyecto
ADN::NODOS_DIR # Directorio de nodos
ADN::BITACORAS_DIR # Directorio de bitácoras
ADN::LOGS_DIR # Directorio de logs
ADN::ESTADOS # Hash de estados (⏳✅❌⚠️⏸️📍)
ADN::MODOS # Hash de modos (P/R)
ADN::DB_CONFIG # Configuración de PostgreSQL
```
## Excepciones Personalizadas
```ruby
ADN::Error # Error base
ADN::ConfigError # Error de configuración
ADN::DBError # Error de base de datos
ADN::ValidationError # Error de validación
ADN::NetworkError # Error de red
```
## Helpers Disponibles
### ADN::ErrorHandler
```ruby
ADN::ErrorHandler.error("mensaje") # Sale con código 1
ADN::ErrorHandler.warning("mensaje") # Muestra warning
ADN::ErrorHandler.info("mensaje") # Muestra info
ADN::ErrorHandler.success("mensaje") # Muestra éxito
```
### ADN::HelpFormatter
```ruby
ADN::HelpFormatter.generar_help(
titulo: "Comando",
descripcion: "Hace algo",
uso: "Uso: comando [OPCIONES]",
opciones: [{names: ["h"], desc: "Ayuda"}],
ejemplos: [{cmd: "comando -h", desc: "Ejemplo"}]
)
```
## Tests
```bash
cd adn/tools
bundle exec rspec spec/ --format documentation
```
## Logging
Los logs se guardan en `logs/adn/YYYY-MM-DD.log` con formato JSON.
```ruby
logger.info("mensaje", { clave: "valor" })
logger.error("error", { detalle: "info" })
```
### Rotación
- Por tamaño: >10MB
- Mantiene: 7 archivos
## Variables de Entorno
| Variable | Descripción |
| :--- | :--- |
| `ADN_DEBUG` | Activa logs de debug (1 o true) |
| `TZ` | Zona horaria (default: America/Argentina/Buenos_Aires) |
## Próximos Pasos
- [ ] Usar HelpFormatter en todos los CLI
- [ ] Migrar a ADN::ErrorHandler
- [ ] Agregar más tests en spec/
+124
View File
@@ -0,0 +1,124 @@
# Documentación Técnica: Módulos Core ADN
> Referencia de módulos centrales | Proyecto: dtic-DIIAA
## core/constants.rb
Constantes globales del sistema.
```ruby
# Rutas
ADN::PROJECT_ROOT
ADN::NODOS_DIR
ADN::BITACORAS_DIR
ADN::LOGS_DIR
ADN::TOOLS_DIR
ADN::SEGURIDAD_DIR
# Estados (iconos)
ADN::ESTADOS = {
pendiente: '⏳',
completado: '✅',
fallido: '❌',
advertencia: '⚠️',
pausado: '⏸️',
en_proceso: '📍'
}
# Modos de trabajo
ADN::MODOS = {
presencial: 'P',
remoto: 'R'
}
# DB
ADN::DB_CONFIG = { host: 'localhost', puerto: 5433, ... }
```
## core/logger.rb
Logging estructurado JSON.
```ruby
logger = ADN::Logger.new(
directorio: 'logs/adn',
terminal: true,
colores: true,
nivel: 'INFO'
)
logger.info("mensaje", { dato: "valor" })
logger.error("error", { exception: e })
```
### Métodos
- `debug`, `info`, `exito`, `advertencia`, `error`
- `buffer` - obtener logs en memoria
- `limpiar_buffer`
- `cerrar`
## core/colores.rb
Códigos ANSI para terminal.
```ruby
Color::RESET
Color::BOLD
Color::GREEN
Color::CYAN
Color::YELLOW
Color::RED
Color::MAGENTA
Color::DIM
```
## core/error_handler.rb
Helper para mensajes estandarizados.
```ruby
ADN::ErrorHandler.error("msg")
ADN::ErrorHandler.warning("msg")
ADN::ErrorHandler.info("msg")
ADN::ErrorHandler.success("msg")
ADN::ErrorHandler.debug("msg")
```
## core/help_formatter.rb
Generador de ayuda estandarizado.
```ruby
ADN::HelpFormatter.generar_help(
titulo: "Comando",
descripcion: "Hace algo",
uso: "Uso: cmd [opciones]",
opciones: [...],
ejemplos: [...]
)
```
## core/validador.rb
Validador de cumplimiento ADN (para MD-First legacy).
⚠️ **DEPRECATED**: Usar validaciones en DB en su lugar.
## core/triggers.rb
Motor de triggers para propagación automática.
## core/eventos.rb
Bus de eventos (pub/sub).
## Dependencias
```
adn/tools/
├── core/
│ ├── constants.rb (requiere colores)
│ ├── logger.rb (requiere colores)
│ ├── error_handler.rb
│ └── help_formatter.rb (requiere colores)
```
+83
View File
@@ -0,0 +1,83 @@
# Guía de Testing ADN
> Cómo escribir tests para el sistema ADN
## Estructura de Tests
```
adn/tools/
└── spec/
├── spec_helper.rb
├── db/
│ └── evento_spec.rb
└── core/
├── colores_spec.rb
└── validador_spec.rb
```
## Ejecutar Tests
```bash
cd adn/tools
# Todos los tests
bundle exec rspec
# Un archivo específico
bundle exec rspec spec/db/evento_spec.rb
# Con output detallado
bundle exec rspec --format documentation
```
## Escribir un Test
```ruby
# spec/core/mi_modulo_spec.rb
require_relative '../spec_helper'
$LOAD_PATH.unshift File.expand_path('../../core', __dir__)
require 'mi_modulo'
describe 'ADN::MiModulo' do
describe '.metodo' do
it 'hace algo esperado' do
expect(resultado).to eq(valor_esperado)
end
it 'rechaza valor inválido' do
expect { metodo(inválido) }.to raise_error(ADN::ValidationError)
end
end
end
```
## Buenos Patrones
1. **Un describe por clase/módulo**
2. **Un it por comportamiento**
3. **Tests independientes** (sin orden ni dependencias)
4. **Nombres descriptivos**: `it 'valida formato HH:MM'`
## Helpers Disponibles
- `expect(...).to eq(valor)`
- `expect(...).to match(/regex/)`
- `expect(...).to be true/false`
- `expect { }.to raise_error(Error)`
## Cobertura
| Módulo | Tests |
| :--- | :--- |
| db/evento | 3 |
| core/colores | 6 |
| core/validador | 6 |
| **Total** | **15** |
## Próximos Tests
- [ ] spec/core/error_handler_spec.rb
- [ ] spec/core/help_formatter_spec.rb
- [ ] spec/cli/db_spec.rb
- [ ] spec/cli/jornada_spec.rb