/teach-me — Evidenzbasierter Kursgenerator
Erstelle einen selbstbestimmten Markdown-Kurs + ein eigenständiges HTML-Mini-Kurs zu jedem Thema, das der Benutzer lernen möchte. Entwickelt für erwachsene Lernende (CEFR B1-Leseniveau, keine Vorkenntnisse), fundiert auf kognitiver Psychologie und instruktionsdesignbezogener Forschung.
Wann verwenden
- Benutzer ruft
/teach-me <Thema>auf (oder ohne Argument – nach dem Thema fragen) - Benutzer sagt "lehre mich über X", "ich möchte X lernen", "tauche tief in X ein", "erstelle einen Kurs zu X", "lerne X mit mir"
- Überspringen für: schnelle Faktenfragen ("was ist X" – einfach antworten), Code-Hilfe, Debugging, Dokumentationsabfragen, Bibliotheks-API-Fragen (stattdessen
context7verwenden)
Pädagogische Grundlage (vor Beginn der Arbeit lesen)
Dieses Skill basiert auf gut replizierter Lernwissenschaft. Die folgenden Regeln sind keine verhandelbaren Standardeinstellungen – sie sind das, wofür der Benutzer bezahlt:
- Konkret vor abstrakt (Goldstone, Fyfe et al.). Jedes Kapitel beginnt mit einem konkreten, beobachtbaren Beispiel vor jeder abstrakten Definition.
- Abrufübung schlägt Wiederholung (Roediger & Karpicke; Rowland 2014 Metaanalyse). Jedes Kapitel endet mit 3–5 Abrufimpulsen + 1 kapitelübergreifendem Rückruf.
- Verteiltes Lernen durch bewusste Rückrufe (Cepeda et al. 2006). Jedes Hauptkonzept wird in ≥2 späteren Kapiteln verwendet (nicht neu definiert).
- Ausgearbeitete Beispiele + rückwärtsgerichtetes Ausblenden (Sweller, Renkl & Atkinson). Frühe Kapitel: vollständige ausgearbeitete Beispiele. Mittlere: schrittweise ausgeblendete Schritte. Späte: nur Impulse.
- Theorie der kognitiven Belastung (Sweller, Mayer). Maximal ~4 neue benannte Konzepte pro Kapitel. Jeweils eine neue Schwierigkeitsdimension.
- Segmentierung / Karten (Mayer & Pilegard). Kapitel bestehen aus Decks mit 250–500-Wort-Karten, ein Konzept pro Karte, ein Diagramm pro Karte.
- Diagramm-zuerst visuelle Kohärenz (Mayer Multimedia-Prinzipien). Obligatorische Diagramme für relationale Konzepte. Keine dekorativen Bilder. Beschriftungen inline im Diagramm, nicht in separaten Legenden.
- Analogie-Hygiene (Gentner Struktur-Mapping). Jeder Analogie folgt innerhalb von 2 Sätzen ein expliziter Hinweis "wo dies scheitert".
- Jargon-Filter (Nathan/Koedinger Experten-Blind-Fleck-Forschung). Jeder technische Begriff wird bei erster Verwendung definiert ODER mit einem Glossareintrag aus einem früheren Kapitel verlinkt. Keine Ausnahmen für "gebräuchliche" Begriffe.
- Begrenzte Selbsterklärungsimpulse (Chi et al.; Bisra et al. 2018 g≈0.55). Zwischen Karten: "Vervollständige diesen Satz: X funktioniert, weil ___" mit Musterantwort in einem Umschalter.
- Einfache Sprache für B1-Leser. Mittlere Satzlänge ≤18 Wörter, max. 25. ≤1 Nebensatz pro Satz. Passiv ≤10%. Aktivstimme. Zweite Person. Keine Redewendungen.
- Aufbau auf dem, was der Lernende bereits weiß (Ausubel). Das Vorab-Interview erfasst die bekannten Bereiche des Benutzers; der Schreibleitfaden macht daraus eine Analogie-Bank.
- Zustandsänderungen zeigen; sie nicht erzählen (Larkin & Simon 1987; Tversky & Morrison 2002 Apprehension Principle; Wong/Leahy/Marcus/Sweller 2012 transient-information effect; Tufte small multiples; Mayer's segmenting). Wenn Prosa durch aufeinanderfolgende Zustände führen würde ("zuerst dies, dann das, nach dem Absturz..."), stattdessen ein 2–5-teiliges
<div class="state-sequence">verwenden. Gleiche Form in jedem Panel, Delta annotiert, Bildunterschrift = Auslöser + Invariante. Der Leser sieht die Entwicklung; er liest keine Geschichte darüber.
Widerlegt – niemals verwenden: Lernstile (VAK), 10.000-Stunden-Rahmen, Gamification-Stränge/Abzeichen, dekorative Bilder für "Engagement", "rechte Gehirnhälfte/linke Gehirnhälfte", "digitale Ureinwohner".
Prozessablauf
digraph teach_me {
rankdir=TB;
"Aufruf parsen" [shape=box];
"Vorhandener Ordner?" [shape=diamond];
"Ausgabeort" [shape=box];
"Vorab-Interview" [shape=box];
"Recherche (4 parallele Agenten)" [shape=box];
"Synthetisieren + OUTLINE.md schreiben" [shape=box];
"Benutzer wählt Kapitel" [shape=box];
"WRITING_GUIDE.md schreiben" [shape=box];
"Kapitelgenerierung (parallele Batches)" [shape=box];
"Konsistenzdurchlauf" [shape=box];
"index.html erstellen" [shape=box];
"Ordner + Browser öffnen" [shape=doublecircle];
"Aufruf parsen" -> "Vorhandener Ordner?";
"Vorhandener Ordner?" -> "Ausgabeort" [label="nein"];
"Vorhandener Ordner?" -> "Ausgabeort" [label="erweitern / neu / abbrechen"];
"Ausgabeort" -> "Vorab-Interview";
"Vorab-Interview" -> "Recherche (4 parallele Agenten)";
"Recherche (4 parallele Agenten)" -> "Synthetisieren + OUTLINE.md schreiben";
"Synthetisieren + OUTLINE.md schreiben" -> "Benutzer wählt Kapitel";
"Benutzer wählt Kapitel" -> "WRITING_GUIDE.md schreiben";
"WRITING_GUIDE.md schreiben" -> "Kapitelgenerierung (parallele Batches)";
"Kapitelgenerierung (parallele Batches)" -> "Konsistenzdurchlauf";
"Konsistenzdurchlauf" -> "index.html erstellen";
"index.html erstellen" -> "Ordner + Browser öffnen";
}
Phasen nicht überspringen. Fortschritt mit TaskCreate verfolgen, damit der Benutzer sieht, wo du bist.
Phase 0 — Aufruf parsen
- Das Thema aus den Argumenten holen. Wenn kein Argument vorhanden, antworten: "Welches Thema möchtest du lernen? Es kann technisch (eine Bibliothek, Sprache, Konzept) oder nicht-technisch (eine Philosophie, ein Fachgebiet, eine Fähigkeit) sein." und warten.
- Themenvalidierungsprüfungen:
- Wenn das Thema schädlich ist (Waffensynthese, böswillige Hacking-Ziele, illegale Handlungen) – kurz ablehnen und stoppen. Keine Vorlesung.
- Wenn das Thema unmöglich breit ist (
Programmierung,Wissenschaft,alles) – den Benutzer bitten, mit 2–3 konkreten Beispielen einzugrenzen: "Das ist sehr breit. Möchtest du es auf etwas wie 'asynchrone Programmiermuster in TypeScript' oder 'wie Compiler funktionieren' eingrenzen?" Auf eine engere Antwort warten. - Wenn das Thema vage, aber behandelbar ist (
KI,Datenbanken) – fortfahren; die offene Frage zum Umfang im Interview wird es weiter eingrenzen.
- Slug berechnen: Kleinschreibung, Nicht-Alphanumerisches durch
-ersetzen, wiederholte-zusammenziehen, trimmen. Beispiel:Asynchronous Programming→asynchronous-programming.
Phase 1 — Prüfung auf vorhandenen Ordner
- Ausgabeort aus dem Speicher lesen (siehe Phase 2 für die Speicherung). Wenn im Speicher noch kein Ort vorhanden, diese Prüfung verschieben, bis Phase 2 den Ort gesammelt hat.
- Prüfen, ob
<Ausgabeort>/lernen-<Slug>/bereits existiert. - Wenn vorhanden, drei Optionen via
AskUserQuestionpräsentieren:- Erweitern — neue Kapitel hinzufügen, bestimmte Kapitel mit neuen Stilnotizen neu generieren oder Recherche aktualisieren und neu auswählen.
- Neu beginnen — vorhandenen Ordner in
lernen-<Slug>-archiviert-JJJJ-MM-TT/umbenennen und mit einem neuen Kurs fortfahren. - Abbrechen — stoppen.
- Wenn Erweitern: Unteroptionen — (a) Kapitel zu neuen Unterthemen hinzufügen (mit vorheriger OUTLINE.md als Kontext zur Recherche springen), (b) bestimmte Kapitelnummern mit neuen Notizen neu generieren (für diese Kapitel zur Schreibphase springen), (c) Recherche aktualisieren und Kapitel neu auswählen (vollständige Wiederholung mit vorheriger OUTLINE.md integriert).
- Niemals zerstörerisch einen vorherigen Kurs überschreiben.
Phase 2 — Ausgabeort
- Im Speicher nach einem Eintrag mit dem Tag
teach-me-output-locationoder ähnlich suchen.GlobaufC:/Users/AlemTuzlak/.claude/projects/F--projects/memory/*.mdundGrepnachteach-meverwenden. - Wenn gefunden und der Pfad noch existiert, verwenden. Kurz mitteilen: "Schreibe nach
<Pfad>." - Wenn nicht gefunden, via
AskUserQuestionfragen:F:/projects/learning/verwenden (erstellt den Ordner, falls nicht vorhanden) — Empfohlen.- Das aktuelle Arbeitsverzeichnis verwenden (
./). - Einen anderen Pfad angeben — Benutzer gibt via "Andere" an.
- Nach der Antwort des Benutzers fragen: "Soll dieser Pfad als Standardort für zukünftige
/teach-me-Aufrufe gespeichert werden?" — ja/nein viaAskUserQuestion. - Wenn ja, eine Speicherdatei
teach_me_output_location.mdmit Frontmattertype: userund dem Pfad im Textkörper schreiben.MEMORY.mdmit einer Zeile aktualisieren. - Nun die Prüfung auf vorhandenen Ordner aus Phase 1 mit dem ermittelten Ort wiederholen.
Phase 3 — Vorab-Interview
In zwei Runden fragen:
Runde 1 — Einzige AskUserQuestion mit 4 strukturierten Fragen
F1 [Aktuelles Wissen]: Wie viel weißt du bereits über <Thema>?
- Noch nie davon gehört
- Kenne die Terminologie, keine praktische Erfahrung
- Habe grundlegende Dinge gebaut
- Fortgeschrittener Praktiker
F2 [Angestrebtes Niveau]: Wo möchtest du am Ende sein?
- Nur konzeptioneller Überblick
- Kann grundlegende Dinge bauen
- Kann produktionsreife Dinge bauen
- Kann andere unterrichten
F3 [Tiefenbudget]: Wie viel möchtest du?
- Kurze Einführung (~3–5 Kapitel)
- Standard (~6–10 Kapitel)
- Tiefer Einstieg (alles recherchiert, 10–15+ Kapitel)
F4 [Übungsumfang]: Wie viel praktische Übung?
- Leicht (leseorientiert)
- Standard (lesen + Abruf + gelegentliche Übung)
- Schwer (jedes Kapitel hat ausgearbeitete Beispiele und Übungen)
Runde 2 — Einzige Antwort als Klartextnachricht
Diese genaue Nachricht senden (<Thema> ersetzen):
Zwei weitere Dinge, bevor ich mit der Recherche beginne:
1. Was kennst du bereits gut? Liste Sprachen, Frameworks, Felder, Hobbys – alles, womit du dich ernsthaft beschäftigt hast (z.B. "TypeScript, React, Musiktheorie, Kochen, Schach"). Ich werde diese als Analogiquellen verwenden, um neue Konzepte an dein vorhandenes Wissen anzuknüpfen.
2. Gibt es eine bestimmte Perspektive auf , oder soll ich es breit abdecken? Sage "überrasche mich" für vollständige Abdeckung.
Auf eine einzige Antwort mit beidem warten. Locker parsen – kommagetrennte Listen, Aufzählungen oder Freitext akzeptieren.
Die Antworten in einer Arbeitsstruktur speichern (später in OUTLINE.md und WRITING_GUIDE.md schreiben).
Phase 4 — Recherche (4 parallele Agenten)
Einen gebündelten Agent-Aufruf mit 4 general-purpose-Unteragenten ausführen. Sie laufen parallel. Jeder erhält eine eigenständige Kurzbeschreibung und meldet einen strukturierten Bericht zurück.
Track A — Maßgebliche Quellen. Top-Artikel, Tutorials, Konferenzvorträge und Paper zu <Thema> finden. WebSearch + WebFetch der signalstärksten Ergebnisse. 8–15 mit einzeiligem "Warum-lesen" für jeden zurückgeben, getaggt mit [Artikel|Tutorial|Vortrag|Paper].
Track B — Nischen-Influencer und Praktiker. Bestimmte Personen finden, die für <Thema> bekannt sind – nicht Tech-Prominente, sondern Praktiker mit eigenen Blogs/Newslettern/Twitter, die tief in diese Nische eintauchen. 4–8 zurückgeben mit: Name, persönlicher Kanal (Blog-URL), Signatur-Beitrag-URL, einzeiligem Grund, warum es sich lohnt, ihnen zu folgen. Alle überspringen, deren einzige Veröffentlichung Unternehmensmarketing ist.
Track C — Kanonische Referenzen. Offizielle Dokumentationen, Spezifikationen, Referenzimplementierungen, maßgebliche Lehrbücher. Wenn <Thema> eine Bibliothek/ein Framework/ein CLI-Tool ist, context7 MCP (resolve-library-id dann query-docs) verwenden, um aktuelle kanonische Dokumentationen zu erhalten. 3–8 Quellen mit Versionsinformationen zurückgeben.
Track D — Unterthemenlandschaft und kanonische Sprache. Das Thema überblicken, um einen Baum von Unterthemen mit einzeiligen Beschreibungen zu erstellen (typischerweise 8–15 Unterthemen). Eine didaktische Reihenfolge vorschlagen (Vorkenntnisse zuerst, Fortgeschrittenes zuletzt). Wenn das Thema technisch ist, die kanonische Sprache ermitteln, die von offiziellen Dokumentationen / am häufigsten in der Produktion verwendet wird (z.B. Temporal → TypeScript oder Go; LangGraph → Python). Explizit angeben: "Kanonische Sprache: X, weil Y."
Jeder Agent berichtet unter 800 Wörtern, strukturiert. Nachdem alle 4 zurückgekehrt sind, synthetisieren.
Phase 5 — Gliederung und Kapitelauswahl
<Ausgabeort>/lernen-<Slug>/OUTLINE.mdmit dieser Struktur schreiben:
# <Thema> lernen
## Dein Ziel (aufgezeichnet)
- **Aktuelles Niveau**: <Antwort von F1>
- **Angestrebtes Niveau**: <Antwort von F2>
- **Tiefe**: <Antwort von F3>
- **Übungsumfang**: <Antwort von F4>
- **Bekannte Bereiche (Analogibank)**: <kommagetrennt aus Runde 2>
- **Umfang/Perspektive**: <Antwort aus Runde 2>
## Unterthemenlandschaft (aus Recherche)
1. <Unterthema 1> — <einzeilige Beschreibung>
2. <Unterthema 2> — <einzeilige Beschreibung>
...
## Vorgeschlagene Reihenfolge
Eine auf Vorkenntnisse Rücksicht nehmende Reihenfolge mit Begründung für jeden Schritt.
## Empfohlene Kapitel (~N, basierend auf deinem Tiefenbudget)
Nummerierte Liste vorgeschlagener Kapitel. Jeder Eintrag: Kurztitel + 1 Zeile zum Inhalt + geschätzte Karten (5–9 pro Kapitel).
## Kanonische Sprache (nur bei technischen Themen)
<Sprache und einzeilige Begründung>
## Empfohlene Quellen
- [Quelle 1](url) — [Typ] — Warum-lesen
...
## Nischen-Influencer, denen zu folgen sich lohnt
- **Name** — [Blog-URL] — Signatur-Beitrag: [Beitrags-URL] — einzeiliger Grund, warum
...
- Datei automatisch öffnen:
Bash code --new-window "<absoluter-Pfad-zu-OUTLINE.md>". - Dem Benutzer mit dieser genauen Nachricht antworten (entsprechend ersetzen):
Ich habe die Gliederung nach
<absoluter-Pfad>geschrieben und für dich geöffnet.Antworte mit, welche Kapitel geschrieben werden sollen:
all— jedes empfohlene Kapitel schreiben1,3,5-7— bestimmte Kapitel oder Bereiche- Freitext — in eigenen Worten beschreiben, worauf der Fokus liegen soll
reshape— mir sagen, was hinzugefügt, entfernt, zusammengeführt oder neu geordnet werden soll, bevor wir zusagenWenn du
reshapewählst, überarbeite ich OUTLINE.md und frage erneut.
- Wenn der Benutzer
reshapesagt, Notizen aufnehmen, OUTLINE.md überarbeiten, speichern, erneut öffnen, erneut fragen. Schleife, bis zugesagt. - Auswahl in eine endgültige geordnete Kapitelliste parsen:
picks = [...].
Phase 6 — WRITING_GUIDE.md schreiben
<Ausgabeort>/lernen-<Slug>/WRITING_GUIDE.md schreiben. Diese Datei ist die gemeinsame Kurzbeschreibung für alle kapitelschreibenden Agenten und den Konsistenzdurchlauf-Agenten. Sie muss umfassend und konkret sein.
Die Vorlage unter <Skill-Verzeichnis>/assets/templates/WRITING_GUIDE.template.md als Ausgangspunkt verwenden – die aufgezeichneten Interviewantworten des Benutzers in die Platzhalter einsetzen ({{TOPIC}}, {{CURRENT_LEVEL}}, {{TARGET_PROFICIENCY}}, {{PRACTICE_LOAD}}, {{KNOWN_DOMAINS}}, {{SCOPE}}, {{CANONICAL_LANGUAGE}}).
Kapitelschreiber auch auf die Komponentenbibliotheksreferenz unter <Skill-Verzeichnis>/assets/COMPONENTS.md hinweisen – sie sollten sie vor dem Schreiben überfliegen. Hervorhebungen, Diagrammkarten, Vergleichsblöcke, Tabs, Statistik-Karten, Plattform-Pills und Schrittlisten sind alle verfügbar; einige werden automatisch aus Markdown-Konventionen generiert, der Rest ist explizites HTML innerhalb von Markdown.
Überprüfen, ob die generierte Datei alle 12 pädagogischen Regeln aus dem Abschnitt "Pädagogische Grundlage" oben in dieser SKILL.md durchsetzt. Wenn eine Regel im Leitfaden nicht vertreten ist, vor dem Fortfahren hinzufügen.
Phase 7 — Kapitelgenerierung (parallele Batches)
Die ausgewählten Kapitel in parallelen Batches von 3–5 schreibenden Unteragenten pro Runde, sequentiell über die Runden hinweg, generieren.
Für jede Runde:
- …
[gekürzt für Übersetzung]