/teach-me — Generador de Cursos Basados en Evidencia
Produce un curso en Markdown a tu propio ritmo + un mini-curso HTML autónomo para cualquier tema que el usuario quiera aprender. Diseñado para aprendices adultos (nivel de lectura B1 del MCER, sin conocimientos previos), fundamentado en la psicología cognitiva y la investigación en diseño instruccional.
Cuándo Usarlo
- El usuario invoca
/teach-me <tema>(o sin argumento — pregunta por el tema) - El usuario dice "enséñame sobre X", "quiero aprender X", "profundiza en X", "crea un curso sobre X", "estudia X conmigo"
- Saltar para: preguntas factuales rápidas ("¿qué es X?" — solo responder), ayuda con código, depuración, consultas de documentación, preguntas sobre APIs de bibliotecas (usar
context7en su lugar)
Fundamentos de Pedagogía (leer antes de empezar)
Esta habilidad se basa en la ciencia del aprendizaje bien replicada. Las reglas a continuación no son valores predeterminados negociables — son lo que el usuario está pagando:
- Concreto antes de abstracto (Goldstone, Fyfe et al.). Cada capítulo comienza con una instancia concreta observable antes de cualquier definición abstracta.
- La práctica de recuperación supera a la relectura (Roediger & Karpicke; metaanálisis de Rowland 2014). Cada capítulo termina con 3–5 preguntas de recuerdo libre + 1 recordatorio entre capítulos.
- Exposición espaciada mediante recordatorios deliberados (Cepeda et al. 2006). Cada concepto importante se usa (no se redefine) en ≥2 capítulos posteriores.
- Ejemplos trabajados + desvanecimiento hacia atrás (Sweller, Renkl & Atkinson). Capítulos iniciales: ejemplos trabajados completos. Intermedios: pasos progresivamente en blanco. Finales: solo indicaciones.
- Teoría de la Carga Cognitiva (Sweller, Mayer). Máximo ~4 nuevos conceptos nombrados por capítulo. Una nueva dimensión de dificultad a la vez.
- Segmentación / tarjetas (Mayer & Pilegard). Los capítulos son mazos de tarjetas de 250–500 palabras, un concepto por tarjeta, un diagrama por tarjeta.
- Coherencia visual con diagramas primero (principios multimedia de Mayer). Diagramas obligatorios para conceptos relacionales. Sin imágenes decorativas. Etiquetas en línea sobre el diagrama, no en leyendas separadas.
- Higiene de analogías (mapeo de estructura de Gentner). Cada analogía va seguida dentro de 2 oraciones de un descargo de responsabilidad explícito "dónde esto falla".
- Puerta de jerga (investigación sobre puntos ciegos de expertos de Nathan/Koedinger). Cada término técnico definido en su primer uso O vinculado a una entrada del glosario de un capítulo anterior. Sin excepciones para términos "comunes".
- Indicaciones restringidas de autoexplicación (Chi et al.; Bisra et al. 2018 g≈0.55). Entre tarjetas: "Termina esta oración: X funciona porque ___" con respuesta modelo en un conmutador.
- Lenguaje claro para lectores B1. Oración media ≤18 palabras, máximo 25. ≤1 cláusula subordinada por oración. Pasiva ≤10%. Voz activa. Segunda persona. Sin modismos.
- Construir sobre lo que el aprendiz ya sabe (Ausubel). La entrevista previa captura los dominios conocidos del usuario; la guía de escritura los convierte en un banco de analogías.
- Mostrar cambios de estado; no narrarlos (Larkin & Simon 1987; Principio de Aprehensión de Tversky & Morrison 2002; Efecto de información transitoria de Wong/Leahy/Marcus/Sweller 2012; Múltiples pequeños de Tufte; Segmentación de Mayer). Cuando la prosa caminaría a través de estados sucesivos ("primero esto, luego esto, después del choque…"), usar en su lugar un
<div class="state-sequence">de 2 a 5 paneles. Misma forma en cada panel, delta anotado, título = desencadenante + invariante. El lector ve la evolución; no lee una historia sobre ella.
Desacreditado — nunca usar: estilos de aprendizaje (VAK), marco de las 10,000 horas, rachas/insignias de gamificación, imágenes decorativas para "compromiso", "cerebro derecho/cerebro izquierdo", "nativos digitales".
Flujo del Proceso
digraph teach_me {
rankdir=TB;
"Analizar invocación" [shape=box];
"¿Carpeta existente?" [shape=diamond];
"Ubicación de salida" [shape=box];
"Entrevista previa" [shape=box];
"Investigación (4 agentes paralelos)" [shape=box];
"Sintetizar + escribir OUTLINE.md" [shape=box];
"El usuario elige capítulos" [shape=box];
"Escribir WRITING_GUIDE.md" [shape=box];
"Generación de capítulos (lotes paralelos)" [shape=box];
"Pase de consistencia" [shape=box];
"Construir index.html" [shape=box];
"Abrir carpeta + navegador" [shape=doublecircle];
"Analizar invocación" -> "¿Carpeta existente?";
"¿Carpeta existente?" -> "Ubicación de salida" [label="no"];
"¿Carpeta existente?" -> "Ubicación de salida" [label="extender / empezar de nuevo / cancelar"];
"Ubicación de salida" -> "Entrevista previa";
"Entrevista previa" -> "Investigación (4 agentes paralelos)";
"Investigación (4 agentes paralelos)" -> "Sintetizar + escribir OUTLINE.md";
"Sintetizar + escribir OUTLINE.md" -> "El usuario elige capítulos";
"El usuario elige capítulos" -> "Escribir WRITING_GUIDE.md";
"Escribir WRITING_GUIDE.md" -> "Generación de capítulos (lotes paralelos)";
"Generación de capítulos (lotes paralelos)" -> "Pase de consistencia";
"Pase de consistencia" -> "Construir index.html";
"Construir index.html" -> "Abrir carpeta + navegador";
}
No omitas fases. Haz un seguimiento del progreso con TaskCreate para que el usuario sepa en qué punto estás.
Fase 0 — Analizar invocación
- Obtén el tema de los argumentos. Si no hay argumento, responde: "¿Qué tema quieres aprender? Puede ser técnico (una biblioteca, lenguaje, concepto) o no técnico (una filosofía, campo, habilidad)." y espera.
- Guardas de validación de tema:
- Si el tema es dañino (síntesis de armas, objetivos de hacking malicioso, actos ilegales) — rechaza brevemente y detente. Sin sermón.
- Si el tema es imposiblemente amplio (
programación,ciencia,todo) — pide al usuario que lo acote con 2–3 ejemplos concretos: "Eso es muy amplio. ¿Quieres limitarlo a algo como 'patrones de programación asíncrona en TypeScript' o '¿cómo funcionan los compiladores?'" Espera una respuesta más limitada. - Si el tema es vago pero manejable (
IA,bases de datos) — procede; la pregunta de alcance libre en la entrevista lo limitará más.
- Calcula el slug: minúsculas, reemplaza no alfanuméricos con
-, colapsa-repetidos, recorta. Ejemplo:Programación Asíncrona→programación-asíncrona.
Fase 1 — Verificar carpeta existente
- Lee la ubicación de salida de la memoria (ver Fase 2 para cómo se almacena). Si la memoria aún no tiene ubicación, pospón esta verificación hasta después de que la Fase 2 recoja la ubicación.
- Verifica si ya existe
<ubicación-de-salida>/aprender-<slug>/. - Si existe, presenta tres opciones mediante
AskUserQuestion:- Extender — añadir nuevos capítulos, regenerar capítulos específicos con nuevas notas de estilo, o refrescar la investigación y elegir de nuevo.
- Empezar de nuevo — renombrar la carpeta existente a
aprender-<slug>-archivado-AAAA-MM-DD/y proceder con un nuevo curso. - Cancelar — detener.
- Si es Extender: sub-opciones — (a) añadir capítulos sobre nuevos subtemas (saltar a investigación con OUTLINE.md anterior como contexto), (b) regenerar números de capítulos específicos con nuevas notas (saltar a la fase de escritura para esos capítulos), (c) refrescar investigación y re-elegir capítulos (re-ejecución completa con OUTLINE.md anterior fusionado).
- Nunca sobrescribas destructivamente un curso anterior.
Fase 2 — Ubicación de salida
- Busca en la memoria una entrada etiquetada con
teach-me-output-locationo similar. UsaGlobenC:/Users/AlemTuzlak/.claude/projects/F--projects/memory/*.mdyGrepparateach-me. - Si se encuentra y la ruta aún existe, úsala. Indica brevemente: "Escribiendo en
<ruta>.". - Si no se encuentra, pregunta mediante
AskUserQuestion:- Usar
F:/projects/learning/(crea la carpeta si falta) — Recomendado. - Usar el directorio de trabajo actual (
./). - Especificar una ruta diferente — el usuario la proporciona mediante "Otro".
- Usar
- Después de que el usuario responda, pregunta: "¿Guardar esto como tu ubicación predeterminada para futuras ejecuciones de
/teach-me?" — sí/no medianteAskUserQuestion. - Si es sí, escribe un archivo de memoria
teach_me_output_location.mdcon frontmattertype: usery la ruta en el cuerpo. ActualizaMEMORY.mdcon una línea. - Ahora reintenta la verificación de carpeta existente de la Fase 1 con la ubicación resuelta.
Fase 3 — Entrevista previa
Pregunta en dos viajes:
Viaje 1 — una sola AskUserQuestion con 4 preguntas estructuradas
P1 [Conocimiento actual]: ¿Cuánto sabes ya sobre <tema>?
- Nunca he oído hablar de ello
- Conozco la terminología, sin experiencia práctica
- He construido cosas básicas
- Practicante intermedio
P2 [Competencia objetivo]: ¿Dónde quieres terminar?
- Solo visión general conceptual
- Puedo construir cosas básicas
- Puedo construir cosas de grado de producción
- Puedo enseñar a otros
P3 [Presupuesto de profundidad]: ¿Cuánto quieres?
- Guía rápida (~3–5 capítulos)
- Estándar (~6–10 capítulos)
- Inmersión profunda (todo lo investigado, 10–15+ capítulos)
P4 [Carga de práctica]: ¿Cuánta práctica práctica?
- Ligera (centrada en lectura)
- Estándar (lectura + recuperación + ejercicio ocasional)
- Intensa (cada capítulo tiene ejemplos trabajados y ejercicios)
Viaje 2 — respuesta de un solo mensaje de texto plano
Envía este mensaje exacto (sustituye <tema>):
Dos cosas más antes de que empiece a investigar:
1. ¿Qué sabes ya bien? Enumera lenguajes, frameworks, campos, pasatiempos — cualquier cosa en la que hayas invertido tiempo seriamente (por ejemplo, "TypeScript, React, teoría musical, cocina, ajedrez"). Usaré estos como fuentes de analogía para anclar nuevos conceptos a lo que ya sabes.
2. ¿Algún ángulo específico dentro de , o debería cubrirlo de manera amplia? Di "sorpréndeme" para una cobertura completa.
Espera una sola respuesta que contenga ambas. Analiza de manera flexible — acepta listas separadas por comas, listas con viñetas o texto libre.
Persiste las respuestas en un struct de trabajo (las escribirás en OUTLINE.md y WRITING_GUIDE.md más tarde).
Fase 4 — Investigación (4 agentes paralelos)
Despacha una llamada Agent por lotes que contenga 4 subagentes de propósito general. Se ejecutan en paralelo. Cada uno recibe un briefing autónomo y reporta un informe estructurado.
Carril A — Contenido autorizado. Encuentra los mejores artículos, tutoriales, charlas de conferencias y documentos sobre <tema>. WebSearch + WebFetch los resultados de mayor señal. Devuelve 8–15 con una línea "por qué leerlo" para cada uno, etiquetados [artículo|tutorial|charla|documento].
Carril B — Influencers y practicantes de nicho. Encuentra personas específicas conocidas por <tema> — no celebridades tecnológicas, sino practicantes con sus propios blogs/boletines/Twitter que profundizan en este nicho. Devuelve 4–8 con: nombre, medio personal (URL del blog), URL de publicación emblemática, una línea sobre por qué vale la pena seguirlos. Salta a cualquiera cuya única producción sea marketing corporativo.
Carril C — Referencias canónicas. Documentación oficial, especificaciones, implementaciones de referencia, libros de texto definitivos. Si <tema> es una biblioteca/framework/herramienta CLI, usa el MCP context7 (resolve-library-id y luego query-docs) para obtener la documentación canónica actual. Devuelve 3–8 fuentes con información de versión.
Carril D — Panorama de subtemas y lenguaje canónico. Estudia el tema para producir un árbol de subtemas con descripciones de una línea (típicamente 8–15 subtemas). Sugiere un orden instruccional (prerrequisitos primero, avanzado al final). Si el tema es técnico, determina el lenguaje canónico utilizado por la documentación oficial / más común en producción (por ejemplo, Temporal → TypeScript o Go; LangGraph → Python). Indica explícitamente: "Lenguaje canónico: X, porque Y."
Cada agente reporta en menos de 800 palabras, estructurado. Después de que los 4 regresen, sintetiza.
Fase 5 — Esquema y selección de capítulos
- Escribe
<ubicación-de-salida>/aprender-<slug>/OUTLINE.mdcon esta estructura:
# Aprendiendo <Tema>
## Tu objetivo (registrado)
- **Nivel actual**: <respuesta de P1>
- **Competencia objetivo**: <respuesta de P2>
- **Profundidad**: <respuesta de P3>
- **Carga de práctica**: <respuesta de P4>
- **Dominios conocidos (banco de analogías)**: <separados por comas del Viaje 2>
- **Alcance/ángulo**: <respuesta del Viaje 2>
## Panorama de subtemas (de la investigación)
1. <subtema 1> — <descripción de una línea>
2. <subtema 2> — <descripción de una línea>
...
## Orden sugerido
Un orden que respete los prerrequisitos con la justificación de cada paso.
## Capítulos recomendados (~N, basados en tu presupuesto de profundidad)
Lista numerada de capítulos propuestos. Cada entrada: título corto + 1 línea sobre lo que se cubre + tarjetas estimadas (5–9 por capítulo).
## Lenguaje canónico (solo temas técnicos)
<lenguaje y justificación de una línea>
## Fuentes recomendadas
- [Fuente 1](url) — [tipo] — por qué leerlo
...
## Influencers de nicho que vale la pena seguir
- **Nombre** — [url del blog] — publicación emblemática: [url de la publicación] — una línea sobre por qué
...
- Abre automáticamente el archivo:
Bash code --new-window "<ruta-absoluta-a-OUTLINE.md>". - Responde al usuario con este mensaje exacto (sustituye apropiadamente):
He escrito el esquema en
<ruta-absoluta>y lo he abierto para ti.Responde con qué capítulos escribir:
all— escribe cada capítulo recomendado1,3,5-7— capítulos o rangos específicos- Texto libre — describe con tus propias palabras en qué centrarse
reshape— dime qué añadir, eliminar, fusionar o reordenar antes de comprometernosSi eliges
reshape, revisaré OUTLINE.md y preguntaré de nuevo.
- Si el usuario dice
reshape, toma sus notas, revisa OUTLINE.md, guarda, reabre, pregunta de nuevo. Repite hasta que se comprometa. - Analiza las selecciones en una lista final ordenada de capítulos
selecciones = [...].
Fase 6 — Escribir WRITING_GUIDE.md
Escribe <ubicación-de-salida>/aprender-<slug>/WRITING_GUIDE.md. Este archivo es el briefing compartido para todos los agentes escritores de capítulos y el agente de pase de consistencia. Debe ser completo y concreto.
Usa la plantilla en <directorio-habilidad>/assets/templates/WRITING_GUIDE.template.md como punto de partida — sustituye las respuestas de la entrevista del usuario en los placeholders ({{TOPIC}}, {{CURRENT_LEVEL}}, {{TARGET_PROFICIENCY}}, {{PRACTICE_LOAD}}, {{KNOWN_DOMAINS}}, {{SCOPE}}, {{CANONICAL_LANGUAGE}}).
También dirige a los escritores de capítulos a la referencia de la biblioteca de componentes en <directorio-habilidad>/assets/COMPONENTS.md — deben hojearla antes de escribir. Llamadas, tarjetas de diagrama, bloques de comparación, pestañas, tarjetas de estadísticas, píldoras de plataforma y listas de pasos están todos disponibles; algunos se generan automáticamente a partir de convenciones de Markdown, el resto son HTML explícito dentro de Markdown.
Verifica que el archivo generado aplique todas las 12 reglas de pedagogía enumeradas en la sección "Fundamentos de Pedagogía" al principio de este SKILL.md. Si alguna regla no está representada en la guía, añádela antes de continuar.
Fase 7 — Generación de capítulos (lotes paralelos)
Genera los capítulos seleccionados en lotes paralelos de 3–5 subagentes escritores por ronda, secuencialmente a través de las rondas.
Para cada ronda:
- Reúne el contexto: OUTLINE.md, WRITING_GUIDE.md, COMPONENTS.md.
- Envía un lote de subagentes, cada uno escribiendo un capítulo (archivo de Markdown separado).
- Cada subagente recibe: el capítulo anterior (si existe) para mantener coherencia, y una sección específica de WRITING_GUIDE.md con recordatorios de pedagogía.
- Después de que se complete el lote, recopila todos los archivos de capítulos.
- Para cada capítulo, ejecuta un pase de consistencia rápido: verifica que las reglas de pedagogía se apliquen, corrige cualquier problema.
- Repite para el siguiente lote hasta que todos los capítulos estén escritos.
Fase 8 — Pase de consistencia final
Ejecuta un pase de consistencia en todos los capítulos:
- Verifica referencias cruzadas entre capítulos.
- Asegura que todos los términos técnicos estén definidos o vinculados.
- Confirma que los diagramas estén presentes para conceptos relacionales.
- Verifica el cumplimiento de B1 (longitud de oración, voz activa, etc.).
- Corrige cualquier problema.
Fase 9 — Construir mini-curso HTML
- Construye
index.htmlen la carpeta de salida. Debe ser autónomo (sin dependencias externas) y contener todo el contenido del curso. - Usa las plantillas de
<directorio-habilidad>/assets/templates/index.html.template. - Asegura que el HTML tenga navegación, búsqueda y diseño responsivo.
- Abre el archivo en el navegador:
Bash start "" "<ruta-absoluta-a-index.html>". - Informa al usuario: "¡Tu curso está listo! Abriendo en el navegador."