Reestructuración modular integral de servicios, reorganización de gestión en docs/ y limpieza profunda del repositorio
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
# Plan: Integración Dashboard P2601 en dtic-BITACORAs
|
||||
|
||||
> Fecha: 04/03/2026 19:59hs
|
||||
> Proyecto: P2601 - DASUTEN
|
||||
> Estado: **Aprobado — En ejecución**
|
||||
|
||||
## Objetivo
|
||||
|
||||
Integrar el panel de seguimiento del proyecto P2601 dentro del sistema dtic-BITACORAs:
|
||||
- Accesible en `ns8.frlr.utn.edu.ar/bitacoras/p2601`
|
||||
- Datos almacenados en PostgreSQL (mismo stack que dtic-BITACORAs)
|
||||
- Discriminación de horas presenciales vs remotas por hito
|
||||
- Identificación de fases del proyecto
|
||||
|
||||
## Esquema de Datos
|
||||
|
||||
### Nuevas tablas (esquema `bitacoras`)
|
||||
|
||||
```sql
|
||||
CREATE TABLE bitacoras.proyectos (
|
||||
id SERIAL PRIMARY KEY,
|
||||
codigo VARCHAR(10) NOT NULL UNIQUE, -- 'P2601'
|
||||
nombre VARCHAR(200) NOT NULL,
|
||||
estado VARCHAR(10) DEFAULT '⏳',
|
||||
descripcion TEXT,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
CREATE TABLE bitacoras.fases (
|
||||
id SERIAL PRIMARY KEY,
|
||||
proyecto_id INTEGER REFERENCES bitacoras.proyectos(id),
|
||||
numero INTEGER NOT NULL,
|
||||
nombre VARCHAR(200) NOT NULL,
|
||||
estado VARCHAR(10) DEFAULT '⏳',
|
||||
descripcion TEXT,
|
||||
fecha_inicio DATE,
|
||||
fecha_fin DATE,
|
||||
UNIQUE(proyecto_id, numero)
|
||||
);
|
||||
|
||||
CREATE TABLE bitacoras.hitos (
|
||||
id SERIAL PRIMARY KEY,
|
||||
fase_id INTEGER REFERENCES bitacoras.fases(id),
|
||||
id_hito VARCHAR(20) NOT NULL, -- 'A00', 'SSH', 'P02.DB'
|
||||
titulo VARCHAR(200) NOT NULL,
|
||||
descripcion TEXT,
|
||||
estado VARCHAR(10) DEFAULT '⏳',
|
||||
fecha DATE,
|
||||
horas_presencial NUMERIC(5,2) DEFAULT 0,
|
||||
horas_remoto NUMERIC(5,2) DEFAULT 0,
|
||||
nodo_id INTEGER REFERENCES bitacoras.nodos(id),
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
```
|
||||
|
||||
## Fases del proyecto P2601
|
||||
|
||||
| # | Fase | Descripción | Nodos | Estado |
|
||||
|:--|:--|:--|:--|:--|
|
||||
| 1 | Infraestructura Física | Preparación hardware srv-dasu + Proxmox VE 9.1 | srv-dasu | ✅ |
|
||||
| 2 | Dominio y Directorio Activo | VM dc-dasuten, AD DS, DNS, dominio `dasuten.utnlr` | dc-dasuten | ✅ |
|
||||
| 3 | Motor de Base de Datos | VM sql-dasuten, SQL Server 2019, backup y restore sysdasuten | sql-dasuten | ✅ |
|
||||
| 4 | Acceso Remoto y Seguridad | OpenSSH 7022, w-zombi, firewall en todas las VMs | dc/sql/pcv-dasuten | ✅ |
|
||||
| 5 | Sistema DASUTEN | Ingeniería inversa, deploy DasutenSQL.exe, Kermet.ini | pcv-dasu0, sql-dasuten | ⏳ |
|
||||
| 6 | Cliente Final | Config pc-dasu0 en dominio, sistema productivo | pc-dasu0 | 📋 |
|
||||
|
||||
## Archivos a modificar/crear
|
||||
|
||||
| Acción | Archivo | Descripción |
|
||||
|:--|:--|:--|
|
||||
| MODIFY | `docker/init.sql` | Tablas proyectos, fases, hitos + datos semilla P2601 |
|
||||
| NEW | `backend/src/routes/proyectos.js` | API CRUD /api/proyectos con métricas |
|
||||
| MODIFY | `backend/src/server.js` | Registrar ruta proyectos |
|
||||
| NEW | `frontend/src/pages/ProyectoDashboard.tsx` | Página React con timeline, fases y métricas |
|
||||
| MODIFY | `frontend/src/App.tsx` | Ruta /bitacoras/p2601 |
|
||||
|
||||
## Verificación
|
||||
|
||||
- `curl` al endpoint `/api/proyectos/P2601`
|
||||
- Navegador a `https://ns8.frlr.utn.edu.ar/bitacoras/p2601`
|
||||
@@ -0,0 +1,21 @@
|
||||
# Plan de Pruebas: Sistema Dasuten (P02)
|
||||
|
||||
**Fecha/Hora:** 260305-0930
|
||||
**Objetivo:** Confirmar el correcto funcionamiento y conectividad del entorno Dasuten.
|
||||
|
||||
## Fases de la Prueba
|
||||
|
||||
1. **Uso de Herramienta de Credenciales Secretas:**
|
||||
- Modificar la herramienta `tools/ns8-candados` para que incluya instrucciones y explicación de uso en la cabecera.
|
||||
- Ejecutar la herramienta `tools/ns8-candados` de manera que capture las credenciales requeridas en el entorno (o en una variable segura) sin exponer la salida (stdout) al flujo visible del chat, preservando la confidencialidad.
|
||||
|
||||
2. **Verificación de Acceso Base:**
|
||||
- Confirmar acceso SSH al servidor principal `pcv-dasu0` utilizando las credenciales obtenidas.
|
||||
- Validar estado general del sistema (uptime, uso de recursos básicos).
|
||||
|
||||
3. **Pruebas Funcionales Adicionales (A definir iterativamente):**
|
||||
- *Se irán agregando puntos de prueba según el progreso y los resultados del acceso base.*
|
||||
|
||||
## Protocolo de Registro (Bitácora First)
|
||||
- Todo paso debe ser previamente registrado en la bitácora del día correspondiente como iniciado.
|
||||
- Tras concluir cada paso o iteración, actualizar el registro en la bitácora con los resultados (éxito/fallo y observaciones).
|
||||
@@ -0,0 +1,22 @@
|
||||
# Plan de Implementación: Contexto en el ADN (Caso DASUTEN)
|
||||
|
||||
**Fecha**: 2026-03-05
|
||||
**Objetivo**: Dotar a la IA y al proyecto de un protocolo estandarizado de "Auto-contextualización" sobre topología de redes, evitando operaciones ciegas (ej. Timeouts SSH en subredes NAT).
|
||||
|
||||
## Propuesta de Cambios
|
||||
|
||||
### Hebra: Directivas de la Inteligencia Artificial (`adn/05_ia.md`)
|
||||
Agregaremos una nueva directiva `13. Auto-Contextualización`.
|
||||
- **Regla:** Antes de iniciar pruebas de red o conexiones a nodos, la IA DEBE consultar el archivo del nodo (en la carpeta `nodos/`) y el proyecto asociado para comprender su ubicación en la topología (ej. si está detrás de un NAT, si requiere salto SSH, qué IP tiene).
|
||||
- **Ejecución:** Evitar asunciones de visibilidad directa; mapear el contexto siempre.
|
||||
|
||||
### Hebra: Proyectos (`adn/07_proyectos.md`)
|
||||
Añadir la sección obligatoria de "Topología / Contexto de Red" a los manifiestos de proyecto.
|
||||
- **Topología Lógica / Contexto de Red:** Exige describir la ubicación de los nodos (ej: Red aislada, host físico, dependencias de NAT) para documentar y estandarizar el **CÓMO** llegar a ellos de forma técnica.
|
||||
|
||||
### Manifiesto: P2601 Dasuten (`proyectos/P2601_dasuten.md`)
|
||||
Actualizar el manifiesto actual del proyecto Dasuten para reflejar esta nueva arquitectura de topología explícita.
|
||||
- Añadir una sección `## 🌐 Topología y Contexto de Red` explicando que:
|
||||
1. Todo el ecosistema Dasuten corre bajo `srv-dasu` (Standalone - 10.0.10.205).
|
||||
2. Las VMs periféricas (pcv-dasu0, dc-dasuten, sql-dasuten) están en una subred aislada `10.0.100.0/24`.
|
||||
3. **Regla de Acceso:** Para la intervención, es necesario un ruteo o ProxyJump a través de `10.0.10.205`.
|
||||
@@ -0,0 +1,29 @@
|
||||
# Plan de Acción: Despliegue y Prueba de DASUTEN en pcv-dasu0
|
||||
|
||||
**Fecha/Hora:** 260305-1017
|
||||
**Artefacto:** `tools/w-zombi/payloads/runSysDasuten.zip`
|
||||
**Objetivo:** Desplegar los binarios del sistema DASUTEN en la VM de pruebas (cliente Windows 10 LTSC) y verificar su conexión contra el motor SQL recién instalado en la fase DB01.
|
||||
|
||||
## Fases del Despliegue
|
||||
|
||||
### 1. Preparación y Transferencia
|
||||
1. Obtener credenciales de `admindasu` desde `ns8-candados`.
|
||||
2. Establecer túnel o salto SSH válido hacia la red `10.0.100.x` a través de `srv-dasu` (10.0.10.205).
|
||||
3. Transferir el archivo `tools/w-zombi/payloads/runSysDasuten.zip` vía SCP al disco virtual de `pcv-dasu0` apuntando al **puerto SSH 7022** (ej. en `C:\Dasuten\`).
|
||||
|
||||
### 2. Descompresión y Configuración
|
||||
1. Descomprimir el archivo ZIP en el cliente usando PowerShell remoting / SSH.
|
||||
2. Localizar y editar el archivo de configuración `Kermet.ini`:
|
||||
- Modificar la cadena de conexión de ODBC para `[SQLSERVER]`.
|
||||
- Reemplazar `SERVER=srvFENIX` por el endpoint actual: `SERVER=sql-dasuten` (o la IP `10.0.100.11`).
|
||||
|
||||
### 3. Instalación de Dependencias
|
||||
1. Instalar de forma automatizada las fuentes tipográficas necesarias de la carpeta `Fonts/` (códigos de barras Code39, I2OF5).
|
||||
2. Ejecutar silenciosa/desatendidamente `InstaladorComponentesKermet.exe` para registrar librerías VFP/Kermet requeridas por el sistema en el cliente.
|
||||
|
||||
### 4. Pruebas de Verificación
|
||||
1. **Red**: Realizar un `Test-NetConnection` o ping desde `pcv-dasu0` hacia el puerto TCP 1433 de `sql-dasuten` para garantizar que el firewall permite el tráfico SQL.
|
||||
2. **Sistema GUI**: Invocar la apertura de `DasutenSQL.exe` (puede requerir verificación visual del usuario vía consola NoVNC de Proxmox o Anydesk/RDP). Se debe comprobar que se abre la pantalla de logon sin errores de conexión a la base de datos `sysdasuten`.
|
||||
|
||||
## Registro y Trazabilidad
|
||||
- Todo evento de éxito/falla de red se registrará en la bitácora bajo la etiqueta `[P02]`.
|
||||
@@ -0,0 +1,31 @@
|
||||
# Fase 6 - DASUTEN: Despliegue Físico, Dominio y Seguridad Local
|
||||
|
||||
**Fecha:** 05/03/2026 - P2601 Proyecto Dasuten
|
||||
|
||||
## Objetivo
|
||||
Habiendo superado la prueba de concepto (UAT) y verificado el funcionamiento del sistema en la red aislada `10.0.100.x` virtualizada bajo Proxmox, la siguiente fase consiste en **entregar la infraestructura a producción**.
|
||||
Esto implica el traslado físico del equipamiento, la adhesión de las estaciones de trabajo de los usuarios al nuevo Active Directory (`dc-dasuten`), y la configuración de las políticas organizativas.
|
||||
|
||||
## Tareas a Realizar
|
||||
|
||||
### 1. Instalación Física (Hardware)
|
||||
* **Servidor Proxmox (`srv-dasu`)**: Trasladar el host físico a la oficina de DASUTeN e instalarlo en su locación definitiva (gabinete/rack), asegurando energía ininterrumpida (UPS) y conectividad de red adecuada.
|
||||
* **Estaciones de Trabajo (`pc-dasu0` y otras si las hay)**: Reconectar y asegurar la conectividad L2 (física/switch) hacia el puerto de red que ofrece acceso al servidor `srv-dasu`.
|
||||
|
||||
### 2. Integración de Red y Dominio
|
||||
* **Configuración de Red Local**: Asegurar que la PC física tenga acceso a la red donde opera el controlador de dominio. Confirmar que su **DNS Primario** sea la IP de `dc-dasuten` (`10.0.100.10`).
|
||||
* **Unión al Dominio**: Ingresar la PC `pc-dasu0` al dominio `dasuten.utnlr`.
|
||||
* **Reasignación de Usuarios**: Mapear/Migrar los perfiles y datos del usuario local que usaba Andrea Almirón hacia su nueva cuenta de dominio.
|
||||
|
||||
### 3. Seguridad y GPOs (Group Policy Objects)
|
||||
* **Restricción de Acceso**: Configurar GPOs para prohibir la instalación de software no autorizado por los usuarios estándar de DASUTeN.
|
||||
* **Unidades de Red**: Despliegue automático de mapeos de red necesarios (si la aplicación requiere una letra de unidad específica o para almacenamiento compartido) mediante GPO.
|
||||
* **Restricciones de Explorador**: Ocultar u restringir acceso a la unidad C:\ y recursos sensibles.
|
||||
* **Políticas de Contraseñas**: Asegurar rotación o longitud mínima para los usuarios del dominio.
|
||||
|
||||
### 4. Revisión Final de Aplicaciones
|
||||
* Distribuir el conjunto de accesos directos del sistema Dasuten (`DasutenSQL.exe`) al escritorio de todos los usuarios mediante GPO.
|
||||
* Verificar que la conexión ODBC/Kermet funciona bajo el contexto de seguridad del usuario de dominio sin requerir elevación de privilegios.
|
||||
|
||||
## Siguientes Pasos (IA)
|
||||
Una vez que el usuario informe que el equipo fue trasladado y encendido en su nueva locación, la IA asistirá vía Tailscale / AnyDesk (o conexiones remotas establecidas) con la configuración de las Políticas de Seguridad (GPOs) y las uniones de dominio.
|
||||
@@ -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 `tools/adn/` 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 `tools/adn/` 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 `tools/adn.rb mapa`. |
|
||||
| **01_ontologia.md** | Topología completa y actualizada. | Actualización automática de estados de nodos via `tools/adn.rb ontologia --sync`. |
|
||||
| **02_bitacora.md** | Triggers bien definidos. | Implementación automática via `tools/adn/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 `tools/adn.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. **`tools/adn/` - Arquitectura Unificada**
|
||||
- **Problema**: Scripts Ruby dispersos sin interfaz común.
|
||||
- **Solución**: Directorio estructurado con módulos integrados:
|
||||
```
|
||||
tools/adn/
|
||||
├── 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. **`tools/adn.rb` - CLI Unificada**
|
||||
- **Problema**: Múltiples comandos Ruby con interfaces inconsistentes.
|
||||
- **Solución**: Interfaz única con subcomandos estandarizados:
|
||||
```bash
|
||||
ruby tools/adn.rb validador [--watch] [--fix] # Validación automática
|
||||
ruby tools/adn.rb triggers [--test] [--force] # Ejecución triggers
|
||||
ruby tools/adn.rb contexto <nodo> [--cmd] # Contexto automático
|
||||
ruby tools/adn.rb evolucion <propuesta.md> # Gestión evolución
|
||||
ruby tools/adn.rb salud [--dashboard] [--json] # Salud del ADN
|
||||
ruby tools/adn.rb generar bitacora [fecha] # Generadores
|
||||
ruby tools/adn.rb generar nodo <nombre> # Plantillas
|
||||
ruby tools/adn.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**: `tools/adn/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**: `tools/adn/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**: `tools/adn/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**: `tools/adn/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**: `tools/adn/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**: `tools/adn/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. **`tools/adn/`** - Estructura de directorios y `Gemfile` con dependencias.
|
||||
2. **`tools/adn.rb`** - CLI unificada con subcomandos básicos.
|
||||
3. **`tools/adn/validador.rb`** - Validador en tiempo real con hooks Git.
|
||||
4. **`tools/adn/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. **`tools/adn/triggers.rb`** - Sistema de eventos basado en YAML.
|
||||
2. **`tools/adn/contexto.rb`** - Motor de inferencia topológica.
|
||||
3. **`tools/adn/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. **`tools/adn/dashboard.rb`** - Servidor web Sinatra (puerto 4567).
|
||||
2. **API JSON** para integración con dashboard principal.
|
||||
3. **`tools/adn/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. **`tools/adn/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 tools/adn.rb generar bitacora` |
|
||||
| **Errores formato en bitácoras** | 2-3 por semana | 0 por semana | Reporte `tools/adn.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 tools/adn.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 `tools/adn/`.
|
||||
```bash
|
||||
mkdir -p tools/adn 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 tools/adn.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. **`tools/adn-validador.rb` → `tools/adn/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` → `tools/adn/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. **`tools/adn-contexto.rb` → `tools/adn/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. **`tools/adn.rb` - CLI Unificada**
|
||||
- **Mejora**: Comando único con subcomandos para todas las operaciones ADN.
|
||||
- **Estructura propuesta**:
|
||||
```bash
|
||||
ruby tools/adn.rb validador [--watch] [--fix]
|
||||
ruby tools/adn.rb triggers [--test] [--force]
|
||||
ruby tools/adn.rb contexto <nodo> [--cmd]
|
||||
ruby tools/adn.rb evolucion <propuesta.md> [--aprobar]
|
||||
ruby tools/adn.rb salud [--dashboard] [--json]
|
||||
```
|
||||
- **Beneficio**: Interfaz consistente, fácil de recordar, documentar y usar.
|
||||
|
||||
#### 5. **Sistema de Eventos `tools/adn/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 `tools/adn/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. **`tools/adn/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. **`tools/adn/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. `tools/adn/` - Estructura de directorios y gemas base.
|
||||
2. `tools/adn.rb` - CLI unificada con subcomandos básicos.
|
||||
3. `tools/adn/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. `tools/adn/triggers.rb` - Sistema de eventos basado en YAML.
|
||||
2. `tools/adn/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. `tools/adn/eventos.rb` - Bus de eventos interno.
|
||||
2. `tools/adn/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. `tools/adn/backup.rb` - Sistema de versionado semántico.
|
||||
2. `tools/adn/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 tools/adn.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 `tools/adn/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 `tools/adn/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 `tools/adn/`.
|
||||
- CLI unificada `tools/adn.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 `tools/adn/`.
|
||||
|
||||
---
|
||||
|
||||
## 🔗 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. -->
|
||||
Reference in New Issue
Block a user