CommunitySchreiben & Editierengithub.com

all666666all/mastery-loop

Verwandle jedes Lernmaterial in eine auf verteilter Wiederholung basierende Meisterschaftsschleife: KI-generierte aktive Abrufübungen plus ein echter FSRS-Planer, als portable Claude/Codex/Cowork-Fertigkeit.

Was ist mastery-loop?

Diese Fertigkeit verwandelt jedes Lernmaterial in eine tägliche, sich selbst verstärkende Meisterschaftsschleife, die auf echtem, zeitlich gestaffeltem Abruf basiert – nicht auf dem Anhäufen von Notizen. Im Kern steht ein `scheduler.py`-Skript, das den FSRS-Algorithmus (Free Spaced Repetition Scheduler) nutzt, um Wiederholungsintervalle, Aufwandsbewertungen und die Durchmischung von Themen präzise zu steuern, während der Sprachassistent sich auf das Verfassen von Abrufübungen, die Bewertung offener Antworten und die Anpassung des Tons konzentriert. Die Fertigkeit erstellt automatisch einen strukturierten Lernbereich (Karte, Aufgabenkartei, Lernendenprofil) und unterstützt den gesamten Workflow vollständig im Chat – Obsidian ist optional. Sie erkennt die Sprache des Lernenden und kommuniziert durchgängig in dieser Sprache, vom Unterricht bis zum Feedback, wobei die Engineschlüssel aus Stabilitätsgründen auf Englisch bleiben. Der Ansatz ist ideal für Entwickler, die eine portable, KI-gesteuerte Lösung für tiefes Lernen suchen – getestet mit Claude, Codex und Cowork – und die eine echte Engine zur Bekämpfung der Vergessenskurve anstelle von passiver Inhaltsgenerierung benötigen.

Funktioniert mit✓Claude Code✓Codex CLI~Cursor
npx skills add all666666all/mastery-loop

Installed? Explore more Schreiben & Editieren skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

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.py entscheidet, 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.

  1. "Hilf mir, zu lernen" / "Start" → PHASE A (Material einmalig einbinden).
  2. "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).

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

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

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

  4. 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 in templates/map.md). Die Karte ist der progressive-Offenlegungs-Hub – einzeilige Einträge, Details leben in Karteikarten/Knowledge.

  5. 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: Typen recall, cloze, problem, concept. Folge references/item-writing.md (atomar, eine Tatsache pro Karte, erfordert Abruf, keine Wiedererkennung, keine Schenkungen). Markiere jede mit ihrem Themenslug für die Durchmischung.

  6. Ü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.

  7. 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.

  8. 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 dann python3 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.

  1. Lerne den Lernenden kennen. Lies learner.md und constraints.md zuerst, 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.

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

  3. 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 --confidence weg – gib niemals eine geschätzte Sicherheit an, da dies die Kalibrierungsstatistik verfälschen würde.
    • Gib die back preis. Beurteile ihre Antwort, ordne sie der Skala 0-5 zu und rufe python3 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.
  4. 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.

  5. 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), add ihn, 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.

  6. Kalibrierung anzeigen. python3 scripts/scheduler.py --store <ws>/items.json stats gibt vorhergesagte vs. tatsächliche Werte zurück. Zeige dies nur an, wenn calibration.enough_data wahr 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.

  7. 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.md Meisterschaftsmarker aus stats (🔴/🟡/🟢 pro Thema) – map.md ist einfaches Markdown, das du per Hand bearbeiten darfst; nur items.json ist tabu.
    • Dann zeichne es mechanisch auf: python3 scripts/scheduler.py --store <ws>/items.json distill --learner "<eine Zeile>" --constraint "<eine Regel>". due und stats berichten days_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.md und 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]

Verwandte Skills