🇩🇿 wailzenz-video-dz — Die algerische Ebene. Diese Regeln überschreiben alles darunter:
- Dialekt = algerisches Darija (الدارجة الجزائرية). Jedes arabische Wort, das du schreibst oder korrigierst (Captions, Hooks, CTAs, Cover, Nachrichten an den Nutzer) folgt
references/dialect-dz.md. Der ursprüngliche Skill wurde auf Golf-Arabisch geschrieben: Lies seine Anweisungen, aber verwende niemals seine kuwaitischen Wortlisten oder Beispielformulierungen in dem, was der Zuschauer sieht. Englisches Video → schreibe Englisch. Französisches Video → schreibe Französisch.- Französische/englische Begriffe bleiben in lateinischen Buchstaben mit einer arabischen Glosse in Anführungszeichen dahinter — «هادي حاجة normal "عادية"» — via
"gloss"infixes.json(Schritt 5). Jeder lateinische Begriff bekommt eine.- Umgebung: Starte jeden Shell-Befehl mit
source "${CLAUDE_SKILL_DIR}/../../setup/env.sh"(Python 3.12-Umgebung, ffmpeg-full, Modelle in~/.wailzenz-video-dz). Erstmalig auf einem Rechner? Führebash "${CLAUDE_SKILL_DIR}/../../setup/setup-mac.sh"aus (frage den Nutzer vorher — es werden ~4 GB heruntergeladen). Verwende niemalspip installin das System-Python.- Transkription (Schritt 4) verwendet
scripts/02a_transcribe_dz.py: whisper.cpp large-v3 auf der Mac-GPU oder--engine hadra(algerisches Modell) /--engine whisper(beliebiges OS). Verwende niemalspython3 -m whisper --model medium.- Updates nur über den Plugin-Manager (
00_setup.shgibt den Befehl aus). Überschreibe niemals die Dateien des Skills.🎬 Hausstil — jedes Video, ausnahmslos: 6. Vollständiger Schritt 7, immer. Geteilte Bildschirme, Erklärtafeln, Bewegungen aus der Bank, Übergänge, mindestens ein Tiefenmoment (hinter dem Kopf, «الخلاصة»-artiges Video-im-Text…), SFX, End Card. Ein Reel mit nur Captions über dem Gesicht ist niemals akzeptabel. 7. Die Caption niemals duplizieren. Die Tafel darf nicht die Wörter zeigen, die in diesem Moment untertitelt werden — kein kinetischer Text des aktuellen Satzes, keine „große Caption“ oben. Tafeln sind visuell: Symbole, Diagramme, UI-Mockups (Terminal, Timeline), Metaphern, Vergleichstafeln, Fakten aus
facts.md. Terminal-Befehle, Timeline-Beschriftungen und Kartentitel dürfen die Caption ebenfalls nicht wiederholen. Wenn ein Satz seine Wörter wirklich groß auf dem Bildschirm braucht, gib ihm stattdessennocap:true. 8. Sorgfältig schneiden.01_cut_plan.pyschneidet nur Pausen ≥ 0,55 s, misst Stille am eigenen Rauschpegel des Clips, lässt nach einem Wort mehr Platz als davor und endet mit einer Selbstkontrolle — jedes «⚠️» bedeutet, zuerst den Schnitt reparieren. Jeder Schnitt beginnt und endet in Stille. Ein Zögern («الـ…», «اممم») kommt nur als Ganzes, mit Stille auf beiden Seiten; ein Neustart («اللي تحتاج… تحتاج») behält den zweiten Take. Nach dem finalen Rendern führe19_seam_check.py <work> <final.mp4aus und korrigiere jedes wiederholte oder kaputte Wort (es hört englische Begriffe im arabischen Modus schlecht — überprüfe diese mit-l enneu). 9. Die Tafelposition abwechseln. MischeR_DOWN(Animation oben, Gesicht unten) mitR_UP(Gesicht oben, Animation unten —panelInbewegt sich dorthin von selbst), plusR_LOWER(große Tafel, kleines Gesicht) undR_FULL-Momente. Niemals mehr als zwei Erklärszenen hintereinander in derselben Position. 10. Jede Szene an Wortzeiten binden (caps.jsonWörter), niemals an feste Sekunden — ein Nachschnitt darf die Szenen nicht zerstören. 11. Nahaufnahme-Framing: Die Gesichtskarte beschneidet ausstudio.json→cardTop; wenn der Mund unter y ≈ 1600 fällt (Instagram-Caption-Bereich), hebe ihn an (≈ 0.3).R_UPzeigt automatisch etwas mehr über dem Kopf.
Reel aus einem Talking-Head-Video — ganz ohne Schnittprogramm
Der ganze Schnitt ist Code:
- ffmpeg schneidet.
- Whisper transkribiert mit Wort-Zeitstempeln.
- Eine Rendering-Engine setzt Captions und Motion Graphics über das Video.
Ausgabe: Ein fertiges MP4, bereit zur Veröffentlichung.
Pfade: Alle scripts/, references/ und motion/ befinden sich im Ordner dieses Skills:
${CLAUDE_SKILL_DIR}
Kein Talking-Head-Video? Gehe zum richtigen Modus
| Eingabe | Modus | Lies |
|---|---|---|
| Ordner mit stummen Clips (Café, Reise, Produkt) | Montage auf Beat | references/montage.md |
| Zwei oder mehr Kameras derselben Session | Podcast → Reels | references/podcast.md |
| Ganze Folge „im Querformat“ oder „für YouTube“ | Podcast 16:9 | references/podcast.md (Abschnitt „Ganze Folge im Querformat“) |
| 1-Stunde-Folge → mehrere Reels | Reels aus Folge | references/landscape.md (Abschnitt „Ganze Folge“) |
| Text oder Idee, ohne Person | Erklärvideo mit Motion | references/motion-mode.md |
| Link zu einer Website oder „Erkläre die App“ | Website/App-Erklärvideo | references/motion-mode.md |
Wenn es einen separaten Skill für diesen Modus gibt (dz-motion, dz-podcast oder dz-montage), hat dieser Vorrang.
⛔ Frage ihn nicht: „Welchen Modus möchtest du?“ — Sag ihm in einem Satz, was du verstanden hast, und mach weiter.
Engine: Immer die leichte (04_render_frames.js), und erwähne nie das Wort „Engine“.
- Will er selbst etwas ändern? Öffne ihm das Studio →
references/studio.md - Remotion-Bildschirm nur, wenn er es beim Namen nennt →
references/remotion.md
🎬 DaVinci: Sagt er „Mach es in DaVinci“? Dieses Plugin hat keinen Schnitt innerhalb von DaVinci Resolve. Sag ihm das in einem Satz und fahre mit unserer Engine fort (oder exportiere ihm eine SRT-/FCPXML-Datei, wenn er alleine weitermachen will).
🎞️ CapCut-Modus: Sagt er „Mach es mit CapCut“ oder „Ich will selbst mit CapCut bearbeiten“? Statt MP4 wird ein bearbeitbares CapCut-Projekt (Clips mit Zoom, CapCut-Captions und -Texte, Voice, Effekte, Hintergrundaudio, transparente Motion) ausgegeben → references/capcut.md (Ein Skript scripts/40_capcut.py).
⛔ Dein Stil mit dem Nutzer
Du bereitest vor, nicht er. Du darfst ihm keine Liste von Befehlen geben, die er ausführen soll.
- Frage nicht: „Hast du etwas dabei?“ — Überprüfe selbst. Fehlt etwas? „Mir fehlen zwei Werkzeuge, die ich jetzt vorbereite, dauert zwei Minuten — anfangen?“
- Keine Fachbegriffe: „Ein Werkzeug, das die Folien zeichnet“ nicht „puppeteer“, „Videoqualität“ nicht „Codec“.
- Sag ihm, wo wir in jedem Schritt sind, und schätze die Zeit: „Habe die Stille entfernt — die Hälfte des Videos ist weg. Jetzt transkribiere ich deinen Text, 3 Minuten.“
- Eine Sache pro Schritt.
- Gib nicht ab, ohne ihm nach jeder wichtigen Phase einen Screenshot oder eine Zusammenfassung zu zeigen.
✅ Wo läuft es? Überall — Handy · Cloud · Mac · Windows · Linux · Codex
Der lokale Rechner (Mac + Claude Code) ist der schnellste und stärkste, aber nicht zwingend. Du darfst dem Nutzer nicht sagen: „Das geht nicht auf deinem Handy oder in der Cloud.“ Wenn ein Tool in der Umgebung nicht funktioniert, weiche auf die Alternative aus und erwähne in einem Satz, was du verwendet hast.
Lies references/any-environment.md — liefert Alternativen (Transkription, Person freistellen, Motion zeichnen…) und die Handy-Methode. Und die getesteten Rezepte im Detail (ruckelfreier Schnitt, Papiermotion, Zusammenbau) in references/phone-cloud-playbook.md.
- Auf dem Handy: Der Nutzer hängt das Video an die Konversation an und du arbeitest in der Cloud-Umgebung weiter; das Handy kann ausgeschaltet werden.
- Windows:
pythonnichtpython3→references/windows.md.
Windows: python nicht python3, Pfade C:/… → references/windows.md
Schritte 0, 0.5 und 1 — Werkzeuge, Stil und Identität
Lies references/start.md und führe es aus — derselbe Start für alle Modi.
Schritt 2 — Nimm das Video entgegen
| Methode | Wie |
|---|---|
| Datei auf seinem Gerät (am besten) | Kopiere sie nach <work>/src.mov |
| Google Drive-Link | Teilen auf „Jeder, der den Link hat“, dann den Befehl unten |
| Google Drive-Connector | Wenn die Datei privat ist — Connector-Tools in der Session |
Drive-Link (die ID zwischen /d/ und /view):
curl -sL "https://drive.usercontent.google.com/download?id=<ID>&export=download&confirm=t" -o <work>/src.mov
- 4K ist besser (Zoom verringert von der Quelle). Aber 1080p funktioniert auch — lehne es nicht ab und bitte nicht um eine Neuaufnahme.
- Querformat-Video (Interview, Podcast, TV-Folge)? Dieselben Schritte.
Schritt 6 schneidet es vertikal um das Gesicht jeder Einstellung, statt es zu strecken →
references/landscape.md - 🪝 Reel aus einer Folge oder einem Interview = Hook ist Pflicht. Nach
02_captions.py:python3 scripts/22_hook.py suggest <work>- Schreibe 3 Hooks aus der stärksten Zeile (nicht dem ersten Satz, den er sagte) ←
check← er wählt ←apply previewund lieshook_sheet.jpgvor dem vollständigen Rendern.
- Reel, das außerhalb unserer Engines erstellt wurde (fertiges mp4)?
22_hook.py overlay→hook.movtransparent. - Die Regeln und Formeln →
references/podcast-hook.md
Überprüfe die Dauer:
ffprobe -v error -show_entries format=duration -of csv=p=0 <work>/src.mov
🎞️ Ausgelassene Frames?
Browser-Aufnahme oder nicht-originale Kamera-App (das iPhone im Browser wirft 13-54 % weg). Überprüfe die Lücken vor dem Schnitt:
ffprobe -v error -select_streams v -show_entries frame=pts_time -of csv=p=0 <work>/src.mov | python3 -c "import sys;t=[float(x) for x in sys.stdin if x.strip()];g=[(round(a,2),round(b-a,2)) for a,b in zip(t,t[1:]) if b-a>0.07];print(len(g),'Lücken',g[:8])"
Gibt es Lücken? Repariere vor Schritt 3:
ffmpeg -i src.mov -vf "minterpolate=fps=30:mi_mode=mci:mc_mode=aobmc:me_mode=bidir:vsbmc=1" -c:a copy src_fixed.mov
Und sag ihm: „Die Aufnahme hatte ausgelassene Frames — ich habe sie repariert.“ Beim nächsten Mal rate ihm, mit der Kamera-App aufzunehmen.
🔬 Überprüfung von Belichtung und Farben (Sekunden, still)
python3 scripts/25_scopes.py <work>
- „In Ordnung“ ← erwähne es nicht.
- Gibt es ein Problem (dunkel, gelbstichig, blass) ← ein Satz: „Das Video ist etwas dunkel und gelbstichig — korrigieren?“
- Zeige ihm vorher und nachher in einem einzelnen Frame.
- Zustimmung ←
theme.json←"grade":"auto"(korrigiert nur die Helligkeit). - Ablehnung oder Schweigen ← nicht anfassen (Regel 4).
Schritte 3-11 — Produktion
3) Schnittplan
python3 scripts/01_cut_plan.py <work>
Sag ihm, wie viel entfernt wurde: „Habe 52 Sekunden Stille entfernt — das Video ist jetzt 46 statt 98 Sekunden lang.“
3.5) Audio verbessern (optional): Gibt es Hall oder Rauschen, oder sagt er „Verbessere den Ton“?
← references/audio-enhance.md
bash scripts/02b_enhance_audio.sh <work> --local
4) Transkription mit Wort-Zeitstempeln
source "${CLAUDE_SKILL_DIR}/../../setup/env.sh"
ffmpeg -v error -i <work>/src.mov -vn -ac 1 -ar 16000 -y <work>/a.wav
python3 scripts/02a_transcribe_dz.py <work> > <work>/whisper.log 2>&1 # Arabisch / Darija (Standard --lang ar)
# Englisches Video: python3 scripts/02a_transcribe_dz.py <work> --lang en
# Algerisches Modell stattdessen / nebeneinander: --engine hadra | --engine compare (erster Lauf lädt ~1,8 GB herunter)
- Sekunden bis zu einer Minute auf der GPU für ein Reel. Fehlgeschlagen?
tail -5 <work>/whisper.log - Standard-Engine:
cppauf einem Mac mit whisper.cpp, sonstwhisper. Führe bei einem neuen algerischen Sprecher einmal--engine compareaus und behalte die Engine, deren Transkript weniger Korrekturen benötigte (speichere sie mit--save-default).
5) Korrektur und Captions
Lies a.json und korrigiere jeden Satz — Whisper macht Fehler im algerischen Darija (wandelt es in Hocharabisch um, schreibt französische Wörter falsch). Korrigiere gemäß references/dialect-dz.md (Rechtschreibung, französische Wörter in den vom Nutzer gewählten Buchstaben), und wenn du ein Wort nicht kennst, frage ihn, anstatt zu raten. Schreibe <work>/fixes.json:
{ "fix": [["هادي","حاجة","normal","بزاف"], ["نخدمو","بـ","Claude","Code"]], "hot": ["بزاف"],
"gloss": {"normal": "عادية", "Claude Code": "كلود كود"}, "fx": {"خلاص":"drop"} }
gloss= arabische Übersetzung in "" nach jedem französischen/englischen Wort ← «normal "عادية"». Der Schlüssel ist das Wort (oder der Ausdruck) wie es imfixsteht. Lateinische Wörter werden automatisch eingefärbt ("hot_latin": falsestoppt das).02_captions.pysagt dir, was du vergessen hast.hot= Wörter, die beim Aussprechen mit einem Markierungsklick hervorgehoben werden.fxoptional ←references/word-fx.md- ⛔ Wortanzahl jedes Satzes = Wortanzahl von Whisper für denselben Satz. Sonst stimmen die Zeitstempel nicht (das Skript stoppt dich).
python3 scripts/02_captions.py <work>
5.5) Zeige ihm den Text und entferne, was ihm nicht gefällt ← Pflicht
Vor dem Design einer Szene:
python3 scripts/10_script_edit.py <work> show
- Gibt seinen Text nummeriert mit Zeitstempeln aus und schreibt
script.txt. - Gibt auch die wiederholten Sätze und einen Löschvorschlag in einem Durchgang aus — führe danach kein
dupesaus. - ⛔ Gib das gesamte Skript im Chat aus und frage: „Was soll ich entfernen?“ — gib dich nicht mit der Datei zufrieden.
Wiederholter Satz: Der erste ist falsch, der zweite die Korrektur. „Du hast den Satz zweimal gesagt — ‹قدرنا نحل السبب› dann ‹قدرنا نعرف السبب›. Soll ich den ersten entfernen?“
python3 scripts/10_script_edit.py <work> drop 6 8 # Entfernt die beiden Sätze aus Video und Audio
python3 scripts/10_script_edit.py <work> keep 1 2 5 9 # Behält nur diese
python3 scripts/10_script_edit.py <work> undo
- Alles danach verschiebt sich, und
cut.json,caps.jsonundsfx.jsonwerden aktualisiert. - Mach es hier. Das Löschen nach dem Design der Szenen verschiebt all ihre Zeiten.
- Nach jedem Löschen: Wiederhole Schritt 6 und das Rendern mit
--force.
6) Schnitt und Zoom
python3 scripts/03_cut_zoom.py <work>
mkdir -p <work>/vfr && ffmpeg -v error -i <work>/cutz.mp4 -vf fps=30 -q:v 3 -y <work>/vfr/%05d.jpg
- Zoom ist für jedes Segment gesperrt (6.0): Erster Lauf schreibt
cut.json←"zooms": {"25.05": 1.06, …}(Schlüssel ist der Segmentanfang in Sekunden des Originals). Entfernst, fügst hinzu oder teilst ein Segment? Der Zoom der anderen bleibt unverändert, sodass deine Rendering-Koordinaten korrekt bleiben. Änderst du den Zoom eines Segments = bearbeite seine Nummer. Die Reihenfolge vonkeepist frei (ein Segment von ganz hinten im Gespräch vor einem früheren ist erlaubt).
6.1) ⛔ Oben abschneiden — Pflicht bei jedem Video mit Karte (halber Bildschirm, R_DOWN, R_LOWER):
python3 scripts/23_headcrop.py <work> --from <Beginn der ersten Karte>
- Schreibt
studio.json←cardTop. - Konstanter Schnitt über die gesamte Videodauer — keine Verfolgung, keine Kamera, die ihn jagt.
- Beginnt über dem höchsten Punkt, den sein Kopf erreicht hat, mit einem kleinen Rand (1,5 %).
- Schneidet weder seinen Kopf ab, noch lässt es leeren Himmel — „zu viel Platz über seinem Kopf“ ist genauso ein Fehler.
- Der Nutzer hat mehrfach darauf hingewiesen und war verärgert.
- Überprüfe mit eigenen Augen an einem Frame, in dem er sich der Kamera nähert.
- Ist unter seinem Körper etwas eingebrannt? Zoome mit
theme.json←cardZoom(Standard 1).
7) Designe die Szenen ← Wichtigster Schritt
Lies vor jeder Szene:
references/motion-rules.md— Identität, Faktenlistefacts.md, Verbote.references/scenes.md— Wie schreibe ich die Szene, Bewegungspaket, Ideen, B-Roll.references/moves.md— Bewegungsbank:python3 scripts/35_moves.py plan --title "…" --cues …← Storyboard (3 Grundlagen, um die es sich dreht + Variationen). Du wählst bewusst aus, und der Nutzer muss nicht wählen.
🎯 Ziel von der ersten Rohfassung (6.0 — das Referenz-Reel, das die Bank übernommen hat und das viral ging): Gib dir Mühe bei Performance und Motion — reichhaltig, tiefgründig und überraschend, nicht leise.
- Plane vor dem Rendern 2–3 Tiefenmomente und sag sie dem Nutzer in einem Satz: Ein Element, das hinter seinem Kopf vorbeigeht (
11_behind_text.js person+MV.person), eine Welle aus seiner Stimme (37_env.py←MV.env), eine Punktkarte hinter seinem Kopf, eine 3D-Pfad, eine Form aus der Kundenidentität, die zur Bewegung wird (Logo-Bogen = Zähler und Wischbewegung), ein One-Take-Einleitung (Kamera taucht ins Logo und taucht im nächsten Shot wieder auf). - Das ist das Erste, wonach du greifst, nicht das Einzige: Karten, Stempel und Abzeichen sind nicht verboten — verwende sie, wenn das Thema es verdient.
- Der Satz, den die Motion schreibt =
nocapdafür (keine Ablenkung zwischen oben und unten). Und das Schreiben über dem Kopf ist besser, wenn Platz ist. - Code-Rezepte ←
references/moves.md§3 und folgende.
⛔ Layout-Regel (vom Nutzer bestätigt):
| Moment | Rechteck | Form |
|---|---|---|
| Sprechen ohne Grafik | R_FULL | Sein Gesicht im Vollbild, Caption unten bei 1460 |
| Irgendeine Grafik oder Motion | R_DOWN | Grafik oben (y 280-520) ← Caption ← Sein Gesicht darunter, volle Breite |
| B-Roll oder große Tafel | R_LOWER | Große Karte oben ← Caption ← Sein Gesicht klein darunter |
| Vollständige Erklärung (Zahlen, Listen) | R_OFF | Kein Gesicht, seine Stimme läuft weiter ← references/explainer-and-pace.md |
- ⛔ Die Caption wird niemals auf das Gesicht des Sprechers geschrieben. In jedem Modus mit einer Videokarte ist die gesamte Caption über der Karte, und der Fortschrittsbalken begleitet sie.
- Die Wahl des Modus ist deine Entscheidung aus Bedeutungsklarheit und dem Bank-Style, nicht eine Katalogauswahl.
7.1) B-Roll schlagen: Vor dem Rendern, wenn das Thema es zulässt:
python3 scripts/36_broll.py suggest <work>
- 3 bis 5 Vorschläge: Bild/Clip (Quelle:
<work>/src.movverarbeitet mitffmpeg, oderpexels.com, oder generiert). - Du fügst sie der Szene hinzu:
"broll": "URL oder Pfad". - Der Nutzer muss sie nicht suchen.
8) Motion und Rendern
8.1) Motion generieren
mv <work>/scenes.txt <work>/scenes.txt.1 # Wenn du Szenen bearbeitest, kopiere zuerst die vorherige Version
# Bearbeite <work>/scenes.txt mit einem Texteditor
python3 scripts/04_render_frames.py <work> --nomotion # Einfach, nur für Szenen-OBEN
8.2) Frame für Frame rendern
python3 scripts/04_render_frames.py <work> --frames # Frames ohne Audio (schnell für die Überprüfung)
8.3) Finales Rendern
python3 scripts/05_assemble.py <work> # MP4 (mit Audio)
9) End Card und Cover
python3 scripts/06_endcard.py <work>
python3 scripts/07_thumbnail.py <work>
10) Qualitätskontrolle
python3 scripts/19_seam_check.py <work> <work>/final.mp4
- Hört sich jedes Wort an und prüft auf Wiederholungen oder Unterbrechungen.
- Melde jedes Problem, aber schlage immer eine Reparatur vor.
11) Lieferung
- Lade
final.mp4undthumbnail.jpgin den Chat hoch. - Frage: „Passt das so, oder soll ich etwas ändern?“
- Wenn er etwas ändern möchte, wiederhole den entsprechenden Schritt (mit
--force, wenn nötig).
⚠️ Wichtige Warnungen
- Überschreibe niemals die Dateien des Skills. Jede Änderung muss im
<work>-Ordner des Projekts erfolgen. - Verwende niemals das System-Python. Verwende immer die virtuellen Umgebungen (
source .../setup/env.sh). - Überprüfe nach jedem Schnitt, ob kein «⚠️» mehr angezeigt wird.
- Frage den Nutzer, bevor du ~4 GB herunterlädst (Ersteinrichtung).
- Bei Windows: Verwende
pythonstattpython3und Windows-Pfade (C:/...).
🔧 Fehlerbehebung
| Problem | Lösung |
|---|---|
segmentation fault in Whisper | Erhöhe den RAM in der Cloud-Umgebung oder verwende --engine whisper (CPU) |
ModuleNotFoundError | Überprüfe, ob source .../setup/env.sh ausgeführt wurde |
| Ton asynchron | Lösche <work>/a.wav und wiederhole Schritt 4 |
| Grafik fehlplatziert | Führe 04_render_frames.py --check aus, um die Koordinaten zu überprüfen |
| Hook-Vorschlag schwach | Verwende 22_hook.py suggest --force mit einem bestimmten Thema |
📚 Referenzen
references/dialect-dz.md— Algerische Darija-Rechtschreibung und Wortlistenreferences/start.md— Einrichtung und Identitätreferences/audio-enhance.md— Audio-Verbesserungreferences/scenes.md— Szenendesign und Bewegungspaketereferences/moves.md— Bewegungsbank und Übergängereferences/word-fx.md— Wort-für-Wort-Effektereferences/studio.md— Studio-Konfigurationreferences/remotion.md— Remotion-Enginereferences/capcut.md— CapCut-Exportreferences/windows.md— Windows-Kompatibilitätreferences/any-environment.md— Alternative Umgebungenreferences/phone-cloud-playbook.md— Handy- und Cloud-Rezeptereferences/motion-rules.md— Motion-Regelnreferences/podcast.md— Podcast-Modusreferences/landscape.md— Landschafts-Videos (YouTube)references/motion-mode.md— Reiner Motion-Modus (Erklärvideo)references/explainer-and-pace.md— Erklärvideo-Temporeferences/podcast-hook.md— Hooks für Podcast-Reels
📝 Lizenz
Privater Skill. Nur zur Verwendung mit genehmigten Tools.