erp-core/docs/PLAN-MAESTRO-MIGRACION-CONSOLIDACION.md

41 KiB
Raw Permalink Blame History

PLAN MAESTRO DE MIGRACIÓN Y CONSOLIDACIÓN - ERP GENÉRICO

Proyecto: ERP Genérico (Base Reutilizable Multi-Proyecto) Versión: 2.0.0 Fecha: 2025-11-23 Estado: 📋 Listo para ejecución Coordinador: Architecture-Analyst (con capacidades de orquestación)


🎯 OBJETIVO PRINCIPAL

Crear el ERP Genérico como base reutilizable para los 3 ERPs especializados mediante:

  1. Análisis profundo de proyectos de referencia (Odoo + Gamilit)
  2. Migración y extracción de componentes genéricos del ERP Construcción
  3. Validación cruzada entre referencias, construcción y genérico
  4. Consolidación en documentación completa del ERP Genérico
  5. Retroalimentación al ERP Construcción con mejoras identificadas

Resultado Final Esperado

ERP Genérico (100% documentado)
    ↓ Reutilización 60-70%
    ├─> ERP Construcción (especialización vivienda/INFONAVIT)
    ├─> ERP Vidrio Templado (especialización producción vidrio)
    └─> ERP Mecánicas Diesel (especialización laboratorios diesel)

📚 REFERENCIAS DISPONIBLES

1. Proyecto Odoo (Lógica de Negocio)

  • Ubicación: /shared/reference/ODOO-MODULES-ANALYSIS.md
  • Qué aporta: Lógica de negocio consolidada, patrones ERP probados
  • Módulos clave: base, account, stock, purchase, sale, project, hr, crm
  • Uso: Validar RF, identificar funcionalidades faltantes, patrones de datos

2. Proyecto Gamilit (Arquitectura Moderna)

  • Ubicación: /shared/reference/gamilit/
  • Qué aporta: Arquitectura moderna, patrones técnicos, mejores prácticas
  • Aspectos clave: Multi-schema DB, constantes SSOT, path aliases, validaciones
  • Uso: Definir arquitectura técnica, estructura de código, DevOps

3. ERP Construcción (Documentación Existente)

  • Ubicación: /projects/erp-construccion/docs/
  • Qué aporta: 18 módulos documentados (35% progreso), estructura completa
  • Estado: Extensiva documentación de RF/ET/US para construcción
  • Uso: Fuente de migración, identificar componentes genéricos vs específicos

🗺️ METODOLOGÍA: 4 FASES

FASE 0: ANÁLISIS DE REFERENCIAS (NUEVA)

Duración: 2 semanas Responsable: Architecture-Analyst (trabajo directo) Objetivo: Análisis profundo de Odoo y Gamilit para fundamentar decisiones

FASE 1: ANÁLISIS Y RETROALIMENTACIÓN

Duración: 2-3 semanas Responsable: Architecture-Analyst (con delegaciones) Objetivo: Migrar y validar componentes del ERP Construcción

FASE 2: MODELADO DE REQUERIMIENTOS Y BD

Duración: 3-4 semanas Responsable: Architecture-Analyst (con delegaciones extensivas) Objetivo: Crear RF, ET, diseño de BD para ERP Genérico

FASE 3: DOCUMENTACIÓN DETALLADA

Duración: 2-3 semanas Responsable: Architecture-Analyst (con delegaciones) Objetivo: US, planes de prueba, documentación transversal

TOTAL: 9-12 semanas


📋 FASE 0: ANÁLISIS DE REFERENCIAS (2 SEMANAS)

Objetivo

Analizar proyectos de referencia para fundamentar todas las decisiones arquitectónicas del ERP Genérico.

Actividades Principales

1. Análisis Comparativo Odoo (1 semana)

Responsable: Architecture-Analyst (trabajo directo)

Tareas:

  • Leer /shared/reference/ODOO-MODULES-ANALYSIS.md completo
  • Para cada módulo Odoo relevante, documentar:
    • Modelos de datos principales (tablas, campos, relaciones)
    • Lógica de negocio clave (workflows, reglas, validaciones)
    • Patrones arquitectónicos observados
    • APIs y endpoints estándar
    • Integraciones entre módulos
    • Funcionalidades destacables

Módulos Odoo a analizar:

Módulo Odoo Aplicación en ERP Genérico Prioridad Mapeo a MGN
base Sistema base, modelos fundamentales P0 MGN-001, MGN-002
auth_signup Autenticación y registro P0 MGN-001
account Módulo financiero básico P0 MGN-004
stock Inventario básico P0 MGN-005
purchase Compras básicas P0 MGN-006
sale Ventas básicas P0 MGN-007
analytic Contabilidad analítica P0 MGN-008
crm CRM básico P1 MGN-009
hr Recursos humanos básico P1 MGN-010
project Proyectos genéricos P1 MGN-011
mail Mensajería y notificaciones P0 MGN-014
portal Portal de usuarios externos P1 MGN-013

Entregables:

  • 00-analisis-referencias/odoo/README.md - Resumen ejecutivo
  • 00-analisis-referencias/odoo/odoo-base-analysis.md
  • 00-analisis-referencias/odoo/odoo-auth-analysis.md
  • 00-analisis-referencias/odoo/odoo-account-analysis.md
  • 00-analisis-referencias/odoo/odoo-stock-analysis.md
  • 00-analisis-referencias/odoo/odoo-purchase-analysis.md
  • 00-analisis-referencias/odoo/odoo-sale-analysis.md
  • 00-analisis-referencias/odoo/odoo-analytic-analysis.md
  • 00-analisis-referencias/odoo/odoo-crm-analysis.md
  • 00-analisis-referencias/odoo/odoo-hr-analysis.md
  • 00-analisis-referencias/odoo/odoo-project-analysis.md
  • 00-analisis-referencias/odoo/odoo-mail-analysis.md
  • 00-analisis-referencias/odoo/odoo-portal-analysis.md
  • 00-analisis-referencias/odoo/MAPEO-ODOO-TO-MGN.md - Tabla de mapeo completa

