Files
renato97 a3360ec6e4 feat: fase 2+3 — expansion masiva multi-perfil + bug fixes + hardening
Fase 2 (expansion):
- Francesca: +6 etapas matematicas (5-10), +7 etapas lectura (3-9), +2 ortografia
- Sebastian: +8 etapas matematicas (4-11), +6 lectura, +3 historia, +3 geografia, +1 banderas
- Nuevas paginas: ortografia, lectura, geografia, matematicas
- ~900 ejercicios nuevos, paridad ~500 por perfil

Fase 3 (bug fixes + hardening):
- Fix: SessionLog auto-create en grade route
- Fix: engine cache (no borrar antes de revisar)
- Fix: FSRS cards actualizadas en flujo curriculum
- Fix: responseMs real (no hardcodeado 3000)
- Fix: options dentro de content en sebastian etapa-1
- Fix: trazo-letra consonantes crash
- Security: execFileSync anti-command-injection en TTS
- DB: 18 cascade deletes + indices + unique constraints
- APIs debug: reset, state, seed
- Docker: espeak-ng + prisma + user/group
- E2E: 23 tests nuevos (curriculum-flow.spec.ts)
- Code review: tailwind colors, middleware dev mode, eslint config

Verificado: tsc exit 0, build exit 0, 61 E2E tests pass
2026-07-25 22:07:28 -03:00

23 KiB
Raw Permalink Blame History

FASE 2 — Plan Maestro: Sistema Multi-Perfil Escalonado

Objetivo: Sistema de aprendizaje con 3 perfiles de dificultad escalada (Isabella 4a, Francesca 6a, Sebastián 8a) basado en métodos europeos (Montessori, Borel-Maisonny, Decroly, Freinet). Meta: paridad de volumen (~500+ ejercicios por perfil).


0. Resumen Ejecutivo

Métrica Actual Meta Fase 2 Delta
Ejercicios Isabella 595 595 (sin cambios) 0
Ejercicios Francesca 58 ~520 +462
Ejercicios Sebastián 35 ~510 +475
Total nuevos ~937 ejercicios
Etapas nuevas 0 ~40 +40
Carpetas curriculum nuevas 0 ~8 +8

Filosofía pedagógica: progresión Montessori (concreto → abstracto) para matemática, Borel-Maisonny (gesto-fonema) para lectura inicial, Decroly (centros de interés) para comprensión, Freinet (expresión libre) para producción escrita en nivel avanzado.


1. Perfiles y Niveles

1.1 Isabella (4 años) — NIVEL FUNDACIONAL [SIN CAMBIOS]

Mantiene los ~595 ejercicios existentes. Sirve como base de referencia para Francesca y Sebastián.

Materia Método Etapas Ejercicios
lectura Borel-Maisonny 9 405
numeros Montessori sensorial 8 190

Habilidades terminales: lee sílabas y palabras de 2-3 sílabas, cuenta 1-20, suma/resta dentro de 10.


1.2 Francesca (6 años) — NIVEL INTERMEDIO [EXPANSIÓN MASIVA]

Pasa de 58 → ~520 ejercicios. Asume lectura inicial consolidada; se enfoca en operaciones multidígito, comprensión lectora y ortografía inicial.

Materia Método europeo Etapas Ejercicios Carpetas
matematicas Montessori operacional 9 ~260 curriculum/francesca/
lecturas Decroly (centros de interés) 7 ~200 curriculum/francesca-lectura/
ortografia Decroly + reglas 2 ~60 curriculum/francesca-ortografia/ (NUEVA)

Habilidades terminales: multiplica y divide números de 1-2 dígitos, comprende textos narrativos de 4-6 oraciones, aplica reglas ortográficas básicas (m-antes-de-p/b, mayúsculas).


1.3 Sebastián (8 años) — NIVEL AVANZADO [EXPANSIÓN MASIVA]

Pasa de 35 → ~510 ejercicios. Es el más avanzado: fracciones, decimales, comprensión profunda, expresión escrita, cultura general expandida.

