Documento de Contexto Maestro: Tutor Socrático IMB
Gobernanza y Autoridad: Este documento es el nodo raíz (
MASTER-00) del grafo de especificaciones del proyecto Tutor Socrático IMB. Define la identidad, objetivos de negocio, arquitectura de alto nivel, restricciones no negociables y lineamientos de gobernanza para todo el ciclo de vida del sistema.
1. Identidad del Proyecto y Propósito
- Nombre del Sistema: Tutor Socrático IMB
- Cliente / Organización: IMB Institute (International Management and Business Institute S.A.C. — RUC 20614051320, Perú).
- Tipo de Solución: Asistente conversacional socrático embebido para capacitación corporativa B2B.
- Alcance Operativo: Sistema interno exclusivo (single-tenant para IMB Institute; no es un SaaS comercial).
- Plataforma del Piloto (MVP 0): 1 curso de certificación activo, cohorte de ~100 participantes profesionales, frontend Flutter Web responsive embebible, autenticación propia mediante JWT emitida por backend FastAPI.
- Visión a Largo Plazo (Fase M04+): Integración nativa con LMS Moodle (
formacion.imbinstitute.com) vía LTI/API y soporte multiplataforma para aplicación móvil nativa.
2. Problema de Negocio y Justificación
| ID | Problema Identificado | Impacto Medido / Justificación |
|---|---|---|
| P01 | Instructores no pueden brindar soporte 24/7 a profesionales en activo. | ~12 horas semanales por docente en consultas repetitivas fuera de horario no facturables. |
| P02 | Estudiantes recurren a ChatGPT/Claude, obteniendo respuestas directas que evitan el razonamiento. | Pérdida del valor formativo y pedagógico diferencial del método interactivo de IMB. |
| P03 | Falta de visibilidad sobre los conceptos con mayor fricción y el progreso real. | Dificultad para las áreas de RR.HH. y docentes de medir la asimilación conceptual y el ROI de capacitación. |
| P04 | Bloqueos cognitivos fuera de horario provocan frustración y deserción. | Caída en la tasa de finalización de cursos por falta de asistencia inmediata contextualizada al material. |
3. Actores del Sistema
- Estudiante Corporativo: Profesional en activo que interactúa con el tutor para resolver dudas, realizar sesiones socráticas de práctica guiada o solicitar ayuda directa sobre su curso.
- Instructor / Docente: Experto de IMB que gestiona el curso, revisa métricas agregadas de fricción conceptual y valida la calidad del material cargado.
- Administrador de Sistemas (IMB): Gestiona índices RAG, versionado de prompts, feature flags, auditoría y control de consumo de tokens.
- Sistema LMS Moodle: Aula virtual corporativa (integración planificada post-MVP; en MVP 0 el acceso se gestiona de forma autónoma con credenciales locales).
4. Pilares Pedagógicos y Modos de Interacción
A. Modos de Interacción del Tutor
flowchart TD
Inicio[Estudiante ingresa al Tutor] --> Selector{Selección de Modo}
Selector -->|Modo Práctica| Socratica[Sesión Socrática Guiada: 6–8 turnos de preguntas reflexivas]
Selector -->|Modo Consulta| AyudaDirecta[Ayuda Directa Adaptable: respuesta y explicación inmediata]
Socratica --> Evaluacion[Progreso Conceptual: Explorando → En Progreso → Dominado]
AyudaDirecta --> Resolucion[Desbloqueo Conceptual Inmediato]
- Modo Práctica Socrática (Aprendizaje Guiado):
- Diálogo progresivo de 6 a 8 turnos.
- El tutor realiza preguntas que guían al estudiante a descubrir la respuesta por sí mismo.
- Escalamiento de soporte: Pistas Nivel 1 (orientación conceptual) y Validación Nivel 2 (evaluación de razonamiento).
-
Regla Innegociable: NUNCA entregar la respuesta final directa durante este modo.
-
Modo Ayuda Directa Adaptable (Desbloqueo Inmediato):
- Orientado a dudas puntuales de conceptos no comprendidos.
- Proporciona una explicación concisa y pedagógica basada exclusivamente en los materiales indexados del curso.
5. Reglas de Oro Arquitectónicas (Innegociables)
- Control Pedagógico Socrático: El pipeline de generación bloquea activamente cualquier intento de bypass o prompt injection que solicite soluciones directas en modo socrático.
- Aislamiento Multi-Curso Estricto (
curso_idobligatorio): Toda consulta vectorial, recuperación RAG, sesión conversacional y métrica debe incluir y filtrar obligatoriamente por elcurso_idextraído del token JWT autenticado. - Presupuesto y Control OPEX:
- Límite estricto de 50,000 tokens diarios por usuario (input + output), gestionado en tiempo real en Redis.
- Costo operativo objetivo: ≤ S/ 10.00 por usuario/mes.
- Activación automática de mecanismos de mitigación (Plan B / Rate Limiting estricto) ante consumos anómalos (>80% del budget diario).
- Contrato de API Único:
docs/api/openapi.yamles la única fuente de verdad técnica de la API. Las especificacionesBE-XXyFE-XXreferencianoperationIdsin duplicar contratos. - Bus de Eventos Asíncrono Resiliente: Se implementa el patrón Transactional Outbox sobre PostgreSQL + cola en Redis y despacho desacoplado por worker cron. Prohibido el uso de buses volátiles en memoria para eventos de dominio.
- Privacidad y Protección de Datos (PII): Los datos personales se anonimizan y enmascaran en el servidor antes de invocar a los modelos LLM. Los registros de auditoría y logs se almacenan pseudonimizados.
- Versionado de Prompts como Código: Todo prompt del sistema se versiona en el directorio
/prompts/con metadata YAML y estructura XML delimitada para maximizar el prompt caching de Gemini.
6. Stack Tecnológico Fijado (Línea Base 2026)
# Backend & Persistencia
python = "3.13.14"
fastapi = "0.141.1"
sqlalchemy = "2.0.51"
alembic = "1.19.1"
postgresql = "16.x"
pgvector = "0.5.0" # Búsqueda vectorial HNSW (strict_order)
redis = "5.x" # Cache semántico, rate limiting y cola outbox
pydantic = "2.13.4"
opentelemetry-sdk = "1.44.0"
# Modelos de Inteligencia Artificial (SDK google-genai 2.17.x)
llm_default = "gemini-3.6-flash" # Producción / Generación conversacional
llm_reasoning = "gemini-2.5-pro" # Evaluación compleja y LLM-as-a-Judge
embeddings = "gemini-embedding-001" # Vectorización semántica (768 dimensiones)
# Frontend Multiplataforma
flutter = "3.47.0" # Web para MVP 0; Android/iOS en Fase M04
dart = "3.13.0"
riverpod = "3.4.x" # Gestión de estado reactivo
dio = "5.11.x" # Cliente HTTP con interceptores de auth y correlación
7. Arquitectura de Bounded Contexts (Clean Architecture + DDD)
El sistema se estructura en un Monolito Modular estructurado en capas (Domain, Application, Infrastructure, Adapters):
src/
├── conversation/ # Bounded Context: Ciclo de vida de sesiones socráticas, mensajes y progreso
├── knowledge/ # Bounded Context: Ingesta de materiales, indexación y recuperación RAG
├── identity/ # Bounded Context: Autenticación, roles, emisión y validación de JWT
├── administration/ # Bounded Context: Gestión de prompts, feature flags y logs de auditoría
├── monitoring/ # Bounded Context: Métricas de observabilidad, telemetría y OpenTelemetry
└── shared/ # Kernel compartido: Value objects, utilidades de fecha y jerarquía de excepciones
8. Gobernanza Documental y Grafo de Trazabilidad (DocuGraph)
El proyecto sigue una metodología de documentación atómica estructurada en DAG (Grafo Acíclico Dirigido) gestionada y validada mediante DocuGraph:
| Nivel / Fase | Documento / Identificador | Rol en el Grafo |
|---|---|---|
| Fase 0 (Raíz) | MASTER-00 (docs/00_MASTER_CONTEXT.md) |
Raíz del DAG: Contexto maestro, reglas de oro y decisiones transversales. |
| Fase 1 (Negocio) | VISION-00 (docs/00_BUSINESS_VISION.md) |
Visión de negocio, actores y justificación de retorno de inversión. |
| Fase 1 (Historias) | US-01 .. US-04 (docs/user_stories/) |
Historias de usuario atómicas con criterios de aceptación de negocio. |
| Fase 2 (Alcance) | SPEC-02 (docs/02_GLOBAL_SPEC.md) |
Alcance formal, exclusiones explícitas y criterios Go / No Go. |
| Fase 2 (Arquitectura) | ARCH-03 (docs/03_ARCHITECTURE.md) |
Definición de servicios, despliegue físico y límites de bounded contexts. |
| Fase 2.5 (UX/UI) | IX-01 .. IX-03 (docs/interaction/) |
Especificaciones de interacción, flujos de pantalla y transiciones. |
| Fase 3 (Contratos) | openapi.yaml (docs/api/) |
Contrato OpenAPI único y formal de endpoints. |
| Fase 3 (Backend) | BE-01 .. BE-10 (docs/backend/) |
Especificaciones atómicas de backend por operationId. |
| Fase 3 (Frontend) | FE-01 .. FE-04 (docs/frontend/) |
Especificaciones atómicas de componentes y flujos de UI en Flutter. |
| Fase 3 (Dominio) | SCHEMA-01, GLOSSARY-01 (docs/domain/) |
DDL relacional, índices vectoriales y glosario terminológico. |
| Backlog & Estado | MANIFEST-01 (docs/01_PROJECT_MANIFEST.md) |
Registro vivo del estado de tareas e iteraciones. |
9. Criterios de Calidad y Puertas de Aprobación (Gates)
- Gate 0 (Arquitectura y Especificación): Trazabilidad 100% validada en DocuGraph (
validate_traceabilitysin errores de asimetría o enlaces rotos). - Gate 1 (Implementación Backend): Cobertura de pruebas unitarias y de integración
pytest ≥ 80%en la capa de dominio, cumplimiento estricto de tipos conmypyy estilo limpio conruff. - Gate 2 (Pedagógico y Seguridad): Calificación
≥ 90%en el benchmark adversarial de control pedagógico ejecutado con LLM-as-a-Judge en staging. - Gate 3 (Frontend & UX): Aplicación Flutter Web responsive validada en breakpoints M3 (<600px, 600–840px, ≥840px), con feedback flotante accesible (WCAG 2.1 AA) y targets táctiles ≥ 56×56 px.