# Herencia SIMCO - ERP Suite

**Sistema:** SIMCO v2.2.0 + CAPVED + CCA Protocol
**Fecha:** 2025-12-08

---

## Configuración del Proyecto

| Propiedad | Valor |
|-----------|-------|
| **Proyecto** | ERP Suite - Sistema ERP Multi-Vertical |
| **Nivel** | SUITE (Nivel 1) |
| **Padre** | core/orchestration |
| **SIMCO Version** | 2.2.0 |
| **CAPVED** | Habilitado |
| **CCA Protocol** | Habilitado |

## Jerarquía de Herencia

```
Nivel 0: core/orchestration/                    ← FUENTE PRINCIPAL (76 docs)
    │
    └── Nivel 1: erp-suite/orchestration/       ← ESTE PROYECTO
            │
            ├── Nivel 2: erp-core/orchestration/
            │       │
            │       └── Nivel 3: verticales/*/orchestration/
            │           ├── construccion
            │           ├── vidrio-templado
            │           ├── mecanicas-diesel
            │           ├── retail
            │           └── clinicas
            │
            └── Nivel 2: products/*/orchestration/
                    ├── erp-basico
                    └── pos-micro
```

**Regla:** Las directivas de nivel inferior pueden EXTENDER las superiores, nunca REDUCIRLAS.

---

## Directivas Heredadas de CORE (OBLIGATORIAS)

Ubicación: `core/orchestration/`

### 1. Ciclo de Vida - USAR SIEMPRE

| Alias | Archivo | Propósito | Cuándo Usar |
|-------|---------|-----------|-------------|
| `@TAREA` | `directivas/simco/SIMCO-TAREA.md` | Punto de entrada | **Toda HU/tarea que genera commit** |
| `@CAPVED` | `directivas/principios/PRINCIPIO-CAPVED.md` | Ciclo de 6 fases | Contexto→Análisis→Plan→Validación→Ejecución→Doc |
| `@INICIALIZACION` | `directivas/simco/SIMCO-INICIALIZACION.md` | Bootstrap de agentes | Al iniciar cualquier agente |

### 2. Operaciones Universales

| Alias | Archivo | Propósito |
|-------|---------|-----------|
| `@CREAR` | `directivas/simco/SIMCO-CREAR.md` | Crear cualquier archivo nuevo |
| `@MODIFICAR` | `directivas/simco/SIMCO-MODIFICAR.md` | Modificar archivos existentes |
| `@VALIDAR` | `directivas/simco/SIMCO-VALIDAR.md` | Validar código (build, lint, tests) |
| `@DOCUMENTAR` | `directivas/simco/SIMCO-DOCUMENTAR.md` | Documentar trabajo realizado |
| `@BUSCAR` | `directivas/simco/SIMCO-BUSCAR.md` | Buscar archivos e información |
| `@DELEGAR` | `directivas/simco/SIMCO-DELEGACION.md` | Delegar trabajo a subagentes |

### 3. Catálogo de Funcionalidades

| Alias | Archivo | Propósito |
|-------|---------|-----------|
| `@CATALOG` | `catalog/` | Directorio de funcionalidades reutilizables |
| `@CATALOG_INDEX` | `catalog/CATALOG-INDEX.yml` | Índice machine-readable |
| `@REUTILIZAR` | `directivas/simco/SIMCO-REUTILIZAR.md` | ANTES de implementar algo común |
| `@CONTRIBUIR` | `directivas/simco/SIMCO-CONTRIBUIR-CATALOGO.md` | DESPUÉS de crear algo reutilizable |

**Funcionalidades del catálogo usadas por ERP Suite:**

| Funcionalidad | Uso en la Suite |
|---------------|-----------------|
| `auth` | Autenticación JWT centralizada |
| `multi-tenancy` | Separación por empresa/sucursal (RLS) |
| `session-management` | Gestión de sesiones de usuario |
| `rate-limiting` | Protección de APIs |

### 4. Principios Fundamentales (5)

| Alias | Archivo | Resumen |
|-------|---------|---------|
| `@CAPVED` | `PRINCIPIO-CAPVED.md` | Toda tarea pasa por 6 fases |
| `@DOC_PRIMERO` | `PRINCIPIO-DOC-PRIMERO.md` | Consultar docs/ antes de implementar |
| `@ANTI_DUP` | `PRINCIPIO-ANTI-DUPLICACION.md` | Verificar que no existe antes de crear |
| `@VALIDACION` | `PRINCIPIO-VALIDACION-OBLIGATORIA.md` | Build y lint DEBEN pasar |
| `@TOKENS` | `PRINCIPIO-ECONOMIA-TOKENS.md` | Desglosar tareas grandes |

