Especificación de Módulo: MOD-STUDY (Estudio, SRS y Matemáticas Puras)
Fase: 03 — Ingeniería de Requisitos
Entregable: 07 de 09 — Especificación Detallada de Módulos
Módulo ID: MOD-STUDY (12 de 15)
Bounded Context: SpacedLearning / Repetición Espaciada y Dominio Matemático
Ubicación de Almacenamiento: .notevault/estudio/ (srs.json) y notas de conocimiento en Matematicas/
Responsable Técnico: NoteVault Core Engineering
1. Alcance y Responsabilidades del Módulo
El módulo MOD-STUDY es el motor de aprendizaje acelerado y maestría cognitiva de NoteVault. Implementa el sistema de repetición espaciada (SRS) y gobierna la base canónica de conocimiento de Matemáticas Puras:
- Motor de Repetición Espaciada (SuperMemo SM-2 Modificado): Algoritmo de programación de intervalos basado en factor de facilidad (
EF >= 1.3), repeticiones consecutivas e intervalo en días (I_1 = 1,I_2 = 6,I_n = I_{n-1} * EF), evaluado mediante autocalificación de 0 a 5. - Tríada Canónica de Notas de Matemáticas Puras: Estándar obligatorio de 3 arquetipos interconectados según el temario oficial (
SYLLABUS_MATH.md): - Notas de Concepto (
c.XX.YY.md): Definición matemática rigurosa, intuición geométrica/algebraica, ejemplos canónicos, contraejemplos (non-examples) y conceptos precedentes obligatorios. - Notas de Teorema y Demostración (
t.XX.YY.md): Enunciado formal, intuición del paso clave, demostración paso a paso con justificación por renglón y corolarios directos. - Notas de Ejercicio Práctico (
e.XX.YY.md): Enunciado del problema, pistas graduadas ocultas (spoilers), solución detallada y análisis de trampas conceptuales frecuentes. - Protocolo de Práctica de Demostraciones (Proof Practice Protocol): Modo de examen activo donde el estudiante debe reconstruir la demostración sin ver la solución antes de calificar su retención.
- Auditoría de Integridad Automática: Integración con la herramienta
tools/check_kb_notes.pypara garantizar 0 problemas de formato, links rotos o metadatos ausentes en las notas de conocimiento. - Generación de Canvas de Estudio: Integración con
tools/kb_canvas.pypara proyectar el mapa del área matemática de forma automatizada.
2. Marco Conceptual: Entidad Tarjeta de Repaso SRS en el Dominio
3. Requisitos Funcionales del Módulo (RF)
| ID RF | Declaración del Requisito Funcional | Prioridad MoSCoW | Criterio de Verificación |
|---|---|---|---|
| RF-STU-01 | El sistema DEBE implementar el algoritmo SuperMemo SM-2 para calcular los intervalos de repaso basados en calificaciones de 0 (olvido total) a 5 (recuerdo perfecto). | Must Have | Vitest: Calificación 5 incrementa el intervalo y mantiene o sube el EF; calificación < 3 resetea repeticiones a 0. |
| RF-STU-02 | El sistema DEBE extraer diariamente todas las tarjetas cuya fecha de próximo repaso sea menor o igual a la fecha actual (due_date <= today). |
Must Have | La cola de repasos del día presenta el número exacto de ítems pendientes. |
| RF-STU-03 | El sistema DEBE validar que las notas de matemáticas cumplan rigurosamente la estructura canónica de frontmatter y secciones según SYLLABUS_MATH.md. |
Must Have | Script python tools/check_kb_notes.py "Matematicas" reporta 0 problem(s). |
| RF-STU-04 | El sistema DEBE ofrecer un modo de "Práctica Activa" que oculte la demostración o solución hasta que el usuario pulse "Revelar Demostración". | Must Have | Componente visual bloquea la respuesta y despliega botones de autoevaluación (0 a 5) tras revelarla. |
| RF-STU-05 | El sistema DEBE enlazar los repasos pendientes con el calendario de MOD-CALENDAR, mostrando la carga de tarjetas por día. |
Should Have | Las tarjetas debidas aparecen agrupadas en la casilla correspondiente del calendario. |
| RF-STU-06 | El sistema DEBE permitir generar el mapa conceptual del área matemática ejecutando python tools/kb_canvas.py sin intervención manual. |
Should Have | El canvas resultante no superpone nodos y contiene todas las aristas de dependencia de conceptos. |
| RF-STU-07 | El sistema DEBE registrar el tiempo dedicado por tarjeta para alimentar las métricas de enfoque del mentor. | Could Have | Cronómetro invisible mide los segundos transcurridos antes de pulsar la calificación. |
4. Requisitos No Funcionales del Módulo (RNF Local)
| ID RNF | Dimensión ISO 25010 | Declaración y Métrica Cuantitativa | Método de Medición |
|---|---|---|---|
| RNF-STU-01 | Eficiencia de Desempeño | Velocidad de Sesión de Repaso: El paso de una tarjeta a la siguiente tras calificar debe completarse en < 20 ms sin recarga visual apreciable. | Medición de latencia de renderizado con Vitest y Chrome Performance. |
| RNF-STU-02 | Confiabilidad | Factor de Facilidad Acotado: El factor de facilidad (EF) nunca debe decrecer por debajo de 1.3, garantizando estabilidad matemática del algoritmo. |
Test unitario sometiendo una tarjeta a 10 calificaciones consecutivas de 0. |
| RNF-STU-03 | Usabilidad | Soporte Completo de KaTeX: 100% de los símbolos matemáticos de álgebra lineal, cálculo y análisis real deben compilarse sin errores tipográficos. | Prueba de regresión sobre las notas de matemáticas existentes. |
| RNF-STU-04 | Portabilidad | Independencia de Plataforma: La cola de repaso debe funcionar con idéntica lógica de cálculo en la app móvil Flutter y en la versión de escritorio React. | Suite de pruebas compartida verificando vectores de prueba SM-2. |
5. Historias de Usuario con Criterios Gherkin
US-STU-01: Repaso activo de demostración matemática
Como estudiante preparándose para una olimpiada o examen de análisis matemático,
Quiero que el sistema me presente el enunciado del Teorema de Bolzano-Weierstrass con la demostración oculta,
Para intentar escribirla en mi libreta antes de verificar mi rigor y calificar mi memoria.
Escenario: Sesión de práctica de demostración
Dado que la nota "t.02.04_bolzano_weierstrass.md" está programada para repaso hoy
Cuando el usuario inicia la sesión de práctica
Entonces el sistema muestra el enunciado formal del teorema y el paso clave
Y mantiene la demostración formal oculta bajo el botón "Verificar Demostración"
Y cuando el usuario pulsa el botón, revela la prueba completa y activa los botones 0 a 5.
US-STU-02: Calificación y reprogramación de intervalo
Como estudiante que tuvo dificultades para recordar un paso técnico de una demostración,
Quiero calificar mi desempeño con un "2 (Repaso fallido pero recordé el concepto)",
Para que el algoritmo reprograme la tarjeta para mañana mismo sin avanzar el intervalo largo.
Escenario: Calificación menor a 3 resetea el intervalo
Dado que una tarjeta tenía un intervalo acumulado de 14 días y factor EF 2.5
Cuando el usuario selecciona la calificación "2"
Entonces el sistema reinicia las repeticiones consecutivas a 0
Y programa el próximo repaso para dentro de 1 día (mañana)
Y ajusta el factor EF a 2.34
Y guarda el cambio atómico en "srs.json".
6. Especificación Detallada de Casos de Uso
UC-STU-01: Ejecutar Sesión de Repaso Espaciado Activo
| Campo | Detalle de Especificación |
|---|---|
| ID y Nombre | UC-STU-01 — Ejecutar Sesión de Repaso Espaciado Activo |
| Actor Principal | Estudiante / Investigador |
| Precondición | Existen tarjetas en .notevault/estudio/srs.json con fecha due_date <= hoy. |
| Flujo Principal | 1. El usuario hace clic en "Iniciar Repaso del Día" (ej. "15 tarjetas pendientes"). 2. El sistema carga la primera tarjeta de la cola y presenta la nota asociada en modo práctica (ocultando secciones de solución o demostración). 3. El usuario lee el concepto o problema y elabora su respuesta mental o escrita. 4. Presiona la barra espaciadora o el botón "Revelar Solución". 5. El sistema despliega el cuerpo completo de la nota con fórmulas KaTeX renderizadas. 6. El usuario evalúa su respuesta y pulsa una tecla de calificación numérica del 0 al 5. 7. El sistema ejecuta el algoritmo SM-2: calcula nuevo EF, repeticiones consecutivas y nuevo intervalo en días.8. Actualiza la fecha de próximo repaso ( due_date = hoy + intervalo).9. Persiste el cambio atómico en .notevault/estudio/srs.json.10. Si quedan tarjetas en la cola, avanza instantáneamente a la siguiente tarjeta (paso 2); de lo contrario, presenta la pantalla de felicitación y resumen de la sesión. |
| Flujos Alternativos | A1 (Tarjeta nueva nunca antes repasada): El sistema asigna interval = 1, repetitions = 1 y EF = 2.5 como punto de partida estándar. |
| Excepciones | E1 (Nota borrada en disco): Si la tarjeta apunta a una nota que fue eliminada del sistema de archivos, el sistema notifica "Nota no encontrada", archiva la tarjeta huérfana en un log de limpieza y salta a la siguiente tarjeta sin interrumpir la sesión. |
| Postcondición | El archivo srs.json almacena las nuevas fechas de revisión y el contador de pendientes del día se reduce. |
7. Diagrama de Actividad del Módulo
flowchart TD
A[Iniciar Sesión de Repaso SRS] --> B[Filtrar Tarjetas Due <= Hoy en srs.json]
B --> C{¿Hay tarjetas pendientes?}
C -->|No| D[Mostrar Pantalla de Felicitación: Cola al Día]
C -->|Sí| E[Cargar Primera Tarjeta de la Cola]
E --> F[Renderizar Vista de Práctica: Solución Oculta]
F --> G[Esperar que el Usuario Piense la Respuesta]
G --> H[Click en Revelar / Espacio]
H --> I[Mostrar Demostración Completa con KaTeX]
I --> J[Habilitar Botones de Autoevaluación 0 a 5]
J --> K[Usuario Selecciona Calificación q]
K --> L{¿q >= 3?}
L -->|Sí: Recordado| M[Calcular Intervalo SM-2: I_n = I_{n-1} * EF]
L -->|No: Olvidado| N[Resetear Repeticiones = 0, Intervalo = 1 día]
M --> O[Actualizar EF = EF + 0.1 - (5-q)*(0.08 + (5-q)*0.02)]
N --> O
O --> P[Garantizar EF >= 1.3]
P --> Q[Calcular Nueva Fecha Due = Hoy + Intervalo]
Q --> R[Actualizar Registro en srs.json]
R --> S[Escritura Atómica en Disco]
S --> B
8. Implicación de Compuerta de Fase (Gate 3 Criteria)
- ¿Bloquea el avance a Modelado/Fase 4?: No.
- Condición de Pase: El motor SM-2 está formalmente verificado con pruebas unitarias de regresión matemática, y la estructura de notas de matemáticas satisface al 100% el validador
tools/check_kb_notes.py.