[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:
@@ -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`
|
||||
|
||||
Reference in New Issue
Block a user