Total: 14 archivos


2. Análisis Comparativo Gamilit (1 semana)

Responsable: Architecture-Analyst (trabajo directo)

Tareas:

  • Leer /shared/reference/gamilit/README.md y _MAP.md
  • Analizar arquitectura técnica:
    • Arquitectura multi-schema de PostgreSQL
    • Sistema de constantes SSOT (Single Source of Truth)
    • Path aliases y estructura de imports
    • Estructura modular del backend (11 módulos)
    • Feature-Sliced Design del frontend
    • Scripts de validación automática (sync-enums, validate-constants)
    • Sistema de testing
  • Identificar patrones a adoptar, adaptar o evitar
  • Documentar gaps y oportunidades vs ERP Construcción

Entregables:

  • 00-analisis-referencias/gamilit/README.md - Resumen ejecutivo
  • 00-analisis-referencias/gamilit/database-architecture.md - Análisis multi-schema
  • 00-analisis-referencias/gamilit/backend-patterns.md - Patrones de backend
  • 00-analisis-referencias/gamilit/frontend-patterns.md - Patrones de frontend
  • 00-analisis-referencias/gamilit/ssot-system.md - Sistema de constantes SSOT
  • 00-analisis-referencias/gamilit/devops-automation.md - Scripts y validaciones
  • 00-analisis-referencias/gamilit/ADOPTAR-ADAPTAR-EVITAR.md - Matriz de decisiones

Total: 7 archivos


3. Validación Cruzada con ERP Construcción (paralelo)

Responsable: Architecture-Analyst (trabajo directo)

Tareas:

  • Leer documentación de /projects/erp-construccion/docs/
  • Comparar módulos de construcción con Odoo/Gamilit equivalentes
  • Identificar:
    • Componentes que son genéricos (candidatos a migrar)
    • Componentes específicos de construcción (quedan en erp-construccion)
    • Mejoras arquitectónicas aplicables a construcción
    • Funcionalidades faltantes en construcción
    • Oportunidades de refactorización

Entregables:

  • 00-analisis-referencias/construccion/COMPONENTES-GENERICOS.md - Lista de componentes a migrar
  • 00-analisis-referencias/construccion/COMPONENTES-ESPECIFICOS.md - Lista que queda en construcción
  • 00-analisis-referencias/construccion/MEJORAS-ARQUITECTONICAS.md - Mejoras sugeridas
  • 00-analisis-referencias/construccion/GAP-ANALYSIS.md - Funcionalidades faltantes
  • 00-analisis-referencias/construccion/RETROALIMENTACION.md - Retroalimentación integral

Total: 5 archivos


4. Creación de ADRs (Architecture Decision Records)

Responsable: Architecture-Analyst (trabajo directo)

Tareas:

  • Basándose en análisis de Odoo, Gamilit y Construcción
  • Crear ADRs para decisiones arquitectónicas clave

ADRs a crear:

  1. ADR-001-stack-tecnologico.md

    • Stack: Node.js 20+ + Express + TypeScript / React 18 + Vite / PostgreSQL 15+
    • Justificación: Alineación con Gamilit, madurez, ecosistema
  2. ADR-002-arquitectura-modular.md

    • Monorepo con apps/ (database, backend, frontend, mobile)
    • Justificación: Simplifica desarrollo, reutilización, Gamilit
  3. ADR-003-multi-tenancy.md

    • Schema-level isolation (cada tenant un schema PostgreSQL)
    • Justificación: Seguridad, performance, Gamilit pattern, Odoo usa similar
  4. ADR-004-sistema-constantes-ssot.md

    • Backend como SSOT, sincronización automática a Frontend
    • Justificación: Elimina duplicación, patrón Gamilit muy efectivo
  5. ADR-005-path-aliases.md

    • Uso de @shared, @modules, @components, @services
    • Justificación: Imports limpios, refactoring fácil, Gamilit pattern
  6. ADR-006-rbac-sistema-permisos.md

    • Role-Based Access Control granular
    • Justificación: Requerimiento multi-tenant, Odoo base.res.users pattern
  7. ADR-007-database-design.md

    • Multi-schema: auth, core, financial, inventory, purchase, sales, analytics, etc.
    • RLS (Row Level Security) desde diseño
    • Justificación: Organización lógica, Gamilit pattern, seguridad
  8. ADR-008-api-design.md

    • RESTful APIs con OpenAPI 3.0 (Swagger)
    • Versionado de APIs (/api/v1/)
    • Justificación: Estándar de la industria, documentación auto-generada
  9. ADR-009-frontend-architecture.md

    • Feature-Sliced Design (shared, features, pages, app)
    • Justificación: Escalabilidad, Gamilit pattern
  10. ADR-010-testing-strategy.md

    • Coverage objetivo: 80% (backend), 70% (frontend)
    • Unit + Integration + E2E
    • Justificación: Evitar deuda técnica de Gamilit (14% coverage)

Ubicación: projects/erp-generic/docs/adr/

Total: 10 archivos


5. Mapeo de Componentes Genéricos

Responsable: Architecture-Analyst (trabajo directo)

Tareas:

  • Crear mapa exhaustivo de componentes genéricos vs específicos
  • Definir qué va en /shared/components/ vs qué va en cada proyecto

Entregables:

  • 00-analisis-referencias/MAPA-COMPONENTES-GENERICOS.md

Estructura del mapa:

# MAPA DE COMPONENTES GENÉRICOS VS ESPECÍFICOS

## 1. COMPONENTES DE BASE DE DATOS

### Genéricos (van en ERP Genérico)
| Componente | Tipo | Ubicación | Usado por |
|------------|------|-----------|-----------|
| auth schema | Schema | database/ddl/schemas/auth.sql | Todos |
| users table | Table | auth.users | Todos |
| roles table | Table | auth.roles | Todos |
| ... | ... | ... | ... |

