Files
dtic-DIIAA/docs/_hist/tecnica/adn_cli.md
T
Ricardo Monla cfd0e8452a [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
2026-03-15 14:33:32 -03:00

2.7 KiB

Documentación Técnica: ADN CLI

Referencia para desarrolladores | Proyecto: dtic-DIIAA

Punto de Entrada

./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

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

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

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

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

cd adn/tools
bundle exec rspec spec/ --format documentation

Logging

Los logs se guardan en logs/adn/YYYY-MM-DD.log con formato JSON.

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/