13 KiB
Contexto para IA - Mecánica de Trabajo dtic-DIIAA
Fecha: 2026-03-25 Versión: 1.3 - Minimalista (Principio "menos es más") Bitácora de referencia: Eventos 1261-1300 (2026-03-25 y 2026-03-26) Actualización: Zona horaria Argentina agregada, renombramiento dasu-pc/dasu-pcv
🎯 Principios Fundamentales (3)
- Menos es Más: Este archivo contiene solo lo esencial para operar. Para detalles, consultar fuentes canónicas o usar
--helpen las herramientas ADN. - Mejora Continua: Al inicio de cada sesión, ejecutar
./adn/tools/run salud --mejoras --jsonpara identificar oportunidades de optimización. - Armonía Integral: Toda acción debe alinearse con las normas vivas del ADN. Ver procedimiento abajo.
🌎 Zona Horaria
IMPORTANTE: Este proyecto opera en la zona horaria de Argentina (Buenos Aires).
- UTC: UTC-3 (Argentina no tiene horario de verano permanente)
- Comando local: Usar
datepara obtener la hora correcta - Formato registro: HH:MM (24 horas)
- ⚠️ CRÍTICO: Los eventos deben usar la hora real del sistema, NO la hora del agente IA
🎯 Principio Fundamental: Bitácora First
TODO lo que hagas DEBE registrarse en bitácora ANTES de ejecutar.
Flujo obligatorio:
1. Registrar contexto en bitácora (db evento:crear)
2. Ejecutar la tarea
3. Actualizar bitácora con resultados (db evento:actualizar --fin)
Ejemplo práctico:
# 1. ANTES de empezar, registrás
./adn/tools/run db evento:crear --nodo dtic-DIIAA \
--descripcion "[P2604.06] Descripción de lo que voy a hacer" \
--inicio 08:00
# 2. Ejecutás la tarea
./adn/tools/run <comando>
# 3. Al terminar, actualizás con la hora de fin
./adn/tools/run db evento:actualizar <ID> --fin 08:15
🧬 Arquitectura del Ecosistema ADN
Estructura de comandos:
./adn/tools/run <subcomando> [opciones]
⚠️ REGLA CRÍTICA: Antes de SSH
SIEMPRE ejecutar: ./adn/tools/run nodos info <nombre>
Esto muestra: IP, Puerto SSH, Usuario, Auth, Bóveda, SO, VMID
Acceso rápido a información esencial:
- Subcomandos:
./adn/tools/run --help(lista completa) - Plantillas de eventos:
./adn/tools/run generar evento <tipo>
🔐 Ejecución Remota con Privilegios (Bóveda)
Para ejecutar comandos en nodos remotos como root:
# Usar candados run con clave del nodo
ruby adn/tools/candados/candados.rb run <nodo:usuario> "<comando>"
Ejemplos:
# Conectar como root a srv-dasu
ruby adn/tools/candados/candados.rb run srv-dasu:root "dmidecode -t memory"
# Ejecutar backup en Proxmox
ruby adn/tools/candados/candados.rb run srv-dasu:root "qm stop 104 && vzdump 104 --mode stop"
# Ver VMs
ruby adn/tools/candados/candados.rb run srv-dasu:root "qm list"
Reglas:
- Usar siempre clave de bóveda (nunca password en texto plano)
- Las claves siguen formato:
<nodo>:<usuario>(ej:srv-dasu:root,srv-dasu:rmonla) - Ver claves disponibles:
ruby adn/tools/candados/candados.rb list
⚠️ REGLA PARA IA: Antes de leer código fuente
SIEMPRE ejecutar ./adn/tools/run <subcomando> --help o ./adn/tools/run ayuda <subcomando> ANTES de leer archivos .rb para entender cómo funciona una herramienta. La ayuda integrada es suficiente en la mayoría de los casos.
🤖 Flujo de Trabajo con IA
Cuando el usuario pide algo:
-
Verificar si está registrado en bitácora
- Si no →
db evento:crearprimero - Si sí → continuar
- Si no →
-
Ejecutar la tarea
- Usar comandos
./adn/tools/run - Seguir principios de
adn/05_ia.md
- Usar comandos
-
Actualizar bitácora
db evento:actualizar <ID> --fin HH:MM- Incluir resultados y próximos pasos
Errores comunes a evitar:
❌ Ejecutar sin registrar en bitácora
❌ Todos los eventos con misma hora de inicio
❌ Olvidar el --fin al terminar
❌ Usar /tmp/ en lugar de tmp/ del repo
❌ No verificar candados antes de SSH
❌ Mostrar contraseñas o secretos en texto plano (usar siempre bóveda)
❌ Olvidar especificar --modo R para eventos ejecutados remotamente (IA operando a distancia)
📊 Bitácora Web - Fichas por Ámbito
Implementado: 2026-03-25
La vista principal de la Bitácora Web ahora agrupa las entradas por Ámbito en lugar de por Nodo:
- Cada ficha muestra todos los eventos de los nodos del ámbito
- Columna "Nodo" identifica el origen de cada evento
- Badge muestra cantidad de nodos y entradas del ámbito
URL: http://localhost:5174/bitacoras/
🚀 Quick Start para Nueva Sesión
# 1. Iniciar jornada
./adn/tools/run jornada iniciar presencial 08:00
# 2. Registrar primera actividad
./adn/tools/run db evento:crear --nodo dtic-DIIAA \
--descripcion "[P2604.XX] Lo que voy a hacer" \
--inicio 08:05
# 3. Trabajar
# ... ejecutás tus comandos ...
# 4. Cerrar actividad
./adn/tools/run db evento:actualizar <ID> --fin 08:30
# 5. Verificar en web
# http://localhost:5174
🔄 Armonía Integral — Procedimiento de Actualización Documental
¿Qué significa "Aplicar Armonía Integral"?
Armonía Integral es el principio rector que establece que todo está conectado en el ecosistema ADN. Cuando se dice "Aplicar Armonía", se refiere a:
Actualizar u optimizar bitácora, plan, ámbito, contexto y repositorio según corresponda para mantener la consistencia del ecosistema.
Si un dato cambia en un sitio, debe propagarse a todos los demás elementos relevantes.
📋 Qué elementos actualizar cuando se pide "Aplicar Armonía"
| Orden | Elemento | Qué actualizar | Cuándo corresponde |
|---|---|---|---|
| 1 | Bitácora | Evento con resultados y próximos pasos cerrando la tarea actual | Siempre (antes de finalizar sesión o ante cambios de contexto) |
| 2 | Plan (ej: A01.P...md) |
Estado de tareas, fases completadas, hitos logrados | Si un plan fue modificado, avanzado o completado |
| 3 | Ámbito (ej: A01...md) |
Tablas de planes, resumen de herramientas, nodos vinculados | Si se crean nuevos planes, Nodos, o finalizan hitos de bloque |
| 4 | Contexto (IA.md) |
Lecciones aprendidas, cambios en flujos obligatorios, nuevas macros | Si hubo cambios en el modus operandi o nuevas "leyes" asimiladas |
| 5 | Repositorio (Git) | Hacer un commit atómico y descriptivo, y enviarlo (push) a remoto | Siempre luego de completar los pasos 1 a 4 para resguardar |
Ejemplo de aplicación (2026-04-06):
Cambio: Reestructuración de dtic-DASUTEN a estándar A03
→ 1. Bitácora: Evento #XXXX registrado
→ 2. Contexto/IA.md: No requería (sin cambios operativos)
→ 3. A04_dtic-DASUTEN.md: Manifiesto creado + tabla de planes actualizada
→ 4. A04.P005_DASUTEN-sin-DC.md: Referencias actualizadas
→ 5. Legacy: P2601_dasuten.md → _hist/
Reglas:
- Menos es Más: Actualizar solo lo necesario, sin duplicar información.
- Trazabilidad: Todo cambio debe poder rastrearse desde la bitácora a los documentos.
- Consistencia: Usar siempre el mismo formato (ver
docs/ambito/dtic-BKPs/A03_dtic-BKPs.mdcomo referencia).
📌 Principio "Menos es Más"
Este archivo contiene solo lo esencial para operar. Para detalles completos, consultar las hebras canónicas:
Para información completa sobre todas las hebras del ADN, consultar adn/00_indice.md. Las más frecuentemente usadas son:
- Seguridad →
adn/03_seguridad.md - Ontología/Ámbitos →
adn/01_ontologia.md - Bitácoras →
adn/02_bitacora.md - IA Directivas →
adn/05_ia.md
📚 Documentación de Referencia
| Archivo | Propósito |
|---|---|
adn/00_indice.md |
Índice y comandos CLI del ecosistema |
adn/05_ia.md |
Directivas específicas para IA ⚠️ |
adn/06_gobernanza.md |
3 principios rectores: Menos es Más, Armonía Integral, Mejora Continua |
adn/02_bitacora.md |
Formato y triggers de bitácoras |
adn/03_seguridad.md |
Protocolos de seguridad y candados 🔐 |
adn/01_ontologia.md |
Nodos, ámbitos y topología |
docs/ambito/dtic-ADN/A01_dtic-ADN.md |
Ámbito A01: Ecosistema core — ./adn/tools/run |
docs/ambito/dtic-DIGIs/ |
Ámbito A02: Digitalización y Gestión Documental |
docs/ambito/dtic-BKPs/ |
Ámbito A03: Backups — ./adn/tools/run bkps |
docs/ambito/dtic-DASUTEN/ |
Ámbito A04: Infraestructura DASUTEN — ./adn/tools/run dasuten |
docs/ambito/dtic-XenServer/ |
Ámbito A06: Hipervisor Citrix XenServer 7.0 |
docs/ambito/dtic-DNS/ |
Ámbito A07: Administración DNS — ./adn/tools/run dns |
docs/ambito/dtic-NOTAS/ |
Ámbito A08: Sistema de Notas e Informes — Web de plantillas |
docs/ambito/dtic-DIIAA/ |
Ámbito A09: IA y Automatizaciones — ./adn/tools/run dron |
adn/tools/cli/dron.rb |
Drones: tareas background con auto-bitácora — ./adn/tools/run dron |
Última actualización: 2026-04-10 (A06: Creación de ámbito dtic-XenServer + diagnóstico SSH legacy) Próxima revisión: Al inicio de cada sesión
🤖 Drones - Sistema Mejorado (2026-04-08)
Mejora implementada: Auto-detección de nodo y ámbito automático en bitácora.
Cambios realizados:
- Auto-detección de nodo: El dron detecta automáticamente el nodo por hostname
- Ámbito automático: El ámbito se hereda del nodo mediante JOIN en la consulta
- Unificación de vistas:
evento:listarmuestra tantoevents(drones) comoentradas(tradicional)
Flujo de trabajo:
# Al iniciar sesión: verificar flota
./adn/tools/run dron salud
./adn/tools/run dron limpiar # Si hay zombies
# Para tareas en background (auto-registra en bitácora)
./adn/tools/run dron lanzar --nota "Descripción de la tarea" -- <comando>
# Opcional: especificar nodo manualmente
./adn/tools/run dron lanzar --nodo srv-ns8 --nota "Tarea" -- <comando>
Importante: Los drones registran automáticamente en bitácora con el ámbito correcto. Para SSH interactivo, usar candados run.
🔐 Lecciones Aprendidas - DNS (2026-04-07)
Problema: Confusión inicial entre servidores DNS.
Descubrimiento:
srvv-dns(190.114.205.18) = nombre interno del nodo donde trabajamos (srv-ns8)srvv-DNS(190.114.205.2) = servidor DNS PÚBLICO que responde adns.frlr.utn.edu.aryns1.frlr.utn.edu.ar
Lección: Los registros DKIM deben estar en el servidor DNS que responde a las consultas públicas (190.114.205.2), no necesariamente donde se ejecuta la CLI.
Solución aplicada: Script copiado a srvv-DNS via SCP, ejecutado con sudo via candado srvv-DNS:rmonla:sudo.
Actualización 22:00 - Gmail marca spam aunque DKIM esté OK
Estado: DKIM habilitado en M365, registros responden correctamente, pero Gmail sigue marcando correos como spam.
Causas identificadas:
- DMARC faltante - No hay registro
_dmarc.frlr.utn.edu.ar - Reputación de dominio - Gmail requiere período de "calentamiento" (24-72 horas típico)
- Historial del dominio - Correos anteriores sin autenticación afectan reputación inicial
Próximo paso: Agregar DMARC con p=none (solo monitoreo) para completar triada de autenticación.
🛠️ Optimización de candados (2026-04-08)
Contexto: La herramienta candados.rb es crítica para la seguridad del ecosistema. Se requiere que cualquier IA sepa usarla correctamente sin exponer contraseñas.
Cambios realizados:
-
Help resumida (default): Se muestra al ejecutar sin argumentos o con comando desconocido
- Mensaje conciso con lo esencial
- Los dos métodos para cargar variables (
runyload) - Lista de comandos principales
- Indica usar
--helppara más detalles
-
Help completa (
--helpo-h):- Explicación detallada de cada método
- Ejemplos de uso
- Flujo de trabajo típico
- Advertencias de seguridad
-
README actualizado: Sincronizado con la ayuda integrada
Lección: La documentación integrada en la CLI es más efectiva que archivos externos. Cualquier IA que ejecute candados sin argumentos verá inmediatamente cómo usarla de forma segura.
Comando para verificar:
ruby adn/tools/candados/candados.rb # Help resumida
ruby adn/tools/candados/candados.rb --help # Help completa
🛠️ Lecciones Aprendidas - DASUTEN VMs (2026-04-08)
Problema: VMs dasu-sql2 y dasu-pcv2 mostraban "running" pero sin conectividad IP ni respuesta a ping.
Diagnóstico:
- Tabla ARP mostraba MACs en bridge pero sin respuesta ICMP
- Tailscale reportaba "offline, last seen 1d ago"
- qemu-guest-agent no estaba corriendo dentro de las VMs
Causa probable: Windows Server Core iniciaba pero sin stack de red activo o servicios de red fallando.
Solución aplicada: Crear VM 105 (dasu-sql3) limpia con:
- ISO Windows Server 2022 Español (no Core evaluation)
- Discos SATA (no VirtIO que puede causar problemas)
- 60GB disco para SO + 120GB disco para datos SQL
- virtio drivers integrados
Nota técnica - LVM-thin:
lvcreate -Lcrea volúmenes finos pero requiere espacio físico reallvcreate -V -T pool/thincrea volúmenes thin que solo usan espacio cuando se escriben- Verificar con
vgsylvs -apara diagnosticar espacio - Thin volumes pueden tener metadata más pequeña que el tamaño virtual