Communitygithub.com

KKcorps/lesson-film

Erstellt YouTube-Lernfilme, die einen technischen Mechanismus in ein bis zwei Minuten erklären, wobei jedes Bild per Code gezeichnet wird und eine berechnete Bewertung erhält – für STEM-Zuschauer mit kurzer Aufmerksamkeitsspanne.

Was ist lesson-film?

Diese AI-Agent-Fähigkeit (Skill) ist zum Erstellen von YouTube-Lernfilmen mit gesprochenem Voice-Over konzipiert. Sie erweitert den „code-film“-Skill um eine gesprochene Erzählstimme, ein Drehbuch als Dialog, Pausen zum Raten, Zusammenfassungen und einen ausblendenden Abspann. Zielgruppe sind technisch interessierte Zuschauer, die in 1–2 Minuten einen Mechanismus verstehen sollen, wobei jedes Bild per Code generiert wird. Der Skill unterstützt Workflows mit Python 3.12, Kokoro (Sprachsynthese), faster-whisper (Transkription) und ffmpeg. Er enthält zahlreiche Prüfmechanismen: Script-Checks (jedes Wort wird gesagt), Voice-Checks (kein Wort fehlt), Bild-Checks (Bewegung folgt dem gesprochenen Wort) und Audio-Checks (Ziel-Lautstärke -14 LUFS). Die Arbeitsweise ist stark strukturiert: von Faktenrecherche über Skizzen und Drehbuch bis hin zu Render und Verifikation. Jeder Schritt wird dokumentiert. Der Skill eignet sich für technische Erklärvideos, nicht für Musikvideos oder stumme Animationen. Die Referenzdateien enthalten detaillierte Regeln zu Tempo, Stimme und Didaktik – basierend auf realen Tests mit dem Beispiel „parcel42-lesson“.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/KKcorps/inkreel/tree/main/skills/lesson-film

In Ihrer bevorzugten KI fragen

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

Dokumentation

Lernfilme

Ein Lernfilm lehrt einen Mechanismus so gut, dass ein Neuling ihn nach einmaligem Anschauen erklären kann. Jedes Bild wird per Code gezeichnet, die Stimme des Sprechers ist der Taktgeber, und die Musik spielt in den Lücken, die die Stimme lässt. Er baut auf code-film auf: Dieser Skill besitzt das Aussehen, die Galerie, den Geschmack und die Defektprüfungen. Dieser Skill besitzt das Lehren, die Worte, die Stimme, das Tempo, das Ende und die YouTube-Seite.

Das ausgearbeitete Beispiel ist examples/parcel42-lesson/, ein 130 Sekunden langer Lektion darüber, wie Apache Pinot-Upserts alte Zeilen verstecken. Kartik, der Autor des Skills, nannte sie nach acht Versionen „perfekt“, und jede Zwischenbemerkung lebt in der Referenzdatei, die sie besitzt. Lies deren README für die Methode, niemals für das Aussehen.

Der Kern: den Zuschauer verfolgen

Ein Lernfilm ist eine Hälfte eines Gesprächs, und der Zuschauer liefert die andere Hälfte still. In jeder Sekunde haben sie drei Dinge:

  • Was sie wissen. Nur das, was der Film bisher gezeigt und gesagt hat, plus Alltagswissen. Nicht den Quellcode und nicht das, was du gelesen hast, um ihn zu erstellen.
  • Was sie fragen. Jedes Bild und jede Behauptung wirft die nächste Frage auf: „Was passiert also mit der alten?“, „Was ist, wenn sie spät ankommt?“, „Verschwendet das nicht Platz?“
  • Was sie glauben. Ein Modell des Mechanismus, das nur aus dem Film aufgebaut wurde. Ein falsches Wort installiert ein falsches Modell. „Pinot reißt das alte Haus nie ab“ lehrte, dass nie etwas entfernt wird, und dann zeigte der Film die Kompaktierung, die es entfernt.