Materia Método europeo Etapas Ejercicios Carpetas
matematicas Montessori + abstracto 10 ~220 curriculum/sebastian/
lectura Decroly + Freinet 6 ~160 curriculum/sebastian-lectura/ (NUEVA)
historia Decroly (centros de interés) 5 ~70 curriculum/sebastian-historia/
geografia Decroly 3 ~40 curriculum/sebastian-geografia/ (NUEVA)
banderas Memorización visual 2 ~20 curriculum/sebastian-banderas/

Habilidades terminales: opera con fracciones y decimales, resuelve problemas de varios pasos, redacta textos cortos, comprende textos narrativos complejos, conoce historia y geografía argentina.


2. Plan Detallado — FRANCESCA (6 años)

2.1 Matemáticas Montessori (curriculum/francesca/)

Etapas existentes (conservar, verificar prereqs)

  • Etapa 1 — Sumas 1 dígito (15 ej) ✓ existe
  • Etapa 2 — Sumas 2-3 dígitos (14 ej) ✓ existe
  • Etapa 3 — Restas 2-3 dígitos (14 ej) ✓ existe
  • Etapa 4 — Multiplicaciones + lecturas (17 ej) ✓ existe

Etapas NUEVAS

Etapa 5 — Tablas de multiplicar (2, 5, 10) — 30 ejercicios

  • Método: Montessori (tablas de Pythagore, cuentas doradas)
  • Habilidad: memorizar tablas del 2, 5, 10
  • Tipos: eleccion, conciencia
  • Contenido: fra5-tabla2-*, fra5-tabla5-*, fra5-tabla10-*
  • Prereq: fra4-mult-1-2

Etapa 6 — Tablas de multiplicar (3, 4, 6, 7, 8, 9) — 45 ejercicios

  • Método: Montessori (tabla perforada, material de cuentas)
  • Habilidad: completar todas las tablas
  • Tipos: eleccion, secuencia
  • Contenido: fra6-tabla3-* ... fra6-tabla9-*

Etapa 7 — Multiplicación de 2 dígitos × 1 dígito — 24 ejercicios

  • Método: Montessori (juego de sellos, descomposición decena-unidad)
  • Habilidad: 23 × 4, 56 × 7
  • Tipos: eleccion, problema
  • Contenido: fra7-mult-{a}-{b} con a ∈ [12,99], b ∈ [2,9]

Etapa 8 — Divisiones exactas (1 dígito) — 24 ejercicios

  • Método: Montessori (cuentas doradas, reparto equitativo)
  • Habilidad: 12 ÷ 3, 24 ÷ 6, 45 ÷ 5
  • Tipos: eleccion, problema
  • Contenido: fra8-div-{a}-{b}

Etapa 9 — Fracciones simples (1/2, 1/3, 1/4) — 25 ejercicios

  • Método: Montessori (círculos de fracciones rojos)
  • Habilidad: reconocer y comparar fracciones básicas
  • Tipos: conciencia, eleccion
  • Contenido: fra9-frac-{tipo}-{n}

Etapa 10 — Problemas con dinero y medidas — 30 ejercicios

  • Método: vida práctica Montessori
  • Habilidad: aplicar operaciones en contexto ($, cm, kg, L)
  • Tipos: problema, conciencia
  • Contenido: fra10-prob-{tipo}-{n}

Subtotal Francesca matemáticas: 238 ejercicios nuevos (9 etapas, ~260 total con existentes)


2.2 Lectura Decroly (curriculum/francesca-lectura/)

Etapas existentes (conservar)

  • Etapa 1 — Lecturas nivel 1 (8 ej) ✓ existe
  • Etapa 2 — Lecturas nivel 2 (5 ej) ✓ existe

Etapas NUEVAS (centros de interés Decroly)

Etapa 3 — Centro de interés: "La familia" — 30 ejercicios

  • Método: Decroly (centro de interés global)
  • Habilidad: comprensión lectora sobre tema familiar
  • Contenido: 10 textos cortos (3-4 oraciones) × 3 preguntas cada uno
  • Tipos: lectura
  • Ej: "La familia de Ana tiene 4 personas...", "El abuelo vive en..."

Etapa 4 — Centro de interés: "Los animales" — 30 ejercicios

  • 10 textos sobre animales (mamíferos, aves, peces, insectos)
  • 3 preguntas por texto (hecho, inferencia, vocabulario)

