workspace/projects/gamilit/orchestration/00-guidelines/CONTEXTO-PROYECTO.md
rckrdmrd c4b4b9cd89
Some checks are pending
CI Pipeline / changes (push) Waiting to run
CI Pipeline / core (push) Blocked by required conditions
CI Pipeline / trading-backend (push) Blocked by required conditions
CI Pipeline / trading-data-service (push) Blocked by required conditions
CI Pipeline / trading-frontend (push) Blocked by required conditions
CI Pipeline / erp-core (push) Blocked by required conditions
CI Pipeline / erp-mecanicas (push) Blocked by required conditions
CI Pipeline / gamilit-backend (push) Blocked by required conditions
CI Pipeline / gamilit-frontend (push) Blocked by required conditions
docs: Add workspace synchronization directive and update project context
## Summary
- Add DIRECTIVA-SINCRONIZACION-WORKSPACES.md with rules for dual workspace management
- Update CONTEXTO-PROYECTO.md with workspace dual information

## Workspaces
- NEW (development priority): ~/workspace/projects/gamilit → Gitea
- OLD (production client): ~/workspace-old/.../gamilit → GitHub

## Key Rules
- Development happens in NEW workspace first
- Production configs (.env.production, ecosystem.config.js) must exist in BOTH
- Production scripts and guides only in OLD workspace
- DDL/Seeds must be IDENTICAL in both

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-18 09:19:56 -06:00

277 lines
9.1 KiB
Markdown

