# FASE 5: ANALISIS DE DEPENDENCIAS
# Mapeo de Dependencias entre Archivos a Modificar

---

## METADATOS

| Campo | Valor |
|-------|-------|
| **Fase** | 5 - Analisis de Dependencias |
| **Proyecto** | ERP Core |
| **Fecha** | 2026-01-10 |
| **Metodologia** | CAPVED + SIMCO v3.8 |
| **Estado** | COMPLETADO |

---

## 1. GRAFO DE DEPENDENCIAS

### 1.1 Dependencias Entre Inventarios

```
MASTER_INVENTORY.yml
    ├── depende_de: (ninguno - es raiz)
    └── referenciado_por:
        ├── DEPENDENCY_GRAPH.yml (lista modulos)
        ├── TRACEABILITY_MATRIX.yml (conteos)
        ├── BACKEND_INVENTORY.yml (modulos)
        └── FRONTEND_INVENTORY.yml (modulos)

DATABASE_INVENTORY.yml
    ├── depende_de: (ninguno)
    └── referenciado_por:
        ├── BACKEND_INVENTORY.yml (tablas → entidades)
        └── ET-*-backend.md (DDL specs)

BACKEND_INVENTORY.yml
    ├── depende_de:
    │   ├── MASTER_INVENTORY.yml (definicion modulos)
    │   └── DATABASE_INVENTORY.yml (tablas)
    └── referenciado_por:
        ├── TRACEABILITY_MATRIX.yml (servicios)
        └── ET-*-backend.md (servicios)

FRONTEND_INVENTORY.yml
    ├── depende_de:
    │   ├── MASTER_INVENTORY.yml (definicion modulos)
    │   └── BACKEND_INVENTORY.yml (endpoints)
    └── referenciado_por:
        ├── TRACEABILITY_MATRIX.yml (pages)
        └── ET-*-frontend.md (componentes)

DEPENDENCY_GRAPH.yml
    ├── depende_de:
    │   └── MASTER_INVENTORY.yml (lista modulos)
    └── referenciado_por:
        └── (ninguno - es hoja)

TRACEABILITY_MATRIX.yml
    ├── depende_de:
    │   ├── MASTER_INVENTORY.yml (modulos)
    │   ├── BACKEND_INVENTORY.yml (servicios)
    │   └── FRONTEND_INVENTORY.yml (pages)
    └── referenciado_por:
        └── (ninguno - es hoja)
```

### 1.2 Dependencias Entre ET

```
ET-auth-backend.md
    ├── depende_de:
    │   ├── RF-AUTH-*.md (requerimientos)
    │   ├── DDL-SPEC-core_auth.md (DDL)
    │   └── US-MGN001-*.md (user stories)
    └── referenciado_por:
        ├── BACKEND_INVENTORY.yml
        ├── TRACEABILITY_MATRIX.yml
        └── _MAP.md (docs/)

ET-FIN-backend.md
    ├── depende_de:
    │   ├── RF-FIN-*.md (requerimientos)
    │   ├── DDL-SPEC-financial.md (DDL)
    │   └── US-MGN010-*.md (user stories)
    └── referenciado_por:
        ├── BACKEND_INVENTORY.yml
        ├── TRACEABILITY_MATRIX.yml
        └── _MAP.md (docs/)

ET-SALES-backend.md (a crear)
    ├── depende_de:
    │   ├── RF-SALES-*.md (a crear)
    │   ├── DDL-SPEC-sales.md (existente)
    │   └── US-MGN011-*.md (a crear)
    └── referenciado_por:
        ├── BACKEND_INVENTORY.yml
        ├── TRACEABILITY_MATRIX.yml
        └── _MAP.md (docs/)
```

### 1.3 Dependencias de Nomenclatura

```
Archivos a Renombrar:
    ET-auth-backend.md → ET-AUTH-BACKEND.md
        └── actualizar_referencias_en:
            ├── docs/_MAP.md
            ├── docs/01-fase-foundation/MGN-001-auth/_MAP.md
            ├── BACKEND_INVENTORY.yml
            └── TRACEABILITY_MATRIX.yml

    FASE-1-PLAN-COMPARACION-ODOO.md → PLAN-COMPARACION-ODOO-2025-12-XX.md
        └── actualizar_referencias_en:
            ├── orchestration/01-analisis/_MAP.md
            └── docs/_MAP.md (si existe referencia)

Directorios a Renumerar:
    orchestration/agentes/ → orchestration/06-agentes/
        └── actualizar_referencias_en:
            ├── orchestration/_MAP.md
            ├── INDICE-DIRECTIVAS-WORKSPACE.yml
            └── Archivos dentro del directorio (rutas relativas)
```

---

## 2. MATRIZ DE IMPACTO

### 2.1 Archivos de Alto Impacto

