[RFC-ADN-01] Normalizar nomenclatura de proyectos

- Directorios: PascalCase (p2601_dasuten → P2601_Dasuten)
- Planes: numeración pura (P2601_6.1.A → P2601.06.01)
- Sin caracteres especiales en nombres de archivo
- 07_proyectos.md: convención RFC-ADN-01 integrada, P2604/P2605 agregados
- evento:listar: nueva opción --detalle para descripciones completas
This commit is contained in:
Ricardo Monla
2026-03-16 15:15:53 -03:00
parent f608924c6a
commit ba5c65e2a4
33 changed files with 883 additions and 390 deletions
@@ -0,0 +1,106 @@
# Plan de Migración: Solo Bitácoras Web (P2605)
## 🎯 Objetivo
Dejar de editar manualmente archivos `.md`. La Web y los comandos ADN escriben en la DB; el `.md` se genera automáticamente como respaldo.
---
## 📋 Secuencia Lógica de Hitos
> La numeración refleja dependencias reales: cada hito requiere los anteriores.
### Etapa A — La Web puede reemplazar al MD (Entrada de datos)
Sin esto, seguís dependiendo del archivo para registrar actividad.
| # | Hito | Qué resuelve | Estado |
| :---: | :--- | :--- | :---: |
| A1 | **Esquema DB: gestion + resumen_nodos** | Tablas para Pendientes, En Proceso y Resumen Integral | ✅ |
| A2 | **API: endpoints gestion y resumen** | Backend para crear/editar/eliminar desde la Web | ✅ |
| A3 | **UI: Panel de Gestión** | Editar Pendientes y En Proceso desde el Dashboard | ✅ |
| A4 | **UI: Editor Resumen Integral** | Editar resumen por nodo desde el Dashboard | ✅ |
| A5 | **UI: Formulario de Entradas** | Crear entradas I-F-D-E desde la Web | ✅ |
| A6 | **Rollover automático** | Pendientes activos pasan al día siguiente (vía `activo=true`) | ✅ |
**Resultado:** La Web ya puede hacer todo lo que antes se hacía a mano en el MD.
---
### Etapa B — Los comandos ADN hablan con la DB (Automatización)
Sin esto, `adn inicio` y `adn cierre` siguen escribiendo en el `.md`.
| # | Hito | Qué resuelve | Estado |
| :---: | :--- | :--- | :---: |
| B1 | **Refactor inicio.rb → DB-First** | `adn inicio de jornada` escribe en DB, no en MD | ✅ |
| B2 | **Refactor cierre.rb → DB-First** | `adn cierre de jornada` escribe en DB, no en MD | ✅ |
| B3 | **Refactor backup → DB** | Registrar eventos de backup como entradas en DB | ✅ |
**Resultado:** Los comandos del enjambre ya no tocan archivos `.md`.
---
### Etapa C — El MD se genera desde la DB (Respaldo)
Recién ahora tiene sentido generar el MD, porque la DB **ya es** la fuente de verdad.
| # | Hito | Qué resuelve | Estado |
| :---: | :--- | :--- | :---: |
| C1 | **Exportador Ruby: md_exporter.rb** | `adn db exportar:md FECHA` genera el MD desde la DB | ✅ |
| C2 | **Exportación masiva** | `adn db exportar:md --todo` regenera todos los MDs | ✅ |
**Resultado:** Los archivos `.md` son un producto generado, no una fuente de entrada.
---
### Etapa D — Verificación y cierre (Confianza)
Asegurar que no se perdió nada en la transición.
| # | Hito | Qué resuelve | Estado |
| :---: | :--- | :--- | :---: |
| D1 | **Migración histórica** | `adn db migrar:md --todo` importa todo el historial | ✅ |
| D2 | **Verificación de cobertura** | `adn db verificar` audita MD ↔ DB | ✅ |
| D3 | **Desactivar edición manual de MDs** | Header `<!-- GENERADO AUTOMÁTICAMENTE -->` en MDs exportados | ✅ |
---
## 🐝 Herramientas del Enjambre ADN
```
# Flujo diario (DB-First)
./adn/tools/run inicio de jornada presencial|remoto
./adn/tools/run cierre de jornada presencial|remoto
# Importar MD existente → DB
./adn/tools/run db migrar:md FECHA [--sobrescribir]
./adn/tools/run db migrar:md --todo [--sobrescribir]
# Exportar DB → MD (respaldo)
./adn/tools/run db exportar:md FECHA
./adn/tools/run db exportar:md --todo
# Auditoría
./adn/tools/run db verificar
./adn/tools/run db estadisticas
```
---
## 📊 Estado Actual — COMPLETO ✅
**Ya no es necesario editar MDs manualmente.** Todas las etapas están completas.
| Etapa | Progreso |
| :--- | :---: |
| A — Web reemplaza al MD | 6/6 ✅ |
| B — ADN habla con DB | 3/3 ✅ |
| C — MD se genera desde DB | 2/2 ✅ |
| D — Verificación y cierre | 3/3 ✅ |
### Notas
- Cobertura de migración: 88.9% (16/18 bitácoras con entradas). Las 2 restantes son días sin actividades detalladas.
- Selector "Modo de Jornada" en la UI queda como mejora futura (no bloquea el flujo actual).
---
<!-- 🤖 PREMISAS DE TRABAJO (IA): Fuente de Verdad → adn/05_ia.md -->