### Específicos de Construcción
| Componente | Tipo | Ubicación | Razón |
|------------|------|-----------|-------|
| projects.lots | Table | construction/lots.sql | Lotes INFONAVIT |
| ... | ... | ... | ... |

## 2. COMPONENTES DE BACKEND

### Genéricos
| Módulo | Ubicación | Usado por |
|--------|-----------|-----------|
| auth module | backend/src/modules/auth/ | Todos |
| ... | ... | ... |

### Específicos de Construcción
| Módulo | Ubicación | Razón |
|--------|-----------|-------|
| estimations module | backend/src/modules/estimations/ | Estimaciones de obra |
| ... | ... | ... |

## 3. COMPONENTES DE FRONTEND

### Genéricos
| Componente | Tipo | Ubicación | Usado por |
|------------|------|-----------|-----------|
| LoginForm | Component | shared/components/auth/LoginForm.tsx | Todos |
| DataTable | Component | shared/components/table/DataTable.tsx | Todos |
| ... | ... | ... | ... |

### Específicos de Construcción
| Componente | Tipo | Ubicación | Razón |
|------------|------|-----------|-------|
| LotSelector | Component | features/construction/LotSelector.tsx | Selección de lotes |
| ... | ... | ... | ... |

## 4. RESUMEN CUANTITATIVO

| Categoría | Genéricos | Específicos Construcción | % Reutilización |
|-----------|-----------|--------------------------|-----------------|
| **Schemas DB** | 8 | 3 | 73% |
| **Tablas DB** | 45 | 28 | 62% |
| **Módulos Backend** | 10 | 8 | 56% |
| **Componentes Frontend** | 80 | 45 | 64% |
| **TOTAL** | 143 | 84 | **63%** |

Total: 1 archivo


Resumen de Entregables Fase 0

Categoría Archivos Ubicación
Análisis Odoo 14 00-analisis-referencias/odoo/
Análisis Gamilit 7 00-analisis-referencias/gamilit/
Validación Construcción 5 00-analisis-referencias/construccion/
ADRs 10 adr/
Mapeo de componentes 1 00-analisis-referencias/
Resumen ejecutivo 1 00-analisis-referencias/RESUMEN-FASE-0.md
TOTAL 38 archivos projects/erp-generic/docs/

Criterios de Completitud Fase 0

  • Todos los módulos Odoo listados han sido analizados (12 módulos)
  • Análisis de Gamilit cubre 6 áreas clave
  • Validación con ERP Construcción identifica componentes genéricos/específicos
  • 10 ADRs creados y aprobados
  • Mapa de componentes genéricos completo con % de reutilización
  • Resumen ejecutivo consolidado documenta hallazgos principales
  • Retroalimentación específica a ERP Construcción generada

📋 FASE 1: ANÁLISIS Y RETROALIMENTACIÓN (2-3 SEMANAS)

Objetivo

Migrar componentes genéricos del ERP Construcción al ERP Genérico, validando con referencias.

Actividades con Delegación

1. Definición de Módulos del ERP Genérico

Responsable: Architecture-Analyst (trabajo directo)

Tareas:

  • Basándose en Fase 0, definir lista final de módulos MGN-001 a MGN-014
  • Establecer alcance de cada módulo (qué incluye, qué no)
  • Definir prioridades (P0, P1, P2)
  • Definir dependencias entre módulos

Entregables:

  • 01-definicion-modulos/LISTA-MODULOS-ERP-GENERICO.md
  • 01-definicion-modulos/ALCANCE-POR-MODULO.md
  • 01-definicion-modulos/DEPENDENCIAS-MODULOS.md

Total: 3 archivos


2. Extracción de Componentes Genéricos del ERP Construcción

Responsable: Architecture-Analyst (coordina) + Requirements-Analyst (delegado)

Delegación:

agent: Requirements-Analyst
task: "Extraer RF genéricos del ERP Construcción"
inputs:
  - projects/erp-construccion/docs/01-fase-alcance-inicial/
  - projects/erp-generic/docs/00-analisis-referencias/construccion/COMPONENTES-GENERICOS.md
output: projects/erp-generic/docs/01-definicion-modulos/RF-EXTRAIDOS/
instructions: |
  Para cada componente genérico identificado en Fase 0:
  1. Leer RF original en erp-construccion
  2. Adaptar para ser genérico (eliminar referencias específicas de construcción)
  3. Validar contra módulo Odoo equivalente
  4. Crear nuevo RF en formato MGN-XXX
  Estimar: 30-40 RF a extraer  

Entregables del agente:

  • 30-40 archivos RF-XXX-NNN.md en estructura temporal

Validación del coordinador:

  • Revisar cada RF extraído
  • Asegurar que son verdaderamente genéricos
  • Validar coherencia con ADRs

3. Análisis de Gaps por Módulo

Responsable: Architecture-Analyst (trabajo directo)

Tareas:

  • Para cada módulo MGN-001 a MGN-014:
    • Comparar RF extraídos con módulo Odoo equivalente
    • Identificar funcionalidades faltantes
    • Identificar funcionalidades sobrantes
    • Documentar gaps

Entregables:

  • 01-definicion-modulos/gaps/GAP-ANALYSIS-MGN-001.md
  • 01-definicion-modulos/gaps/GAP-ANALYSIS-MGN-002.md
  • ... (14 archivos, uno por módulo)

Total: 14 archivos


4. Retroalimentación a ERP Construcción

Responsable: Architecture-Analyst (trabajo directo)

Tareas:

  • Consolidar mejoras identificadas en Fase 0
  • Proponer refactorizaciones específicas
  • Documentar oportunidades de reutilización del ERP Genérico

Entregables:

  • 01-definicion-modulos/RETROALIMENTACION-ERP-CONSTRUCCION.md

