# PROMPT BACKEND-AGENT - EXTENSIÓN GAMILIT **Versión:** 2.0.0 **Fecha:** 2025-12-05 **Tipo:** Extensión de prompt global **Proyecto:** GAMILIT - Sistema de Gamificación Educativa --- ## HERENCIA ```yaml EXTIENDE: core/orchestration/agents/PROMPT-BACKEND-AGENT.md CONTEXTO: orchestration/00-guidelines/CONTEXTO-PROYECTO.md ``` **IMPORTANTE:** Este archivo NO duplica el prompt global. Solo contiene: 1. Resolución de variables para GAMILIT 2. Extensiones específicas del proyecto (si las hay) --- ## RESOLUCIÓN DE VARIABLES PARA GAMILIT Al leer el prompt global, resolver estos placeholders: ```yaml {PROJECT_NAME}: GAMILIT {BACKEND_ROOT}: apps/backend {BACKEND_SRC}: apps/backend/src {BACKEND_TESTS}: apps/backend/tests {DB_NAME}: gamilit_platform {AUTH_SCHEMA}: auth_management {FRONTEND_ROOT}: apps/frontend {DB_DDL_PATH}: apps/database/ddl {DB_SEEDS_PATH}: apps/database/seeds ``` --- ## MÓDULOS DEL PROYECTO GAMILIT Este proyecto requiere los siguientes módulos NestJS alineados con los schemas de BD: | Módulo | Schema BD | Propósito | Estado | |--------|-----------|-----------|--------| | `auth` | `auth_management` | Autenticación, usuarios, roles, tenants | Pendiente | | `gamification` | `gamification_system` | Puntos, niveles, badges, challenges | Pendiente | | `content` | `educational_content` | Módulos, lecciones, ejercicios | Pendiente | | `progress` | `progress_tracking` | Progreso estudiantil, estadísticas | Pendiente | | `academic` | `academic_management` | Instituciones, cursos, estudiantes | Pendiente | | `guilds` | `guild_management` | Guildas, rankings | Pendiente | | `notifications` | `notification_management` | Notificaciones, alertas | Pendiente | | `admin` | `admin_dashboard` | Dashboard administrativo | Pendiente | | `cms` | `content_management` | Gestión de contenido | Pendiente | | `social` | `social_features` | Features sociales | Pendiente | | `storage` | `storage` | Almacenamiento de archivos | Pendiente | | `audit` | `audit_logging` | Logs de auditoría | Pendiente | | `config` | `system_configuration` | Configuración del sistema | Pendiente | | `lti` | `lti_integration` | Integración LTI con LMS | Pendiente | --- ## RUTAS DE TRABAJO GAMILIT ```bash # Backend apps/backend/src/modules/{modulo}/ apps/backend/src/modules/{modulo}/entities/*.entity.ts apps/backend/src/modules/{modulo}/services/*.service.ts apps/backend/src/modules/{modulo}/controllers/*.controller.ts apps/backend/src/modules/{modulo}/dto/*.dto.ts # Shared apps/backend/src/shared/config/ apps/backend/src/shared/guards/ apps/backend/src/shared/decorators/ apps/backend/src/shared/constants/ # Tests apps/backend/test/ # Inventarios orchestration/inventarios/MASTER_INVENTORY.yml orchestration/inventarios/BACKEND_INVENTORY.yml # Trazas orchestration/trazas/TRAZA-TAREAS-BACKEND.md ``` --- ## DIRECTIVAS ESPECÍFICAS GAMILIT Además de las directivas globales, consultar: ```yaml Directivas del proyecto: - orchestration/directivas/ESTANDARES-API-ROUTES.md - orchestration/directivas/GUIA-NOMENCLATURA-COMPLETA.md Documentación de diseño: - docs/01-fase-alcance-inicial/ (especificaciones de módulos) - docs/95-guias-desarrollo/backend/ (convenciones de código) - docs/97-adr/ (decisiones arquitectónicas) ``` --- ## EXTENSIONES ESPECÍFICAS (si difieren del global) ### Sistema Multi-tenant GAMILIT implementa multi-tenancy a nivel de aplicación: ```typescript // Todas las entities principales incluyen tenant_id @Entity({ schema: 'auth_management', name: 'users' }) export class UserEntity { @Column({ type: 'uuid' }) tenantId: string; // FK a auth_management.tenants @ManyToOne(() => TenantEntity) @JoinColumn({ name: 'tenant_id' }) tenant: TenantEntity; } // Guards deben validar tenant del usuario @Injectable() export class TenantGuard implements CanActivate { canActivate(context: ExecutionContext): boolean { const request = context.switchToHttp().getRequest(); const user = request.user; const tenantId = request.params.tenantId || request.body.tenantId; return user.tenantId === tenantId; } } ``` ### Sistema de Gamificación El módulo `gamification` es central en GAMILIT: ```typescript // Rangos basados en cultura Maya // Ajaw (Rey), Ahau, Batab, Nacom, Chilam, Ah Kin, etc. // Ver: gamification_system.levels para definiciones // Entities principales de gamificación: // - UserPointsEntity (puntos del usuario) // - UserLevelEntity (nivel actual) // - UserBadgeEntity (badges obtenidos) // - UserChallengeEntity (challenges activos) ``` ### Integración LTI GAMILIT se integra con LMS externos vía LTI: ```typescript // Módulo lti maneja: // - LTI 1.3 launch // - Deep linking // - Assignment and Grade Services (AGS) // - Names and Role Provisioning Services (NRPS) ``` --- ## FLUJO DE INICIO Cuando el usuario diga "lee el prompt de Backend Agent para GAMILIT": 1. **Leer prompt global:** `core/orchestration/agents/PROMPT-BACKEND-AGENT.md` 2. **Leer este archivo:** Para resolver variables y ver extensiones 3. **Leer contexto:** `orchestration/00-guidelines/CONTEXTO-PROYECTO.md` 4. **Listo para recibir tarea** --- **Nota:** Cualquier mejora a las directivas generales se hace en `core/orchestration/agents/PROMPT-BACKEND-AGENT.md` y se refleja automáticamente en todos los proyectos.