| Archivo | Referencias | Impacto | Precaucion |
|---------|-------------|---------|------------|
| MASTER_INVENTORY.yml | 4 archivos | ALTO | Corregir primero, validar dependientes |
| _MAP.md (docs/) | ~50+ referencias | ALTO | Actualizar despues de renombrados |
| INDICE-DIRECTIVAS-WORKSPACE.yml | Workspace completo | ALTO | Actualizar rutas de perfiles |
| ET-auth-backend.md | 4+ referencias | MEDIO | Actualizar inventarios |
| docs/README.md | Enlaces internos | MEDIO | Validar enlaces post-cambio |

### 2.2 Archivos de Bajo Impacto

| Archivo | Referencias | Impacto | Notas |
|---------|-------------|---------|-------|
| FASE-X-*.md | 0-1 referencia | BAJO | Renombrar sin problema |
| DDL-SPEC-*.md | 1-2 referencias | BAJO | Solo en ET correspondiente |
| SESSION-*.md | 0 referencias | BAJO | Archivos historicos |

---

## 3. ORDEN DE EJECUCION POR DEPENDENCIA

### 3.1 Bloque A (Inventarios)

```
ORDEN OBLIGATORIO:
1. A1: MASTER_INVENTORY.yml (corregir YAML)
   └── Razon: Es la raiz, todos dependen de el

2. A4: DEPENDENCY_GRAPH.yml (actualizar)
   └── Razon: Depende solo de MASTER

3. A5: TRACEABILITY_MATRIX.yml (actualizar)
   └── Razon: Depende de MASTER y DEPENDENCY

4. A2: BACKEND_INVENTORY.yml (completar)
   └── Razon: Depende de MASTER y DATABASE

5. A3: FRONTEND_INVENTORY.yml (completar)
   └── Razon: Depende de MASTER y BACKEND
```

### 3.2 Bloque B-C (ET)

```
ORDEN FLEXIBLE (pueden ser paralelas):
B1: ET-auth-backend.md
B2: ET-FIN-backend.md
C1-C8: ET verticales nuevas

Razon: Cada ET es independiente de las otras
Nota: Actualizar inventarios DESPUES de crear ETs
```

### 3.3 Bloque D (Nomenclatura)

```
ORDEN RECOMENDADO:
1. D2: ET mixed-case (8 archivos)
   └── Razon: Pocos archivos, referencias claras

2. D1: FASE-X (30 archivos)
   └── Razon: Sin referencias externas

3. D3: DDL-SPEC (25 archivos)
   └── Razon: Referencias en ET (ya actualizadas)

4. D4: Directorios (59 dirs)
   └── Razon: Requiere actualizar rutas internas

5. D5: Prefijos restantes (96 archivos)
   └── Razon: Ultimos, pueden tener mas referencias
```

### 3.4 Bloque E (Estructura)

```
ORDEN RECOMENDADO:
1. E3: Estructura modulos verticales
   └── Razon: Necesario para organizar ETs creadas

2. E1: Mover archivos huerfanos
   └── Razon: Crear directorios destino primero

3. E2: Crear _MAP.md por fase
   └── Razon: Despues de tener estructura final

4. E4: Sincronizar conteos
   └── Razon: Ultimo, despues de todos los cambios
```

---

## 4. ARCHIVOS DEPENDIENTES A ACTUALIZAR

### 4.1 Post-Renombrado ET

Despues de renombrar `ET-auth-backend.md → ET-AUTH-BACKEND.md`:

```yaml
archivos_a_actualizar:
  - ruta: docs/_MAP.md
    buscar: "ET-auth-backend.md"
    reemplazar: "ET-AUTH-BACKEND.md"

  - ruta: docs/01-fase-foundation/MGN-001-auth/_MAP.md
    buscar: "ET-auth-backend.md"
    reemplazar: "ET-AUTH-BACKEND.md"

  - ruta: orchestration/inventarios/BACKEND_INVENTORY.yml
    buscar: "ET-auth-backend.md"
    reemplazar: "ET-AUTH-BACKEND.md"

  - ruta: orchestration/inventarios/TRACEABILITY_MATRIX.yml
    buscar: "ET-auth-backend.md"
    reemplazar: "ET-AUTH-BACKEND.md"
```

### 4.2 Post-Renumeracion Directorios

Despues de renumerar `orchestration/agentes/ → orchestration/06-agentes/`:

```yaml
archivos_a_actualizar:
  - ruta: orchestration/_MAP.md
    buscar: "agentes/"
    reemplazar: "06-agentes/"

  - ruta: orchestration/README.md
    buscar: "agentes/"
    reemplazar: "06-agentes/"

  - ruta: orchestration/INDICE-DIRECTIVAS-WORKSPACE.yml
    buscar: "agents/perfiles/"
    reemplazar: "06-agentes/perfiles/"
    nota: "Verificar si aplica"

archivos_internos:
  - todos los archivos dentro de 06-agentes/
    actualizar: rutas relativas si existen
```

### 4.3 Post-Creacion Estructura Vertical

Despues de crear estructura para MGN-011 a MGN-018:

