[P2604-S10,S15] SubcomandoSalud→ADN:: + README actualizado
S10: Migrar SubcomandoSalud al namespace ADN:: (consistencia) S15: Actualizar README.md con estructura real de tools/ - Tabla de subcomandos: nodos info, ssh --listar - Estructura cli/: submódulos (nodos/, ssh/, triggers/, backup/) - core/ limpio: solo infraestructura genuina - Directiva 5 actualizada: submódulos CLI en vez de core/ - Eliminados archivos obsoletos del árbol (cierre.rb, inicio.rb) Fase 10: 100% completada (S1-S15) - 15 tests, 0 failures - Evento 1080 (17:32→17:36)
This commit is contained in:
+26
-20
@@ -139,9 +139,10 @@ referencia canónica y exclusiva de las directivas que un agente IA debe seguir.
|
||||
| `jornada cerrar [modo] [HH:MM]` | Registrar cierre de jornada laboral en DB | DB-First |
|
||||
| `jornada estado` | Ver estado de la jornada actual desde DB | DB-First |
|
||||
| `contexto <nodo> [--cmd]` | Obtener contexto topológico y SSH de un nodo | Consulta DB |
|
||||
| `nodos agrupar [--servidor SRV]` | Agrupar VMs por servidor anfitrión | Consulta DB |
|
||||
| `nodos listar [--tipo TIPO]` | Listar nodos desde base de datos | DB-First |
|
||||
| `nodos buscar <término>` | Buscar nodos en base de datos | DB-First |
|
||||
| `nodos info <nodo>` | Mostrar metadata completa de un nodo (IP, SSH, auth) | Consulta Fichas |
|
||||
| `nodos agrupar [--servidor SRV]` | Agrupar VMs por servidor anfitrión | Consulta Fichas |
|
||||
| `nodos listar [--tipo TIPO]` | Listar nodos desde fichas | Consulta Fichas |
|
||||
| `nodos buscar <término>` | Buscar nodos por nombre o contenido | Consulta Fichas |
|
||||
| `salud [--dashboard] [--json]` | Ver salud general del sistema ADN | Incluye DB |
|
||||
| `backup <nodo> [--mode MODO]` | Ejecutar backup seguro de un nodo | Registra en DB |
|
||||
| `triggers [--listar/--registrar]` | Gestión del motor de triggers | Sincroniza DB |
|
||||
@@ -153,7 +154,8 @@ referencia canónica y exclusiva de las directivas que un agente IA debe seguir.
|
||||
| `generar proyecto <código>` | Generar manifiesto de proyecto en DB | DB-First |
|
||||
| `conocimiento asimilar <archivo>` | Asimilar documentación al ADN | Almacena en DB |
|
||||
| `msp <subcomando>` | Gestión de MSPs NotebookLM (auditar, registrar, listar) | Integración MCP |
|
||||
| `ssh <nodo> <comando>` | Ejecución remota segura via SSH + Candados | Registra en DB |
|
||||
| `ssh <nodo> <comando>` | Ejecución remota segura via SSH + Candados (lee fichas) | Via NodosInfo |
|
||||
| `ssh --listar` | Listar nodos con SSH configurado | Consulta Fichas |
|
||||
| `ayuda [subcomando]` | Mostrar ayuda detallada | - |
|
||||
| `validador [--watch] [--fix]` | ⚠️ **OBSOLETO** - Validación MD-First antigua | MD-First (evitar) |
|
||||
|
||||
@@ -232,7 +234,7 @@ referencia canónica y exclusiva de las directivas que un agente IA debe seguir.
|
||||
2. **Usar subcomandos `db`**: Para cualquier operación CRUD, usar `./adn/tools/run db <subcomando>`.
|
||||
3. **Auto-Registro en DB**: Toda acción autónoma de la IA DEBE registrarse como entrada en la bitácora del día usando `db evento:crear`.
|
||||
4. **Ruby como lenguaje de desarrollo**: Todos los componentes nuevos deben escribirse en Ruby, siguiendo principios "Menos es Más" (atómicos, reutilizables).
|
||||
5. **Reutilizar módulos core**: Antes de crear nueva lógica, verificar si existe módulo en `core/` (ej: `NodosInfo`, `HelpFormatter`, `ErrorHandler`). Duplicar código está prohibido.
|
||||
5. **Reutilizar submódulos CLI**: Antes de crear nueva lógica, verificar si existe submódulo en `cli/<comando>/` (ej: `nodos/info.rb`, `ssh/ejecutor.rb`). Duplicar código está prohibido. Infraestructura genuina vive en `core/` (colores, constants, logger, error_handler).
|
||||
6. **Validador obsoleto**: NO usar `validador` (orientado a MD-First). En su lugar, validar coherencia mediante consultas a la base de datos.
|
||||
6. **Secretos en bóveda**: NUNCA exponer contraseñas en texto plano. Usar `candados` (`eval $(ruby adn/tools/seguridad/candados.rb load <clave>)`).
|
||||
7. **Topología primero**: Antes de conectarte a un nodo, consultar `./adn/tools/run contexto <nodo>` para entender su ubicación en la red.
|
||||
@@ -247,33 +249,37 @@ referencia canónica y exclusiva de las directivas que un agente IA debe seguir.
|
||||
```
|
||||
adn/tools/
|
||||
├── run ← Entry point CLI (ejecutable Ruby)
|
||||
├── cli/ ← Subcomandos CLI (1 archivo por subcomando)
|
||||
├── cli/ ← Subcomandos CLI (1 archivo + submódulos por comando)
|
||||
│ ├── ayuda.rb ← Documentación interna de la herramienta
|
||||
│ ├── backup.rb ← Backup seguro de nodos
|
||||
│ ├── cierre.rb ← Cierre de jornada (DB-First)
|
||||
│ │ └── backup/configurador.rb ← Carga de configuración YAML
|
||||
│ ├── conocimiento.rb ← Asimilación de documentación
|
||||
│ ├── contexto.rb ← Contexto topológico de nodos (usa NodosInfo)
|
||||
│ ├── contexto.rb ← Contexto topológico de nodos (usa nodos/info)
|
||||
│ ├── db.rb ← Dispatcher de subcomandos DB
|
||||
│ ├── db/ ← Subcomandos específicos de DB (evento, bitacora, nodo, etc.)
|
||||
│ │ └── db/ ← Subcomandos DB (evento, bitacora, nodo, etc.)
|
||||
│ ├── estados.rb ← Tareas en proceso (⏳) desde DB
|
||||
│ ├── generar.rb ← Generación de bitácoras, nodos y proyectos
|
||||
│ ├── inicio.rb ← Inicio de jornada (DB-First)
|
||||
│ ├── jornada.rb ← Inicio/cierre de jornada (DB-First)
|
||||
│ ├── msp.rb ← Gestión de MSPs NotebookLM
|
||||
│ ├── nodos.rb ← Agrupación de nodos por servidor (usa NodosInfo)
|
||||
│ ├── nodos.rb ← Gestión de nodos (info, listar, agrupar, buscar)
|
||||
│ │ └── nodos/info.rb ← Extracción de metadata de fichas .md
|
||||
│ ├── plan.rb ← Gestión de planes y progreso
|
||||
│ ├── proceso.rb ← Procesos técnicos automatizados
|
||||
│ ├── salud.rb ← Métricas de salud del ADN
|
||||
│ ├── ssh.rb ← Ejecución remota segura via SSH + Candados
|
||||
│ │ └── ssh/ejecutor.rb ← Abstracción de ejecución remota
|
||||
│ ├── tailscale.rb ← Gestión de Tailscale (nodos, status)
|
||||
│ ├── triggers.rb ← Gestión del motor de triggers
|
||||
│ └── validador.rb ← Validación de cumplimiento ADN
|
||||
├── core/ ← Módulos centrales reutilizables
|
||||
│ │ ├── triggers/motor.rb ← Motor de triggers (reacción automática)
|
||||
│ │ └── triggers/eventos.rb ← Bus de eventos (pub/sub desacoplado)
|
||||
│ └── validador.rb ← ⚠️ OBSOLETO (MD-First)
|
||||
├── core/ ← Infraestructura genuina (solo utilidades compartidas)
|
||||
│ ├── colores.rb ← Constantes de color para terminal
|
||||
│ ├── conciliador.rb ← Saneamiento preventivo de pendientes
|
||||
│ ├── configurador.rb ← Carga de configuración YAML
|
||||
│ ├── constants.rb ← Constantes globales (rutas, estados)
|
||||
│ ├── error_handler.rb ← Helper para mensajes de error estandarizados
|
||||
│ ├── eventos.rb ← Bus de eventos (pub/sub desacoplado)
|
||||
│ ├── help_formatter.rb ← Formateador de ayuda estandarizado
|
||||
│ ├── logger.rb ← Logger estructurado (JSON)
|
||||
│ ├── nodos_info.rb ← Utilidades para extracción de metadatos de fichas
|
||||
│ ├── triggers.rb ← Motor de triggers (reacción automática)
|
||||
│ └── validador.rb ← Validador de formato ADN
|
||||
│ ├── help_formatter.rb ← Formateador de ayuda estandarizado
|
||||
│ └── logger.rb ← Logger estructurado (JSON)
|
||||
├── db/ ← Capa de acceso a datos (PostgreSQL)
|
||||
│ ├── core/ ← bitacora_db.rb (CRUD principal), buscadores
|
||||
│ ├── cli/ ← Scripts CLI para exportación masiva
|
||||
|
||||
@@ -4,7 +4,8 @@ require 'optparse'
|
||||
require 'json'
|
||||
require_relative '../core/colores'
|
||||
|
||||
class SubcomandoSalud
|
||||
module ADN
|
||||
class SubcomandoSalud
|
||||
def initialize(args, logger)
|
||||
@args = args
|
||||
@logger = logger
|
||||
@@ -119,3 +120,4 @@ class SubcomandoSalud
|
||||
errores
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
+1
-1
@@ -95,7 +95,7 @@ class ADNCLI
|
||||
when 'contexto'
|
||||
SubcomandoContexto.new(args, @logger).ejecutar
|
||||
when 'salud'
|
||||
SubcomandoSalud.new(args, @logger).ejecutar
|
||||
ADN::SubcomandoSalud.new(args, @logger).ejecutar
|
||||
when 'generar'
|
||||
SubcomandoGenerar.new(args, @logger).ejecutar
|
||||
when 'nodos'
|
||||
|
||||
@@ -152,11 +152,12 @@ Mejoras atómicas, incrementales y reutilizables. Una herramienta por vez.
|
||||
| S7 | Corregir referencia a plan obsoleto en `run` | Fix | ✅ |
|
||||
| S8 | Dejar de cargar `core/validador.rb` obsoleto en `run` | Limpieza | ✅ |
|
||||
| S9 | Limpiar progreso duplicado en este plan | Doc | ✅ |
|
||||
| S10 | Migrar `SubcomandoSalud` al namespace `ADN::` | Refactor | ⏳ |
|
||||
| S10 | Migrar `SubcomandoSalud` al namespace `ADN::` | Refactor | ✅ |
|
||||
| S11 | Crear CLI `ssh` — ejecución remota reutilizable via `candados` + `EjecutorRemoto` | Herramienta | ✅ |
|
||||
| S12 | Refactorizar `ssh.rb` — leer datos de fichas via `NodosInfo`, eliminar hash hardcodeado | Refactor | ✅ |
|
||||
| S13 | Consolidar `core/` — mover lógica de dominio a submódulos CLI (`nodos_info`→`nodos/`, etc.) | Arquitectura | ✅ |
|
||||
| S14 | Agregar subcomando `nodos info <nodo>` — exponer metadata de fichas como herramienta CLI | Herramienta | ✅ |
|
||||
| S15 | Actualizar `README.md` — estructura real de tools/, nuevos subcomandos, directiva submódulos | Doc | ✅ |
|
||||
|
||||
---
|
||||
|
||||
@@ -172,7 +173,7 @@ Fase 6: ██████████ 100% (H1: HelpFormatter)
|
||||
Fase 7: ██████████ 100% (DOC1-DOC3: docs/tecnica/)
|
||||
Fase 8: ██████████ 100% (CI1-CI2: GitHub Actions)
|
||||
Fase 9: ██████████ 100% (M1-M5: MSP CLI)
|
||||
Fase 10: █████████░ 90% (S1-S9,S11-S12 done, S10 pendiente)
|
||||
Fase 10: ██████████ 100% (S1-S15 done ✔)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user