Etapa 5 — Centro de interés: "Las estaciones" — 30 ejercicios

  • 10 textos sobre primavera, verano, otoño, invierno
  • Vocabulario temporal, causa-efecto

Etapa 6 — Centro de interés: "La escuela y los amigos" — 30 ejercicios

  • 10 textos sobre rutina escolar, convivencia, reglas

Etapa 7 — Comprensión inferencial — 30 ejercicios

  • Método: Decroly (asociación global)
  • Habilidad: deducir información NO explícita
  • Contenido: 10 textos × 3 preguntas "¿Por qué...?", "¿Qué pasó antes...?"

Etapa 8 — Vocabulario y sinónimos — 25 ejercicios

  • Habilidad: enriquecer léxico, identificar sinónimos
  • Tipos: eleccion, emparejar

Etapa 9 — Secuencia narrativa — 20 ejercicios

  • Habilidad: ordenar eventos de un cuento
  • Tipos: secuencia, lectura

Subtotal Francesca lectura: 195 ejercicios nuevos (7 etapas, ~208 total con existentes)


2.3 Ortografía inicial (curriculum/francesca-ortografia/) — NUEVA

Etapa 1 — Mayúsculas y nombres propios — 30 ejercicios

  • Regla: mayúscula inicial de oración, nombres de personas/lugares
  • Tipos: eleccion, palabra

Etapa 2 — Regla "m antes de p y b" — 30 ejercicios

  • Regla: siempre "m" antes de p/b (campo, cambio, sombra)
  • Tipos: eleccion, palabra, emparejar

Subtotal Francesca ortografía: 60 ejercicios (2 etapas)


TOTAL FRANCESCA FASE 2: ~493 ejercicios nuevos + 58 existentes = 551 ejercicios


3. Plan Detallado — SEBASTIÁN (8 años)

3.1 Matemáticas Avanzadas (curriculum/sebastian/)

Etapas existentes (conservar)

  • Etapa 1 — Sumas 2-3 dígitos (5 ej) ✓ existe
  • Etapa 2 — Sumas interactivas (5 ej) ✓ existe
  • Etapa 3 — Desafíos de sumas (6 ej) ✓ existe

Etapas NUEVAS

Etapa 4 — Restas con préstamo (3 dígitos) — 25 ejercicios

  • Habilidad: restas con llevadas (300-147, 502-268)
  • Método: Montessori (juego de sellos con intercambio)
  • Tipos: eleccion, problema

Etapa 5 — Multiplicación de 2 dígitos × 2 dígitos — 25 ejercicios

  • Habilidad: 23 × 45, 67 × 12
  • Método: Montessori (cuadrícula, geometría)
  • Tipos: eleccion, problema

Etapa 6 — División larga (1 divisor) — 25 ejercicios

  • Habilidad: 144 ÷ 6, 256 ÷ 8, con resto
  • Método: Montessori (tubos de ensayo, divisiones)
  • Tipos: eleccion, problema

Etapa 7 — Fracciones: equivalencias y operaciones — 30 ejercicios

  • Habilidad: 1/2 = 2/4, sumar/restar fracciones mismo denominador
  • Método: Montessori (círculos rojos, equivalencias)
  • Tipos: conciencia, eleccion

Etapa 8 — Decimales — 25 ejercicios

  • Habilidad: leer, comparar, sumar decimales (0.5, 1.25, 2.7)
  • Método: material concreto (bloques base-10)
  • Tipos: conciencia, eleccion

Etapa 9 — Porcentajes — 20 ejercicios

  • Habilidad: 50%, 25%, 10% de una cantidad
  • Aplicación: descuentos, propinas
  • Tipos: eleccion, problema

Etapa 10 — Problemas de varios pasos — 30 ejercicios

  • Habilidad: problemas que requieren 2-3 operaciones
  • Ej: "Compré 3 lápices a $15 cada uno y pagué con $100. ¿Cuánto vuelto?"
  • Tipos: problema

Etapa 11 — Geometría básica — 20 ejercicios

  • Habilidad: perímetro de cuadrado/rectángulo, área básica
  • Tipos: conciencia, eleccion

Subtotal Sebastián matemáticas: 200 ejercicios nuevos (8 etapas, ~236 total con existentes)