---

## Directivas por Dominio Técnico

| Alias | Archivo | Tecnologías | Aplica a ERP Suite |
|-------|---------|-------------|-------------------|
| `@OP_DDL` | `SIMCO-DDL.md` | PostgreSQL, SQL | **SÍ** - 7 schemas |
| `@OP_BACKEND` | `SIMCO-BACKEND.md` | Express, TypeORM | **SÍ** - erp-core/backend |
| `@OP_FRONTEND` | `SIMCO-FRONTEND.md` | React, TypeScript, Vite | **SÍ** - erp-core/frontend |
| `@OP_MOBILE` | `SIMCO-MOBILE.md` | React Native | **SÍ** - mobile app |
| `@OP_ML` | `SIMCO-ML.md` | Python, FastAPI, ML/AI | NO |

---

## Directivas de Niveles y Propagación

| Alias | Archivo | Propósito |
|-------|---------|-----------|
| `@NIVELES` | `SIMCO-NIVELES.md` | Identificar nivel jerárquico |
| `@PROPAGACION` | `SIMCO-PROPAGACION.md` | Propagar cambios a niveles superiores |
| `@ALINEACION` | `SIMCO-ALINEACION.md` | Validar alineación DDL↔Entity↔DTO |
| `@DECISION_MATRIZ` | `SIMCO-DECISION-MATRIZ.md` | Decidir qué directiva usar |

---

## Patrones Heredados (RECOMENDADOS)

Ubicación: `core/orchestration/patrones/`

| Patrón | Uso en ERP Suite |
|--------|------------------|
| `MAPEO-TIPOS-DDL-TYPESCRIPT.md` | PostgreSQL ↔ TypeORM entities |
| `PATRON-VALIDACION.md` | Zod + class-validator |
| `PATRON-EXCEPTION-HANDLING.md` | HttpException + filtros globales |
| `PATRON-TESTING.md` | Jest + Supertest |
| `PATRON-LOGGING.md` | Winston estructurado |
| `PATRON-CONFIGURACION.md` | dotenv + validación |
| `PATRON-SEGURIDAD.md` | JWT, RBAC, RLS, Helmet |
| `PATRON-PERFORMANCE.md` | Query optimization, caching |
| `PATRON-TRANSACCIONES.md` | TypeORM QueryRunner |
| `ANTIPATRONES.md` | Lo que NUNCA hacer |
| `NOMENCLATURA-UNIFICADA.md` | snake_case BD, camelCase TS |

---

## Impactos y Dependencias

| Documento | Consultar Cuando |
|-----------|------------------|
| `IMPACTO-CAMBIOS-DDL.md` | Modificar schema de BD |
| `IMPACTO-CAMBIOS-BACKEND.md` | Modificar servicios/controllers |
| `IMPACTO-CAMBIOS-ENTITY.md` | Modificar entities TypeORM |
| `IMPACTO-CAMBIOS-API.md` | Modificar endpoints REST |
| `MATRIZ-DEPENDENCIAS.md` | Ver cascada completa |

---

## Perfiles de Agentes para ERP Suite

### Técnicos (más usados)
| Perfil | Especialización | Frecuencia |
|--------|-----------------|------------|
| `PERFIL-DATABASE.md` | PostgreSQL, DDL, RLS | Alta |
| `PERFIL-BACKEND.md` | Express, TypeORM | Alta |
| `PERFIL-FRONTEND.md` | React, TypeScript | Alta |
| `PERFIL-MOBILE-AGENT.md` | React Native | Media |

### Coordinación
| Perfil | Especialización |
|--------|-----------------|
| `PERFIL-ORQUESTADOR.md` | Coordinación multi-vertical |
| `PERFIL-ARCHITECTURE-ANALYST.md` | Decisiones de arquitectura |

### Calidad
| Perfil | Especialización |
|--------|-----------------|
| `PERFIL-CODE-REVIEWER.md` | Revisión de código |
| `PERFIL-BUG-FIXER.md` | Corrección de bugs |

---

## Directivas Específicas de ERP Suite

Ubicación: `./directivas/` (este proyecto)

| Directiva Local | Extiende | Propósito Específico |
|-----------------|----------|---------------------|
| `DIRECTIVA-MULTI-TENANT.md` | `@OP_DDL`, `@PATRON-SEGURIDAD` | RLS por constructora_id |
| `DIRECTIVA-HERENCIA-VERTICALES.md` | `@NIVELES` | Cómo verticales extienden core |
| `DIRECTIVA-EXTENSION-MODULOS.md` | `@CREAR` | Patrones para extender módulos |