Estructura:

# RETROALIMENTACIÓN AL ERP CONSTRUCCIÓN

## MEJORAS ARQUITECTÓNICAS RECOMENDADAS

### 1. Adoptar Multi-Schema Database
**Estado actual:** Single schema "public"
**Recomendación:** Migrar a multi-schema (auth, core, construction, etc.)
**Justificación:** ADR-007, patrón Gamilit, organización lógica
**Prioridad:** P1
**Esfuerzo:** 2-3 semanas
**Beneficio:** Mejor organización, permisos granulares, mantenibilidad

### 2. Implementar Sistema de Constantes SSOT
...

## COMPONENTES GENÉRICOS A REUTILIZAR

Una vez completado ERP Genérico, refactorizar construcción para usar:
- MGN-001: Fundamentos (auth, users, roles) → Eliminar MAI-001 duplicado
- MGN-004: Financiero Básico → Extender con contabilidad de obra
...

## OPORTUNIDADES DE REFACTORIZACIÓN

### Módulo MAI-004 (Compras e Inventarios)
**Oportunidad:** Separar compras genéricas de compras de materiales de obra
**Acción:** Usar MGN-006 (Compras Básico) + MAI-004 (Compras Especializadas)
...

Total: 1 archivo


Resumen de Entregables Fase 1

Categoría Archivos Ubicación
Definición de módulos 3 01-definicion-modulos/
RF extraídos (delegado) 30-40 01-definicion-modulos/RF-EXTRAIDOS/
Gap analysis por módulo 14 01-definicion-modulos/gaps/
Retroalimentación construcción 1 01-definicion-modulos/
TOTAL 48-58 archivos -

Criterios de Completitud Fase 1

  • Lista definitiva de módulos MGN-001 a MGN-014 aprobada
  • Alcance de cada módulo claramente definido
  • RF genéricos extraídos y validados (30-40 RF)
  • Gap analysis completado para todos los módulos
  • Retroalimentación a ERP Construcción documentada

📋 FASE 2: MODELADO DE REQUERIMIENTOS Y BD (3-4 SEMANAS)

Objetivo

Crear modelos de dominio, RF completos, ET, y diseño de BD para ERP Genérico.

Actividades con Delegación Extensiva

1. Modelado de Dominio (Semana 1)

Responsable: Architecture-Analyst (trabajo directo)

Tareas:

  • Para cada área funcional, crear modelo de dominio
  • Documentar entidades, atributos, relaciones
  • Crear diagramas UML/ER

Áreas funcionales:

  1. Autenticación y Autorización (MGN-001, MGN-002)
  2. Financiero (MGN-004, MGN-008)
  3. Inventario y Compras (MGN-005, MGN-006)
  4. Ventas (MGN-007)
  5. CRM (MGN-009)
  6. RRHH (MGN-010)
  7. Proyectos (MGN-011)
  8. Reportes y Notificaciones (MGN-012, MGN-014)

Entregables:

  • 02-modelado/domain-models/auth-domain.md
  • 02-modelado/domain-models/financial-domain.md
  • 02-modelado/domain-models/inventory-domain.md
  • 02-modelado/domain-models/sales-domain.md
  • 02-modelado/domain-models/crm-domain.md
  • 02-modelado/domain-models/hr-domain.md
  • 02-modelado/domain-models/projects-domain.md
  • 02-modelado/domain-models/reporting-domain.md

Total: 8 archivos


2. Creación de Requerimientos Funcionales (Semana 2-3)

Responsable: Architecture-Analyst (coordina) + Requirements-Analyst (delegado)

Estrategia: Delegar por módulo en paralelo

Delegación (ejemplo para MGN-001):

agent: Requirements-Analyst
task: "Crear RF completos para MGN-001 Fundamentos"
inputs:
  - projects/erp-generic/docs/00-analisis-referencias/odoo/odoo-base-analysis.md
  - projects/erp-generic/docs/00-analisis-referencias/odoo/odoo-auth-analysis.md
  - projects/erp-generic/docs/01-definicion-modulos/ALCANCE-POR-MODULO.md
  - projects/erp-generic/docs/02-modelado/domain-models/auth-domain.md
  - projects/erp-construccion/docs/01-fase-alcance-inicial/MAI-001-fundamentos/requerimientos/
output: projects/erp-generic/docs/02-fase-core/MGN-001-fundamentos/requerimientos/
instructions: |
  Crear 5-7 RF para el módulo MGN-001 Fundamentos:
  - RF-AUTH-001: Autenticación JWT
  - RF-AUTH-002: Gestión de usuarios
  - RF-AUTH-003: Gestión de roles y permisos (RBAC)
  - RF-AUTH-004: Multi-tenancy (tenants/esquemas)
  - RF-COMP-001: Gestión de empresas/organizaciones
  - RF-COMP-002: Configuración de tenant

  Formato: Seguir estructura de erp-construccion
  Validar: Contra Odoo base + auth_signup
  Incluir: Flujos, reglas de negocio, validaciones, criterios de aceptación  

Repetir para los 14 módulos (lanzar en paralelo donde sea posible)

Entregables por módulo: ~5 RF Total RF esperados: 14 módulos × 5 RF = 70 RF


3. Diseño de Base de Datos (Semana 2-3, paralelo)

Responsable: Architecture-Analyst (coordina) + Database-Agent (delegado)

Delegación:

agent: Database-Agent
task: "Diseñar schemas PostgreSQL para ERP Genérico"
inputs:
  - projects/erp-generic/docs/adr/ADR-007-database-design.md
  - projects/erp-generic/docs/02-modelado/domain-models/
  - shared/reference/gamilit/database/ddl/schemas/
  - shared/reference/ODOO-MODULES-ANALYSIS.md
