13 KiB
13 KiB
ANALISIS DE ESTRUCTURA DE DOCUMENTACION - ERP Suite
Fecha: 2025-12-05 Agente: Requirements-Analyst Referencia: Filosofia GAMILIT
1. PROBLEMA IDENTIFICADO
La documentacion de ERP Suite NO cumple con la filosofia de documentacion establecida en GAMILIT. La estructura actual esta orientada a tipos de documento en lugar de modulos funcionales, lo que dificulta:
- Trazabilidad: No hay conexion clara RF -> ET -> US -> Codigo
- Inventarios: No existen inventarios consolidados de objetos
- Dependencias: No hay grafo de dependencias documentado
- Localizacion: Dificil encontrar toda la informacion de un modulo
- Conflictos: Riesgo de duplicar objetos sin detectarlo
2. COMPARATIVA GAMILIT vs ERP Suite
2.1 Estructura GAMILIT (CORRECTA)
docs/
├── 01-fase-alcance-inicial/
│ └── EAI-001-fundamentos/ <- MODULO AUTOCONTENIDO
│ ├── _MAP.md <- Indice con metricas
│ ├── README.md <- Descripcion epica
│ ├── requerimientos/ <- RF del modulo
│ │ ├── RF-AUTH-001.md
│ │ └── RF-AUTH-002.md
│ ├── especificaciones/ <- ET del modulo
│ │ ├── ET-AUTH-001.md
│ │ └── ET-AUTH-002.md
│ ├── historias-usuario/ <- US del modulo
│ │ ├── US-FUND-001.md
│ │ └── US-FUND-002.md
│ └── implementacion/
│ └── TRACEABILITY.yml <- TRAZABILIDAD COMPLETA
│
├── 90-transversal/
│ └── inventarios/ <- INVENTARIOS GLOBALES
│ ├── DATABASE_INVENTORY.yml
│ ├── BACKEND_INVENTORY.yml
│ ├── FRONTEND_INVENTORY.yml
│ ├── TRACEABILITY_MATRIX.yml
│ └── DEPENDENCY_GRAPH.yml
│
└── orchestration/
└── inventarios/ <- INVENTARIOS OPERACIONALES
├── MASTER_INVENTORY.yml
├── SEEDS_INVENTORY.yml
└── TEST_COVERAGE.yml
Filosofia: Todo lo de un modulo esta JUNTO. Inventarios GLOBALES para evitar duplicados.
2.2 Estructura ERP Suite Actual (INCORRECTA)
apps/erp-core/docs/
├── 02-definicion-modulos/ <- Solo READMEs genericos
│ ├── INDICE-MODULOS.md
│ └── MGN-001-auth/
│ └── README.md <- Solo descripcion
│
├── 03-requerimientos/ <- RF separados por tipo
│ └── RF-auth/
│ └── RF-AUTH-001.md
│
├── 04-modelado/
│ ├── especificaciones-tecnicas/ <- ET separados
│ │ ├── backend/
│ │ └── frontend/
│ └── database-design/ <- DDL separados
│
├── 05-user-stories/ <- US separadas
│ └── mgn-001/
│ └── US-MGN-001-001.md
│
└── 08-epicas/ <- Epicas separadas
└── EPIC-MGN-001-auth.md
# NO EXISTEN:
# - _MAP.md por modulo
# - TRACEABILITY.yml por modulo
# - Inventarios globales (DATABASE_INVENTORY, BACKEND_INVENTORY)
# - DEPENDENCY_GRAPH.yml
# - MASTER_INVENTORY.yml
Problema: Informacion DISPERSA. Sin trazabilidad. Sin inventarios.
3. GAPS CRITICOS IDENTIFICADOS
3.1 Estructura
| Elemento | GAMILIT | ERP Suite | Gap |
|---|---|---|---|
| Modulos autocontenidos | Si | No | CRITICO |
| _MAP.md por modulo | Si | No | CRITICO |
| TRACEABILITY.yml por epica | Si | No | CRITICO |
| Inventarios globales | 4 archivos | 0 | CRITICO |
| DEPENDENCY_GRAPH.yml | Si | No | ALTO |
| MASTER_INVENTORY.yml | Si | No | ALTO |
| Trazabilidad RF->Codigo | 100% | 0% | CRITICO |
3.2 Contenido
| Elemento | GAMILIT | ERP Suite | Gap |
|---|---|---|---|
| RF con paths a implementacion | Si | No | ALTO |
| ET con endpoints especificos | Si | Parcial | MEDIO |
| US con criterios Gherkin | 100% | 30% | ALTO |
| Metricas por modulo | Si | No | ALTO |
| Bug fixes documentados | Si | No | MEDIO |
| Changelog por modulo | Si | No | MEDIO |
3.3 Operacional
| Elemento | GAMILIT | ERP Suite |
|---|---|---|
| Ubicacion canonica de inventarios | orchestration/inventarios/ | No existe |
| Tests coverage tracking | TEST_COVERAGE.yml | No existe |
| Seeds inventory | SEEDS_INVENTORY.yml | No existe |
4. CONSECUENCIAS DE LA ESTRUCTURA ACTUAL
- Duplicacion de objetos: Sin inventario global, se pueden crear tablas/endpoints duplicados
- Conflictos de nombres: Sin DEPENDENCY_GRAPH, no se detectan colisiones
- Implementacion sin traza: Codigo sin referencia a RF/US
- Perdida de contexto: Desarrollador debe buscar en 5+ carpetas para entender un modulo
- Metricas perdidas: No hay forma de medir avance real vs planificado
- Deuda tecnica oculta: Sin tracking de bugs/fixes
5. PLAN DE REESTRUCTURACION PROPUESTO
Fase 1: Crear Estructura Base (Prioridad Critica)
-
Crear carpeta orchestration/inventarios/
- MASTER_INVENTORY.yml
- DATABASE_INVENTORY.yml
- BACKEND_INVENTORY.yml
- FRONTEND_INVENTORY.yml
- DEPENDENCY_GRAPH.yml
- TRACEABILITY_MATRIX.yml
-
Reestructurar docs/ por modulos:
apps/erp-core/docs/ ├── 01-fase-foundation/ │ ├── MGN-001-auth/ <- TODO junto │ │ ├── _MAP.md │ │ ├── README.md │ │ ├── requerimientos/ │ │ ├── especificaciones/ │ │ ├── historias-usuario/ │ │ └── implementacion/ │ │ └── TRACEABILITY.yml │ ├── MGN-002-users/ │ ├── MGN-003-roles/ │ └── MGN-004-tenants/ │ ├── 02-fase-core-business/ │ ├── MGN-005-catalogs/ │ ├── MGN-010-financial/ │ └── ... │ └── 90-transversal/ └── inventarios/ <- Inventarios de docs
Fase 2: Migrar Documentacion Existente
- Mover RF de
03-requerimientos/aMGN-XXX/requerimientos/ - Mover ET de
04-modelado/aMGN-XXX/especificaciones/ - Mover US de
05-user-stories/aMGN-XXX/historias-usuario/ - Eliminar estructura dispersa
Fase 3: Crear Trazabilidad
- Crear TRACEABILITY.yml por cada modulo MGN-XXX
- Crear _MAP.md por cada modulo
- Poblar inventarios globales
Fase 4: Aplicar a Verticales
- Replicar estructura en verticales/construccion/
- Replicar en otras verticales
6. ESTRUCTURA OBJETIVO FINAL
erp-suite/
├── apps/
│ ├── erp-core/
│ │ ├── docs/
│ │ │ ├── 01-fase-foundation/
│ │ │ │ ├── _MAP.md <- Indice de fase
│ │ │ │ ├── README.md
│ │ │ │ ├── MGN-001-auth/
│ │ │ │ │ ├── _MAP.md <- Indice modulo (metricas)
│ │ │ │ │ ├── README.md <- Descripcion
│ │ │ │ │ ├── requerimientos/
│ │ │ │ │ │ ├── RF-AUTH-001.md
│ │ │ │ │ │ └── RF-AUTH-002.md
│ │ │ │ │ ├── especificaciones/
│ │ │ │ │ │ ├── ET-AUTH-001-backend.md
│ │ │ │ │ │ ├── ET-AUTH-002-frontend.md
│ │ │ │ │ │ └── ET-AUTH-003-database.md
│ │ │ │ │ ├── historias-usuario/
│ │ │ │ │ │ ├── US-AUTH-001.md
│ │ │ │ │ │ └── US-AUTH-002.md
│ │ │ │ │ └── implementacion/
│ │ │ │ │ └── TRACEABILITY.yml <- RF->ET->US->Codigo
│ │ │ │ ├── MGN-002-users/
│ │ │ │ ├── MGN-003-roles/
│ │ │ │ └── MGN-004-tenants/
│ │ │ │
│ │ │ ├── 02-fase-core-business/
│ │ │ │ └── [misma estructura]
│ │ │ │
│ │ │ ├── 03-fase-extended/
│ │ │ │ └── [misma estructura]
│ │ │ │
│ │ │ ├── 04-fase-saas/
│ │ │ │ └── [misma estructura]
│ │ │ │
│ │ │ └── 90-transversal/
│ │ │ ├── inventarios/
│ │ │ │ └── README.md <- Referencia a orchestration
│ │ │ └── templates/
│ │ │
│ │ └── orchestration/
│ │ └── inventarios/ <- INVENTARIOS CANONICOS
│ │ ├── MASTER_INVENTORY.yml
│ │ ├── DATABASE_INVENTORY.yml
│ │ ├── BACKEND_INVENTORY.yml
│ │ ├── FRONTEND_INVENTORY.yml
│ │ ├── DEPENDENCY_GRAPH.yml
│ │ ├── TRACEABILITY_MATRIX.yml
│ │ ├── SEEDS_INVENTORY.yml
│ │ └── TEST_COVERAGE.yml
│ │
│ └── verticales/
│ └── construccion/
│ ├── docs/
│ │ └── [misma estructura]
│ └── orchestration/
│ └── inventarios/
7. EJEMPLO DE TRACEABILITY.yml PARA ERP
# TRACEABILITY.yml - MGN-001: Autenticacion
# Matriz de trazabilidad: Documentacion -> Codigo
epic_code: MGN-001
epic_name: Autenticacion
phase: 1
phase_name: Foundation
story_points: 34
status: ready
# DOCUMENTACION
documentation:
requirements:
- id: RF-AUTH-001
file: requerimientos/RF-AUTH-001-login.md
title: Login con Email/Password
status: documented
- id: RF-AUTH-002
file: requerimientos/RF-AUTH-002-tokens.md
title: Manejo de Tokens JWT
status: documented
specifications:
- id: ET-AUTH-001
file: especificaciones/ET-AUTH-001-backend.md
rf: RF-AUTH-001
title: Backend Implementation
status: documented
user_stories:
- id: US-MGN001-001
file: historias-usuario/US-MGN001-001-login.md
title: Login con Email/Password
rf: [RF-AUTH-001]
story_points: 8
status: ready
# IMPLEMENTACION
implementation:
database:
schemas:
- name: core_auth
path: apps/database/ddl/schemas/core_auth/
tables:
- name: users_auth
file: apps/database/ddl/schemas/core_auth/tables/users_auth.sql
rf: RF-AUTH-001
- name: sessions
file: apps/database/ddl/schemas/core_auth/tables/sessions.sql
rf: RF-AUTH-002
functions:
- name: validate_password
file: apps/database/ddl/schemas/core_auth/functions/validate_password.sql
rf: RF-AUTH-001
backend:
module: auth
path: apps/backend/src/modules/auth/
services:
- name: auth.service.ts
methods: [login, logout, refresh]
rf: [RF-AUTH-001, RF-AUTH-002]
controllers:
- name: auth.controller.ts
endpoints:
- POST /api/v1/auth/login
- POST /api/v1/auth/logout
- POST /api/v1/auth/refresh
rf: [RF-AUTH-001, RF-AUTH-002]
guards:
- name: jwt-auth.guard.ts
rf: RF-AUTH-002
frontend:
feature: auth
path: apps/frontend/src/features/auth/
components:
- LoginForm.tsx
- LogoutButton.tsx
stores:
- authStore.ts
# DEPENDENCIAS
dependencies:
depends_on: [] # Primera epica
required_by: [MGN-002, MGN-003, MGN-004, ALL]
# METRICAS
metrics:
story_points:
estimated: 34
actual: null
variance: null
coverage:
unit_tests: 0%
integration_tests: 0%
e2e_tests: 0%
8. PROXIMOS PASOS INMEDIATOS
- Crear orchestration/inventarios/ en erp-core
- Crear MASTER_INVENTORY.yml inicial
- Crear DATABASE_INVENTORY.yml con objetos existentes
- Reestructurar MGN-001 como ejemplo completo
- Crear _MAP.md para MGN-001
- Crear TRACEABILITY.yml para MGN-001
- Documentar proceso en guia de desarrollo
9. BENEFICIOS ESPERADOS
- Trazabilidad completa: Cualquier linea de codigo tiene traza a RF
- Prevencion de duplicados: Inventarios detectan colisiones
- Localizacion rapida: Todo de un modulo en una carpeta
- Metricas precisas: Story points, coverage, bugs por modulo
- Onboarding facil: Nuevo desarrollador entiende modulo rapido
- Mantenimiento eficiente: Cambio en RF actualiza traza automatica
Generado por: Requirements-Analyst Fecha: 2025-12-05 Accion requerida: Aprobar plan de reestructuracion