# ADR-012: Politica de Trazabilidad Completa

**Estado:** Aceptado
**Fecha:** 2025-11-24
**Responsable:** Architecture-Analyst
**Proyecto:** ERP Construccion

## Contexto

El ERP de Construccion es un sistema complejo con multiples capas y cientos de objetos. Para mantener coherencia, facilitar mantenimiento y permitir analisis de impacto, necesitamos trazabilidad completa.

## Decision

**Adoptamos la politica de "Trazabilidad Completa End-to-End".**

### Principio Fundamental

```
+---------------------------------------------------------------------+
|                     TRAZABILIDAD COMPLETA                            |
|                                                                      |
|   RF (Requerimiento) --> ET-Backend --> ET-Frontend --> US (Stories) |
|         |                    |               |              |        |
|         v                    v               v              v        |
|   +---------+          +---------+     +---------+    +---------+   |
|   | Tablas  |<-------->| APIs    |<--->| Comps   |<-->| Tests   |   |
|   | BD      |          | Backend |     | Frontend|    | E2E     |   |
|   +---------+          +---------+     +---------+    +---------+   |
+---------------------------------------------------------------------+
```

### Inventarios Requeridos

| Inventario | Ubicacion | Contenido |
|------------|-----------|-----------|
| Objetos BD | `02-modelado/trazabilidad/INVENTARIO-OBJETOS-BD.yml` | Tablas, funciones, triggers |
| Objetos Backend | `02-modelado/trazabilidad/INVENTARIO-OBJETOS-BACKEND.yml` | Controllers, services, DTOs |
| Objetos Frontend | `02-modelado/trazabilidad/INVENTARIO-OBJETOS-FRONTEND.yml` | Components, pages, hooks |
| Matriz Completa | `02-modelado/trazabilidad/MATRIZ-TRAZABILIDAD-COMPLETA.md` | RF -> ET -> BD -> Codigo |

### Reglas de Mantenimiento

```
REGLA 1: CREAR -> DOCUMENTAR
- Agregar al inventario correspondiente
- Documentar RF/ET/US de origen
- Mapear dependencias y dependientes

REGLA 2: MODIFICAR -> ACTUALIZAR
- Actualizar inventario si cambio estructura
- Verificar impacto en dependientes
- Actualizar documentacion relacionada

REGLA 3: ELIMINAR -> LIMPIAR
- Eliminar del inventario
- Actualizar dependientes que lo usaban
- Eliminar referencias huerfanas

REGLA 4: PR -> VALIDAR TRAZABILIDAD
- Incluir actualizacion de inventarios
- Verificar dependencias actualizadas
```

## Justificacion

### Alineacion con ERP Generico
- Misma politica de trazabilidad
- Inventarios compatibles

### Especifico para Construccion
- Trazabilidad para auditorias INFONAVIT
- Impacto de cambios en estimaciones
- Control de cambios en presupuestos

## Consecuencias

### Positivas
- Analisis de impacto antes de cambios
- Debugging eficiente (UI a BD)
- Onboarding rapido
- Refactoring seguro
- Auditorias INFONAVIT facilitadas

### Negativas
- Overhead inicial: Requiere disciplina
  - Mitigacion: Templates y automatizacion

## Directiva para Agentes

```
DIRECTIVA ADR-012 - TRAZABILIDAD COMPLETA

Los agentes DEBEN:
- Verificar trazabilidad antes de crear objetos
- Actualizar inventarios al crear/modificar/eliminar
- Documentar dependencias y dependientes
- Mantener referencias cruzadas entre capas
- Incluir seccion de trazabilidad en documentos

Los agentes NO DEBEN:
- Crear objetos sin documentar origen (RF/ET/US)
- Modificar objetos sin actualizar dependientes
- Eliminar objetos sin limpiar referencias
- Ignorar impacto en otras capas
```

## Referencias
- [ERP Generico ADR-012](../../erp-generic/docs/adr/ADR-012-complete-traceability-policy.md)