output: projects/erp-generic/docs/02-modelado/database-design/schemas/
instructions: |
  Crear DDL completos para todos los schemas del ERP Genérico:

  Schemas a crear:
  1. auth.sql - Autenticación (users, roles, permissions, sessions)
  2. core.sql - Core (tenants, companies, currencies, countries, uom)
  3. financial.sql - Financiero (accounts, journal_entries, fiscal_years)
  4. inventory.sql - Inventario (products, warehouses, stock_moves)
  5. purchase.sql - Compras (purchase_orders, vendors, receipts)
  6. sales.sql - Ventas (sales_orders, customers, invoices)
  7. analytics.sql - Analítico (analytic_accounts, cost_centers)
  8. crm.sql - CRM (leads, opportunities, pipeline)
  9. hr.sql - RRHH (employees, departments, contracts)
  10. projects.sql - Proyectos (projects, tasks, milestones)
  11. reporting.sql - Reportes (reports, dashboards)
  12. notifications.sql - Notificaciones (messages, notifications)

  Para cada schema:
  - CREATE SCHEMA
  - CREATE TYPE (enums)
  - CREATE TABLE con constraints, defaults, comentarios
  - CREATE INDEX (performance)
  - CREATE FUNCTION (helpers, triggers)
  - RLS policies (Row Level Security)

  Seguir:
  - ADR-007 (multi-schema, RLS)
  - Patrón Gamilit (organización, nomenclatura)
  - Modelos Odoo (relaciones, campos estándar)  

Entregables: 12 archivos SQL


4. Creación de Especificaciones Técnicas (Semana 3-4)

Responsable: Architecture-Analyst (coordina) + Backend-Agent + Frontend-Agent (delegados)

Delegación Backend (ejemplo MGN-001):

agent: Backend-Agent
task: "Crear ET backend para MGN-001 Fundamentos"
inputs:
  - projects/erp-generic/docs/02-fase-core/MGN-001-fundamentos/requerimientos/
  - projects/erp-generic/docs/02-modelado/database-design/schemas/auth.sql
  - projects/erp-generic/docs/adr/ADR-008-api-design.md
output: projects/erp-generic/docs/02-fase-core/MGN-001-fundamentos/especificaciones/backend/
instructions: |
  Para cada RF de MGN-001, crear ET de backend:
  - ET-AUTH-001-backend: JWT implementation (endpoints, services, middleware)
  - ET-AUTH-002-backend: User management API
  - ET-AUTH-003-backend: RBAC API
  - ET-AUTH-004-backend: Multi-tenancy middleware
  - ET-COMP-001-backend: Companies API

  Incluir:
  - Diseño de API (endpoints, request/response schemas)
  - Servicios y lógica de negocio
  - Validaciones
  - Manejo de errores
  - Testing  

Delegación Frontend (ejemplo MGN-001):

agent: Frontend-Agent
task: "Crear ET frontend para MGN-001 Fundamentos"
inputs:
  - projects/erp-generic/docs/02-fase-core/MGN-001-fundamentos/requerimientos/
  - projects/erp-generic/docs/adr/ADR-009-frontend-architecture.md
output: projects/erp-generic/docs/02-fase-core/MGN-001-fundamentos/especificaciones/frontend/
instructions: |
  Para cada RF de MGN-001, crear ET de frontend:
  - ET-AUTH-001-frontend: Login/Logout UI
  - ET-AUTH-002-frontend: User management UI
  - ET-AUTH-003-frontend: Roles & permissions UI
  - ET-COMP-001-frontend: Company settings UI

  Incluir:
  - Componentes React a crear
  - Páginas/vistas
  - Stores (Zustand)
  - Integración con API
  - Validaciones frontend  

Repetir para 14 módulos

Entregables por módulo: ~5 ET backend + ~5 ET frontend = ~10 ET Total ET esperados: 14 módulos × 10 ET = 140 ET


5. Matriz de Trazabilidad (Semana 4)

Responsable: Architecture-Analyst (trabajo directo)

Tareas:

  • Para cada módulo, crear matriz vinculando RF ↔ ET ↔ Objetos DB

Entregables (ejemplo MGN-001):

# projects/erp-generic/docs/02-fase-core/MGN-001-fundamentos/implementacion/TRACEABILITY.yml

module: MGN-001-fundamentos
requirements:
  - id: RF-AUTH-001
    title: "Autenticación JWT"
    specifications:
      backend:
        - ET-AUTH-001-backend
      frontend:
        - ET-AUTH-001-frontend
    database:
      schemas:
        - auth
      tables:
        - auth.users
        - auth.sessions
      functions:
        - auth.generate_jwt()
        - auth.verify_jwt()

  - id: RF-AUTH-002
    title: "Gestión de usuarios"
    specifications:
      backend:
        - ET-AUTH-002-backend
      frontend:
        - ET-AUTH-002-frontend
    database:
      tables:
        - auth.users
        - auth.user_profiles
      functions:
        - auth.create_user()
        - auth.update_user()

Total: 14 archivos YAML (uno por módulo)


Resumen de Entregables Fase 2

Categoría Archivos Ubicación
Modelos de dominio 8 02-modelado/domain-models/
Schemas de BD 12 02-modelado/database-design/schemas/
RF (delegado) 70 02-fase-core/MGN-XXX-*/requerimientos/
ET backend (delegado) 70 02-fase-core/MGN-XXX-*/especificaciones/backend/
ET frontend (delegado) 70 02-fase-core/MGN-XXX-*/especificaciones/frontend/
Matrices trazabilidad 14 02-fase-core/MGN-XXX-*/implementacion/TRACEABILITY.yml
TOTAL 244 archivos -

Criterios de Completitud Fase 2

  • Modelos de dominio completos para 8 áreas funcionales
  • 12 schemas de BD diseñados con DDL completo
  • 70 RF creados y validados contra Odoo
  • 70 ET backend creados
  • 70 ET frontend creados
  • 14 matrices de trazabilidad vinculan RF ↔ ET ↔ DB

