Communitygithub.com

Stickman Story Reels

Schreibe virale Kurzgeschichten und verwandle sie in animierte Strichmännchen-Vertical-Reels (1080×1920 MP4 für Instagram Reels, TikTok und YouTube Shorts) mit ElevenLabs Voiceover, wortgenauen Untertiteln, synthetisiertem Sounddesign, einer eingeblendeten Uhr und einem „Comment your Vote“-Ende.

Was ist Stickman Story Reels?

Dieses Skill ermöglicht es einem AI-Agenten, aus einer einfachen Prämisse ein komplettes, virales Vertical-Video zu erstellen – inklusive Skript, animierten Strichmännchen-Szenen, Sprachausgabe, wortgenauen Untertiteln, Soundeffekten und einer interaktiven Abstimmungsoption für die Zuschauer. Es eignet sich perfekt für Formate wie „Was passiert als nächstes?“-Serien auf Instagram Reels, TikTok und YouTube Shorts. Der Workflow ist deterministisch und vollständig codiert: Der Agent erstellt ein `episode.json` mit Skript, Timing und Animationen sowie eine `scenes.js` mit den Zeichnungen. Das Skript `reel.py` übernimmt dann den gesamten Rest (Sprache → Sound → Build → Prüfung → Rendering). Es werden keine Bildmodelle, kein Stockmaterial und keine kostenpflichtigen Tools außer ElevenLabs benötigt. Das Skill enthält außerdem eine Sammlung von Referenzdokumenten mit Best Practices für virale Skripte, Story-Engines und Zeichenanleitungen, die der Agent automatisch konsultiert, um die höchste Qualität und Wiedersehensrate zu gewährleisten.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/QuantumCoderSys/stickman-story-reels/tree/main

In Ihrer bevorzugten KI fragen

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

Dokumentation

Was macht Stickman Story Reels?

Verwandle eine Prämisse in ein fertiges 60–90 s langes Vertical-Reel: ein auf Wiedersehenszeit optimiertes Skript mit Haken zu Beginn, Strichmännchen-Szenen, die in Code gezeichnet werden, Sprachausgabe mit wortgenauen Untertiteln, Sounddesign und einer Zwei-Optionen-Abstimmung, die die Leute zum Kommentieren und für Teil 2 zurückkommen lässt. Basierend auf dem Workflow hinter den interaktiven PlotVote-Geschichten (@plotvote).

Die Pipeline ist deterministisch: Du schreibst episode.json (Skript, Timing, Bewegung) und scenes.js (Zeichnungen), und scripts/reel.py erledigt den Rest (Sprache → Sound → Bauen → Prüfen → Rendern). Keine Bildmodelle, kein Stockmaterial, keine kostenpflichtigen Tools außer der Stimme.

Einrichtung (einmal pro Maschine)

Überprüfe python3 --version (3.9+), ffmpeg -version und node --version (18+). Der erste Rendervorgang lädt HyperFrames und einen Headless Chrome über npx herunter; das ist normal und dauert eine Minute. Für die Stimme setzt der Benutzer ELEVENLABS_API_KEY=... in eine .env-Datei in seinem Projektordner (oder exportiert sie). Gib den Schlüssel niemals aus. Ohne Schlüssel funktioniert alles trotzdem im --draft-Modus (stumm, in Echtzeit getaktet).

Definiere diese Shell-Funktion einmal pro Terminalsitzung (eine Funktion, keine String-Variable, damit sie sowohl in zsh als auch in bash funktioniert). Die folgenden Befehle verwenden sie:

reel() { python3 "<Pfad zu diesem Skill>/scripts/reel.py" "$@"; }

Workflow

1. Die Anfrage verstehen

  • „Erzähle diese Geschichte“ mit einer klaren Prämisse → schreibe ein starkes Skript und baue es.
  • „Gib mir Optionen“ oder „Skript-Ideen“ → präsentiere 3 vollständige Optionen (siehe das Playbook §10), lass sie wählen, dann baue.
  • „Nächster Teil“ oder „X hat die Abstimmung gewonnen“ → setze die Serie fort: beginne mit der Konsequenz, löse den letzten Hinweis ein, gib eine echte Antwort, steigere die Spannung, neue Abstimmung (Playbook §9). Lies die Serienbibel, falls vorhanden.
  • Nur Skript (oder keine Shell verfügbar) → liefere die Skripttabelle sowie episode.json und scenes.js, wenn sie es selbst rendern möchten.

2. Das Skript schreiben

