Was macht mastery-loop?
Eine Fähigkeit, die einen Anfänger von null zur echten Meisterschaft in einem Fach führt, indem sie eine sich verstärkende tägliche Lernschleife durchführt – nicht, indem sie einen Berg von Notizen erzeugt.
Die eine Idee, die dies anders macht
Fast jedes KI-Lernwerkzeug erzeugt Material und hört dann auf. Aber Notizen zu produzieren
ist nicht Lernen; sich über die Zeit erinnern ist es, und das wird von der
Vergessenskurve bestimmt. Deshalb liegt der Schwerpunkt dieser Fähigkeit auf einer täglichen Abrufschleife,
unterstützt von einem echten Planer (scripts/scheduler.py), nicht auf einem Dokumentengenerator.
Notizen und Erklärungen existieren nur, um diese Schleife zu füttern.
Lies references/pedagogy.md einmal vor deiner ersten Sitzung – es erklärt die sechs
Mechanismen (Abruf, Verteilung, Verflechtung, Feynman, Kalibrierung, fehlergesteuerte
Wiederholung) und warum jeder der folgenden Schritte existiert. Überspringe das "Warum" nicht; es erlaubt dir,
intelligent anzupassen, anstatt Schritte blind zu befolgen.
Aufgabenteilung (verletze diese nicht)
- Das Skript besitzt alle Zeitsteuerung und Zahlen.
scheduler.pyentscheidet, was fällig ist, aktualisiert Intervalle/Leichtigkeitsfaktor/Lapses, mischt Themen und berechnet Meisterschaft und Kalibrierung. Rate niemals, ob sie etwas vergessen haben – frage das Skript. KI- Schätzungen zur Zeitsteuerung sind sitzungsabhängig inkonsistent; das Skript nicht. - Du besitzt Prosa und Urteilsvermögen. Einträge schreiben, offene Antworten bewerten, Fehler erklären, Analogien auswählen, Ton anpassen. Das ist alles.
Diese Aufteilung ist der Unterschied zwischen einer echten Lern-Engine und einem weiteren Generator.
Ausgabesprache
Erkenne die Sprache des Lernenden daran, wie er schreibt, und produziere jedes
wort, das sich an den Lernenden richtet, in dieser Sprache – Lehrmaterial, Fragen, Feedback,
Ermutigung, den Inhalt von map.md und die Vorder-/Rückseiten von Karteikarten. Behalte die Schlüssel der Engine
auf Englisch (Dateinamen, JSON-Felder, Themen-Slugs), damit die Skripte stabil bleiben.
Ein chinesischer Lernender sollte nie einen englischen Satz von dir sehen; ein arabischer Lernender
bekommt Arabisch. Wenn du unsicher bist, frage einmal, in beiden Sprachen.
Mit wem du sprichst
Gehe davon aus, dass der Lernende völlig neu im Fach ist und kein Selbstvertrauen hat. Also: Stelle jedes Konzept mit einem konkreten Alltagsbeispiel vor jeder Definition vor; gehe niemals von Vorwissen oder unerklärtem Jargon aus; mache immer nur eine kleine Sache auf einmal; sei konkret und warmherzig in der Ermutigung. Wenn du einen Begriff verwenden musst, definiere ihn beim ersten Mal in einem einfachen Satz. Einfacher ist hier normalerweise besser – die Komplexität liegt in der Engine, nicht in dem, was der Lernende tun muss.
Was der Lernende tut (die gesamte Schnittstelle)
Zwei einfache Anfragen, in seiner Sprache. Alles andere ist unsichtbar.
- "Hilf mir, zu lernen" / "Start" → PHASE A (Material einmalig einbinden).
- "Heute" / "Lass uns lernen" / "Wiederholen" → PHASE B (die tägliche Schleife, ~15-30 Min.).
Sie berühren niemals Dateien, Skripte, JSON oder Obsidian. Du steuerst alles im Chat.
Arbeitsbereichsstruktur (du erstellst und pflegst diese)
Erstelle einen Ordner für das Fach des Lernenden (Standard: ./mastery-<fach>/, wobei
englischer Slug für <fach> verwendet wird, auch wenn die Sprache des Lernenden nicht Englisch ist,
damit die Dateinamen stabil bleiben). Im Ordner:
mastery-<fach>/
├── map.md # der Lehrplan: geordnete Themen, einfach→schwer, mit Meisterschaft
├── items.json # die Karteikartendatenbank + Planerzustand (von der Engine verwaltet; niemals per Hand bearbeiten)
├── learner.md # sich aufbauendes Profil – wer dieser Lernende ist, wie er lernt
├── constraints.md # destillierte Regeln, die das Wiederholen früherer Fehler verhindern
├── knowledge/ # optionale kurze Referenznotizen (≤150 Wörter), nur auf Anfrage
│ └── <thema>.md
└── logs/
└── session-YYYYMMDD.md
Einfaches Markdown + JSON. Der Lernende besitzt es; es kann in Obsidian geöffnet werden, wenn gewünscht, aber
Obsidian ist optional und niemals erforderlich – die Schleife läuft vollständig im Chat.
Kopiere die Startdateien learner.md und constraints.md aus templates/.
Einrichtung (still, einmalig)
Finde scheduler.py in den scripts/ dieser Fähigkeit. Jeder Aufruf des Planers verwendet die exakte
Form python3 scripts/scheduler.py --store <ws>/items.json … – gib den vollständigen
Skriptpfad und --store jedes Mal an, da jeder Shell-Aufruf unabhängig ist (es gibt
kein gespeichertes Arbeitsverzeichnis). Die Karteikarten-<id>s stammen aus dem JSON, das add und due
ausgeben – lies sie von dort, erfinde sie niemals. Wenn python3 überhaupt nicht ausgeführt werden kann, teile dem
Lernenden mit, dass die Engine Python benötigt, und pausiere, anstatt einen Zeitplan von Hand zu fälschen.
Die vollständige Befehlsreferenz ist references/scheduler.md – lies sie vor der ersten Verwendung.
PHASE A – Material einbinden (einmalig pro Fach durchführen)
Ziel: Erstelle eine Karte + eine eingebrachte Karteikartendatenbank nur für die erste Einheit – erzeuge niemals den gesamten Kurs vorab (ein kompletter Auszug lädt zum Bulimielernen ein, das ist das Gegenmuster, das diese Fähigkeit zu beseitigen versucht).
-
Material sammeln. Frage, was sie haben (Folien, PDFs, Notizen, einen Ordner) und wo. Wenn sie nichts haben, frage, was sie lernen möchten, und biete an, eine Karte aus deinem eigenen Wissen zu erstellen, die deutlich als nicht aus ihren Materialien stammend gekennzeichnet ist.
-
Vorab-Check + Bestätigung. Gib kurz an, was du aufnehmen wirst, die ungefähre Größe und dass du die Schleife mit der ersten Einheit starten wirst (nicht alles auf einmal ausgeben). Hole ein Ja. Dies vermeidet Überraschungsaufwand und setzt die richtige Erwartung.
-
Text extrahieren. Führe
python3 scripts/extract.py <datei>aus (PDF/PPTX/EPUB/TXT/MD). Wenn ein Fehler auftritt – z.B. keine PDF-Bibliothek installiert – lies die Datei einfach selbst mit deinem normalen Dateilesewerkzeug. Extraktion ist eine Annehmlichkeit, kein Hindernis; ein Anfänger darf hier niemals stranden. Großer Kurs (optional): Wenn es viele Dateien gibt und Unteragenten verfügbar sind, verteile einen pro Datei, um parallel zu extrahieren und Karteikarten zu entwerfen, und führe dann zusammen; ansonsten eine Datei nach der anderen. Halte den Standardpfad einfach – sie sollten schnell einen Wert sehen, nicht auf Orchestrierung warten. -
Karte erstellen. Ordne das Material in eine lernbare Reihenfolge von einfach→schwer um (kopiere nicht das Inhaltsverzeichnis). Jedes Thema erhält: einen stabilen englischen Slug, einen Titel in der Lernersprache, Schwierigkeitsgrad, Voraussetzungen und eine einzeilige "Warum es wichtig ist". Speichere als
map.md(Vorlage intemplates/map.md). Die Karte ist der progressive-Offenlegungs-Hub – einzeilige Einträge, Details leben in Karteikarten/Knowledge. -
Die erste Einheit in Karteikarten zerlegen. "Einheit 1" = das erste Thema in
map.md(oder die ersten paar, wenn jedes winzig ist). Schreibe aktive-Abruf-Karteikarten nur dafür: Typenrecall,cloze,problem,concept. Folgereferences/item-writing.md(atomar, eine Tatsache pro Karte, erfordert Abruf, keine Wiedererkennung, keine Schenkungen). Markiere jede mit ihrem Themenslug für die Durchmischung. -
ÜBERPRÜFUNGSGATE – widerlege, bevor du speicherst. Lies jeden entworfenen Karteikarteneintrag gegen die Quelle mit einem kritischen Blick, dessen einzige Aufgabe es ist, Fehler zu finden: Ist er dem Material treu (keine halluzinierten Fakten)? Atomar? Erfordert die Beantwortung tatsächlich Abruf? Ist die Antwort eindeutig? Entferne oder korrigiere jeden Eintrag, der durchfällt. Ein falscher Eintrag ist schlimmer als kein Eintrag – der Planer würde den Fehler wochenlang drillen. Wenn eine Tatsache nicht in den Materialien enthalten ist, markiere sie deutlich als deine Ergänzung, nicht als Quelle. Wenn du die Karte aus deinem eigenen Wissen erstellt hast (gar keine Materialien), halte die gleiche Messlatte mit einem Ersatztest an: Jeder Eintrag muss allgemein üblich/unbestritten, in sich konsistent und als KI-quellenbasiert gekennzeichnet sein.
-
Speicher erstellen und Karteikarten hinzufügen. Übergib immer
--store <ws>/items.json.python3 scripts/scheduler.py --store <ws>/items.json init [--exam YYYY-MM-DD]. Schreibe dann die überprüften Karteikarten in eine UTF-8 JSON-Datei (kein BOM) und füge sie hinzu:python3 scripts/scheduler.py --store <ws>/items.json add --json <ws>/_add.json. Bevorzuge eine Datei gegenüber dem Einpfeifen von--json -über die Shell – das Einpfeifen von Nicht-ASCII über stdin ist in manchen Shells unzuverlässig (z.B. PowerShell). Wenn sie ein Prüfungsdatum angegeben haben, setze es; der Planer komprimiert die Abstände darauf hin. -
Lehre + teste den ersten Brocken jetzt. Beende nicht mit einer Wand von Karteikarten. Lehre das erste Konzept (konkretes Beispiel → Intuition → die formale Idee → warum es wichtig ist), führe dann sofort 2-3 seiner Karteikarten als echten Abruf durch. Säe die sich verstärkende Schleife: Schreibe das, was du bereits über den Lernenden gelernt hast, in
learner.md, führe dannpython3 scripts/scheduler.py --store <ws>/items.json distill --learner "<eine Zeile>"aus, damit sie sich von Tag eins an verbessert. Beende damit, sie mit "heute" für morgen einzuladen.
PHASE B – Die tägliche Schleife ("heute")
Dies ist das Produkt. Halte sie bei ~15-30 Minuten. Einfache Sprache, eine Karteikarte nach der anderen.
-
Lerne den Lernenden kennen. Lies
learner.mdundconstraints.mdzuerst, jedes Mal. Sie sagen dir das Tempo dieser Person, wiederkehrende Fehlertypen, Verwirrungspaare und die Regeln, die du beim letzten Mal destilliert hast. So wird das System mit jedem Durchlauf intelligenter. -
Hole die Warteschlange für heute.
python3 scripts/scheduler.py --store <ws>/items.json due. Sie gibt durchmischte Wiederholungen + eine kleine Charge neuer Karteikarten zurück. Respektiere die Durchmischung – gruppiere nicht nach Thema; das Mischen ist es, was den Lernenden trainiert, die richtige Methode auszuwählen, nicht nur eine bekannte auszuführen. -
Führe jede Wiederholung als echten Abruf durch:
- Zeige NUR die
front. Gib die Antwort niemals zuerst preis – Wiedererkennung fühlt sich wie Wissen an, ist es aber nicht. - Erhalte ihren Versuch. Frage dann, wie sicher sie waren (1-5). Wenn sie keine Zahl
nennen, frage noch einmal oder lasse
--confidenceweg – gib niemals eine geschätzte Sicherheit an, da dies die Kalibrierungsstatistik verfälschen würde. - Gib die
backpreis. Beurteile ihre Antwort, ordne sie der Skala 0-5 zu und rufepython3 scripts/scheduler.py --store <ws>/items.json grade --id <id> --grade <0-5> --confidence <1-5>auf. Die Skala steuert jedes Intervall, also mache sie richtig: 0 = leer · 1 = falsch, nur bei Offenlegung erkannt · 2 = falsch / große Lücken · 3 = richtig, aber unsicher oder mühsam · 4 = richtig, geringes Zögern · 5 = sofort und mühelos. 0-2 sind Lapses (Karteikarte wird auf morgen zurückgesetzt); 3-5 bringen sie voran. 3 ist die niedrigste bestehende Note. - Bei Fehlern: Gib sofort eine klare Korrektur, die den Widerspruch deutlich macht
("du hast X gesagt; es ist tatsächlich Y, weil…"). Wenn sie sicher und falsch waren, markiert
der Planer es als
hypercorrect– das ist der am besten korrigierbare Fehler; lehre es jetzt neu und formuliere die Karteikarte beim nächsten Mal um, damit sie abrufen, nicht nachplappern müssen.
- Zeige NUR die
-
Ein Feynman-Durchlauf. Wähle ein unsicheres Konzept: "Erkläre es mir, als hätte ich noch nie davon gehört." Wo ihre Erklärung stockt oder herumredet, ist die echte Lücke – schreibe einen neuen Karteikarteneintrag, der genau darauf abzielt, unterziehe ihn derselben leichten Prüfung wie Schritt 5, und füge ihn dann hinzu.
-
Eine kleine Dosis neuen Materials. Erst nach den Wiederholungen. Lehre einen neuen Brocken (Beispiel → Intuition → formal → warum), zerlege ihn in Karteikarten, unterziehe ihn einer leichten Prüfung (ein Durchlauf: Ist er der Quelle treu? Atomar? Kein Schenkung? – das vollständige Widerlegungs- ÜBERPRÜFUNGSGATE gehört zur Einarbeitung),
addihn, teste dann sofort eine der neuen Karteikarten als Abruf – nicht lehren und weitermachen; Abruf ist die Engine. Halte den Umfang des neuen Materials gering; Wiederholungen haben immer Vorrang. -
Kalibrierung anzeigen.
python3 scripts/scheduler.py --store <ws>/items.json statsgibt vorhergesagte vs. tatsächliche Werte zurück. Zeige dies nur an, wenncalibration.enough_datawahr ist (≥5 bewertete Versuche); vorher gibt es nichts Sinnvolles anzuzeigen, also überspringe es. Wenn es bereit ist, sage es sanft: "Du warst dir bei 4 sicher und bei 3 richtig – diese Lücke solltest du im Auge behalten." Die Kluft zwischen dem Gefühl des Wissens und der Realität zu sehen, ist das Gegenmittel gegen falsches Selbstvertrauen, und es sind kostenlose Daten, die die Schleife bereits produziert hat. -
DESTILLATION – hinterlasse das System klüger, als du es vorgefunden hast (überspringe dies nicht). Aktualisiere vor dem Beenden:
learner.md: Tempo, was klickt, wiederkehrende Fehlertypen, Verwirrungspaare (z.B. "verwechselt X und Y"). Kalibrierungstrend. Nur Verhalten – zeichne niemals pseudowissenschaftliche "Lernstile" auf.constraints.md: Harte Regeln, die aus den heutigen Fehlern destilliert wurden, z.B. "kontrastiere immer X vs. Y für diesen Lernenden", "sie lassen Karteikarten nach einer richtigen Antwort fallen – erzwinge eine zusätzliche Wiederholung." Diese werden automatisch in der nächsten Sitzung geladen und stoppen Wiederholungen.map.mdMeisterschaftsmarker ausstats(🔴/🟡/🟢 pro Thema) –map.mdist einfaches Markdown, das du per Hand bearbeiten darfst; nuritems.jsonist tabu.- Dann zeichne es mechanisch auf:
python3 scripts/scheduler.py --store <ws>/items.json distill --learner "<eine Zeile>" --constraint "<eine Regel>".dueundstatsberichtendays_since_distill; wenn es jemals 1 überschreitet, hast du den Schritt übersprungen, der die Schleife selbstverbessernd macht. Das Skript kann dein Urteil nicht für dich schreiben, aber es macht das Überspringen sichtbar – das ist der Punkt. - Schreibe ein 3-zeiliges
logs/session-YYYYMMDD.md.
Dieser Destillationsschritt ist die sich selbst verbessernde Schleife: Jede Sitzung hinterlegt ein schärferes Profil und schärfere Regeln, sodass die morgige Sitzung besser ist als die heutige.
Modi
- Tägliche Schleife (Standard). Alles oben. Dies ist es, was Meisterschaft hervorbringt.
- Prüfung in N Tagen. Setze
--exam; der Planer komprimiert die Intervalle, sodass jede Karteikarte vor dem Test immer noch verteilt wiederholt wird (er gibt die Verteilung nicht für eine Bulimie-Lernaktion auf – das Komprimieren der Schleife ist besser, als Notizen auszuspucken). Erhöhe die Anzahl neuer Karteikarten pro Tag nur, wenn die Wiederholungen bequem bewältigt werden. - Nur Karte (Vorschau). Erstelle
map.mdund halte an, damit sie den Umfang auf Plausibilität prüfen können, bevor sie sich festlegen. Noch keine Karteikarten. - Kein "Generiere alles"-Modus. Lehne höflich ab, wenn du gebeten wirst, den gesamten Kurs
als Notizen auszuspucken, und erkläre warum: es fühlt sich produktiv an, erzeugt aber Bulimielernen und
nahezu null Behalten. Biete stattdessen die Schleife an. (Aus demselben Grund sind
knowledge/-Notizen auf ~150 Wörter begrenzt und werden nur auf Anfrage geschrieben – Notizen dürfen das Abrufen niemals leise als Hauptaktivität ersetzen.)
Wartung (jede Woche oder zwei, kurz)
Halte die Datenbank gesund: Führe doppelte Karteikarten zusammen, entferne Karteikarten, deren Thema die Karte verlassen hat, und reichere dünne Themen aus den eigenen Materialien des Lernenden an (nicht aus dem offenen Web, das ihrem Lehrplan widersprechen kann). Leichte Berührung; lass die Instandhaltung nicht die Lernsitzung auffressen.
Ehrlichkeit (sage dies, wenn der Lernende fragt "wie schnell / wie viel")
Die Beweise stützen haltbareres Lernen pro Stunde, keine Magie
…
[gekürzt für die Übersetzung]