Skip to content

Commit 04cbe0d

Browse files
authored
Merge pull request #295 from jcg-admin/feature/update-plan_remediacion_trz.md-recommendations-06-10-24
Docs: detallar plan de remediacion de trazabilidad
2 parents 5d053b0 + 6d637b2 commit 04cbe0d

1 file changed

Lines changed: 66 additions & 1 deletion

File tree

docs/trazabilidad/PLAN_REMEDIACION_TRZ.md

Lines changed: 66 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
3. Normalizar plantillas y gemas con campos de trazabilidad obligatorios.
1212
4. Asegurar que CI/CD rechace artefactos sin referencias y valide actualizaciones de RTM.
1313
5. Preparar auditoría mensual y por release conforme al punto 11 del plan oficial.
14+
6. Completar la automatización de validación, reporte y rollback para que el cambio sea reversible y visible.
1415

1516
## 3. Alcance
1617
Aplica a todos los dominios definidos en el Plan Oficial: Backend (Django REST), Frontend (React/Webpack), Infraestructura/DevOps, Documentación/Gobernanza, Scripts, QA/Testing, Reglas de Negocio, Casos de Uso/UML y ADRs.
@@ -35,6 +36,20 @@ Aplica a todos los dominios definidos en el Plan Oficial: Backend (Django REST),
3536
- Activar auditoría mensual y por release (punto 11) y registrar hallazgos en `docs/trazabilidad/registros/`.
3637
- Incorporar reportes automáticos de cobertura y evidencia de pruebas.
3738

39+
### 4.1 Detalle técnico de CI/CD (aplica a oleadas 2 y 3)
40+
- **Workflows** (`.github/workflows/trazabilidad.yml`):
41+
- Job `lint-trazabilidad` (warning semana 2 → blocking semana 3):
42+
- Ejecuta `scripts/trazabilidad/validar_plantillas.py --paths docs/trazabilidad/plantillas`.
43+
- Regex obligatoria en PR: referencias `UC-\d+`, `RF-\d+`, `ADR-\d+`, `BR-\d+` en commits y PR body.
44+
- Verifica que los archivos `RTM.md` y plantillas modificadas pasen `yamllint`/`markdownlint` con reglas extendidas de trazabilidad.
45+
- Job `rtm-drift-check` (blocking):
46+
- Usa `scripts/trazabilidad/validar_rtm.py --rtm docs/trazabilidad/RTM.md --codigo api backend ui scripts`.
47+
- Falla si hay referencias huérfanas o si la cobertura < 90%.
48+
- Job `api-metadata-check` (blocking):
49+
- Ejecuta `pytest api --maxfail=1 -q -k "extend_schema"` para asegurar metadatos.
50+
- Verifica que cada endpoint nuevo incluya campos `uc_refs`, `rf_refs`, `adr_refs` en el decorador `@extend_schema`.
51+
- **Condiciones de bloqueo**: `lint-trazabilidad` en warning durante semana 2, se cambia a blocking en semana 3 mediante variable `TRZ_VALIDATION_MODE=blocking`.
52+
3853
## 5. Backlog detallado
3954
- **B1. Crear repositorio de trazabilidad** (`docs/trazabilidad/` con subcarpetas `plantillas/` y `registros/`). Entregable: estructura mínima y README.
4055
- **B2. Publicar TRZ-001** (estándar SDLC) con reglas, identificadores y ciclo de vida de artefactos.
@@ -54,6 +69,13 @@ Aplica a todos los dominios definidos en el Plan Oficial: Backend (Django REST),
5469
- Indicar en qué matriz se reflejará el cambio (`RTM-IACT`, `M_*` correspondientes) y qué plantilla v2 aplica.
5570
- Incluir criterios de *Definition of Done* con prueba/linters y actualización de RTM.
5671

72+
### 5.2 Contenido mínimo de plantillas v2 y gemas
73+
- **UC_v2.md**: campos `id`, `titulo`, `actores`, `precondiciones`, `flujo_basico`, `flujos_alternos`, `trazabilidad_upward (RN/RF/BR)`, `trazabilidad_downward (UML/API/Tests)`, `riesgos`, `evidencia`.
74+
- **ADR_v2.md**: `id`, `estatus`, `contexto`, `decisión`, `alternativas`, `trazabilidad_upward (UC/UML)`, `trazabilidad_downward (Código/Tests/API)`, `fecha`, `responsable`.
75+
- **TEST_v2.md**: `id`, `tipo`, `ambiente`, `datos_prueba`, `pasos`, `resultado_esperado`, `trazabilidad_upward (API/UC/RF)`, `trazabilidad_downward (Evidencia/Código)`, `resultado`.
76+
- **GOB_v2.md / BR_v2.md**: incluyen `trazabilidad_upward` hacia políticas/regulaciones y `trazabilidad_downward` hacia UC/RF.
77+
- **Gemas**: bloque obligatorio YAML/JSON `trazabilidad` con arrays `uc_refs`, `rf_refs`, `adr_refs`, `tests_refs`; validado por `scripts/trazabilidad/validar_gemas.py`.
78+
5779
## 6. Criterios de aceptación
5880
- RTM-IACT sin campos vacíos y con enlaces bidireccionales a requisitos, código, tests y evidencia.
5981
- Todas las plantillas vigentes incluyen campos `trazabilidad_upward` y `trazabilidad_downward` completos.
@@ -113,6 +135,16 @@ RN → RF → UC → UML → ADR → Código → API → Pruebas → Evidencia
113135
- **Fase 10.9 — Evidencia:** registrar evidencias y Test→Evidencia, actualizar `M_EVID` y `M_TEST_EVID`.
114136
- **Fase 10.10 — Revisión final QA:** requiere todas las matrices principales y relacionales completas; valida cierre del ciclo y autoriza liberación.
115137

