[RFC-ADN-01] Armonía Integral — estandarizar manifiestos de proyectos

- P2604: Agregar Identificación, Stakeholders, Nodos, Herramientas, Hitos Clave
- P2605: Agregar Identificación, Stakeholders, Nodos, Herramientas, Hitos Clave
- P2602: Eliminar sección de nodos duplicada + agregar Hitos Clave
- Todos: Rutas relativas corregidas, referencias DB-First
This commit is contained in:
Ricardo Monla
2026-03-16 15:24:26 -03:00
parent 0c0c20de87
commit 69149c9e29
3 changed files with 179 additions and 206 deletions
@@ -1,17 +1,59 @@
# Plan de Migración: Solo Bitácoras Web (P2605)
# P2605 - Migración a Bitácoras Web
> Manifiesto de Proyecto | Referencia: [`adn/07_proyectos.md`](../../../adn/07_proyectos.md)
## Identificación
| Campo | Valor |
| :--- | :--- |
| **Código** | P2605 |
| **Nombre** | Migración a Bitácoras Web (DB-First) |
| **Estado** | ✅ Completado |
| **Inicio** | 05/03/2026 |
| **Fin** | 12/03/2026 |
## Objetivo
## 🎯 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.
## Stakeholders
| Rol | Persona | Visibilidad |
| :--- | :--- | :--- |
| **Responsable Técnico** | Lic. Ricardo MONLA | Operador directo |
| **Dirección de TIC** | (Jerárquico superior) | Dashboard asíncrono |
## Nodos Involucrados
### Nodos Exclusivos (Core)
| Nodo | IP | Rol en el Proyecto |
| :--- | :--- | :--- |
| [**srv-ns8**](../../../nodos/srv-ns8.md) | `10.0.10.8` | Servidor de la aplicación web (Docker) |
## Herramientas
| Herramienta | Uso |
| :--- | :--- |
| **React 18 + TypeScript** | Frontend SPA (bitácora web) |
| **Node.js + Express** | Backend API REST |
| **PostgreSQL 15** | Base de datos relacional |
| **Docker Compose** | Orquestación de servicios |
| **Ruby CLI (ADN)** | Comandos `db migrar:md`, `db exportar:md`, `db verificar` |
## Hitos Clave
| Fecha | ID | Estado | Hito |
| :--- | :--- | :---: | :--- |
| 05/03 | A1-A6 | ✅ | Etapa A: Web puede reemplazar al MD (esquema DB, API, UI gestión, formulario, rollover) |
| 08/03 | B1-B3 | ✅ | Etapa B: Comandos ADN hablan con DB (`inicio`, `cierre`, `backup` → DB-First) |
| 10/03 | C1-C2 | ✅ | Etapa C: MD se genera desde DB (`exportar:md`, exportación masiva) |
| 12/03 | D1-D3 | ✅ | Etapa D: Verificación y cierre (migración histórica, auditoría, header automático) |
---
## 📋 Secuencia Lógica de Hitos
## Detalle de Etapas
> 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.
### Etapa A — La Web reemplaza al MD (Entrada de datos)
| # | Hito | Qué resuelve | Estado |
| :---: | :--- | :--- | :---: |
@@ -22,55 +64,37 @@ Sin esto, seguís dependiendo del archivo para registrar actividad.
| 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`.
### Etapa B — Comandos ADN hablan con la DB (Automatización)
| # | 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 | ✅ |
| B1 | **Refactor inicio.rb → DB-First** | `adn inicio de jornada` escribe en DB | ✅ |
| B2 | **Refactor cierre.rb → DB-First** | `adn cierre de jornada` escribe en DB | ✅ |
| 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.
### Etapa C — MD se genera desde la DB (Respaldo)
| # | Hito | Qué resuelve | Estado |
| :---: | :--- | :--- | :---: |
| C1 | **Exportador Ruby: md_exporter.rb** | `adn db exportar:md FECHA` genera el MD desde la DB | ✅ |
| C1 | **Exportador Ruby: md_exporter.rb** | `adn db exportar:md FECHA` genera MD desde 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 | ✅ |
| D1 | **Migración histórica** | `adn db migrar:md --todo` importa 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 | ✅ |
| D3 | **Desactivar edición manual** | Header `<!-- GENERADO AUTOMÁTICAMENTE -->` en MDs exportados | ✅ |
---
## 🐝 Herramientas del Enjambre ADN
## Comandos ADN (Referencia)
```
```bash
# Flujo diario (DB-First)
./adn/tools/run inicio de jornada presencial|remoto
./adn/tools/run cierre de jornada presencial|remoto
./adn/tools/run db evento:crear --nodo NODO --inicio HH:MM --descripcion "..."
./adn/tools/run db evento:listar --desde FECHA --detalle
# Importar MD existente → DB
./adn/tools/run db migrar:md FECHA [--sobrescribir]
@@ -87,9 +111,7 @@ Asegurar que no se perdió nada en la transición.
---
## 📊 Estado Actual — COMPLETO ✅
**Ya no es necesario editar MDs manualmente.** Todas las etapas están completas.
## Estado: COMPLETO ✅
| Etapa | Progreso |
| :--- | :---: |
@@ -98,9 +120,10 @@ Asegurar que no se perdió nada en la transición.
| 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).
> **Cobertura de migración:** 88.9% (16/18 bitácoras con entradas). Las 2 restantes son días sin actividades detalladas.
---
<!-- 🤖 PREMISAS DE TRABAJO (IA): Fuente de Verdad → adn/05_ia.md -->
## Referencias
- **ADN**: [Ontología](../../../adn/01_ontologia.md) | [Proyectos](../../../adn/07_proyectos.md) | [Bitácora](../../../adn/02_bitacora.md)
- **Proyecto relacionado**: [P2603 Bitácoras](../P2603_Bitacoras/P2603_bitacoras.md)
- **Bitácoras**: Consultar en DB vía `./adn/tools/run db evento:listar --detalle`