- 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>
11 KiB
11 KiB
Guía: Agregar Referencias SIMCO en Código DDL
📋 Objetivo
Esta guía explica cómo agregar referencias bidireccionales entre la documentación (carpeta docs/) y el código de implementación (carpeta apps/) para cumplir con el estándar SIMCO (Sistema Indexado Modular por COntexto).
✅ Estado Actual
Completado:
- ✅ 00-prerequisites.sql: 16 ENUMs con referencias agregadas
- ✅ auth_management.profiles: Tabla de perfiles de usuario
- ✅ gamification_system.comodines_inventory: Tabla de inventario de comodines
- ✅ educational_content.exercises: Tabla de ejercicios
Pendiente:
- ⏳ ~46 tablas SQL restantes
- ⏳ ~100 archivos TypeScript en Backend
- ⏳ ~80 componentes React en Frontend
📐 Patrón para Archivos SQL
Formato de Referencias
Agregar un bloque de documentación después del header existente y antes del código SQL:
-- =====================================================
-- Table: nombre_schema.nombre_tabla
-- Description: Descripción de la tabla
-- ...header existente...
--
-- 📚 Documentación:
-- Requerimiento: docs/01-requerimientos/.../RF-XXX-xxx.md
-- Especificación: docs/02-especificaciones-tecnicas/.../ET-XXX-xxx.md
-- Ver también: docs/... (opcional, para referencias adicionales)
-- =====================================================
Ejemplo Real: auth_management.profiles
-- =====================================================
-- Table: auth_management.profiles
-- Description: Perfiles de usuario con información básica, rol y configuraciones
-- Dependencies: auth_management.tenants, auth.users
-- Created: 2025-10-27
--
-- 📚 Documentación:
-- Requerimiento: docs/01-requerimientos/01-autenticacion-autorizacion/RF-AUTH-001-roles.md
-- Requerimiento: docs/01-requerimientos/01-autenticacion-autorizacion/RF-AUTH-002-estados-cuenta.md
-- Especificación: docs/02-especificaciones-tecnicas/01-autenticacion-autorizacion/ET-AUTH-001-rbac.md
-- Especificación: docs/02-especificaciones-tecnicas/01-autenticacion-autorizacion/ET-AUTH-002-estados-cuenta.md
-- =====================================================
SET search_path TO auth_management, public;
CREATE TABLE auth_management.profiles (
...
);
Ejemplo Real: educational_content.exercises
-- =====================================================
-- Table: educational_content.exercises
-- Description: Ejercicios con 27 mecánicas diferentes
--
-- 📚 Documentación:
-- Requerimiento: docs/01-requerimientos/03-contenido-educativo/RF-EDU-001-mecanicas-ejercicios.md
-- Especificación: docs/02-especificaciones-tecnicas/03-contenido-educativo/ET-EDU-001-mecanicas-ejercicios.md
-- Ver también: docs/01-requerimientos/modulos/MODULOS-EDUCATIVOS.md
-- =====================================================
🗺️ Mapeo de Schemas → Documentación
1. auth_management
Tablas:
profiles→ RF-AUTH-001 (roles), RF-AUTH-002 (estados cuenta)linked_providers→ RF-AUTH-003 (OAuth)sessions,tokens→ RF-AUTH-001 (autenticación)
2. gamification_system
Tablas:
achievements,user_achievements→ RF-GAM-001 (achievements)comodines_inventory→ RF-GAM-002 (comodines)leaderboards,user_stats→ RF-GAM-003 (rangos Maya)ml_coins_transactions→ RF-GAM-002 (ML Coins)missions,user_missions→ RF-GAM-001 (misiones)
3. educational_content
Tablas:
modules→ RF-EDU-001 (módulos educativos)exercises→ RF-EDU-001 (31 mecánicas)media_resources→ RF-CNT-001 (gestión media)assessment_rubrics→ RF-EDU-001 (evaluación)
4. progress_tracking
Tablas:
module_progress→ RF-PRG-001 (estados progreso)learning_sessions→ RF-PRG-001 (sesiones)exercise_attempts→ RF-PRG-001 (intentos)exercise_submissions→ RF-PRG-001 (envíos)
5. social_features
Tablas:
classrooms→ RF-SOC-001 (aulas virtuales)classroom_members→ RF-SOC-001teams,team_members→ RF-SOC-001 (equipos)friendships→ RF-SOC-001 (amistades)
6. audit_logging
Tablas:
audit_logs→ RF-AUD-001 (sistema auditoría)admin_audit_log→ RF-AUD-001security_alerts→ RF-AUD-001 (alertas)
7. content_management
Tablas:
media_files→ RF-CNT-001 (gestión media)content_versions→ RF-CNT-001 (versionado)
📂 Archivos Pendientes por Schema
Prioridad Alta (Core Functionality)
# auth_management (5 tablas)
apps/database/ddl/schemas/auth_management/tables/01-tenants.sql
apps/database/ddl/schemas/auth_management/tables/02-tenant_metadata.sql
apps/database/ddl/schemas/auth_management/tables/04-linked_providers.sql
apps/database/ddl/schemas/auth_management/tables/05-sessions.sql
apps/database/ddl/schemas/auth_management/tables/06-auth_tokens.sql
# gamification_system (8 tablas)
apps/database/ddl/schemas/gamification_system/tables/01-user_stats.sql
apps/database/ddl/schemas/gamification_system/tables/02-achievements.sql
apps/database/ddl/schemas/gamification_system/tables/03-user_achievements.sql
apps/database/ddl/schemas/gamification_system/tables/04-leaderboards.sql
apps/database/ddl/schemas/gamification_system/tables/05-ml_coins_transactions.sql
apps/database/ddl/schemas/gamification_system/tables/06-missions.sql
apps/database/ddl/schemas/gamification_system/tables/08-user_missions.sql
apps/database/ddl/schemas/gamification_system/tables/09-notifications.sql
# educational_content (3 tablas)
apps/database/ddl/schemas/educational_content/tables/01-modules.sql
apps/database/ddl/schemas/educational_content/tables/03-assessment_rubrics.sql
apps/database/ddl/schemas/educational_content/tables/04-media_resources.sql
# progress_tracking (5 tablas)
apps/database/ddl/schemas/progress_tracking/tables/01-module_progress.sql
apps/database/ddl/schemas/progress_tracking/tables/02-learning_sessions.sql
apps/database/ddl/schemas/progress_tracking/tables/03-exercise_attempts.sql
apps/database/ddl/schemas/progress_tracking/tables/04-exercise_submissions.sql
apps/database/ddl/schemas/progress_tracking/tables/05-scheduled_missions.sql
# social_features (6 tablas)
apps/database/ddl/schemas/social_features/tables/01-classrooms.sql
apps/database/ddl/schemas/social_features/tables/02-classroom_members.sql
apps/database/ddl/schemas/social_features/tables/03-teams.sql
apps/database/ddl/schemas/social_features/tables/04-team_members.sql
apps/database/ddl/schemas/social_features/tables/05-friendships.sql
apps/database/ddl/schemas/social_features/tables/06-user_activity.sql
# audit_logging (3 tablas)
apps/database/ddl/schemas/audit_logging/tables/01-audit_logs.sql
apps/database/ddl/schemas/audit_logging/tables/02-admin_audit_log.sql
apps/database/ddl/schemas/audit_logging/tables/03-security_alerts.sql
# content_management (2 tablas)
apps/database/ddl/schemas/content_management/tables/01-media_files.sql
apps/database/ddl/schemas/content_management/tables/02-content_versions.sql
🔄 Proceso para Agregar Referencias
1. Identificar la tabla
# Ejemplo
vim apps/database/ddl/schemas/gamification_system/tables/01-user_stats.sql
2. Leer el header existente
-- =====================================================
-- Table: gamification_system.user_stats
-- Description: Estadísticas de gamificación por usuario
-- Created: 2025-10-27
-- =====================================================
3. Agregar bloque de documentación
-- =====================================================
-- Table: gamification_system.user_stats
-- Description: Estadísticas de gamificación por usuario
-- Created: 2025-10-27
--
-- 📚 Documentación:
-- Requerimiento: docs/01-requerimientos/02-gamificacion/RF-GAM-001-achievements.md
-- Requerimiento: docs/01-requerimientos/02-gamificacion/RF-GAM-003-rangos-maya.md
-- Especificación: docs/02-especificaciones-tecnicas/02-gamificacion/ET-GAM-001-achievements.md
-- Especificación: docs/02-especificaciones-tecnicas/02-gamificacion/ET-GAM-003-rangos-maya.md
-- =====================================================
4. Verificar que las rutas existan
ls -la ../../docs/01-requerimientos/02-gamificacion/RF-GAM-001-achievements.md
ls -la ../../docs/02-especificaciones-tecnicas/02-gamificacion/ET-GAM-001-achievements.md
5. Commit con mensaje descriptivo
git add apps/database/ddl/schemas/gamification_system/tables/01-user_stats.sql
git commit -m "docs(ddl): Agregar referencias SIMCO en user_stats
- RF-GAM-001: Sistema de Achievements
- RF-GAM-003: Sistema de Rangos Maya
- ET-GAM-001: Implementación Achievements
- ET-GAM-003: Implementación Rangos Maya
Parte de Fase 3.2: Referencias en código DDL"
🎯 Próximos Pasos
Fase 3.2: DDL (restante)
- Completar 32 tablas restantes (~4-6 horas)
- Agregar referencias en funciones SQL (~2 horas)
- Agregar referencias en vistas (~1 hora)
Fase 3.3: Backend TypeScript
Agregar JSDoc con referencias:
/**
* Service para gestionar achievements de gamificación
*
* @see {@link RF-GAM-001} docs/01-requerimientos/02-gamificacion/RF-GAM-001-achievements.md
* @see {@link ET-GAM-001} docs/02-especificaciones-tecnicas/02-gamificacion/ET-GAM-001-achievements.md
*/
export class AchievementService {
// ...
}
Fase 3.4: Frontend React
Agregar JSDoc con referencias:
/**
* Componente para mostrar galería de achievements desbloqueados
*
* @see {@link RF-GAM-001} docs/01-requerimientos/02-gamificacion/RF-GAM-001-achievements.md
* @see {@link TEACHER-PORTAL-API} docs/02-especificaciones-tecnicas/apis/TEACHER-PORTAL-API.md#achievements
*/
export const AchievementGallery: React.FC<Props> = () => {
// ...
}
📊 Progreso Estimado
| Fase | Estado | Archivos | Tiempo Estimado |
|---|---|---|---|
| 3.1: ENUMs | ✅ Completado | 1 archivo (16 ENUMs) | 1 hora |
| 3.2: Tablas DDL | ⏳ 10% (4/46) | 42 archivos restantes | 5-7 horas |
| 3.3: Backend | ⏳ Pendiente | ~100 archivos | 8-10 horas |
| 3.4: Frontend | ⏳ Pendiente | ~80 archivos | 6-8 horas |
Total Fase 3: 20-26 horas de trabajo
✅ Validación
Para verificar que las referencias están correctas:
# Validar que todos los archivos referenciados existen
cd apps/database/ddl
grep -r "Requerimiento: docs/" . | while read line; do
file=$(echo "$line" | sed 's/.*Requerimiento: docs/docs/g' | sed 's/\.md.*/\.md/g')
if [ ! -f "../../$file" ]; then
echo "❌ FALTA: $file"
else
echo "✅ OK: $file"
fi
done
📚 Referencias
- Plan SIMCO Original:
docs/PROGRESO-PLAN-SIMCO-2025-11-07.md - Ejemplo completo:
apps/database/ddl/00-prerequisites.sql - Documentación SIMCO:
docs/_MAP.md
Última actualización: 2025-11-07 Autor: Database Team Estado: 🟡 En progreso (Fase 3.2)