3.2 Lectura y Expresión Freinet (curriculum/sebastian-lectura/) — NUEVA

Etapa 1 — Comprensión profunda de textos — 30 ejercicios

  • Habilidad: extraer idea principal, detalles, secuencia
  • 10 textos de 5-8 oraciones × 3 preguntas
  • Tipos: lectura

Etapa 2 — Inferencias y conclusiones — 30 ejercicios

  • Habilidad: deducir moralejas, motivaciones, causas
  • Tipos: lectura, eleccion

Etapa 3 — Textos informativos (Decroly) — 25 ejercicios

  • Habilidad: comprender textos expositivos
  • Temas: ciencia, historia, naturaleza
  • Tipos: lectura

Etapa 4 — Idea principal vs detalles — 25 ejercicios

  • Habilidad: distinguir idea central de soporte
  • Tipos: eleccion, lectura

Etapa 5 — Redacción guiada (Freinet) — 25 ejercicios

  • Habilidad: completar y ordenar párrafos (texto libre)
  • Tipos: secuencia, palabra

Etapa 6 — Correspondencia interescolar (Freinet) — 25 ejercicios

  • Habilidad: estructura de carta, saludos, despedidas
  • Tipos: eleccion, secuencia

Subtotal Sebastián lectura: 160 ejercicios nuevos (6 etapas)


3.3 Historia Argentina (curriculum/sebastian-historia/)

Etapas existentes (conservar)

  • Etapa 1 — Nivel 1 (6 ej) ✓ existe
  • Etapa 2 — Nivel 2 (4 ej) ✓ existe

Etapas NUEVAS

Etapa 3 — Independencia y primeras décadas — 15 ejercicios

  • Período: 1816-1853, Congreso de Tucumán, Constitución
  • Tipos: eleccion, secuencia

Etapa 4 — Inmigración y crecimiento (1853-1930) — 15 ejercicios

  • Período: Alberdi, Sarmiento, ferrocarril, inmigración europea
  • Tipos: eleccion

Etapa 5 — Símbolos patrios y fechas — 15 ejercicios

  • Habilidad: fechas patrias, símbolos (himno, escudo, escarapela)
  • Tipos: eleccion, emparejar

Subtotal Sebastián historia: 45 ejercicios nuevos (3 etapas, ~55 total con existentes)


3.4 Geografía Argentina (curriculum/sebastian-geografia/) — NUEVA

Etapa 1 — Regiones de Argentina — 15 ejercicios

  • Habilidad: identificar regiones (Pampa, Patagonia, Cuyo, NOA, NEA, Centro)
  • Tipos: eleccion, conciencia

Etapa 2 — Ríos, montañas y climas — 15 ejercicios

  • Habilidad: Cordillera de los Andes, Río de la Plata, Paraná
  • Tipos: eleccion

Etapa 3 — Capitales y provincias — 10 ejercicios

  • Habilidad: emparejar provincia con capital
  • Tipos: emparejar, eleccion

Subtotal Sebastián geografía: 40 ejercicios (3 etapas)


3.5 Banderas (curriculum/sebastian-banderas/)

Etapas existentes (conservar)

  • Etapa 1 — 8 provincias + escudo (9 ej) ✓ existe

Etapas NUEVAS

Etapa 2 — Provincias restantes — 15 ejercicios

  • Habilidad: las 16 provincias faltantes + CABA
  • Tipos: eleccion

Subtotal Sebastián banderas: 15 ejercicios nuevos (1 etapa, ~24 total con existentes)


TOTAL SEBASTIÁN FASE 2: ~460 ejercicios nuevos + 35 existentes = 495 ejercicios


4. Arquitectura Técnica

4.1 Estructura de carpetas (nuevas marcadas con )

curriculum/
├── lectura/                    # ISABELLA (existe)
├── numeros/                    # ISABELLA (existe)
├── francesca/                  # FRANCESCA matemáticas (etapa 1-4 existen, 5-10 ⭐)
├── francesca-lectura/          # FRANCESCA lectura (etapa 1-2 existen, 3-9 ⭐)
├── francesca-ortografia/       # ⭐ FRANCESCA ortografía (NUEVO)
├── sebastian/                  # SEBASTIAN matemáticas (etapa 1-3 existen, 4-11 ⭐)
├── sebastian-lectura/          # ⭐ SEBASTIAN lectura (NUEVO)
├── sebastian-historia/         # SEBASTIAN historia (etapa 1-2 existen, 3-5 ⭐)
├── sebastian-geografia/        # ⭐ SEBASTIAN geografía (NUEVO)
└── sebastian-banderas/         # SEBASTIAN banderas (etapa 1 existe, 2 ⭐)