Den Film zu erstellen bedeutet, dieses Modell Sekunde für Sekunde auszuführen, über die Stimme und das Bild gemeinsam:

  1. Beantworte die Frage dort, wo sie auftaucht. Der späte Brief kommt direkt nach der Regel, und „Und die dunklen Häuser?“ direkt nach der Abfrage.
  2. Lass sie ankommen, bevor du es ankündigst. Das Bild zeigt den Beweis einen Herzschlag, bevor die Stimme ihn nennt. Ein Titel, ein Label oder ein Kapitelname gibt niemals die Antwort, bevor die Frage gestellt wurde.
  3. Reiße den Faden nie ab. Eine Zeile, die etwas verspricht, besitzt das nächste Bild. Nach „zwei Schalter kippen“ ist das nächste auf dem Bildschirm die Schalter.
  4. Übergib ihnen jedes Wort, bevor du es ausgibst. Jeder Begriff auf dem Bildschirm wird einmal laut ausgesprochen, dort wo das Bild ihn zeigt, und keiner erreicht die erste Zeile. Das Ding in der Welt kommt zuerst, und der Begriff wird danach benannt. Außerhalb dieser Benennungszeile bleibt ein Satz in einer Welt: Eine Blume hat aufgehört zu wachsen, sie ist niemals „geschlossen“. Ein ganzer Film zeigte „Segment 7“ auf Straßenschildern, ohne jemals Segment zu sagen.
  5. Lehre den Mechanismus, nicht den Code. Zeige einen echten Namen nur, wenn der Zuschauer danach suchen würde (validDocIds), niemals einen Funktionsnamen, der nur Maschinerie beschriftet.

Jede Regel in den Referenzen ist eine dieser fünf angewandten Regeln. Wenn eine Regel mit einer anderen zu kollidieren scheint oder nichts einen Fall abdeckt, führe das Zuschauermodell aus, und es entscheidet.

Eine Anmerkung betrifft nie einen einzelnen Fall. Wenn die Person, für die du den Film machst, auf einen Moment zeigt, zeigt sie auf eine Stelle, an der das Modell gebrochen ist. Finde jede andere Stelle, an der es auf die gleiche Weise gebrochen ist, repariere sie alle und melde die Anzahl. Kartiks „schmerzhafter Beat“ waren die Fills und auch die Klirrer und Klicker. Seine fehlenden Buchstaben waren jedes Ereignis, das von einem festen Frame aus getimed wurde, weshalb shiftcheck.py existiert. Sein „falscher Satz“ war jedes absolute Wort, weshalb scriptcheck.py sie auflistet.

Einrichtung

Dieser Skill benötigt code-film, das neben ihm im selben Skills-Ordner installiert ist. Sein Build, Gate, Capture, Seam- und Sound-Checks sowie seine Handschrift kommen von dort, und jedes Skript findet es dort oder unter $CODE_FILM.

Führe bash assets/setup.sh einmal aus. Es prüft code-films doctor, erstellt dann eine Python-3.12-Venv unter ~/.cache/lesson-film/venv mit Kokoro, soundfile, faster-whisper und dem spaCy-englischen Modell und prüft, ob ffmpeg loudnorm hat.

