1306 lines
41 KiB
Markdown
1306 lines
41 KiB
Markdown
# 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
|