4.2 Actualización del Engine (lib/curriculum/engine.ts)

const PROFILE_CURRICULA = {
  ISABELLA: {
    lectura: { folder: "lectura", stages: [1,2,3,4,5,6,7,8,9] },
    numeros: { folder: "numeros", stages: [1,2,3,4,5,6,7,8] },
  },
  FRANCESCA: {
    matematicas: { folder: "francesca", stages: [1,2,3,4,5,6,7,8,9,10] },     // +6 etapas
    lecturas: { folder: "francesca-lectura", stages: [1,2,3,4,5,6,7,8,9] },  // +7 etapas
    ortografia: { folder: "francesca-ortografia", stages: [1,2] },            // ⭐ NUEVO
  },
  SEBASTIAN: {
    matematicas: { folder: "sebastian", stages: [1,2,3,4,5,6,7,8,9,10,11] }, // +8 etapas
    lectura: { folder: "sebastian-lectura", stages: [1,2,3,4,5,6] },          // ⭐ NUEVO
    historia: { folder: "sebastian-historia", stages: [1,2,3,4,5] },          // +3 etapas
    geografia: { folder: "sebastian-geografia", stages: [1,2,3] },            // ⭐ NUEVO
    banderas: { folder: "sebastian-banderas", stages: [1,2] },                // +1 etapa
  },
}

4.3 Páginas y rutas nuevas

app/
├── francesca/
│   ├── page.tsx              # existe
│   ├── matematicas/page.tsx  # existe
│   ├── lecturas/page.tsx     # existe
│   └── ortografia/page.tsx   # ⭐ NUEVO
├── sebastian/
│   ├── page.tsx              # existe (actualizar actividades)
│   ├── sumas/page.tsx        # existe → renombrar a matematicas ⭐
│   ├── historia/page.tsx     # existe
│   ├── banderas/page.tsx     # existe
│   ├── lectura/page.tsx      # ⭐ NUEVO
│   └── geografia/page.tsx    # ⭐ NUEVO

4.4 Componentes a crear

  • app/francesca/ortografia/page.tsx — wrapper de ExerciseSession con topic="ortografia" profile="FRANCESCA"
  • app/sebastian/lectura/page.tsx — wrapper de ExerciseSession con topic="lectura" profile="SEBASTIAN"
  • app/sebastian/geografia/page.tsx — wrapper de ExerciseSession con topic="geografia" profile="SEBASTIAN"

No se requieren nuevos componentes de ejercicio — todos los tipos existentes (eleccion, lectura, problema, secuencia, conciencia, palabra, emparejar) cubren las necesidades.


5. Metodología por Etapa (mapeo métodos europeos)

5.1 Montessori (matemática)

Etapa Material Montessori Tipo de ejercicio
Conteo Cilindos rojos, torres rosa sensibilizacion
Suma/Resta Cuentas doradas, banco conciencia, problema
Multiplicación Tabla de Pythagore, sellos eleccion
División Tubos de ensayo, sellos eleccion, problema
Fracciones Círculos rojos metálicos conciencia
Decimales Bloques base-10 conciencia

Patrón: cada ejercicio incluye functionalContext con referencia al material concreto.

5.2 Borel-Maisonny (lectura inicial - solo Isabella)

Etapa Gesto Fonema
Vocales Mano abierta / cerrada a, e, i, o, u
Consonantes Mano en boca, pecho m, p, l, s, t, n, d, r

Patrón: audioText describe el gesto + sonido.

5.3 Decroly (comprensión - Francesca y Sebastián)

Centro de interés Etapa Contenido
La familia Francesca 3 Relaciones, roles
Los animales Francesca 4 Clasificación, hábitat
Las estaciones Francesca 5 Tiempo, clima
La escuela Francesca 6 Rutina, normas
Ciencia/Historia Sebastián 3 Textos expositivos

