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

1306 lines
41 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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