Wie gut aussieht

  • Ein Neuling kann es nacherzählen. Ihre zwei Sätze stimmen mit der Kernaussage auf der Intent-Karte überein, mit den echten Begriffen an den richtigen Stellen.
  • Es klingt wie eine Person, die es dir erklärt. Jeder Satz führt in den nächsten, und jeder Szenenwechsel trägt die lebendige Frage weiter. Lies das Drehbuch laut ohne die Bilder. Wenn es wie eine Liste von Beschriftungen klingt, ist es nicht fertig (reference/words.md).
  • Es atmet. Der Zuschauer hat Zeit, jede Änderung zu sehen, bevor die nächste kommt. Kartik fand einen 64-Sekunden-Schnitt bei 0,36 Schnitten pro Sekunde „zu schnell“. Der genehmigte Schnitt läuft 130 Sekunden bei 0,16 Schnitten pro Sekunde, mit der Stimme in normaler Geschwindigkeit und echten Atempausen (reference/pace-and-ending.md).
  • Jede Behauptung ist wahr und überprüft. Schreibe die Behauptungen in facts.md gegen die Quelle, bevor du etwas zeichnest. Das Bild zeigt genau diesen Zustand.
  • Das Bild ändert sich mit dem Wort. Jedes Ding erscheint in dem Moment, in dem die Stimme es nennt. Bewegung und Farbe sitzen nur auf dem Teil, der erklärt wird (reference/teaching.md).
  • Es öffnet sanft und endet langsam. Eine erste Zeile, die jeder aufnehmen kann, mit Bild und Musik bereits laufend, ein Kaltstart, der mit der Frage endet, dann ein Titel-Sting von etwa fünf Sekunden, so wie Kurzgesagt es macht. „Der Anfang fühlt sich abrupt an“ war Kartiks Anmerkung zu einem Film, der mit einer Figur begann, die der Zuschauer nicht kannte (reference/pace-and-ending.md).
  • Es endet, es hört nicht auf. Eine Zusammenfassung, ein Lohn, eine Schlusszeile, die auf die Eröffnung antwortet, der Heim-Akkord, dann Bild und Ton gemeinsam über mehrere Sekunden ausblendend. „Das Ende ist abrupt“ ist die Anmerkung, die nie wieder kommen soll.
  • Die Defekte sind null. Kein Blitz, kein Knacken, kein Clipping, Lautstärke bei -14 LUFS, jedes Wort gehört.

Dies sind Urteile, keine Regeln. Brich eine, wenn die Karte sagt, warum.

Arbeitsablauf

Kopiere dies in deine Notizen und melde jede Zeile, sobald du sie fertig hast. Eine Zeile kann nicht abgehakt werden, ohne zu sagen, wie.

[ ] 0 Referenz      nur wenn sie eine geteilt haben. Ein Clip, ein Standbild oder eine HTML-Seite. Melde die Form, was sie tut, welche Lücken schließbar sind und was du nimmst und was du lässt.
[ ] 1 Fakten        facts.md gegen die Quelle geschrieben. Melde die Behauptungen und wo jede überprüft wurde.
[ ] 2 Absicht       assets/intent.md kopiert zu <stück>.intent.md, Kernaussage, Gefühl, Frage, Vermutung. Melde sie.
[ ] 3 Galerie       code-films reference/gallery.md, die zwei oder drei ähnlichsten Filme. Melde, was du nimmst und was du nicht kopieren wirst.
[ ] 4 Skizzen       drei neue Geschichten, jede ein fertig aussehendes Standbild, gezeichnet mit dem Kit (sketch.py), eine davon eine Welt, in der du leben könntest, keine aus dem Beispiel oder einer geteilten Referenz. sketchcheck.py sauber von BLOCKs, dann nach der Tafel beurteilt. Zeige sie. Melde den Kern jeder Geschichte, die drei Urteilsantworten und die Auswahl.
[ ] 5 Wörter        das ganze Drehbuch als einen Absatz in <stück>.chain.txt, dann in Zeilen geschnitten mit seinen „Begriffen“, „Dingen“ und „Technik“. Vor dem Absatz schreibe zu jedem Begriff sein Ding und das Verb der Welt für jeden realen Zustand, den es hat. scriptcheck.py sauber von BLOCKs. Melde diese Zuordnung, das einmal laut gelesene Drehbuch, jeden Angelpunkt und eine Entscheidung zu jedem REVIEW.
[ ] 6 Stimme        <stück>.lines.json -> voice.py -> heard.py --write. Melde die Länge und jedes gehörte Wort oder warum nicht.
[ ] 7 Plan          Szenen, jede gebunden an die Wörter, die sie ändern, und den gemeinsamen Weltzustand. Melde den Plan mit dem Ding in der Welt, das jeden Begriff zeigt, und dem Verb der Welt für jeden realen Zustand.
[ ] 8 Bau           Seite aus assets/template/. Szenen zuerst einzeln im Entwurf geprüft. Melde, was du nach dem Betrachten neu gezeichnet hast.
[ ] 9 Sound         <stück>.score.py aus assets/score_template.py. Melde die Akkorde, die Melodie in den Lücken und die In-Welt-Geräusche.
[ ] 10 Rendern      assets/build.sh. Zuerst DRAFT=1. Melde die Zahlen.
[ ] 11 Verifizieren  alle drei Ebenen unten. Melde jede.
[ ] 12 Ausliefern   eine neue Datei bei jedem Build, niemals überschreiben. Das Master für YouTube, eine kleine Vorschau unter 30 MB zum Senden.