---

## Variables de Contexto CCA

```yaml
# Variables para resolver en ALIASES y templates
PROJECT_NAME: "erp-suite"
PROJECT_LEVEL: "SUITE"
PROJECT_ROOT: "/home/isem/workspace/projects/erp-suite"

# Rutas específicas
DB_DDL_PATH: "apps/erp-core/database/ddl"
BACKEND_ROOT: "apps/erp-core/backend"
FRONTEND_ROOT: "apps/erp-core/frontend"
DOCS_ROOT: "docs"

# Inventarios
MASTER_INVENTORY: "orchestration/inventarios/MASTER_INVENTORY.yml"

# Multi-tenant
TENANT_COLUMN: "constructora_id"
RLS_CONTEXT: "app.current_constructora_id"
```

---

## Mapeo: Directivas Antiguas → SIMCO

| Directiva Antigua | Reemplazada Por | Alias |
|-------------------|-----------------|-------|
| `DIRECTIVA-FLUJO-5-FASES.md` | `SIMCO-TAREA.md` + `PRINCIPIO-CAPVED.md` | @TAREA, @CAPVED |
| `DIRECTIVA-VALIDACION-SUBAGENTES.md` | `SIMCO-VALIDAR.md` | @VALIDAR |
| `POLITICAS-USO-AGENTES.md` | `SIMCO-DELEGACION.md` | @DELEGAR |
| `DIRECTIVA-DOCUMENTACION-OBLIGATORIA.md` | `SIMCO-DOCUMENTAR.md` | @DOCUMENTAR |
| `DIRECTIVA-CALIDAD-CODIGO.md` | `patrones/ANTIPATRONES.md` | @PATRONES |
| `DIRECTIVA-DISENO-BASE-DATOS.md` | `SIMCO-DDL.md` | @OP_DDL |
| `ESTANDARES-API-REST-GENERICO.md` | `SIMCO-BACKEND.md` | @OP_BACKEND |

---

## Flujo de Trabajo para Subagentes

Al invocar un subagente para trabajar en ERP Suite:

```yaml
CONTEXTO_CCA:
  nivel: SUITE
  proyecto: erp-suite

DIRECTIVAS_A_CARGAR:
  core:
    - @TAREA           # Punto de entrada
    - @CAPVED          # Ciclo de vida
    - @INICIALIZACION  # Bootstrap
  operacion:
    - @OP_DDL          # Si trabaja con BD
    - @OP_BACKEND      # Si trabaja con API
    - @OP_FRONTEND     # Si trabaja con UI
  patrones:
    - @PATRON-SEGURIDAD    # Multi-tenant obligatorio
    - @PATRON-VALIDACION   # Zod + class-validator
  suite:
    - ./directivas/DIRECTIVA-MULTI-TENANT.md

INVENTARIO:
  - orchestration/inventarios/MASTER_INVENTORY.yml

DOCS_VALIDACION:
  - docs/verticales/{vertical}/
```

---

## Schemas de Base de Datos (7)

| Schema | Descripción | Directiva Aplicable |
|--------|-------------|---------------------|
| `auth_management` | Autenticación, usuarios, roles | @OP_DDL + @CATALOG(auth) |
| `project_management` | Proyectos, desarrollos, fases | @OP_DDL |
| `financial_management` | Presupuestos, estimaciones | @OP_DDL |
| `purchasing_management` | Compras, proveedores | @OP_DDL |
| `construction_management` | Avances, recursos | @OP_DDL |
| `quality_management` | Inspecciones, calidad | @OP_DDL |
| `infonavit_management` | Integración INFONAVIT | @OP_DDL |

---

## Verticales y Herencia

| Vertical | Nivel | Hereda De | Estado |
|----------|-------|-----------|--------|
| **erp-core** | 2 | erp-suite | 60% |
| **construccion** | 3 | erp-core | 35% |
| **vidrio-templado** | 3 | erp-core | 0% |
| **mecanicas-diesel** | 3 | erp-core | 0% |
| **retail** | 3 | erp-core | 0% |
| **clinicas** | 3 | erp-core | 0% |

Cada vertical DEBE tener su propio `HERENCIA-SIMCO.md` que extienda este.

---

**Sistema:** SIMCO v2.2.0 + CAPVED + CCA Protocol
**Nivel:** SUITE (1)
**Última actualización:** 2025-12-08