Patrón: textos cortos (3-8 oraciones) + preguntas de hecho/inferencia/vocabulario.

5.4 Freinet (expresión - Sebastián)

Habilidad Etapa Tipo
Texto libre Sebastián 5 Completar párrafos
Correspondencia Sebastián 6 Estructura de carta

Patrón: secuencia para ordenar ideas, palabra para completar.


6. Prerequisitos y Cadenas de Aprendizaje

6.1 Regla general

Cada etapa nueva sigue el patrón de cadena lineal ya establecido:

  • etapa-N[0] depende de etapa-(N-1)[last] (encadena con etapa anterior)
  • etapa-N[i>0] depende de etapa-N[i-1] (encadena dentro de la etapa)
  • Primer ejercicio de la materia: sin prerequisitos

6.2 Verificación crítica

PROHIBIDO: prerequisitos auto-referenciales (ex.id === ex.prerequisites[0]). Este fue un bug crítico detectado en Fase 1 que bloquea TODOS los ejercicios de una etapa.

Validación automática: crear test E2E que recorra cada etapa y verifique que ningún ejercicio tenga prerequisito a sí mismo o a IDs inexistentes.


7. Plan de Implementación por Fases

FASE 2.1 — Francesca Matemáticas (Prioridad: ALTA)

  • Archivos: curriculum/francesca/etapa-5.ts ... etapa-10.ts (6 archivos nuevos)
  • Ejercicios: ~178 nuevos
  • Carpeta engine: añadir etapas 5-10 a FRANCESCA.matematicas
  • Verificación: API devuelve ejercicios para cada etapa nueva

FASE 2.2 — Francesca Lectura (Prioridad: ALTA)

  • Archivos: curriculum/francesca-lectura/etapa-3.ts ... etapa-9.ts (7 archivos nuevos)
  • Ejercicios: ~195 nuevos
  • Verificación: API devuelve textos para cada centro de interés

FASE 2.3 — Francesca Ortografía (Prioridad: MEDIA)

  • Archivos: curriculum/francesca-ortografia/etapa-1.ts, etapa-2.ts (2 archivos)
  • Página nueva: app/francesca/ortografia/page.tsx
  • Ejercicios: 60 nuevos
  • Engine: añadir ortografia a FRANCESCA

FASE 2.4 — Sebastián Matemáticas (Prioridad: ALTA)

  • Archivos: curriculum/sebastian/etapa-4.ts ... etapa-11.ts (8 archivos nuevos)
  • Ejercicios: ~200 nuevos
  • Renombrar: app/sebastian/sumas/app/sebastian/matematicas/ (o crear alias)

FASE 2.5 — Sebastián Lectura (Prioridad: ALTA)

  • Archivos: curriculum/sebastian-lectura/etapa-1.ts ... etapa-6.ts (6 archivos)
  • Página nueva: app/sebastian/lectura/page.tsx
  • Ejercicios: 160 nuevos

FASE 2.6 — Sebastián Cultura General (Prioridad: MEDIA)

  • Historia: curriculum/sebastian-historia/etapa-3.ts ... etapa-5.ts (3 archivos, 45 ej)
  • Geografía: curriculum/sebastian-geografia/etapa-1.ts ... etapa-3.ts (3 archivos, 40 ej)
  • Banderas: curriculum/sebastian-banderas/etapa-2.ts (1 archivo, 15 ej)
  • Página nueva: app/sebastian/geografia/page.tsx

FASE 2.7 — Integración, Tests, Deploy (Prioridad: CRÍTICA)

  • Actualizar lib/curriculum/engine.ts con todas las etapas
  • Actualizar app/francesca/page.tsx (añadir botón ortografía)
  • Actualizar app/sebastian/page.tsx (añadir botones lectura, geografía)
  • E2E tests: verificar existencia de archivos, prereqs válidos, API responde
  • TypeScript compila
  • Build pasa
  • Push a Gitea

8. Métricas de Éxito