Schritte 1 bis 5 sind die, in denen Lektionen gewonnen werden. Insbesondere Schritt 5: Schreibe das Drehbuch zuerst als Prosa, dann schneide es in Zeilen. Zuerst zu schneiden ist der Weg, wie ein Drehbuch zu einem Stapel Untertitel wird.

Verifizieren

Melde alle drei Ebenen getrennt im Lieferhinweis.

  • Defektblock. build.sh führt scriptcheck.py aus (jeder Begriff gesagt, keiner in der ersten Zeile, existierende Verknüpfungen) und code-films check.py und seamcheck.py, mastered auf -14 LUFS integriert mit True Peak bei -1,5 dBTP, und kodiert nach YouTube-Spezifikation (reference/youtube.md).
  • Die Lektion wird gemessen. verify.py prüft die Länge, das Tempo und den Ton der Karte. heard.py transkribiert die Stimme und sagt, welche Wörter nicht gehört wurden und wie stark der Ton den Cue-Zeiten hinterherhinkt. wordsync.py prüft, dass Bewegung bei jedem Wort ansteigt, an das das Bild gebunden ist. shiftcheck.py rendert den Film mit der um zwei Sekunden verschobenen Stimme und schlägt bei jeder Szene fehl, die sich ändert – so zeigt sich ein Ereignis, das von einem festen Frame aus getimed wurde. captions.py schreibt eine exakte SRT aus denselben Cues.
  • Der Sehtest ist deiner, dann der der Person. Erzähle es wie ein Neuling nach. Nenne jede Kachel des Kontaktbogens. Sieh es mit ausgeschaltetem Ton an. Lies das Drehbuch laut ohne Bilder. Beurteile die letzten zehn Sekunden für sich. Dann sage klar, was du nicht geprüft hast, z. B. die Stimme nach Gehör.

Wann was lesen

Lese jede Datei ganz, mit einem Aufruf pro Datei, und lies eine Datei erneut allein, wenn der Hinweis sagt, dass Tokens abgeschnitten wurden. code-films „Wann was lesen“ sagt, was ein gebündelter Lesevorgang kostet.

  • Wenn sie eine Referenz teilen, lies code-films reference/references.md. Es deckt alle drei Formen ab. Ein Clip und ein Standbild werden mit ffmpeg auseinandergenommen. Eine HTML-Seite, unsere oder ihre, wird durch code-films assets/refpage.mjs geführt, das die Seite beim Zeichnen beobachtet und ihre Palette, Markierungen, Ebenen und Audio-Kit meldet und ein MP4 schreibt, damit die Clip-Prüfungen auch darauf laufen.
  • Vor den Fakten und der Intent-Karte, lies reference/teaching.md.
  • Vor den Skizzen, lies die reference/sketches.md dieses Skills und den Story-Abschnitt seiner eigenen reference/traps.md. Dann lies code-films reference/story.md für „Wähle zuerst eine Form“ und „Was bleibt“, sowie code-films reference/traps-story.md.
  • Bevor du eine einzige Zeile des Drehbuchs schreibst, lies reference/words.md.
  • Wenn du den Anfang oder das Ende planst und wenn du die Geschwindigkeit, Atempausen und Halte der Stimme festlegst, lies reference/pace-and-ending.md.
  • Wenn du die Stimme erstellst oder reparierst, lies reference/voice.md.
  • Wenn du Szenen planst, sie auf Helfer aufteilst oder die Seite baust, lies reference/film.md und code-films reference/moves.md, das die Übergänge zwischen zwei Bildern besitzt.
  • Wenn du den Sound machst, lies reference/sound.md und code-films reference/sound.md für die Instrumente und sein reference/traps-sound.md.
  • Vor dem ersten Rendern und nach jeder Anmerkung dazu, lies reference/traps.md.
  • Bevor du veröffentlichst, lies reference/youtube.md.
  • Wenn eine Regel ihre Quelle braucht oder jemand fragt, warum der Skill etwas tut, lies reference/research.md: die Belege, Effektstärken und Links.
  • Für das Aussehen, den Geschmack und die Druckqualität, lies code-films gallery.md, taste.md und press.md sowie sein traps-print.md, bevor du die Qualität abstimmst.