Lies jedes Mal zuerst references/viral-script-playbook.md. Es enthält die Regeln, die entscheiden, ob die Leute länger als 3 Sekunden bleiben. Wenn du eine Prämisse, eine Serie oder eine Staffel erfindest, lies auch references/story-engines.md.

Schreibe das Skript als Tabelle (# · Stimme · Gesprochen · Auf dem Bildschirm), ziele auf etwa 210–230 Wörter (etwa 85 s im Haus-Tempo). Führe die Vor-Sprach-Checkliste aus dem Playbook durch. Die Fehler, die am häufigsten gemacht werden: Frame 1 muss sich bewegen; wo, wann und wer innerhalb von 5 s; jede Entscheidung besteht den 12-Jährigen-Test; Charaktere sagen ihre eigenen Enthüllungen in der ersten Person; die Abstimmung besteht aus zwei physischen Ein-Wort-Aktionen mit Kosten auf beiden Seiten; ein geflüsterter Hinweis nach der Abstimmung zeigt auf etwas, das früher platziert wurde.

Wenn der Benutzer nach Optionen gefragt hat oder möglicherweise zustimmen möchte, bevor Credits ausgegeben werden, zeige die Skripttabelle und warte. Ansonsten mach weiter.

3. Das Reel aufsetzen

reel new reels/<slug>-part1 --title "<Titel> — Teil 1"

Dies erstellt episode.json und scenes.js aus einem kleinen funktionierenden Starter. Ersetze beide durch deine Geschichte.

4. Die Szenen zeichnen (scenes.js)

Lies references/drawing-kit.md und öffne examples/sundown-part1/scenes.js als Musterbibliothek (eine Kreatur, die sich hinauslehnt, eine Rückwärtspans-Karte, eine Regeln-Wand, die Zeile für Zeile enthüllt wird, Stop-Motion-Kreaturen, ein Fenster-Knapp-Vorbei, ein sprechendes Radio, eine Taschenlampe in den Bäumen, die Entscheidungsspalte, ein Cover).

Eine Funktion pro Szene aus deiner Skripttabelle. Jede gibt ein 1080×1920 SVG zurück, das mit Kit-Hilfsfunktionen (defs(), sky(), forest(), cabin(), room(), water(), stick(), kid(), creature(), phone(), radio(), chip(), ring(), splitChoice(), …) aufgebaut ist. Eine Umgebung, die das Kit nicht hat (ein Wasserpark, ein Zug, eine Wüste), ist normal: zeichne sie mit rects, paths und den Hilfsfunktionen, gemäß dem Abschnitt „Eine neue Umgebung bauen“ des Zeichenkits. Gib allem, das sich bewegen oder zu einem Wort erscheinen soll, eine id. Halte Gesichter aus dem Untertitelsbereich (y 1180–1380) und den rechten 140 Pixeln heraus. Füge einen mode für das Cover (Subjekt unter dem Titel platziert) und für Abstimmungskarten-Einschübe hinzu.

5. Die Episode verknüpfen (episode.json)

Lies references/episode-format.md. Für jede Szene: draw, say-Zeilen, kenburns und animate-Einträge, die auf gesprochenen Wörtern landen ("at": "faster"). Dann: Stimmen (mit fx und Bildunterschriften-tags für andere Charaktere), HUD-Pillen mit einer Uhr, handgesetzte sfx auf Wörtern, bed-Hinweise, die Abstimmungsszene (zwei Optionen, Einschübe, die Hinweiszeile), cover und post (Bildunterschrift mit {vote_line}, angehefteter Kommentar, posts_at). Für Stimmen, Sounds und Bildunterschriften siehe references/sound-voice-posting.md.

6. Entwurfsdurchlauf (kostenlos)

reel voice reels/<slug> --draft     # stumm, Echtzeit-Timing
reel sound reels/<slug>
reel build reels/<slug>
reel check reels/<slug>
reel snap  reels/<slug> --at scenes  # zwei Standbilder pro Szene (oder --at 0.5,12,30.5 Sekunden)

Sieh dir jedes Standbild in reels/<slug>/snaps/ an. Behebe, wovor die Lesbarkeitsregeln des Zeichenkits warnen: Dinge, die zu dunkel zum Lesen sind, Gesichter unter Bildunterschriften, zu kleine Motive, eine zeitlich falsch platzierte Enthüllung. check muss „Check passed“ melden (all stoppt vor dem Rendern, wenn nicht). Diese Warnungen sind erwartet und in Ordnung: „nested structure“, „track too dense“, „composition file too large“ und Einschübe, die ihre Begrenzung „overflowing“ haben.

7. Sprachaufnahme und Rendern

reel all reels/<slug>               # Sprache (ElevenLabs) → Sound → Bauen → Prüfen → Rendern
reel frames reels/<slug> --every 2  # Kontaktabzug des gesamten Reels zur Überprüfung

Überprüfe die gedruckte Länge (60–90 s; kürze die Einleitung, wenn sie überschritten ist). Sieh dir renders/review.png an: Das Motiv ist lesbar, die Bildunterschriften sind klar, das genannte Ding bewegt sich bei seinem Wort, und die Abstimmungskarte sowie der Hinweis-Einschub erscheinen. Höre Zeile 1 an; wenn ein Wort falsch verstanden werden könnte, ändere das Wort und nimm die Sprachaufnahme erneut vor (nur geänderte Zeilen kosten Credits).

8. Ausliefern

Gib dem Benutzer renders/<slug>.mp4, renders/cover.png und POST.md (Bildunterschrift, angehefteter Kommentar, Alternativtext, Zeitpunkt des Abstimmungsendes). Erstelle für eine Serie oder aktualisiere bible.md neben dem Reel-Ordner: Besetzung, Regeln, Kanon, der Hinweis und eine Zeile pro Abstimmungsoption, die beschreibt, wie der nächste Teil beginnt (story-engines §4).

Befehle

BefehlWas er tut
reel new <verz> --title "…"Reel-Ordner aufsetzen
reel voice <verz> [--draft]Sprachaufnahme + Wortzeiten → timing.json, assets/audio/narration.wav
reel sound <verz>19 Soundeffekte + die Umgebungs-Atmosphäre synthetisieren
reel build <verz>index.html, cover/, POST.md kompilieren
reel check <verz>HyperFrames-Lint-, Layout- und Kontrastprüfung (bricht mit Fehler ab)
reel snap <verz> --at scenesPNG-Standbilder aus der Komposition, zwei pro Szene (oder --at 1,5.5,9 Sekunden)
reel render <verz> [--draft]MP4 bei −14 LUFS + cover.png + Kontaktabzug
reel all <verz> [--draft]Sprache → Sound → Bauen → Prüfen → Rendern (stoppt, wenn die Prüfung fehlschlägt)
reel frames <verz> --every 2Überprüfungsbogen des gesamten gerenderten MP4

Fehlerbehebung

  • "Wort" wird dort nicht gesprochen: die Zeitreferenz verwendet die Bildunterschrifts-Schreibweise und wird nur innerhalb dieser Szene gesucht; der Fehler gibt aus, was die Szene sagt. Verwende Wort#1 für das zweite Vorkommen, sN:Wort für eine andere Szene, start+0.2 für einen Offset oder 12.5s für eine absolute Zeit.
  • Stimme nicht gefunden: verwende einen vorgefertigten Namen (Liam, Brian, George, Daniel, Callum, Bill, Roger, Chris, Eric, Will, Harry, Charlie, River, Adam, Sarah, Matilda, Jessica, Alice, Lily, Laura, Bella) oder die Stimmen-ID.
  • Credits aufgebraucht: bereits vertonte Zeilen werden zwischengespeichert; lade Guthaben auf und führe voice erneut aus.
  • Ein leeres oder schwarzes Bild: ein JavaScript-Fehler in diesem Set. check zeigt es; teste die Funktion, indem du nach der Reparatur erneut baust.
  • Über 90 s: kürze Einleitungszeilen und Adjektive; behalte den Haken, die Wendung, die Abstimmung und den Hinweis.
  • npx- oder node-Fehler: installiere Node 18+; lass npx beim ersten Durchlauf HyperFrames und Chrome herunterladen.

Was dieses Skill enthält

  • scripts/reel.py: die CLI. scripts/synth.py: 19 Soundeffekte und die Atmosphäre (Dröhnen, Wind, Puls, Summen, Wasser), alle synthetisiert.
  • assets/kit.js: das Zeichenkit. assets/runtime.js, assets/base.css: Bildunterschriften, HUD und die Abstimmungskarte.
  • references/: viral-script-playbook.md (immer), story-engines.md (Prämissen, Serien, Bibel), episode-format.md (die Spezifikation), drawing-kit.md (Zeichnen), sound-voice-posting.md (Stimmen, Sound, Bildunterschriften, Posten, Sicherheit).
  • examples/sundown-part1/: ein vollständiger 89-Sekunden-Teil 1 (episode.json + scenes.js). examples/starter/: der 4-Szenen-Starter, der von new verwendet wird. examples/script-pitches.md: fünf weitere vollständige Teil-1-Skripte (THE WHEEL, LAST CAR, LOW TIDE, 3:33, ROW ONE).

Verwandte Skills