# Core - Núcleo de la Fábrica de Software ## Descripción El directorio `core/` contiene todo lo que se comparte a nivel de **fábrica**, no de proyecto individual: - Sistema de orquestación de agentes - Módulos de código reutilizables - Estándares técnicos y de negocio - Directivas globales para agentes/subagentes - Constantes y tipos universales ## Estructura ``` core/ ├── modules/ # Código compartido ejecutable │ ├── utils/ # Utilidades universales ✅ │ │ ├── date.util.ts # Manipulación de fechas │ │ ├── string.util.ts # Manipulación de strings │ │ ├── validation.util.ts # Validaciones │ │ └── index.ts │ ├── auth/ # Autenticación (por implementar) │ ├── billing/ # Facturación │ ├── notifications/ # Notificaciones │ ├── payments/ # Pagos │ └── multitenant/ # Multi-tenancy │ ├── constants/ # Constantes globales ✅ │ ├── enums.constants.ts # Enums universales │ ├── regex.constants.ts # Patrones regex │ └── index.ts │ ├── types/ # Tipos TypeScript compartidos ✅ │ ├── api.types.ts # Tipos de API │ ├── common.types.ts # Tipos comunes │ └── index.ts │ ├── catalog/ # Documentación de funcionalidades │ ├── auth/ │ ├── notifications/ │ └── ... │ ├── orchestration/ # Sistema de agentes NEXUS │ ├── agents/ │ ├── directivas/ │ ├── templates/ │ └── referencias/ │ └── standards/ # Estándares técnicos globales ├── CODING-STANDARDS.md ├── TESTING-STANDARDS.md └── ... ``` ## Uso ### Importar Utilidades ```typescript // En cualquier proyecto del workspace import { formatDate, slugify, isEmail } from '@core/modules/utils'; // O importar específico import { formatToISO, addDays } from '@core/modules/utils/date.util'; ``` ### Importar Constantes ```typescript import { UserStatus, PaymentStatus } from '@core/constants'; import { EMAIL_REGEX, UUID_REGEX } from '@core/constants/regex.constants'; ``` ### Importar Tipos ```typescript import { ApiResponse, PaginatedResponse } from '@core/types'; import { BaseEntity, Address } from '@core/types/common.types'; ``` ## Módulos Disponibles ### Utils (`@core/modules/utils`) | Archivo | Funciones | Descripción | |---------|-----------|-------------| | `date.util.ts` | formatDate, addDays, diffInDays, etc. | Manipulación de fechas | | `string.util.ts` | slugify, capitalize, truncate, etc. | Manipulación de strings | | `validation.util.ts` | isEmail, isUUID, isStrongPassword, etc. | Validaciones | ### Constants (`@core/constants`) | Archivo | Contenido | |---------|-----------| | `enums.constants.ts` | UserStatus, PaymentStatus, NotificationType, etc. | | `regex.constants.ts` | EMAIL_REGEX, UUID_REGEX, PHONE_REGEX, etc. | ### Types (`@core/types`) | Archivo | Tipos | |---------|-------| | `api.types.ts` | ApiResponse, PaginatedResponse, ErrorCodes | | `common.types.ts` | BaseEntity, Address, Money, Result | ## Proyectos que Usan Core - **Gamilit** - Plataforma educativa de gamificación - **Trading Platform** - OrbiQuant IA trading - **ERP Suite** - Sistema ERP multi-vertical ## Sistema de Orquestación Los agentes cargan automáticamente las directivas de `core/orchestration/directivas/` al inicializar. ## Ver También - [Sistema de Orquestación](orchestration/README.md) - [Catálogo de Funcionalidades](catalog/README.md) - [Plan de Organización](../PLAN-ORGANIZACION-WORKSPACE.md)