Die Dateien

DateiWas es ist
assets/setup.sheinmalige Einrichtung: die Venv für Stimme und Hören sowie die Prüfungen
assets/intent.mddie Intent-Karte der Lektion, code-films Karte plus die Lehrzeilen
assets/voice.pyspricht <stück>.lines.json mit Kokoro, legt die Zeilen auf ein Beat-Raster, schreibt die Stimme und die Cues
assets/heard.pytranskribiert die Stimme mit Whisper, meldet fehlende Wörter und den Zeitversatz, --write speichert den Versatz in den Cues
assets/saytest.pyprobiert Neuschreibungen eines Wortes aus, das Kokoro falsch sagt, und sagt, welche Whisper richtig hört
assets/captions.py, assets/wordsync.pydie SRT aus den Cues und die Prüfung, dass Bewegung bei jedem gebundenen Wort ansteigt
assets/shiftcheck.pydie Prüfung, dass jede Szene von der Stimme getimed ist, nicht von festen Frames
assets/scriptcheck.pydie Drehbuchprüfung: Begriffe gesagt, keiner in der ersten Zeile, jedes Ding vor dem Begriff genannt, existierende Verknüpfungen, und eine Liste der absoluten Wörter, ungesagten On-Screen-Wörter und Sätze, die die Welt mit dem echten System vermischen, zum Lesen
assets/sketchcheck.py, assets/barsheet.pycode-films Skizzenprüfung, ausgeführt mit den genehmigten Frames dieses Skills, der Stadt des Beispiels und dem Stub der Vorlage. Und das Skript, das die Beurteilungstafel neu erstellt
assets/score_template.pyein Bett pro Zeile, die Melodie in den Lücken, In-Welt-Geräusche bei Zustandsänderungen, ein 16-dB-Duck unter Sprache, das ausblendende Outro
assets/build.shSeite, Gate, paralleles Capture, Seams, Score, -14 LUFS Master, Encodieren, Untertitel, Kontaktbogen, jede Prüfung
assets/template/die zu kopierende Seite: assemble.py, film/kit.js (das Handwerk ohne Welt darin: Tinte, Punkte, Kanten, Licht, Handschrift, die Druckqualität), film/core.js (Stimm-Takt, Ebenen, Kamera, Dive- und Iris-Bewegungen), film/main.js, film/SCENES.md, eine Beispielszene, die ein Platzhalter-Objekt baut, und sketch.py mit sketches/sketch.js für die drei Geschichten-Standbilder
reference/stills/Frames aus der genehmigten Lektion, mit Bildunterschriften, für die beiden Regeln, die Prosa allein nicht vermittelt: die Schläge von Anfang und Ende und ein Bild, das sich mit seinem Wort ändert. Auch die Beurteilungstafel der Skizzen sketch-bar.jpg, erst geöffnet, nachdem deine eigenen drei existieren, und sent-back.jpg
examples/parcel42-lesson/der gesamte Quellcode der genehmigten Lektion, ihre Tonspur, ein Link zu einer Vorschau des Films zum Ansehen, ihr README, Kontaktbogen und Thumbnails

Paralleles Capture lebt in code-film (assets/capture-range.mjs, assets/capture-par.sh), weil jeder lange Film es braucht.

Diesen Skill ändern

Formuliere Absicht und Urteil und überprüfe das Ergebnis gegen die Absicht. Eine neue Lektion, die jemand genehmigt, wird zu einem zweiten Beispiel mit einer Zeile in dieser Datei, warum sie funktioniert. Eine gelernte Lektion kommt in die eine Referenzdatei, die sie besitzt, und jede andere Datei zeigt in einer Zeile dorthin.

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

Verwandte Skills