Criterio Meta Verificación
Ejercicios Francesca ≥ 500 Contar ejercicios en archivos + API
Ejercicios Sebastián ≥ 500 Contar ejercicios en archivos + API
Sin prereqs rotos 100% Test E2E recorre todas las etapas
API responde por perfil 100% curl a cada topic/profile devuelve exercise.id ≠ null
TypeScript compila 0 errores npx tsc --noEmit
E2E tests pasan 100% npx playwright test
Build pasa npm run build
Métodos europeos documentados 100% cada etapa tiene functionalContext con referencia al método

9. Riesgos y Mitigaciones

Riesgo Impacto Mitigación
Volumen muy alto para una sesión No termina Dividir en sub-fases 2.1-2.7, implementar incremental
Prereqs rotos (bug recurrente) Bloquea ejercicios Test E2E automático de validación de prereqs
Calidad de contenido desigual Experiencia pobre Plantillas estandarizadas por tipo de ejercicio
Textos de lectura muy largos para TTS Audio lento/cortado Limitar a 5-8 oraciones máximo
IDs duplicados entre etapas Conflicto en FSRS Prefijos únicos por etapa (fra5-, seb7-)

10. Apéndice: Plantillas de Ejercicio

Plantilla: Multiplicación Montessori

{
  id: `fra7-mult-${a}-${b}`,
  stage: 7,
  skillCode: `mult-2d-${a}x${b}`,
  type: 'eleccion',
  prerequisites: [`fra7-mult-${prev}`],
  content: {
    instruction: `Multiplicá: ${a} × ${b}`,
    audioText: `${a} por ${b}`,
    emoji: '✖️',
    options: [
      { label: String(a*b), correct: true, id: String(a*b) },
      { label: String(a*b + b), correct: false, id: 'w1' },
      { label: String(a*b - a), correct: false, id: 'w2' },
    ].sort(() => Math.random() - 0.5),
  },
  functionalContext: `Multiplicar con método Montessori: descomponer ${a} en decenas y unidades.`,
  errorType: 'confusion-letra',
}

Plantilla: Comprensión Decroly

{
  id: `fra3-familia-${i}`,
  stage: 3,
  skillCode: `lectura-familia-${i}`,
  type: 'lectura',
  prerequisites: [`fra3-familia-${i-1}`],
  content: {
    instruction: 'Leé el texto y respondé:',
    text: 'La familia de Ana tiene 4 personas. Mamá, papá, Ana y su hermano Tomás. Viven en una casa con jardín.',
    audioText: '<texto completo>',
    emoji: '👨‍👩‍👧‍👦',
    options: [
      { label: '4', correct: true, id: '4' },
      { label: '3', correct: false, id: '3' },
      { label: '5', correct: false, id: '5' },
    ],
  },
  functionalContext: 'Centro de interés Decroly: la familia.',
  errorType: 'omision-letra',
}

Plantilla: Problema de varios pasos (Sebastián)

{
  id: `seb10-prob-${i}`,
  stage: 10,
  skillCode: `problema-multistep-${i}`,
  type: 'problema',
  prerequisites: [`seb10-prob-${i-1}`],
  content: {
    instruction: 'Problema:',
    text: 'Compré 3 lápices a $15 cada uno y pagué con $100. ¿Cuánto vuelto recibí?',
    audioText: '<texto completo>',
    emoji: '✏️',
    options: [
      { label: '$55', correct: true, id: '55' },
      { label: '$45', correct: false, id: '45' },
      { label: '$85', correct: false, id: '85' },
    ],
  },
  functionalContext: 'Problema de varios pasos: calcular total y vuelto.',
  errorType: 'inversion-letra',
}

11. Estado: PENDIENTE DE IMPLEMENTACIÓN

Este plan está completo y aprobado conceptualmente. Falta:

  • Implementar Fase 2.1 (Francesca matemáticas)
  • Implementar Fase 2.2 (Francesca lectura)
  • Implementar Fase 2.3 (Francesca ortografía)
  • Implementar Fase 2.4 (Sebastián matemáticas)
  • Implementar Fase 2.5 (Sebastián lectura)
  • Implementar Fase 2.6 (Sebastián cultura general)
  • Implementar Fase 2.7 (Integración + tests + deploy)

Estimación: ~937 ejercicios nuevos repartidos en ~40 archivos nuevos. Cada archivo toma ~10-15 minutos de generación asistida.