# Contexto del Proyecto - GAMILIT
**Última actualización:** 2025-12-18
## Identificacion
| Campo | Valor |
|-------|-------|
| **Nombre** | GAMILIT |
| **Tipo** | Plataforma EdTech - Gamificacion Educativa |
| **Estado** | MVP 75% completado |
| **Version** | 2.0 |
## Descripcion
Plataforma educativa gamificada para aprendizaje de matematicas, con sistema de recompensas (XP, ML Coins), logros y rangos Maya.
---
## VARIABLES PARA DIRECTIVAS GLOBALES
Las siguientes variables se usan para resolver placeholders en directivas globales de `core/orchestration/`:
```yaml
# Identificacion del Proyecto
PROJECT: gamilit
PROJECT_NAME: GAMILIT
# Paths Principales
PROJECT_ROOT: ~/workspace/projects/gamilit
APPS_ROOT: ~/workspace/projects/gamilit/apps
DOCS_ROOT: ~/workspace/projects/gamilit/docs
ORCHESTRATION: ~/workspace/projects/gamilit/orchestration
# Base de Datos (para DIRECTIVA-POLITICA-CARGA-LIMPIA y DIRECTIVA-DISENO-BD)
DB_NAME: gamilit_platform
DB_DDL_PATH: ~/workspace/projects/gamilit/apps/database/ddl
DB_SCRIPTS_PATH: ~/workspace/projects/gamilit/apps/database
DB_SEEDS_PATH: ~/workspace/projects/gamilit/apps/database/seeds
RECREATE_CMD: drop-and-recreate-database.sh
# Backend
BACKEND_ROOT: ~/workspace/projects/gamilit/apps/backend
BACKEND_SRC: ~/workspace/projects/gamilit/apps/backend/src
BACKEND_TESTS: ~/workspace/projects/gamilit/apps/backend/tests
# Frontend
FRONTEND_ROOT: ~/workspace/projects/gamilit/apps/frontend
FRONTEND_SRC: ~/workspace/projects/gamilit/apps/frontend/src
FRONTEND_TESTS: ~/workspace/projects/gamilit/apps/frontend/tests
# Auth Schema (para referencias en BD)
AUTH_SCHEMA: auth_management
```
### Ejemplo de Resolucion de Placeholders
Cuando una directiva global usa `{DB_DDL_PATH}/schemas/{schema}/tables/`:
- Se resuelve a: `~/workspace/projects/gamilit/apps/database/ddl/schemas/gamification_system/tables/`
---
## Stack Tecnológico
### Backend
- **Framework:** NestJS 11.x
- **Lenguaje:** TypeScript 5.3
- **ORM:** TypeORM 0.3.x
- **Auth:** JWT + Passport (5 proveedores OAuth)
- **API:** 417 endpoints REST
### Frontend
- **Framework:** React 19.x
- **Lenguaje:** TypeScript 5.3
- **State:** Zustand 5.x
- **Styling:** Tailwind CSS 4.x
- **Build:** Vite
### Database
- **Engine:** PostgreSQL 15
- **Schemas:** 16 schemas modulares
- **Tablas:** 123 tablas
- **RLS:** 185 políticas
## Paths de Trabajo
```
~/workspace/projects/gamilit/
├── apps/
│ ├── backend/ → NestJS API
│ ├── frontend/ → React SPA
│ ├── database/ → DDL PostgreSQL
│ └── devops/ → Scripts sincronización
├── docs/ → Documentación del proyecto
└── orchestration/ → Sistema de orquestación local
```
---
## WORKSPACES DUALES
**IMPORTANTE:** GAMILIT tiene dos workspaces con propositos diferentes.
### Workspace NUEVO (Este - Prioridad Desarrollo)
| Aspecto | Valor |
|---------|-------|
| **Path** | `~/workspace/projects/gamilit` |
| **Remote** | `http://72.60.226.4:3000/rckrdmrd/workspace.git` |
| **Proposito** | Desarrollo activo, agentes, directivas |
| **Prioridad** | ALTA - Todo desarrollo nuevo aqui |
### Workspace VIEJO (Produccion Cliente)
| Aspecto | Valor |
|---------|-------|
| **Path** | `~/workspace-old/wsl-ubuntu/workspace/workspace-gamilit/gamilit/projects/gamilit` |
| **Remote** | `git@github.com:rckrdmrd/gamilit-workspace.git` |
| **Proposito** | Deployment a servidor produccion |
| **Contenido especial** | Scripts produccion, guias HTTPS/PM2/Certbot |
### Reglas de Sincronizacion
Ver directiva completa: `orchestration/directivas/DIRECTIVA-SINCRONIZACION-WORKSPACES.md`
**Resumen:**
- Desarrollo → NUEVO primero, luego sincronizar a VIEJO
- Configuraciones (.env.production, ecosystem.config.js) → AMBOS
- Scripts de produccion → Solo VIEJO
- DDL y Seeds → IDENTICOS en ambos
### Servidor de Produccion
| Aspecto | Valor |
|---------|-------|
| IP | 74.208.126.102 |
| Backend | Puerto 3006 (PM2 cluster) |
| Frontend | Puerto 3005 (PM2 fork) |
| Database | PostgreSQL :5432, `gamilit_platform` |
## Convenciones Específicas
### Nomenclatura de Archivos
| Tipo | Convención | Ejemplo |
|------|------------|---------|
| DDL Tablas | `{NN}-{nombre_tabla}.sql` | `05-user_achievements.sql` |
| Módulos NestJS | `{nombre}.module.ts` | `gamification.module.ts` |
| Services | `{nombre}.service.ts` | `achievements.service.ts` |
| Controllers | `{nombre}.controller.ts` | `achievements.controller.ts` |
| Componentes React | `{Nombre}.tsx` | `AchievementCard.tsx` |
| Tests | `{nombre}.test.tsx` | `AchievementCard.test.tsx` |
### Esquemas de Base de Datos
1. `auth` - autenticación estándar (sistema)
2. `auth_management` - Gestión autenticación (11 tablas)
3. `educational_content` - Contenido educativo (8 tablas)
4. `gamification_system` - Gamificación (12 tablas)
5. `progress_tracking` - Tracking progreso (10 tablas)
6. `admin_dashboard` - Dashboard admin (6 tablas)
7. `content_management` - Gestión contenido (7 tablas)
8. `social_features` - Features sociales (8 tablas)
9. `storage` - Almacenamiento (5 tablas)
10. `audit_logging` - Logs auditoría (6 tablas)
11. `system_configuration` - Configuración (4 tablas)
12. `lti_integration` - Integración LTI (5 tablas)
13. `gamilit` - Schema principal (10 tablas)
14. `public` - Acceso público (2 tablas)
15. `communication` - Comunicaciones (3 tablas)
16. `notifications` - Notificaciones (4 tablas)
## Directivas Específicas del Proyecto
### SSOT (Single Source of Truth)
- Sincronización obligatoria de ENUMs: `npm run sync:enums`
- Validación de constantes: `npm run validate:constants`
- API Contract: `npm run validate:api-contract`
### Política de Carga Limpia
- Seeds con UUIDs estáticos
- Scripts idempotentes
- Validación pre-ejecución
### Coverage Mínimo
- Backend: 60%
- Frontend: 60%
- Database Triggers: 40%
## Scripts Principales
```bash
# Desarrollo
npm run dev # Backend + Frontend concurrente
npm run backend:dev # Solo backend
npm run frontend:dev # Solo frontend
# Validación
npm run sync:enums # Sincronizar ENUMs
npm run validate:constants # Validar constantes
npm run validate:api-contract # Validar rutas API
npm run validate:all # Todas las validaciones
# Testing
npm run test # Todos los tests
npm run test:backend # Tests backend
npm run test:frontend # Tests frontend
# Build
npm run build # Build completo
```
## Sistema de Directivas
### Directivas Globales (heredadas de core)
Las siguientes directivas se aplican a TODOS los proyectos del workspace:
| Directiva | Propósito |
|-----------|-----------|
| `DIRECTIVA-FLUJO-5-FASES.md` | Workflow obligatorio de 5 fases para subagentes |
| `DIRECTIVA-VALIDACION-SUBAGENTES.md` | Proceso de validación de entregables |
| `POLITICAS-USO-AGENTES.md` | Reglas de delegación y uso de subagentes |
| `DIRECTIVA-DOCUMENTACION-OBLIGATORIA.md` | Documentación requerida antes de código |
| `DIRECTIVA-CALIDAD-CODIGO.md` | Estándares de calidad de código |
| `DIRECTIVA-CONTROL-VERSIONES.md` | Control de versiones y commits |
| `DIRECTIVA-GESTION-BACKUPS-GITIGNORE.md` | Gestión de backups y gitignore |
| `PROTOCOLO-ESCALAMIENTO-PO.md` | Protocolo de escalamiento al PO |
| `ESTANDARES-NOMENCLATURA-BASE.md` | Nomenclatura base del workspace |
**Path:** `~/workspace/core/orchestration/directivas/`
### Directivas Específicas de Gamilit
Directivas que aplican solo a este proyecto:
| Directiva | Propósito |
|-----------|-----------|
| `DIRECTIVA-DISENO-BASE-DATOS.md` | Diseño de BD con 16 schemas |
| `DIRECTIVA-POLITICA-CARGA-LIMPIA.md` | DDL-first, sin migraciones |
| `ESTANDARES-API-ROUTES.md` | Convenciones de rutas REST |
| `ESTANDARES-TESTING-API.md` | Estándares de testing para API |
| `PITFALLS-API-ROUTES.md` | Errores comunes a evitar en rutas |
**Path:** `~/workspace/projects/gamilit/orchestration/directivas/`
### Prompts Específicos de Gamilit
Prompts especializados para este proyecto:
| Prompt | Uso |
|--------|-----|
| `PROMPT-DATABASE-AGENT.md` | Agente para tareas de BD PostgreSQL |
| `PROMPT-DATABASE-AUDITOR.md` | Auditoría de BD y optimización |
| `PROMPT-BACKEND-AGENT.md` | Desarrollo backend NestJS |
| `PROMPT-FRONTEND-AGENT.md` | Desarrollo frontend React |
| `PROMPT-ARCHITECTURE-ANALYST.md` | Análisis arquitectónico |
**Path:** `~/workspace/projects/gamilit/orchestration/prompts/`
## Documentación de Referencia
### Dentro del Proyecto
- `docs/00-overview/VISION.md`
- `docs/01-requerimientos/` (por épica)
- `docs/02-especificaciones-tecnicas/`
### En Core (Workspace)
- `~/workspace/core/orchestration/directivas/` (directivas globales)
- `~/workspace/core/orchestration/prompts/base/` (prompts base)
- `~/workspace/core/orchestration/templates/` (templates)
- `~/workspace/core/orchestration/checklists/` (checklists)
### En Knowledge Base
- `~/workspace/knowledge-base/patterns/` (patrones aplicables)
- `~/workspace/knowledge-base/reference/gamilit-legacy/` (código anterior)
---
*Contexto del proyecto Gamilit - Sistema NEXUS v2.0*