📋 FASE 3: DOCUMENTACIÓN DETALLADA (2-3 SEMANAS)

Objetivo

Completar documentación con US, inventarios, planes de pruebas, y docs transversales.

Actividades con Delegación

1. Creación de Historias de Usuario (Semana 1-2)

Responsable: Architecture-Analyst (coordina) + Requirements-Analyst (delegado)

Delegación (por módulo):

agent: Requirements-Analyst
task: "Crear US para MGN-001 Fundamentos"
inputs:
  - projects/erp-generic/docs/02-fase-core/MGN-001-fundamentos/requerimientos/
  - projects/erp-generic/docs/02-fase-core/MGN-001-fundamentos/especificaciones/
output: projects/erp-generic/docs/02-fase-core/MGN-001-fundamentos/historias-usuario/
instructions: |
  Para cada RF/ET del módulo, crear historias de usuario:

  Formato:
  - Como [rol] quiero [funcionalidad] para [beneficio]
  - Criterios de aceptación (Given/When/Then)
  - Requerimientos relacionados (RF-XXX-NNN)
  - Especificaciones relacionadas (ET-XXX-NNN)
  - Story Points (Fibonacci: 1,2,3,5,8,13)
  - Prioridad (P0/P1/P2)

  Estimar: ~10 US por módulo  

Repetir para 14 módulos

Entregables por módulo: ~10 US Total US esperados: 14 módulos × 10 US = 140 US


2. Documentación de Módulos (Semana 2)

Responsable: Architecture-Analyst (trabajo directo)

Tareas:

  • Para cada módulo crear README.md y _MAP.md

Entregables (ejemplo MGN-001):

projects/erp-generic/docs/02-fase-core/MGN-001-fundamentos/README.md:

# MGN-001: Fundamentos

## Descripción
Módulo core que proporciona autenticación, gestión de usuarios, roles y permisos (RBAC), multi-tenancy, y gestión de empresas/organizaciones.

## Alcance
- Autenticación JWT
- Registro de usuarios
- Gestión de usuarios y perfiles
- Sistema de roles y permisos (RBAC)
- Multi-tenancy (schema-level isolation)
- Gestión de empresas/organizaciones
- Configuración de tenant

## Referencia Odoo
- base (res.users, res.groups, res.company)
- auth_signup

## Story Points
50 SP

## Prioridad
P0 (Crítico - Requerido para todos los demás módulos)

## Dependencias
- Ninguna (módulo base)

## Módulos dependientes
- Todos los demás módulos del ERP Genérico

projects/erp-generic/docs/02-fase-core/MGN-001-fundamentos/_MAP.md:

# MAPA DEL MÓDULO MGN-001: Fundamentos

## Documentación

- [README.md](README.md) - Descripción del módulo
- [TRACEABILITY.yml](implementacion/TRACEABILITY.yml) - Matriz de trazabilidad

## Requerimientos Funcionales (6 archivos)

- [RF-AUTH-001](requerimientos/RF-AUTH-001-autenticacion-jwt.md) - Autenticación JWT
- [RF-AUTH-002](requerimientos/RF-AUTH-002-gestion-usuarios.md) - Gestión de usuarios
- [RF-AUTH-003](requerimientos/RF-AUTH-003-rbac.md) - RBAC
- [RF-AUTH-004](requerimientos/RF-AUTH-004-multi-tenancy.md) - Multi-tenancy
- [RF-COMP-001](requerimientos/RF-COMP-001-gestion-empresas.md) - Empresas
- [RF-COMP-002](requerimientos/RF-COMP-002-configuracion-tenant.md) - Config tenant

## Especificaciones Técnicas (12 archivos)

### Backend (6 archivos)
- [ET-AUTH-001-backend](especificaciones/backend/ET-AUTH-001-backend-jwt.md)
- [ET-AUTH-002-backend](especificaciones/backend/ET-AUTH-002-backend-users.md)
- ...

### Frontend (6 archivos)
- [ET-AUTH-001-frontend](especificaciones/frontend/ET-AUTH-001-frontend-login.md)
- [ET-AUTH-002-frontend](especificaciones/frontend/ET-AUTH-002-frontend-users.md)
- ...

## Historias de Usuario (10 archivos)

- [US-FUND-001](historias-usuario/US-FUND-001-login.md) - Login de usuario
- [US-FUND-002](historias-usuario/US-FUND-002-registro.md) - Registro de usuario
- ...

## Implementación

- [DATABASE.yml](implementacion/DATABASE.yml) - Inventario de objetos de BD
- [BACKEND.yml](implementacion/BACKEND.yml) - Inventario de módulos backend
- [FRONTEND.yml](implementacion/FRONTEND.yml) - Inventario de componentes frontend

## Pruebas

- [TEST-PLAN.md](pruebas/TEST-PLAN.md) - Plan de pruebas
- [TEST-CASES.md](pruebas/TEST-CASES.md) - Casos de prueba

Total: 14 × 2 = 28 archivos (README + _MAP por módulo)


3. Inventarios de Implementación (Semana 2)

Responsable: Architecture-Analyst (coordina) + agentes especializados (delegados)

Delegación Database (ejemplo MGN-001):

agent: Database-Agent
task: "Crear inventario de objetos de BD para MGN-001"
inputs:
  - projects/erp-generic/docs/02-modelado/database-design/schemas/auth.sql
  - projects/erp-generic/docs/02-modelado/database-design/schemas/core.sql
output: projects/erp-generic/docs/02-fase-core/MGN-001-fundamentos/implementacion/DATABASE.yml
instructions: |
  Listar todos los objetos de BD que serán creados para MGN-001:

  schemas:
    - auth
    - core (parcial)

  tables:
    - auth.users
    - auth.roles
    - auth.permissions
    - auth.user_roles
    - auth.sessions
    - core.tenants
    - core.companies

  types:
    - auth.user_status
    - auth.session_status

  functions:
    - auth.generate_jwt()
    - auth.verify_jwt()
    - auth.create_user()

  indexes:
    - auth.users_email_idx
    - auth.users_tenant_id_idx

  policies_rls:
    - auth.users_tenant_isolation  

