erp-core/orchestration/00-guidelines/CONTEXTO-PROYECTO.md

11 KiB

Contexto del Proyecto: ERP Core

Metadatos

Campo Valor
Nombre ERP Core - Base Generica Reutilizable
Tipo CORE-BASE (Proyecto Independiente)
Nivel BASE para verticales y productos
Estado En desarrollo
Progreso 60%
Version 1.2.0
Workspace /home/isem/workspace-v1/projects/erp-core/
Fecha Migracion 2025-12-27

VARIABLES PARA DIRECTIVAS GLOBALES

# Identificacion del Proyecto
PROJECT:             erp-core
PROJECT_NAME:        ERP Core
PROJECT_LEVEL:       CORE-BASE

# Paths Principales (WORKSPACE-V1)
WORKSPACE_ROOT:      ~/workspace-v1
PROJECT_ROOT:        ~/workspace-v1/projects/erp-core
APPS_ROOT:           ~/workspace-v1/projects/erp-core
DOCS_ROOT:           ~/workspace-v1/projects/erp-core/docs
ORCHESTRATION:       ~/workspace-v1/projects/erp-core/orchestration

# Base Orchestration (Directivas y Perfiles)
DIRECTIVAS_PATH:     ~/workspace-v1/orchestration/directivas
PERFILES_PATH:       ~/workspace-v1/orchestration/agents/perfiles
CATALOG_PATH:        ~/workspace-v1/core/catalog

# Base de Datos
DB_NAME:             erp_core
DB_DDL_PATH:         ~/workspace-v1/projects/erp-core/database/ddl
DB_SCRIPTS_PATH:     ~/workspace-v1/projects/erp-core/database

# Backend
BACKEND_ROOT:        ~/workspace-v1/projects/erp-core/backend
BACKEND_SRC:         ~/workspace-v1/projects/erp-core/backend/src

# Frontend
FRONTEND_ROOT:       ~/workspace-v1/projects/erp-core/frontend
FRONTEND_SRC:        ~/workspace-v1/projects/erp-core/frontend/src

Descripcion

ERP Core es la base generica que proporciona el 60-70% del codigo compartido para todas las verticales. Incluye modulos fundamentales como autenticacion, usuarios, roles, catalogos maestros, y funcionalidades comunes.

Proyectos que extienden este core (independientes):

  • projects/erp-construccion/ - ERP Construccion INFONAVIT
  • projects/erp-vidrio-templado/ - ERP Vidrio Templado
  • projects/erp-mecanicas-diesel/ - ERP Talleres Mecanicos
  • projects/erp-retail/ - ERP Punto de Venta
  • projects/erp-clinicas/ - ERP Clinicas

Productos derivados (en erp-suite):

  • projects/erp-suite/apps/products/erp-basico/ - ERP Simplificado
  • projects/erp-suite/apps/products/pos-micro/ - POS Miniatura

Stack Tecnológico

Backend (/backend)

Tecnología Versión Propósito
Node.js 20+ Runtime
Express.js 4.x Framework HTTP
TypeScript 5.3+ Lenguaje
TypeORM 0.3.17 ORM
JWT + bcryptjs - Autenticación
Zod, class-validator - Validación
Winston - Logger
Helmet, CORS - Seguridad HTTP

Frontend (/frontend)

Tecnología Versión Propósito
React 18 Framework UI
Vite 5.x Build tool
TypeScript 5.3+ Lenguaje
Zustand - State management
Tailwind CSS 4.x Styling

Base de Datos (/database)

Tecnología Versión Propósito
PostgreSQL 15+ Motor BD
RLS - Row-Level Security
uuid-ossp - Generación UUIDs
pg_trgm - Búsqueda fuzzy

Paths del Proyecto

