# 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:** ```markdown # 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:** ```yaml 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:** ```markdown # 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):** ```yaml 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:** ```yaml 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):** ```yaml 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):** ```yaml 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):** ```yaml # 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):** ```yaml 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`: ```markdown # 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`: ```markdown # 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):** ```yaml 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:** ```yaml 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:** ```yaml 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):** ```yaml 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 - [Plan Original ERP Genérico](PLAN-DOCUMENTACION-ERP-GENERICO.md) - [Instrucciones Agente Arquitectura](INSTRUCCIONES-AGENTE-ARQUITECTURA.md) - [Prompt Architecture-Analyst Extendido](/shared/orchestration/prompts/PROMPT-ARCHITECTURE-ANALYST-EXTENDED.md) ### Referencias Externas - [Análisis Módulos Odoo](/shared/reference/ODOO-MODULES-ANALYSIS.md) - [Proyecto Gamilit](/shared/reference/gamilit/) - [ERP Construcción](/projects/erp-construccion/docs/) ### Estándares y Directivas - [Directivas de Orquestación](/shared/orchestration/directivas/) - [Prompts de Agentes](/shared/orchestration/prompts/) --- **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