```yaml
archivos_a_actualizar:
  - ruta: docs/_MAP.md
    accion: agregar enlaces a nuevos modulos

  - ruta: docs/03-fase-vertical/_MAP.md
    accion: crear con lista de modulos

  - ruta: MASTER_INVENTORY.yml
    accion: actualizar estado modulos (planificado → rf_documentado)

  - ruta: BACKEND_INVENTORY.yml
    accion: agregar seccion para cada modulo

  - ruta: FRONTEND_INVENTORY.yml
    accion: agregar seccion para cada modulo
```

---

## 5. VALIDACION DE DEPENDENCIAS

### 5.1 Checklist Pre-Ejecucion

```markdown
## Antes de Bloque A:
- [ ] Backup de inventarios actuales
- [ ] Verificar que MASTER_INVENTORY es parseble (excepto error conocido)

## Antes de Bloque D:
- [ ] Lista completa de referencias por archivo a renombrar
- [ ] Script de busqueda de referencias preparado

## Antes de Bloque E:
- [ ] Directorios destino identificados
- [ ] Permisos de escritura verificados
```

### 5.2 Checklist Post-Ejecucion

```markdown
## Despues de Bloque A:
- [ ] Todos inventarios parsean correctamente
- [ ] Conteos son consistentes entre inventarios

## Despues de Bloque D:
- [ ] Grep de nombres antiguos retorna 0 resultados
- [ ] Enlaces en _MAP.md funcionan

## Despues de Bloque E:
- [ ] Estructura de directorios es consistente
- [ ] No hay archivos huerfanos
```

---

## 6. RIESGOS DE DEPENDENCIA

### 6.1 Riesgos Identificados

| Riesgo | Probabilidad | Impacto | Mitigacion |
|--------|--------------|---------|------------|
| Referencias huerfanas post-rename | Media | Alto | Grep exhaustivo antes/despues |
| Inventarios con rutas invalidas | Media | Alto | Validacion YAML post-cambio |
| _MAP.md con enlaces rotos | Alta | Medio | Regenerar _MAP.md al final |
| Git history confuso | Baja | Bajo | Commits atomicos por tarea |

### 6.2 Plan de Rollback

```yaml
rollback_por_bloque:
  A:
    accion: git checkout -- orchestration/inventarios/
    tiempo: 1 minuto

  B-C:
    accion: git checkout -- docs/*/especificaciones/
    tiempo: 1 minuto

  D:
    accion: git checkout -- (archivos renombrados)
    tiempo: 5 minutos (requiere lista)

  E:
    accion: git checkout -- docs/ orchestration/
    tiempo: 2 minutos
```

---

## 7. SCRIPTS DE SOPORTE

### 7.1 Script para Buscar Referencias

```bash
#!/bin/bash
# buscar-referencias.sh
# Uso: ./buscar-referencias.sh "nombre-archivo.md"

ARCHIVO=$1
echo "Buscando referencias a: $ARCHIVO"
grep -r "$ARCHIVO" \
  --include="*.md" \
  --include="*.yml" \
  --include="*.yaml" \
  /home/isem/workspace-v1/projects/erp-core/
```

### 7.2 Script para Validar Inventarios

```bash
#!/bin/bash
# validar-inventarios.sh

echo "Validando inventarios YAML..."
for f in /home/isem/workspace-v1/projects/erp-core/orchestration/inventarios/*.yml; do
  if python3 -c "import yaml; yaml.safe_load(open('$f'))" 2>/dev/null; then
    echo "OK: $f"
  else
    echo "ERROR: $f"
  fi
done
```

---

## 8. CONCLUSION

### 8.1 Resumen de Dependencias

```
ARCHIVOS CON DEPENDENCIAS CRITICAS:    6
├── MASTER_INVENTORY.yml
├── BACKEND_INVENTORY.yml
├── FRONTEND_INVENTORY.yml
├── DEPENDENCY_GRAPH.yml
├── TRACEABILITY_MATRIX.yml
└── docs/_MAP.md

ARCHIVOS SIN DEPENDENCIAS:             ~195+
└── Pueden modificarse en paralelo

ORDEN DE EJECUCION:
1. Inventarios (A1 → A4 → A5 → A2 → A3)
2. ET existentes y nuevas (B, C - paralelo)
3. Nomenclatura (D2 → D1 → D3 → D4 → D5)
4. Estructura (E3 → E1 → E2 → E4)
5. Tests y mejoras (F, G - paralelo)
```

### 8.2 Dependencias Validadas

| Aspecto | Estado |
|---------|--------|
| Grafo de dependencias | Mapeado |
| Orden de ejecucion | Definido |
| Archivos a actualizar | Listados |
| Riesgos identificados | Mitigados |
| Scripts de soporte | Preparados |

---

## 9. APROBACION

| Rol | Estado | Fecha |
|-----|--------|-------|
| Analista | COMPLETADO | 2026-01-10 |
| Usuario | PENDIENTE | - |

---

*Analisis de dependencias completado siguiendo CAPVED + SIMCO v3.8*
*Proximo paso: FASE 6 - Refinamiento del Plan*
