Communitygithub.com

AlemTuzlak/skills

Utilícelo cuando el usuario quiera aprender un tema nuevo desde cero en profundidad. Realiza una entrevista previa, investiga en línea y produce un curso estructurado en Markdown con diagramas visuales y funciones basadas en la ciencia del aprendizaje, así como un mini-curso HTML interactivo.

¿Qué es skills?

Esta habilidad está diseñada para ayudar a los usuarios a aprender cualquier tema desde cero, desde conceptos técnicos hasta áreas no técnicas, mediante un enfoque pedagógico sólido y basado en la ciencia del aprendizaje. El proceso comienza con una entrevista previa que captura el conocimiento actual del usuario, su nivel de competencia deseado, la profundidad del curso y la carga de práctica. Luego, lanza cuatro agentes de investigación en paralelo para recopilar contenido autorizado, referencias canónicas, voces de nicho e influencers, y un panorama de subtemas. Los resultados se sintetizan en un esquema (OUTLINE.md) que el usuario puede personalizar, seguido de la generación de capítulos en lotes paralelos, respetando estrictamente doce reglas pedagógicas como la práctica de recuperación, ejemplos trabajados con desvanecimiento, carga cognitiva segmentada, puertas de jerga, higiene de analogías y secuencias de estado visuales en lugar de narrativa textual. Finalmente, se construye un mini-curso HTML autónomo con todo el contenido, y se abre en el navegador del usuario para un aprendizaje inmediato. Es compatible con plataformas como Claude Code, Cursor y otros asistentes de IA, y se activa con comandos como /teach-me o frases como 'teach me about X'.

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/AlemTuzlak/skills/tree/HEAD/skills/teach-me

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

/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 context7 en 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:

  1. Concreto antes de abstracto (Goldstone, Fyfe et al.). Cada capítulo comienza con una instancia concreta observable antes de cualquier definición abstracta.
  2. 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.
  3. Exposición espaciada mediante recordatorios deliberados (Cepeda et al. 2006). Cada concepto importante se usa (no se redefine) en ≥2 capítulos posteriores.
  4. Ejemplos trabajados + desvanecimiento hacia atrás (Sweller, Renkl & Atkinson). Capítulos iniciales: ejemplos trabajados completos. Intermedios: pasos progresivamente en blanco. Finales: solo indicaciones.
  5. 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.
  6. Segmentación / tarjetas (Mayer & Pilegard). Los capítulos son mazos de tarjetas de 250–500 palabras, un concepto por tarjeta, un diagrama por tarjeta.
  7. 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.
  8. 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".
  9. 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".
  10. 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.
  11. 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.
  12. 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.
  13. 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

  1. 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.
  2. 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.
  3. 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

  1. 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.
  2. Verifica si ya existe <ubicación-de-salida>/aprender-<slug>/.
  3. 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.
  4. 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).
  5. Nunca sobrescribas destructivamente un curso anterior.