/home/isem/workspace-v1/projects/erp-core/
├── backend/
│   ├── src/
│   │   ├── modules/           # Módulos de negocio (auth, users, etc.)
│   │   ├── shared/            # Código compartido (utils, types, constants)
│   │   ├── config/            # Configuración (database, jwt, cors)
│   │   └── middleware/        # Middlewares (auth, validation, error)
│   ├── package.json
│   ├── tsconfig.json
│   └── .env.example
│
├── frontend/
│   ├── src/
│   │   ├── components/        # Componentes reutilizables
│   │   ├── pages/             # Páginas/Vistas
│   │   ├── stores/            # Estado global (Zustand)
│   │   ├── services/          # API clients
│   │   └── hooks/             # Custom hooks
│   ├── package.json
│   └── vite.config.ts
│
├── database/
│   ├── ddl/                   # CREATE TABLE statements
│   ├── migrations/            # Migraciones incrementales
│   ├── seeds/                 # Datos iniciales (idempotentes)
│   └── scripts/               # Scripts de utilidad
│
├── docs/                      # 517 archivos de documentación
│   ├── 00-vision-general/
│   ├── 00-analisis-referencias/
│   ├── 01-definicion-modulos/
│   ├── 02-modelado/
│   │   ├── database-design/
│   │   ├── domain-models/
│   │   └── especificaciones-tecnicas/
│   ├── 03-user-stories/       # 15 módulos MGN-*
│   ├── 90-transversal/
│   ├── 95-guias-desarrollo/
│   └── 97-adr/
│
└── orchestration/             # Sistema NEXUS
    ├── 00-guidelines/
    │   ├── CONTEXTO-PROYECTO.md      # Este archivo
    │   └── HERENCIA-DIRECTIVAS.md    # Mapeo de directivas
    ├── 01-analisis/           # Análisis de tareas
    ├── 02-planeacion/         # Planes detallados
    ├── 03-tareas/             # Descomposición de work
    ├── 04-ejecucion-logs/     # Logs de ejecución
    ├── 05-validaciones/       # Validaciones (pre/durante/post)
    │   ├── pre/
    │   ├── durante/
    │   └── post/
    ├── 06-subagentes/         # Gestión de subagentes
    ├── agentes/               # Ejecuciones por agente
    ├── directivas/            # Directivas específicas
    ├── estados/               # Estado actual de agentes
    ├── inventarios/           # Inventarios YAML
    ├── prompts/               # Prompts específicos
    ├── reportes/              # Reportes de ciclos
    ├── trazas/                # Historial de tareas
    ├── templates/             # Templates proyecto
    └── PROXIMA-ACCION.md      # Siguiente tarea

Módulos Core (MGN-*)

Referencia: /docs/03-user-stories/

Código Módulo Estado Descripción
MGN-001 auth En desarrollo Autenticación JWT, OAuth, sessions
MGN-002 users En desarrollo Gestión de usuarios CRUD
MGN-003 roles Planificado Roles y permisos (RBAC)
MGN-004 tenants Planificado Multi-tenancy, aislamiento
MGN-005 catalogs Planificado Catálogos maestros genéricos
MGN-006 settings Planificado Configuración del sistema
MGN-007 audit Planificado Auditoría y logs
MGN-008 notifications Planificado Sistema de notificaciones
MGN-009 reports Planificado Reportes genéricos
MGN-010 financial Planificado Contabilidad básica
MGN-011 inventory Planificado Inventario básico
MGN-012 purchasing Planificado Compras básicas
MGN-013 crm Planificado CRM básico
MGN-014 integration Planificado APIs de integración

Convenciones de Código

Base de Datos (DDL)

Schemas:    core_{nombre}           (ej: core_auth, core_users)
Tablas:     {schema}.{nombre_plural} (ej: core_auth.users)
Columnas:   snake_case              (ej: created_at, user_id)
Índices:    idx_{tabla}_{columnas}  (ej: idx_users_email)
FK:         fk_{origen}_to_{destino} (ej: fk_users_to_tenants)
Triggers:   trg_{tabla}_{accion}    (ej: trg_users_audit)

