Communitygithub.com

liwoo/evidence-explainer

Verwandle eine Sprachnotiz oder Audioaufnahme in ein ~1-minütiges vertikales Erklärvideo für TikTok/Reels/Shorts, das die Aussagen des Sprechers mit Bildschirmfotos, Logos und Diagrammen belegt.

Was ist evidence-explainer?

Dieses Skill erzeugt aus einer Sprachnotiz oder Audioaufnahme (z. B. MP3, M4A, Podcast-Ausschnitt) ein vertikales Kurzvideo für Plattformen wie TikTok, Instagram Reels oder YouTube Shorts. Das Video präsentiert Beweise für jede Aussage des Sprechers: Vollbild-Screenshots echter Webseiten werden auf die relevante Zeile gezoomt und mit einem Marker hervorgehoben, Firmenlogos werden mit einem Kameraklick-Effekt eingeblendet, und ein schrittweises Architekturdiagramm erklärt komplexe Abläufe auch für Laien. Fachbegriffe werden in einfachen Karten („Glosses“) erklärt, bei erfolgreichen Transaktionen ertönt ein „Ka-Ching“-Sound, und der Video-Anfang nutzt einen Haken (Hook), das Ende einen Call-to-Action. Unterstützte Plattformen sind solche, die das Remotion-Framework und Node.js 20+ nutzen; die Erstellung erfolgt über eine CLI-Pipeline mit Checkpoints für Drehbuch, Claim-Verifikation und finale Qualitätskontrolle. Es ist ideal für Erklärungen von Fintech-Flows, Produktfunktionen oder komplexen Hintergrundprozessen und vermeidet reine Schnitt-/Bearbeitungsaufgaben ohne inhaltliche Beweisführung.

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/liwoo/evidence-explainer/tree/HEAD

In Ihrer bevorzugten KI fragen

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

Dokumentation

Evidence-Explainer (Sprachnotiz → 1-minütiges vertikales Video mit Belegen)

Basierend auf „How Malawians get Visa cards with no forex“ (11. Nov. 2026): eine 4:15 lange Android-Sprachnotiz → ein 60,4 s TikTok mit 10 Webseiten als Belege, Bridges eigenes Architekturdiagramm, 9 Logos, 4 „Chings“. Ausgearbeitetes Beispiel in assets/examples/visa-cards/ (Skript + Laiencheck, Schnittliste, Aufnahme-Jobs, volles video.json, Post-Copy, Kontaktbogen).

Sprachnotiz ─► transkribieren + Inseln ─► SKRIPT + LAIENCHECK (Kontrollpunkt) ─► Stimme schneiden (verifizierte Kanten) ─► Tempo + Wörter
                                        │
                                        └► Belege: Screenshots mit Zielrechtecken · Logos · Diagramme aus Dokumenten
                                                                    │
                       video.json Timeline (Szenen, Zooms, Stempel, Glossare, Chings, Diagrammschritte)
                                                                    │
                                  Sound + leise Musik + Mischen ─► Standbilder mit Safe-Zonen ─► Rendern ─► Prüfen

Einrichtung

SK=~/.claude/skills/evidence-explainer
zsh $SK/scripts/new_explainer.sh "<Audiodatei>" .context/<slug>     # ~1-3 Min; zeigt freien Speicher
cd .context/<slug>                                                  # alle Skripte laufen von hier (W)

Benötigt: ffmpeg, Python 3 + numpy + Pillow, Node 20+, Chrome (Playwright steuert das installierte Chrome), whisper.cpp + ggml-medium.en.bin in ~/.cache/whisper.cpp (scripts/setup_whisper.sh baut es; überschreibbar mit WHISPER_DIR). Das Scaffold führt npm i in remotion/ aus oder klont ein vorhandenes node_modules, wenn EXPLAINER_NODE_MODULES darauf verweist (APFS Copy-on-write, ~0 Bytes). Look = „dev mode“ (src/brand.ts: Punktraster, Space Mono, cyan/gelb/amber); Handle/Site stammen aus video.json.