Fase 2 — Ubicación de salida

  1. Busca en la memoria una entrada etiquetada con teach-me-output-location o similar. Usa Glob en C:/Users/AlemTuzlak/.claude/projects/F--projects/memory/*.md y Grep para teach-me.
  2. Si se encuentra y la ruta aún existe, úsala. Indica brevemente: "Escribiendo en <ruta>.".
  3. 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".
  4. Después de que el usuario responda, pregunta: "¿Guardar esto como tu ubicación predeterminada para futuras ejecuciones de /teach-me?" — sí/no mediante AskUserQuestion.
  5. Si es sí, escribe un archivo de memoria teach_me_output_location.md con frontmatter type: user y la ruta en el cuerpo. Actualiza MEMORY.md con una línea.
  6. 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

  1. Escribe <ubicación-de-salida>/aprender-<slug>/OUTLINE.md con 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é
...
  1. Abre automáticamente el archivo: Bash code --new-window "<ruta-absoluta-a-OUTLINE.md>".
  2. 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 recomendado
  • 1,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 comprometernos

Si eliges reshape, revisaré OUTLINE.md y preguntaré de nuevo.

  1. Si el usuario dice reshape, toma sus notas, revisa OUTLINE.md, guarda, reabre, pregunta de nuevo. Repite hasta que se comprometa.
  2. 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:

  1. Reúne el contexto: OUTLINE.md, WRITING_GUIDE.md, COMPONENTS.md.
  2. Envía un lote de subagentes, cada uno escribiendo un capítulo (archivo de Markdown separado).
  3. 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.
  4. Después de que se complete el lote, recopila todos los archivos de capítulos.
  5. Para cada capítulo, ejecuta un pase de consistencia rápido: verifica que las reglas de pedagogía se apliquen, corrige cualquier problema.
  6. 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

  1. Construye index.html en la carpeta de salida. Debe ser autónomo (sin dependencias externas) y contener todo el contenido del curso.
  2. Usa las plantillas de <directorio-habilidad>/assets/templates/index.html.template.
  3. Asegura que el HTML tenga navegación, búsqueda y diseño responsivo.
  4. Abre el archivo en el navegador: Bash start "" "<ruta-absoluta-a-index.html>".
  5. Informa al usuario: "¡Tu curso está listo! Abriendo en el navegador."

Individual skills in this repo

This repo contains 14 individual skills — each has its own dedicated page.

AlemTuzlak/skills

Use when the user wants to write a blog post about a feature, product change, PR, git diff, or any technical topic - accepts marketing briefs, PRs, git refs, codebase paths, or freeform descriptions as input

AlemTuzlak/skills

Use when the user wants to generate a changelog, release notes, or document what changed between versions, tags, or PRs

AlemTuzlak/skills

Use when writing, editing, or organizing documentation, when planning what docs a feature needs, and whenever planning or implementing a new feature or change in a repo (docs ship with the code). Also use when tempted to write docs without showing the discovered readers to the user, without asking for tone, or without loading simple-english and i-have-adhd. Triggers on "write docs for X", "document this feature", "add a guide", "update the docs", "reorganize the docs", "plan feature X", "implement X", or /docs.

AlemTuzlak/skills

Use when a bug is in play: a test fails, CI is red, an API returns the wrong result, a stack trace appears, or the user says it is broken or fix this. Don't use for a new feature with no failure, for types-only work, or for docs.

AlemTuzlak/skills

Use when the user invokes /i-have-adhd, says they have ADHD, or asks for ADHD-friendly output. Also used as a required writing filter by the docs skill. Don't use for marketing copy or after the user says "stop adhd mode" or "normal mode".

AlemTuzlak/skills

Use when a settled change must be turned into an ordered stack of small blocks before anyone implements. Don't use for unsettled intent, typos, comments, formatting, docs-only work, or writing the implementation itself.

AlemTuzlak/skills

Use when the user wants to write a product update email, feature announcement newsletter, or digest email for users or subscribers

AlemTuzlak/skills

Use when the user wants to turn a raw talking-head / screen-share recording into a finished, edited, annotated video plus a full content package. Removes silences, flags mistakes for the user to cut, transcribes, adds transcript-synced overlays (code, on-screen code highlights, word highlights, lists, comparisons, diagrams, section labels, punch-in zooms), renders with original audio, then generates blog/socials/YouTube content. Triggers on "produce a video", "edit my video", "annotate my recording", "/produce-video".

AlemTuzlak/skills

Use when the user runs /prove-it or says prove it, prove the changes, show me in the browser, or asks to prove a UI or API change. Don't use only because the agent is about to say done, for types-only work, or for docs with no behavior to prove.

AlemTuzlak/skills

Use when the user wants to write, draft, or author an RFC (Request for Comments) / technical design doc for a feature, change, or architectural decision. Interactively interviews the user, grounds the proposal in the actual codebase, presents 2-3 concrete API/code-snippet approaches to choose from, then writes a review-ready RFC. Triggers on "write an RFC", "draft an RFC", "RFC for X", "design doc for X", or /rfc.

AlemTuzlak/skills

Use when the change intent is already settled and the agent must map what a behavior change touches before an implementation plan or any code. Use for new features, bug fixes, and refactors that move a boundary. Don't use for typos, comments, formatting, lockfile-only diffs, docs with no code, or while the user is still deciding what they want.

AlemTuzlak/skills

Use when the user wants to transcribe a video or audio file to text with word-level timestamps — spins up a self-contained local Whisper (whisper.cpp) Docker service bundled in this skill and returns transcript.txt, transcript.srt, and word-level transcript.words.json. Also used as a building block by /produce-video. Triggers on "transcribe this video", "get a transcript", "transcribe-video".

AlemTuzlak/skills

Use when the user wants to write a video script for a product demo, feature walkthrough, launch video, or social media video about a feature or product change

AlemTuzlak/skills

Use when the user wants YouTube metadata for a video — a click-worthy title, an SEO/above-the-fold description, tags, and timestamped chapters. Accepts a transcript (ideally timestamped SRT), a topic, a PR, or a freeform description. Used standalone and by /produce-video. Triggers on "youtube title", "youtube description", "youtube chapters", "youtube tags", "youtube metadata", "youtube-copy".

Skills relacionados