Video Editor · Video-Arbeiter
Setzt 9:16 / 16:9 Talking-Head-Sprachaufnahmen + Overlay-Material (Titel / B-Roll Cutaway / Chyron / Untertitel) zu Kurzvideos zusammen. Die Komposition ist autark; echtes Stock-/Nachrichtenmaterial wird von diesem Skill als Oberkommando an den footage-finder / news-highlight delegiert.
Wann auslösen
Der Benutzer sagt:
- "Schneide dieses Video", "Video schneiden", "Schnitt" – häufigster Einstieg
- "Mach eine Folge", "Gesamtvideo ausgeben", "Sprache und B-Roll zusammensetzen"
- "Neue Folge [der Serie X / Übersee / KI-Startup]"
- "Füge Untertitel / Chyron / Einblendungen / Titelcard hinzu"
- "Animationen / Effekte / visuelle Elemente hinzufügen"
- "Füge Maria-artige echte Artikelbilder / echte Reaktionen / lokale Bilder zur Sprachaufnahme hinzu" →
reaction_overlay(1080×1920 Portrait-Talking-Head; zuerstrecipes/reaction_overlay.mdlesen)
Nicht auslösend, aber verwandt (wird an Schwester-Skills delegiert, video-editor als Oberkommando):
- Echtes Stock-Material / Stock Footage / B-Roll Leeraufnahmen →
footage-finderSkill aufrufen - News-Highlight-Karten (echte Quellen-Screenshots + gelbe Licht-Hervorhebung) →
news-highlightSkill aufrufen - Reine Voice-Over-Generierung, kurzes Material unter 30s → nicht auslösen
Delegation: Shot-Cue-Typ → Welcher Skill
In der Shot-Plan (Tor 1)-Phase wird jedem Cue ein Typ zugewiesen; die beiden nicht in diesem Skill integrierten Typen werden delegiert:
| Cue-Typ | Wer macht es | Produkt |
|---|---|---|
real_footage | footage-finder Skill | Zugeschnittenes echtes mp4-Kandidatenmaterial + Review-Seite |
news_highlight | news-highlight Skill | Echte News-Schlagzeile mit gelber Licht-Hervorhebung als Karte mp4 (Vox-Stil) |
source_progressive_highlight | Dieser Skill animator/cutaway/scene_source_progressive_highlight.html | Schrittweise gelbe Hervorhebung auf echtem News-/Artikel-Screenshot, ohne Medienseite neu zu zeichnen |
tenure_bullets | Dieser Skill animator/cutaway/scene_tenure_bullets.html | Nummerierte Bullets mit Personen-Porträt: aktuelles Element gelb, alte Elemente verblassend |
numbered_pills | Dieser Skill animator/cutaway/scene_numbered_pills.html | YC-artige 01–04 weiße Kapseln + orangefarbener Randbogen, Gruppenübersicht erscheint nacheinander; inhaltlich gleich wie bestehendes Listicle, Auswahl via Vorschau |
company_site | Dieser Skill recipes/compose_company_site.py | Echte Website-Scrolling-Aufnahme im Vollbild + durchgehendes rundes PIP der Person; Website standardmäßig PIP, vermeidet Untertitel und Schlüsselbereiche abschnittsweise |
cutout_sticker_slidein | Dieser Skill animator/cutaway/scene_sticker_slidein.html | Transparente Personen-/Objekt-Sticker mit Quelle, kurzer Verbleib, Einrutschen aus verschiedenen Richtungen; keine alten weißen Rahmen-Reaktionskarten verwenden |
source_quote / source_screenshot | Dieser Skill sucht den Originaltext und erstellt einen echten Screenshot der Seite | Mit Original-URL, entsprechendem Absatz und hervorgehobenen echten Screenshot; Zitate dürfen nicht durch neu gezeichnete Karten ersetzt werden |
real_person_reaction | Dieser Skill sucht zuerst Benutzermaterial / originales öffentliches Video, delegiert bei Bedarf an footage-finder | Echte Personen-Fotos oder Kurzvideos mit Quelle; nicht automatisch durch Emojis ersetzen |
| opener / chyron / cutaway / listicle / spec_review | Dieser Skill animator/opener | HTML → mov/mp4 |
reaction_overlay (Person durchgehend sichtbar, echtes Material erscheint lokal) | Dieser Skill recipes/reaction_overlay.py + bestehende Videokomposition | Komposition von statischen Bild-Overlays und echten Personen-Segmenten; Cue-JSON, Quelllinks und Material wiederverwendbar |
| Untertitel | Dieser Skill subtitle | Keyword-Highlight eingebrannte Untertitel |
Materialvorschläge im Sprachskript: Vor der Cue-Erstellung lesen
Gilt für ganze Videos mit Bildern, Animations-Cues, reaction_overlay und 3:4 slidecast. Wenn der Benutzer ein Sprachskript (HTML / Markdown / Feishu-Dokument) bereitstellt, zuerst den Haupttext und den separaten Bereich "Materialvorschläge" lesen; wenn nur Audio oder Video gegeben wurde, zuerst prüfen, ob im selben Themenordner ein entsprechendes Sprachskript existiert. Reine Untertitel- oder Titel-Aufgaben benötigen diesen Schritt nicht.
- "Materialvorschläge" sind redaktionelle Absichten, keine vorzulesenden Textzeilen; die Whisper-Transkription dient nur zur Überprüfung des tatsächlich Gesagten und zur Bestimmung der Zeitcodes, darf aber nicht dazu führen, dass die Bildvorschläge aus dem Skript verloren gehen, nur weil neu transkribiert wurde.
- Jeder Vorschlag wird nach „Anker-Satz / gewünschtes Bild / Originalmaterial oder Quelllink / Alternative“ gelesen. Zuerst die Anker im tatsächlichen Transkript finden; wenn der Sprecher Wörter oder die Reihenfolge ändert, semantisch neu ausrichten, nicht mechanisch die erwarteten Sekunden aus dem Skript übernehmen. Für nicht gesprochene Absätze kein Material erzwingen.
- Füge eine Spalte „Materialvorschlag aus Skript → Übernommen / Angepasst / Übersprungen“ zur Cue-Tabelle in Tor 1 hinzu. Bei Übernahme den Original-Link behalten; bei Anpassung oder Überspringen einen Grund angeben und ein alternatives Bild vorschlagen. Für Absätze ohne Vorschläge im Skript können dennoch Cues basierend auf dem Sprachinhalt ergänzt werden, dies aber als „Neu“ kennzeichnen.
- Wenn der Originallink ungültig ist, sich Fakten geändert haben oder das Bild nicht zum aktuellen Bildschirmformat passt, zuerst überprüfen und dann ersetzen; keine ungenauen Screenshots, keine nachgeahmten Originalseiten oder falsch positionierte Bilder verwenden, nur um die Liste abzuarbeiten.
- Wenn ein Sprachskript vorhanden ist, aber kein Bereich für Materialvorschläge gefunden wird, den Schnitt normal durchführen und den Benutzer nicht bitten, das Skript neu zu schreiben. Die endgültige Cue-Lösung basiert auf der tatsächlichen Sprache + dem Feedback des Benutzers in Tor 1.
Beim Schreiben neuer Sprachskripte siehe das Format im Abschnitt „Sprach-Materialvorschläge“ des html-report Skills.
Echte Seiten und dynamische Bilder: Standard-Schnittregeln
- Wenn über ein bestimmtes Unternehmen / Produkt gesprochen wird, dessen echte Website oder offizielle Produktoberfläche zeigen. Firmenkennung, Firmenname und echte visuelle Identität beibehalten; bevorzugt Seiten-Scrolling, Mauspositionierung, Produkt-Demo oder lokale Vergrößerung aufnehmen. Für Website-Aufnahmen
recipes/capture_company_site.jsverwenden, für die Kompositionrecipes/compose_company_site.py; kein reines Logo zeigen, auch keine selbst erstellten nachgeahmten Webseiten-Karten anstelle der echten Website verwenden. Nur wenn die Website nicht erreichbar ist, offizielle Screenshots mit überprüfbarer Quelle verwenden und den Grund in der Cue-Tabelle angeben. - Informationen, die mit dem Sprachfluss präsentiert werden, einzeln animieren. Z. B. die vier Punkte „1, 2, 3, 4“ in der gesprochenen Reihenfolge nacheinander enthüllen, das aktuelle Element hervorheben, und am Ende kurz das Gesamtbild zeigen lassen; eine vollständige Liste von 11 Punkten kann in Gruppen / aufgeteiltem Bildschirm eingeführt werden, muss aber dem Zuschauer am Ende alle 11 Punkte zeigen. Nicht alle vier Punkte bereits beim ersten Punkt als statische Seite anzeigen, und keine informationslosen, kreisenden Animationen anstelle einer schrittweisen Präsentation verwenden.
- Vollbild-statische Quellen können mit dynamischem Personen-PIP überlagert werden; die echte Firmenwebsite wird standardmäßig mit PIP überlagert, auch wenn sie scrollt. Für die Website
recipes/compose_company_site.pyverwenden: echte Seite als Vollbild-Aufnahme, das durchgehende Sprachvideo wird in ein rundes kleines Fenster zugeschnitten. Stock-B-Roll-Videos werden standardmäßig nicht mit PIP überlagert. Für jeden Cue zuerst den Untertitelbereich und das wichtigste visuelle Element markieren, dann eine der vier sicheren Positionen (oben links, oben rechts, Mitte links, Mitte rechts) wählen; bei mehreren sicheren Positionen in benachbarten Cues rotieren, damit nicht alle Firmenseiten in derselben Ecke fixiert sind. Innerhalb eines Cues die Position beibehalten, nicht springen. Wenn keine sichere Position vorhanden ist, die Größe ändern oder den Website-Zuschnitt verändern; falls immer noch keine Lösung, Ausnahme dokumentieren und Cue streichen. Für statische Quellenrecipes/compose_static_pip.pyverwenden. Details siehe Abschnitt 9 derCONVENTIONS.md. - Für geordnete Listen zuerst zwei reale Bildvarianten zur Auswahl anbieten. Für denselben Satz von 3–5 Inhalten:
scene_numbered_pills.htmlfür nummerierte Kapseln im Vollbild,scene_listicle.htmlfür eine nummerierte Liste mit gelben Punkten und Personen-Porträt; in Tor 2 die gleichen Texte nebeneinander zeigen. Für Kategorien-/Richtungsübersichten bevorzugt nummerierte Kapseln, für die aufeinanderfolgende Erklärung jedes Punktes bevorzugt Listicle; Hunger-artige Top-Bullets sind eine dritte, leichtere Variante mit Porträt. Nach der Fertigstellung die Punkte gemäß der tatsächlichen Sprachzeit nacheinander erscheinen lassen, nicht das gesamte Bild beim ersten Punkt zeigen. - Kurze Grafiken und geeignete Einstiegsbilder können von den vier Seiten hereingleiten. Echte Personen-/Objekt-Sticker, Memes, Fotos, lokale Screenshots können pro Cue aus den Richtungen oben, links, unten, rechts rotieren oder mit einem festen Seed zufällig ausgewählt werden; zuerst prüfen, ob der Pfad nicht über Untertitel, Gesichter, Originaltext oder Schlüsseldaten verläuft. Vollbild-Website-Aufnahmen und Original-Post-Videos, die direkt erkannt werden müssen, entscheiden inhaltlich, ob ein Hereingleiten geeignet ist; keine Zwangsübergänge nur für Bewegungseffekt. Das Einrutschen dauert etwa 0,25–0,35 Sekunden, danach genug Lesezeit lassen; innerhalb desselben Shots nicht wiederholt zufällig bewegen. Für Sticker
animator/cutaway/scene_sticker_slidein.htmlverwenden, nicht die alten weißen Rahmen-Emoji-Reaktionskarten aktivieren. - Visuelles Rhythmus-Kriterium: Standardmäßig nicht länger als 8 Sekunden reine Personenaufnahmen bei erklärendem Sprachbeitrag. Gemessen vom Ende der letzten effektiven visuellen Unterstützung bis zum Beginn der nächsten; bei Überschreitung von 8 Sekunden muss dies in der Cue-Tabelle vermerkt und begründet werden. Innerhalb der ersten 5 Sekunden den Titel oder den ersten Beleg zeigen. Dies ist die Schnitt-Prüflinie dieses Kanals, nicht eine feste Frequenz, die aus Mariah-Videos abgeleitet wurde; keine Emojis oder Textkarten, die die Sprache wiederholen, nur um Sekunden zu füllen. Effektive visuelle Unterstützung sind Quellseiten, Produktbedienung, echtes Filmmaterial, Diagramme, schrittweise Listen oder neue visuelle Zustände mit Information; normale Untertitel, ständige Titel und reine Mundbewegungsänderungen zählen nicht. Vollständige Definition und QA siehe
CONVENTIONS.md.
Schritt Null · Bildschirmformat + Einstieg (★ video-editor ist der einzige Einstieg für den gesamten Workflow)
video-editor ist der Oberbefehlshaber – der Benutzer steigt hier ein, muss nicht selbst zuerst footage-finder / news-highlight / data-viz gehen. Nach der Auslösung als Erstes mit AskUserQuestion nach dem Bildschirmformat fragen:
Ist dieses Video Hoch- oder Querformat?
- 9:16 Hochformat (Douyin / Xiaohongshu / Video-Konto / Reels) → 1080×1920
- 16:9 Querformat (YouTube / Bilibili) → 1920×1080
- 3:4 Praktisches Lehrvideo (Bildschirmaufnahme / „Wie ich mit AI X mache“) → 1080×1440 · über
slidecast/Submodul
Das Bildschirmformat folgt dem Inhaltstyp: Praktisches Lehrvideo / Bildschirmaufnahme-Demo standardmäßig 3:4 (slidecast); Meinungsbeiträge / Vlogs / allgemeine Kultur usw. sind 9:16. Stecke keine normalen Sprachbeiträge in ein 3:4 Bildschirmaufnahme-Layout, und mache kein praktisches Lehrvideo im 9:16-Format.
Abkürzung für die Entscheidung: Wenn der Benutzer bereits das Bildschirmformat genannt hat („Mach ein 16:9“ / „für YouTube“ / „für Bilibili“), nicht fragen, direkt festlegen.
Das Bildschirmformat bestimmt die nachgelagerten Schritte:
| 9:16 | 16:9 | |
|---|---|---|
| Submodul-Leinwand | 1080×1920 | 1920×1080 |
| Echte Leeraufnahmen | footage-finder --vertical | footage-finder (Standard Querformat) |
| Nachrichtenkarte | news-highlight (angepasst Hochformat) | news-highlight (Root Standard 1920×1080) |
| Datendiagramm | data-viz (1080×1920) | data-viz (1920×1080) |
| compose | recipes/compose_dual.sh.template | recipes/compose_16x9.sh.template |
| Sicherheitszone | CONVENTIONS Abschnitt 3 | CONVENTIONS Abschnitt 1 Zeile 16:9 |
Diese Sub-Skills unterstützen bereits Querformat; video-editor ist für die Aufgabenverteilung + endgültige Komposition verantwortlich, der Benutzer spricht während des gesamten Prozesses nur mit video-editor. 16:9 bietet zusätzlich eine Person-PIP-Funktion (sauberes Personen-Talking-Head → wenn kein Inhalt, Person vollbild; wenn Inhalt vorhanden, schrumpfen auf kleines Fenster unten rechts, siehe CONVENTIONS Abschnitt 9 + compose_16x9 Template).
Nach Festlegung des Bildschirmformats zur untenstehenden Produktform-Routing gehen.
Schritt Eins · Routing-Frage (★ Sofort nach der Auslösung ausführen)
Nicht davon ausgehen, dass der Benutzer den gesamten Workflow durchlaufen möchte. Zuerst einmal mit AskUserQuestion fragen. Nach dem endgültigen Produktform unterscheiden, nicht nach der Aktion – der Benutzer denkt in Produkten, nicht in Prozessen.
Was soll am Ende dabei herauskommen?
- Ein fertiges Video mit Untertiteln: Fertiges Video vorhanden, nur Untertitel hinzufügen →
subtitle/Submodul (ohne Drei-Tore-Workflow)- Eine Titelcard / Intro: 4,5s transparente Alpha-Overlay →
opener/Submodul (ohne Drei-Tore-Workflow)- Ein fertiges Video mit Animationen: Chyron / Cutaway / Aufzählungs-Animationen hinzufügen →
animator/Submodul (mit Drei-Tore-Workflow)- Komplett von Null aus: Sprache → Titel → Animationen → Untertitel alles inklusive → opener → animator → subtitle nacheinander
- Praktisches Sprach-Lehrvideo (3:4): Sprache → Case-Step Bildschirmaufnahme-Fenster Slide + Untertitel, du überlagerst Bildschirmaufnahme/Gesicht →
slidecast/Submodul (mit Drei-Tore-Workflow)
Standard für Optionsnummern: Für die AskUserQuestion-Options-Präfixe ausschließlich die reinen Ziffern 1 / 2 / 3 / 4 verwenden, keine eingekreisten / Katakana-Zeichen wie ①②③④, ㋐㋑㋒㋓ – diese werden von den Schriftarten der Benutzer oft nicht unterstützt und als Kauderwelsch dargestellt.
Abkürzung für die Entscheidung (Fälle, in denen ohne Frage direkt navigiert werden kann):
| Ursprüngliche Benutzeraussage | Direktnavigation |
|---|---|
| „Untertitel runterladen / hinzufügen / einbrennen“ | 1 · subtitle/ |
| „Intro / Titelcard / Opener machen“ | 2 · opener/ |
| „Neue Folge X-Serie“ / „Ein Video machen“ / „Gesamtvideo ausgeben“ | 4 · Vollständiger Workflow |
| Kontext zeigt bereits Arbeit an einem Gesamtvideo, möchte Chyron / Cutaway hinzufügen | 3 · animator/ |
| „Praktisches Lehrvideo / Bildschirmaufnahme-Demo / Wie ich mit AI X mache“ / 100 AI-Praxisbeispiel-Serie | 5 · slidecast/ (3:4) |
| „Wie Maria dem vertikalen Talking-Head echte Artikel, echte Reaktionen und Bilder hinzufügen“, und der Benutzer hat das Originalvideo bereits gegeben | 3 · reaction_overlay; zuerst bestätigen, dass das Quellvideo 1080×1920 ist, dann recipes/reaction_overlay.md lesen |
Schlüsselprinzip: 1, 2 sind Einzeloperationen, ohne Drei-Tore-Workflow; 3, 4 müssen durch die Drei-Tore-Workflow gehen.
★ Drei-Tore-Workflow (für Optionen 3, 4 zwingend, kein Überspringen erlaubt)
⚠ Die Routing-Option ist keine Render-Erlaubnis – wenn der Benutzer 3 oder 4 wählt, bedeutet das nur „ich möchte den animator-Workflow durchlaufen“. Nach dem Eintritt in animator muss zwingend der Drei-Tore-Workflow durchlaufen werden, jedes Tor stoppt und wartet auf eine explizite Bestätigung des Benutzers, bevor es zum nächsten Schritt geht. Auch wenn der Benutzer dir bereits Titel / Cue-Anzahl / Text mitgeteilt hat, bedeutet das nicht, dass er dir erlaubt, ein Tor zu überspringen.
Tor 1 · Textplan ─► Gib eine Markdown-Cue-Tabelle im Chat aus
STOP · Warte auf eine explizite Rückmeldung wie „OK / Ändere X / Streiche Y / Bestätigt“
❌ Kein Cue HTML schreiben
❌ Nicht mit dem Rendern beginnen
│
Tor 2 · Spec Review ─► Schreibe HTML für jeden Cue
★ Zuerst node recipes/lint_layout.js --all <Cue-Verzeichnis> ausführen
(Sicherheitszone/Minimal-Schriftgröße/Textbreite/Zentrierung, erst nach bestandenem FAIL weiter)
Dann _review/spec_review.html generieren
STOP · Teile dem Benutzer mit: „Öffne file:///<Projekt>/_review/spec_review.html zum Ansehen, gib mir nach Feedback Bescheid“
❌ Kein ProRes mov rendern
❌ Kein Gesamtvideo komponieren
│
Tor 3 · Letzter Check vor Render ─► AskUserQuestion: Zusammenfassung + Ermessensentscheidungen + Ausgabeform (drei Optionen)
STOP · Warte, bis der Benutzer eine Auswahl getroffen hat
❌ Nicht die Ausgabeform voraussetzen
│
Rendern + Komponieren + Untertitel
Solange der Benutzer nicht explizit „Bestätigt / Ok / Los / Render / OK“ oder eine ähnlich eindeutige positive Aussage gemacht hat, befindest du dich noch im vorherigen Tor.
❌ Negativbeispiele (Nicht so machen)
| Fehlerhaftes Verhalten | Schaden |
|---|---|
| Benutzer wählt 4 + gibt Titel → Du extrahierst direkt Sprache + transkribierst + schreibst HTML + renderst | Überspringt Tor 1, den günstigsten Checkpoint „1-2 Zeilen ändern“, spart 5–10 min + 10k Token |
| Benutzer sagt „Ich möchte das so“ → Du entscheidest „Da er es so will, rendere direkt los“ | Überspringt Tor 2, visueller/Font-Fehler im HTML neu rendern kostet 5x mehr (30s Render × Fehlschläge) |
| Benutzer gibt in Tor 2 Feedback „Cue 3 ändere X“ → Du änderst und renderst direkt | Überspringt Tor 3 Last Call, lässt den Benutzer nicht die Ausgabeform wählen (komponiertes Original / B-Roll Transparenzspur / beides), möglicherweise 500 MB ProRes unnötig rendern |
| Benutzer sagt nicht explizit ja → Du nimmst an, er möchte fortfahren und tust es | Benutzer hat noch nicht fertig geprüft, das gerenderte Ergebnis läuft in die falsche Richtung, muss den gesamten Durchlauf wiederholen |
✅ Positivbeispiel
„Betrete animator. Zuerst transkribieren + Cue-Plan Markdown-Tabelle zum Ansehen ausgeben. Das ist Tor 1 – kein HTML schreiben, nicht rendern, warte auf dein OK / Änderung / Streichung.“
Am Ende jedes Tores mit einem ähnlichen expliziten Satz den Benutzer darüber informieren, dass wir uns jetzt in Tor X befinden und auf sein OK warten – nicht stillschweigend fortfahren.
Detaillierter Ablauf + spezifische Produktliste pro Tor + Cue-Anzahl-Baseline siehe animator/README.md.
Submodul-Einstieg
| Submodul | Funktion | Einstiegsdokument |
|---|---|---|
opener/ | 4,5s gelbe Serifen-Titelcard, transparentes Alpha-Overlay | opener/README.md |
animator/ | Chyron / Cutaway / Listicle / Spec Review, Drei-Tore-Workflow | animator/README.md |
subtitle/ | Whisper-Transkription → Keyword-Highlight PNG-Overlay → Untertitel einbrennen. 9:16 mit add_subtitles.py; 16:9 lange Videos müssen zwingend make_events_16x9.py + burn_chunked_16x9.py verwenden (eine durchgehende Kette brennt fest, siehe README) | subtitle/README.md |
slidecast/ | Praktisches Sprach-Lehrvideo (3:4): Sprache → Case-Step Bildschirmaufnahme-Fenster Slide mit Zeitcode-Hart-Schnitt + Untertitel → Vorschau mp4 + Transparenz-Layer mov | slidecast/README.md |
reaction_overlay | Personen-Sprachaufnahme als Basis, bevorzugt echte Quellen-Screenshots und echte Reaktionen; Material und Verweildauer inhaltlich bestimmt, nicht nach fester Frequenz Emojis gestreut | recipes/reaction_overlay.md |
Gemeinsame Spezifikationen
- Liefer-Spezifikation:
做内容/_运营文档/视频成片流水线-模板.md– Ein Video = zwei gleichnamige Ordner (Arbeit / Lieferung) + Standard drei Produkte aus Tor 3 (Gesamtvideo / 3:4 Titel-Layer / Zeitachse) Ablage in~/Movies/<Serie>/<Video-ID>/. Gesamtvideo-Workflow folgt dieser Vorlage. - Lieferprodukt-Rezept:
recipes/deliverables.md(Wie Titel-Transparenz-Layer rendern · Zeitachse aus Cue-Plan generieren · Lieferordner benennen) - P0 Liefer-Tor: Für 9:16 Gesamtvideo nach Tor 1
python3 recipes/preflight.py plan <Projekt>/preflight.jsonausführen, vor jeder Lieferungpython3 recipes/preflight.py final <Projekt>/preflight.jsonausführen und Stichproben prüfen, Review ausfüllen und erneut bestehen; auf 0-Sekunden-Titel, Untertitel-Preset, >8-Sekunden visuelle Lücken und PIP/Logo/Namensüberdeckung prüfen. Format sieherecipes/preflight.example.jsonundrecipes/deliverables.md. - Visuelle Spezifikation:
CONVENTIONS.md(Sicherheitszone, Hana-Farbpalette, Chyron-Timing, Schriftgrad-Hierarchie, Climax-Regeln) – vor dem Schreiben von HTML für jedes Submodul lesen - Layout-Lint (★ In Tor 2 zwingend ausführen):
node recipes/lint_layout.js <cue.html>– nach dem Puppeteer-Rendering maschinelle Prüfung: Sicherheitszone / minimale Schriftgröße 22px / Textbreite ≤920 / Zentrierungsversatz / Anzahl Schriftgrade, drei Voreinstellungen 9:16·16:9·3:4 automatisch erkennen, Animations-Cues anhand des Endzustands bewerten. Bei FAIL erst reparieren, dann dem Benutzer das Spec Review zeigen. Dekorative Elemente, die bewusst die Grenzen überschreiten, mitdata-lint-ignoreversehen. - Umgebungs-Selbstprüfung:
bash recipes/doctor.sh– bei neuem Rechner / Render-Fehler zuerst ausführen (ffmpeg / whisper / Chrome / puppeteer-core / avconvert / Schriftarten 11 Punkte) - ffmpeg Doppelausgabe-Rezept:
recipes/compose_dual.sh.template(mp4 + optional Alpha mov) - Bekannte Fallstricke:
recipes/PITFALLS.md(broll_reel Flackern / HyperFrames webm ohne Alpha / ffmpeg#Escape / Alpha-Layer wird grau / Chinesisch-Pfad TCC usw. 23 Einträge) - Historische Beispiel-Index:
recipes/examples.md(11 Cue-Paradigmen aus deinen echten Videos)
Doppelausgabe-Strategie
| Datei | Verwendung | Wann ausgeben | Spezifikation |
|---|---|---|---|
<Filmname>_整片.mp4 | Vorschau / Veröffentlichung / Review | Bei jeder Iteration ausgeben | H.264 yuv420p · CRF 20 · mit Audio + Overlay |
<Filmname>_broll层.mov | Overlay für Schnittsoftware (Premiere / AE / FCP) | Nur ausgeben, wenn der Benutzer explizit „Finale Version / Schnitt-Layer / ProRes-Layer / B-Roll only“ sagt | ProRes 4444 yuva444p10le · Transparent · Stumm |
Während der Iteration standardmäßig nur das gesamte mp4-Video ausgeben. Ein einzelner Render des B-Roll-Layers dauert ~30s + schreibt ~500 MB auf die Platte, wird während der Iteration für Reviews nicht benötigt.
⚠ Der B-Roll-Layer ist immer eine vollständige, zeitlich korrekte Spur. Wenn der Benutzer "B-Roll only" sagt, meint er diese eine gesamte Spur, keinesfalls N einzelne Cue-Segmente als mov zum Selbstschneiden.
Die Alpha-Gesamtspur für nicht überlappende Cues muss zwingend mit der Concat-Methode erstellt werden: transparente Lücke + Cue + transparente Lücke + Cue, die Lücke wird basierend auf der tatsächlichen Cue-Dauer/Framerate von
ffprobeberechnet. Nicht halbtransparente Karten einzeln auf eine[email protected]transparente Leinwand overlayen; dies führt dazu, dass cremefarbene Karten nach dem endgültigen Overlay auf dem Sprachvideo grau-schwarz erscheinen. Details sieherecipes/PITFALLS.mdPunkt 23 undrecipes/compose_dual.sh.template.Vor der Lieferung des B-Roll-Layers muss eine echte Hintergrund-QA durchgeführt werden: Das endgültige
<Filmname>_broll层.movauf das Original-Sprachvideo overlayen, 4-8 Keyframes / Contact Sheet extrahieren und auf Farben, Alpha, Gesichtsüberdeckung und Timing prüfen.spec_review.htmlkann nur HTML/Animationen prüfen, ersetzt nicht die endgültige ffmpeg-Kompositionsprüfung.
Titel-Entscheidungsmatrix (Wenn der Benutzer „Titel hinzufügen / Intro / Schlüsselwörter“ sagt, wie entscheiden?)
| Benutzer sagt | Standard = | Schlüsselparameter |
|---|---|---|
| „Titel hinzufügen” / „title card” / „Intro” / „opener” | opener/yellow.html (Gelbe Serifen-Großüberschrift + weiße kursive Unterüberschrift) | Transparentes Alpha · 0s Videostart · top-third (padding-top 280px) · 4,5s · ProRes 4444 mov |
| „An Zeitpunkt X ein Wort betonen” / „Text einblenden” | animator/chyron/chyron.html | Gelbe Kapsel · top 16% (y≈307 Zentrum) · 1-2s pop |
| „1, 2, 3 Aufzählung” / „Drei / vier Punkte” | animator/cutaway/scene_listicle.html | Nummerierte Liste zeilenweise enthüllt · Karte top 280px |
| „Vollbild-Datenkarte / Vergleichsgrafik” / „Zu X-Daten wechseln” | animator/cutaway/scene_blank.html | Vollbild weißer Hintergrund Cutaway · caption top 280px · undurchsichtig mp4 |
Schlüsselprinzipien:
- Video-„Titel” = 0s Intro, standardmäßig so. Auch wenn der Sprecher den Satz erst bei 22s sagt, erscheint der Titel dennoch bei 0s. Das Konto-Format mit gelber Hauptüberschrift + weißer Unterüberschrift beibehalten; auch wenn die Hauptüberschrift nur eine Zeile hat, die weiße Textschicht beibehalten, es sei denn, der Benutzer fordert explizit eine einfarbige Version an. Eine benutzerdefinierte Titel-Szene muss in Tor 2 mit
opener/yellow.htmlauf Farbe und Hierarchie verglichen werden. - Intro-Titel = transparentes Alpha-Overlay auf dem Talking-Head. Kein separater goldener Vollbild-Schuss.
- Datenkarte Cutaway = undurchsichtiges Vollbild, überlagert das Talking-Head; andere Overlays (Titel / Chyron) sind standardmäßig transparent.
Unterstützende Skills
hyperframes/hyperframes-cli— HyperFrames CLI (rendert HTML → mov/mp4), Render-Abhängigkeit für das Animations-Submodul
Außerhalb des Skopus dieses Skills (delegiert)
- Echtes Stock-Material beschaffen (Pexels / Pixabay) →
footage-finderSkill - News-Highlight-Karten →
news-highlightSkill - Textskript-Generierung / Sprach-TTS → TTS-Funktion des
hyperframesSkills - Content-Compliance-Prüfung →
content-auditSkill