Die Phasen (beim Erreichen der jeweiligen Phase die Referenz lesen)

#PhaseLesenWerkzeuge
1Skript aus sent.txt schreiben, dann Laiencheck durchführenreferences/01-script-and-lay-check.md—
2Stimme auf ≤ 60 s an verifizierten Kanten schneiden, Tempo, Untertitelreferences/02-voice-cut.mdislands_labels.txt, dips.py, tx.sh, cut.py, voice.sh, words.py
3Belege: Screenshots + Zielrechtecke, Logos, Diagramme aus Dokumentenreferences/03-evidence.mdshoot.mjs, logo_tools.py, logo.mjs, register_image.py
4Timeline in remotion/src/video.jsonreferences/04-video-json.mdEngine src/Explainer.tsx
5Sound: Klicks, Chings, leise Musik, Mischenreferences/05-sound.mdsfx_mix.py, score.py
6Vorschau mit TikTok-Safe-Zonen, Rendern, Prüfenreferences/06-render-verify.mdremotion/stills.mjs, sheet.py, verify.sh

Schnellpfad, sobald das Skript abgestimmt ist:

python3 $SK/scripts/cut.py cut.json && zsh $SK/scripts/voice.sh 1.18 "Namen, Marken, Fachjargon"
python3 $SK/scripts/words.py word_fixes.json
node $SK/scripts/shoot.mjs shoot_jobs.json shots && cp shots/*.png remotion/public/shots/ && cp shots/shots.json remotion/src/shots.json
python3 $SK/scripts/logo_tools.py sync                      # nach dem Holen der Logos
# remotion/src/video.json schreiben, dann:
python3 $SK/scripts/sfx_mix.py path/to/music.mp3          # oder `none`
(cd remotion && npx tsc -p . && node stills.mjs 45,300,...) && python3 $SK/scripts/sheet.py stills --zones
(cd remotion && npx remotion render src/index.ts Explainer ../out/<slug>.mp4 --codec=h264 --crf=18 --audio-codec=aac --audio-bitrate=192k)
zsh $SK/scripts/verify.sh out/<slug>.mp4

Ein vollständiger Render von 60 s dauert ~40 s; Standbilder ~1 s pro Stück nach dem Bundle.

Hausstil (aus dem Review des Creators des ersten Videos – beibehalten, sofern nicht anders gewünscht)

  • Vollbild-B-Roll. Screenshots füllen den 1080×1920 Rahmen (keine Browserkarte); die Kamera startet weit und zoomt dann auf die Zeile, die den Beweis liefert, während ein Marker sie überstreicht. Ein schmales https://domain-Pill + gelber // evidence: …-Tag sitzt oben links.
  • Logos erscheinen mit einem Kameraklick (weiße Karte, leichte Neigung, Scale-Down-Pop, weißer Blitz). Zeige mehr davon: jedes genannte Unternehmen bekommt sein Logo einmal.
  • „Ka-Ching“ bei jeder erfolgreichen Transaktion (Konto erstellt, Geld erhalten, Wallet aufgeladen, Zahlung genehmigt) mit grünem ✓-Chip und Ring.
  • Architektur für Laien. Ein Diagramm (Du → App → Infrastruktur → Karte), mit Logos in den Knoten, schrittweise aufgebaut („SCHRITT 1 · ANMELDUNG“…), mit beschrifteten Paketen zwischen den Knoten. Das Entwicklerdiagramm eines Anbieters wird nur auf die klar verständlichen Boxen gezoomt gezeigt, niemals komplett.
  • Frage dich nach dem Schreiben des Skripts: Wird dies einen Laien, der das Produkt nutzt, klären oder verwirren? Behebe jedes „verwirrt“ vor dem Bau (Glossarkarten, einfachere Bezeichnungen, keine Code-Formatierung). Setze den Check in die Skriptdatei und in die Zusammenfassung.
  • Untertitel am unteren Rand verankert: Der untere Rand der Box liegt fest 400 px über dem Frame-Unterrand (knapp über TikToks Benutzername/Bildunterschrift-Block), 2-zeilige Seiten wachsen nach oben, mit Abstand zur rechten Aktionsleiste.
  • Hook zuerst (großes Punktmatrix-Wort + die Frage des Betrachters über dem ersten Beleg, unscharf), Follow-CTA am Ende (Logo-Kette Wiederholung, FOLLOW, Handle, Button, Seite).
  • Musik ist ein leises Bett (score.py BASE −26 LUFS): eine laute dramatische Musik wurde als „viel zu hoch und nervig“ getestet.

Kontrollpunkte (anhalten und fragen, mit Empfehlung)

  1. Skript + Laiencheck bevor irgendetwas geschnitten wird: die Beat-Tabelle (was er sagt → was auf dem Bildschirm zu sehen ist) und die Tabelle „Verwirrt/Klärt“.
  2. Behauptungen, die du nicht verifizieren kannst (z. B. „App X verwendet Anbieter Y“): behalte sie in seinen Worten, formuliere die Bildschirmbeschriftungen als „z. B.“ / „ein Beispiel“ und markiere sie.
  3. Vor dem Rendern: Standbilder von jedem neuen Element mit --zones.
  4. Vor der Veröffentlichung: Logolizenzen (CC BY/BY-SA benötigen einen Credit-Vermerk), abgesicherte Behauptungen („höchstwahrscheinlich“ bleibt sichtbar), von Whisper falsch verstandene Namen (Untertitel verwenden die korrekte Schreibweise, auch wenn er sie seltsam ausgesprochen hat). Nur hochladen, wenn danach gefragt wird.

Arbeitsprinzipien

  • Belege vor Behauptungen: jeder faktische Beat bekommt eine Seite, die es belegt, live erfasst, auf die Zeile gezoomt. Bevorzuge Primärquellen (Unternehmens-Newsroom, offizielle Dokumente, die Regulierungsbehörde/Zentralbank, die App-Store-Seite) gegenüber Blogs. Notiere, was eine Seite NICHT sagt (Bridges Länder-Tabelle = wer onboardet werden kann, nicht Kartenverfügbarkeit) und beschrifte entsprechend.
  • Nur an verifizierten Kanten schneiden: Energieinseln + halbierte Dips (tx.sh), niemals Whisper-Wortzeiten (sie driften bei Telefon-Audio um Sekunden). Transkribiere den endgültigen Schnitt und den Render neu.
  • Glossare sind kurz und konkret: „Stablecoin = ein digitaler Dollar, 1 USDC ≈ 1 $“, „KYC = der ID- + Selfie-Check, den du bei der Anmeldung gemacht hast“, „API = ein Stecker, der Apps die Nutzung von X ermöglicht“.
  • Zoom-Grenzen: ein 1200 px mobiler Screenshot füllt den Rahmen bei Zoom 1.0 (er ist bereits ~36 px pro Seite beschnitten); Absätze vertragen ≤ 1.3, kurze Ziele (eine Codezeile, eine Tabellenzeile) 1.8–2.0. Überprüfe, dass die hervorgehobenen Wörter und alle wichtigen Spalten (z. B. Währung) im Rahmen bleiben.
  • Prüfen, dann berichten: Dauern (Video vs. Audio), −14 LUFS / Peak ≤ −1, vollständiges Transkript des Renders, Chings ≥ +5 dB über der Stimme, ein Kontaktbogen, den du angesehen hast. Gib an, was du nach Tag ausgewählt hast, ohne zuzuhören (Musik).

Endgültiges Zusammenfassungsformat

Ausgabepfad + Länge; ein Kontaktbogen-Bild; was auf dem Bildschirm zu sehen ist, Beat für Beat (kurz); das Ergebnis des Laienchecks; „Vor dem Posten prüfen“ (ungeprüfte Behauptungen, Lizenzen, Absicherungen, falsch verstandene Namen); Haushaltsdaten (Arbeitsverzeichnis, Speicher, Kosten für erneuten Render, welche Datei bearbeitet werden muss).

Verwandte Skills