- Configure workspace Git repository with comprehensive .gitignore - Add Odoo as submodule for ERP reference code - Include documentation: SETUP.md, GIT-STRUCTURE.md - Add gitignore templates for projects (backend, frontend, database) - Structure supports independent repos per project/subproject level Workspace includes: - core/ - Reusable patterns, modules, orchestration system - projects/ - Active projects (erp-suite, gamilit, trading-platform, etc.) - knowledge-base/ - Reference code and patterns (includes Odoo submodule) - devtools/ - Development tools and templates - customers/ - Client implementations template 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
182 lines
5.4 KiB
Markdown
182 lines
5.4 KiB
Markdown
# 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.
|