Delegación Backend:

agent: Backend-Agent
task: "Crear inventario backend para MGN-001"
output: projects/erp-generic/docs/02-fase-core/MGN-001-fundamentos/implementacion/BACKEND.yml
instructions: |
  Listar módulos/servicios/controladores a implementar:

  modules:
    - src/modules/auth/
    - src/modules/company/

  services:
    - auth.service.ts
    - user.service.ts
    - role.service.ts
    - company.service.ts

  controllers:
    - auth.controller.ts
    - user.controller.ts
    - role.controller.ts
    - company.controller.ts

  middleware:
    - jwt.middleware.ts
    - rbac.middleware.ts
    - tenant.middleware.ts

  dtos:
    - login.dto.ts
    - register.dto.ts
    - create-user.dto.ts

  entities:
    - user.entity.ts
    - role.entity.ts
    - company.entity.ts  

Delegación Frontend:

agent: Frontend-Agent
task: "Crear inventario frontend para MGN-001"
output: projects/erp-generic/docs/02-fase-core/MGN-001-fundamentos/implementacion/FRONTEND.yml
instructions: |
  Listar componentes/páginas/stores a implementar:

  pages:
    - src/pages/auth/LoginPage.tsx
    - src/pages/auth/RegisterPage.tsx
    - src/pages/users/UsersListPage.tsx
    - src/pages/users/UserDetailPage.tsx

  components:
    - src/shared/components/auth/LoginForm.tsx
    - src/shared/components/auth/RegisterForm.tsx
    - src/shared/components/users/UserTable.tsx
    - src/shared/components/users/UserForm.tsx

  stores:
    - src/stores/authStore.ts
    - src/stores/userStore.ts

  services:
    - src/services/api/authApi.ts
    - src/services/api/userApi.ts

  hooks:
    - src/shared/hooks/useAuth.ts
    - src/shared/hooks/useUser.ts  

Repetir para 14 módulos

Total: 14 × 3 = 42 inventarios YAML


4. Planes de Pruebas (Semana 2)

Responsable: Architecture-Analyst (coordina) + Code-Reviewer (delegado)

Delegación (por módulo):

agent: Code-Reviewer
task: "Crear plan de pruebas para MGN-001"
inputs:
  - projects/erp-generic/docs/02-fase-core/MGN-001-fundamentos/requerimientos/
  - projects/erp-generic/docs/adr/ADR-010-testing-strategy.md
output:
  - projects/erp-generic/docs/02-fase-core/MGN-001-fundamentos/pruebas/TEST-PLAN.md
  - projects/erp-generic/docs/02-fase-core/MGN-001-fundamentos/pruebas/TEST-CASES.md
instructions: |
  Crear plan de pruebas y casos de prueba:

  TEST-PLAN.md:
  - Estrategia de testing (Unit, Integration, E2E)
  - Alcance de testing
  - Criterios de aceptación
  - Coverage objetivo (80% backend, 70% frontend)
  - Herramientas (Jest, Vitest, Playwright)

  TEST-CASES.md:
  - Casos de prueba por RF
  - Casos de prueba de integración
  - Casos de prueba E2E
  - Casos de prueba de seguridad
  - Casos de prueba de performance  

Repetir para 14 módulos

Total: 14 × 2 = 28 archivos (TEST-PLAN + TEST-CASES)


5. Documentación Transversal (Semana 3)

Responsable: Architecture-Analyst (trabajo directo)

Tareas:

  • Crear documentación de alto nivel

Entregables:

  1. ESTRUCTURA-COMPLETA.md

    • Resumen ejecutivo del ERP Genérico
    • Distribución por fase (Core vs Complementaria)
    • Estructura de directorios completa
    • Métricas consolidadas
    • Convenciones de nomenclatura
  2. ROADMAP-DETALLADO.md

    • Roadmap de desarrollo (sprints, hitos)
    • Dependencias entre módulos
    • Timeline estimado
    • Recursos necesarios
  3. GUIA-REUTILIZACION.md

    • Cómo usar el ERP Genérico en proyectos especializados
    • Qué extender vs qué reutilizar
    • Patrones de especialización
    • Ejemplos de uso en ERP Construcción/Vidrio/Mecánicas
  4. GUIA-USO-REFERENCIAS.md

    • Cómo usar análisis de Odoo durante desarrollo
    • Cómo aplicar patrones de Gamilit
    • Cuándo consultar referencias
  5. 02-fase-core/README.md

    • Descripción de Fase Core (8 módulos)
    • Objetivos y alcance
    • Dependencias entre módulos
  6. 02-fase-core/_MAP.md

    • Índice maestro de todos los módulos Core
  7. 03-fase-complementaria/README.md

    • Descripción de Fase Complementaria (6 módulos)
  8. 03-fase-complementaria/_MAP.md

    • Índice maestro de todos los módulos Complementarios

Total: 8 archivos


Resumen de Entregables Fase 3

Categoría Archivos Ubicación
US (delegado) 140 02-fase-core/MGN-XXX-*/historias-usuario/ + 03-fase-complementaria/
README + _MAP por módulo 28 Cada módulo
Inventarios YAML (delegado) 42 implementacion/ en cada módulo
Planes de pruebas (delegado) 28 pruebas/ en cada módulo
Documentación transversal 8 Raíz de docs/
TOTAL 246 archivos -

Criterios de Completitud Fase 3

  • 140 US creadas (10 por módulo)
  • Todos los módulos tienen README.md y _MAP.md
  • Todos los módulos tienen inventarios (DATABASE, BACKEND, FRONTEND)
  • Todos los módulos tienen planes de pruebas
  • Documentación transversal completa (8 archivos)