Columnas de auditoría (obligatorias):

  • id UUID PRIMARY KEY
  • tenant_id UUID NOT NULL (multi-tenant)
  • created_at TIMESTAMPTZ DEFAULT NOW()
  • updated_at TIMESTAMPTZ DEFAULT NOW()
  • created_by UUID REFERENCES users(id)
  • updated_by UUID REFERENCES users(id)
  • is_active BOOLEAN DEFAULT TRUE

Backend (TypeScript)

Archivos:   kebab-case.tipo.ts      (ej: user-auth.service.ts)
Clases:     PascalCase + sufijo     (ej: UserAuthService, UserEntity)
Variables:  camelCase               (ej: userId, isActive)
Constantes: UPPER_SNAKE_CASE        (ej: MAX_LOGIN_ATTEMPTS)
Métodos:    camelCase + verbo       (ej: findById, createUser)
Interfaces: IPascalCase             (ej: IUserService)
Types:      TPascalCase             (ej: TUserRole)

Estructura de módulo:

modules/{nombre}/
├── {nombre}.module.ts
├── {nombre}.controller.ts
├── {nombre}.service.ts
├── {nombre}.entity.ts
├── dto/
│   ├── create-{nombre}.dto.ts
│   └── update-{nombre}.dto.ts
└── __tests__/
    └── {nombre}.service.spec.ts

Frontend (React/TypeScript)

Componentes: PascalCase.tsx         (ej: UserProfile.tsx)
Páginas:     PascalCasePage.tsx     (ej: DashboardPage.tsx)
Hooks:       useCamelCase.ts        (ej: useAuth.ts)
Stores:      camelCase.store.ts     (ej: auth.store.ts)
Services:    camelCase.service.ts   (ej: api.service.ts)
Types:       camelCase.types.ts     (ej: user.types.ts)

Herencia de Directivas

Ver detalle completo en: HERENCIA-DIRECTIVAS.md

Orden de Precedencia

  1. Globales (CORE): /home/isem/workspace-v1/core/orchestration/directivas/
  2. ERP-Suite: /home/isem/workspace-v1/projects/erp-suite/orchestration/directivas/
  3. ERP-Core: ./directivas/

Directivas Críticas

  • DIRECTIVA-FLUJO-5-FASES.md - Flujo de trabajo obligatorio
  • DIRECTIVA-VALIDACION-DOCUMENTACION.md - Validar contra /docs/
  • POLITICAS-USO-AGENTES.md - Uso de agentes NEXUS
  • DIRECTIVA-DISENO-BASE-DATOS.md - Diseño de BD

Principios Core (Obligatorios)

  1. Independencia: Todo módulo debe ser independiente y desacoplado
  2. Extensibilidad: Las verticales EXTIENDEN, nunca modifican el core
  3. Multi-tenant: TODA consulta debe filtrar por tenant_id
  4. Documentación: Documentar ANTES de implementar
  5. Trazabilidad: Registrar TODA tarea en /orchestration/trazas/
  6. Validación: Usar flujo de 5 fases para toda tarea

Flujo de 5 Fases (Obligatorio)

Toda tarea debe seguir:

Fase Carpeta Entregable
1. Análisis 01-analisis/ ANÁLISIS.md
2. Planeación 02-planeacion/ PLAN.md
3. Validación 05-validaciones/pre/ VALIDACIÓN.md
4. Ejecución 04-ejecucion-logs/ LOGS.md
5. Cierre 05-validaciones/post/ CIERRE.md

Referencias

Recurso Path
Directivas globales /home/isem/workspace-v1/core/orchestration/directivas/
Prompts base /home/isem/workspace-v1/core/orchestration/prompts/base/
Patrones Odoo /home/isem/workspace-v1/knowledge-base/patterns/
Catálogo central core/catalog/ (componentes reutilizables)
Estándar docs /home/isem/workspace-v1/core/standards/ESTANDAR-ESTRUCTURA-DOCUMENTACION.md

Última actualización: Diciembre 2025