138+
### 10.4.1 Plan de migración de datos heredados
139+
- **Inventario inicial (día 1-2)**: exportar matrices actuales (`docs/gobernanza/trazabilidad/*`) y clasificarlas por criticidad (CRIT/MAJ/MIN).
140+
- **Limpieza asistida (día 3-4)**: script `scripts/trazabilidad/etl_rtm.py`:
141+
- Normaliza IDs y detecta duplicados/huérfanos.
142+
- Marca huecos con etiqueta `PENDING` y `responsable`.
143+
- Genera reporte CSV para revisión manual.
144+
- **Carga a RTM-IACT (día 5)**: importar CSV limpio a `docs/trazabilidad/RTM.md`.
145+
- **Validación cruzada (día 6)**: ejecutar `validar_rtm.py` + muestreo manual 10% de entradas CRIT.
146+
- **Cierre (día 7)**: aprobar migración, archivar matrices antiguas como deprecated.
147+
116148
### 10.5 Reglas de gobernanza adicionales
117149
- **Completitud por fase**: no cerrar sin salidas obligatorias, matriz actualizada y validación formal.
118150
- **Prohibición de iniciar sin entradas mínimas** y **control de artefactos huérfanos** (origen y destino identificables).
@@ -124,13 +156,46 @@ RN → RF → UC → UML → ADR → Código → API → Pruebas → Evidencia
124156
- Responsables: Trazabilidad, QA, Arquitectura, Desarrollo.
125157
- Observaciones libres para decisiones, riesgos o acuerdos.
126158

127-
### 10.7 Mapa ASCII de referencia
159+
### 10.7 Medición y verificación de cobertura ≥90%
160+
- **Definición**: porcentaje de filas en `RTM.md` con vínculos válidos a origen (UC/RF/ADR/BR) y destino (Código/API/Tests/Evidencia).
161+
- **Herramienta**: `scripts/trazabilidad/coverage_rtm.py --rtm docs/trazabilidad/RTM.md --repo .`.
162+
- **Métrica**: `cobertura_total = filas_con_origen_y_destino / filas_totales`.
163+
- **Umbral**: warning < 90%, blocking < 85%.
164+
- **Reporte**: genera `docs/trazabilidad/registros/rtm_coverage_<fecha>.json` + gráfico en `rtm_coverage_<fecha>.svg`.
165+
166+
### 10.8 Mapa ASCII de referencia
128167

129168
```
130169
[RN] → [RF] → [UC] → [UML] → [ADR] → [COD] → [API] → [TEST] → [EVID] → [REV]
131170
Origen Reqs Casos Diseño Decis. Impl. Interf. Validac. Soporte Aprob.
132171
```
133172

173+
### 10.9 Evidencia automatizada y reporting
174+
- **Periodicidad**: semanal (pipeline) y por release.
175+
- **Formato**: `docs/trazabilidad/registros/<fecha>-evidencia.json` con campos `id`, `tipo`, `fuente`, `uc_refs`, `rf_refs`, `adr_refs`, `resultado`, `enlace_evidencia`.
176+
- **Integración CI/CD**: job `reporte-trazabilidad` publica artefacto HTML en `logs_data/trazabilidad/reportes/<fecha>.html`.
177+
- **Dashboard**: script `scripts/trazabilidad/dashboard_rtm.py` genera `docs/trazabilidad/registros/dashboard/index.html` con cobertura y hallazgos.
178+
179+
### 10.10 Responsables, tiempos y estimaciones
180+
- **B1–B2**: Owner Gobernanza (5d).
181+
- **B3**: Owner QA + Gobernanza (7d).
182+
- **B4**: Owner Arquitectura + Backend (5d).
183+
- **B5**: Owner QA (7d, depende B3).
184+
- **B6**: Owner Backend/Frontend (5d c/u) con soporte Arquitectura.
185+
- **B7**: Owner DevOps (4d) — transición warning→blocking semana 3.
186+
- **B8**: Owner Backend (3d) + QA (validación extend_schema).
187+
- **B9**: Owner QA/Gobernanza (recurrencia mensual, 2d por ciclo).
188+
189+
### 10.11 Checklist de PR y UX para desarrolladores
190+
- Plantilla `.github/PULL_REQUEST_TEMPLATE.md` debe incluir: `UC refs`, `RF refs`, `ADR refs`, `RTM actualizado (sí/no)`, `Evidencia adjunta`.
191+
- Validación automática: workflow `trazabilidad.yml` bloquea PR si falta alguna referencia o si el RTM no cambió cuando hay nuevas funcionalidades.
192+
- Mensajes de commit deben incluir ID de UC/RF/ADR cuando aplique.
193+
194+
### 10.12 Versionado y rollback
195+
- **Habilitación progresiva**: variable `TRZ_VALIDATION_MODE` controla warning/blocking.
196+
- **Rollback**: si el pipeline bloquea releases inesperadamente, deshabilitar job `rtm-drift-check` y revertir la versión de `RTM.md` a la última release estable (`git tag trazabilidad-vX.Y`).
197+
- **Feature flags**: usar `feature-trz-*` para cambios de gemas o validadores; merge solo tras pasar cobertura ≥90%.
198+
134199
## 11. Validación de cobertura (conformidad con el plan oficial y PROC-IACT-TRZ)
135200
Para asegurar que el plan de remediación incorpora **todo lo solicitado** en el Plan Oficial y el procedimiento PROC-IACT-TRZ v1.1, se valida lo siguiente:
136201

0 commit comments

Comments
 (0)