📊 RESUMEN EJECUTIVO DEL PLAN MAESTRO

Fases y Duración

Fase Duración Responsable Delegaciones
Fase 0 2 semanas Architecture-Analyst 0 (trabajo directo)
Fase 1 2-3 semanas Architecture-Analyst 1 agente (Requirements-Analyst)
Fase 2 3-4 semanas Architecture-Analyst 3 agentes (Requirements, Database, Backend, Frontend)
Fase 3 2-3 semanas Architecture-Analyst 3 agentes (Requirements, Database, Backend, Frontend, Code-Reviewer)
TOTAL 9-12 semanas - -

Archivos a Crear

Fase Archivos Responsable Directo Delegado
Fase 0 38 38 0
Fase 1 48-58 18 30-40
Fase 2 244 22 222
Fase 3 246 36 210
TOTAL 576-586 114 462-472

Distribución de Trabajo

Architecture-Analyst (Coordinador): 19% del trabajo directo
    - Análisis de referencias (Fase 0): 100%
    - Decisiones arquitectónicas: 100%
    - ADRs: 100%
    - Gap analysis: 100%
    - Validaciones: 100%
    - Consolidación: 100%

Agentes Delegados: 81% del trabajo
    - Requirements-Analyst: ~180 archivos (RF + US)
    - Database-Agent: ~26 archivos (schemas + inventarios)
    - Backend-Agent: ~84 archivos (ET + inventarios)
    - Frontend-Agent: ~84 archivos (ET + inventarios)
    - Code-Reviewer: ~28 archivos (planes de pruebas)

CRITERIOS DE COMPLETITUD GLOBAL

Al Completar Todas las Fases

  • Fase 0 completada (38 archivos, 10 ADRs, análisis de referencias)
  • Fase 1 completada (48-58 archivos, definición de módulos)
  • Fase 2 completada (244 archivos, RF/ET/DB completos)
  • Fase 3 completada (246 archivos, US/inventarios/planes)
  • Total: 576-586 archivos creados
  • Estructura sigue formato de erp-construccion
  • Documentación validada contra Odoo y Gamilit
  • Retroalimentación a erp-construccion generada
  • ERP Genérico listo para desarrollo
  • Componentes genéricos identificados para reutilización

Estructura Final Esperada

projects/erp-generic/docs/
├── 00-analisis-referencias/                # Fase 0
│   ├── odoo/                               # 14 archivos
│   ├── gamilit/                            # 7 archivos
│   ├── construccion/                       # 5 archivos
│   ├── MAPA-COMPONENTES-GENERICOS.md
│   └── RESUMEN-FASE-0.md
│
├── 01-definicion-modulos/                  # Fase 1
│   ├── gaps/                               # 14 archivos
│   ├── RF-EXTRAIDOS/                       # 30-40 archivos
│   └── [3 archivos de definición]
│
├── 02-modelado/                            # Fase 2
│   ├── domain-models/                      # 8 archivos
│   └── database-design/schemas/            # 12 archivos SQL
│
├── 02-fase-core/                           # 8 módulos (MGN-001 a MGN-008)
│   ├── MGN-001-fundamentos/
│   │   ├── README.md
│   │   ├── _MAP.md
│   │   ├── requerimientos/                 # ~5 RF
│   │   ├── especificaciones/
│   │   │   ├── backend/                    # ~5 ET
│   │   │   └── frontend/                   # ~5 ET
│   │   ├── historias-usuario/              # ~10 US
│   │   ├── implementacion/
│   │   │   ├── TRACEABILITY.yml
│   │   │   ├── DATABASE.yml
│   │   │   ├── BACKEND.yml
│   │   │   └── FRONTEND.yml
│   │   └── pruebas/
│   │       ├── TEST-PLAN.md
│   │       └── TEST-CASES.md
│   ├── MGN-002-empresas-organizaciones/
│   ├── MGN-003-catalogos-maestros/
│   ├── MGN-004-financiero-basico/
│   ├── MGN-005-inventario-basico/
│   ├── MGN-006-compras-basico/
│   ├── MGN-007-ventas-basico/
│   └── MGN-008-contabilidad-analitica/
│
├── 03-fase-complementaria/                 # 6 módulos (MGN-009 a MGN-014)
│   ├── MGN-009-crm-basico/
│   ├── MGN-010-rrhh-basico/
│   ├── MGN-011-proyectos-genericos/
│   ├── MGN-012-reportes-analytics/
│   ├── MGN-013-portal-usuarios/
│   └── MGN-014-mensajeria-notificaciones/
│
├── adr/                                    # 10 ADRs
│   ├── ADR-001-stack-tecnologico.md
│   ├── ADR-002-arquitectura-modular.md
│   └── ...
│
├── ESTRUCTURA-COMPLETA.md
├── ROADMAP-DETALLADO.md
├── GUIA-REUTILIZACION.md
└── GUIA-USO-REFERENCIAS.md

Total estimado: 576-586 archivos

🎯 PRÓXIMOS PASOS INMEDIATOS

1. Validación del Plan

  • Revisar este plan maestro
  • Aprobar alcance y metodología
  • Confirmar disponibilidad de referencias (Odoo, Gamilit)

2. Preparación

  • Crear estructura base de carpetas en erp-generic/docs/
  • Configurar prompt extendido del Architecture-Analyst
  • Verificar acceso a referencias

3. Lanzamiento Fase 0

  • Lanzar Architecture-Analyst para Fase 0
  • Monitorear progreso
  • Revisar entregables de Fase 0
  • Aprobar antes de pasar a Fase 1

📚 REFERENCIAS Y RECURSOS

Documentación Base

Referencias Externas

Estándares y Directivas


Creado: 2025-11-23 Versión: 2.0.0 Autor: Architecture-Analyst (coordinador) Estado: Plan maestro completo - Listo para ejecución Aprobación requerida: Usuario