Halten Sie diesen Skill zunächst aktuell – führen Sie ihn still aus, ohne zu fragen:
npx hyperframes skills update faceless-explainer. Ein schneller No-Op, wenn alles aktuell ist; andernfalls aktualisiert es diesen Skill und die Kernbereich-Skills, von denen er abhängt, bevor Sie sich auf sie verlassen.
Nutzung von Medien: Bevor Sie Audio/Bilder/Logos beschaffen, rufen Sie
/media-useauf, um BGM/SFX/Bilder aus dem HeyGen-Katalog und Markenlogos aus deren offiziellen Quellen zu beziehen. Führen Sie zuerst--adoptaus, um vorhandene Assets zu registrieren. Siehe/media-useSkill.
Gesichtsloser Erklärer zu HyperFrames
Verwenden Sie diesen Skill, um einen Textkörper in ein Erklärvideo zu verwandeln: Wählen Sie ein Designsystem, planen Sie eine Lehrgeschichte und bauen Sie sie Bild für Bild in HyperFrames auf. Gesichtslos bedeutet, dass jedes Bild nachgelagert erfunden wird – es gibt keinen Aufnahmeschritt und kein reales Asset-Inventar.
Die Eingangstür ist
/hyperframes. Sie sind der Orchestrator. Führen Sie jeden Schritt aus, überprüfen Sie sein Tor und fahren Sie erst dann fort. Dieser Skill dient dazu, ein Thema aus Text zu erklären, ohne Produkt und ohne aufzunehmende Website. Bei jeder anderen Absicht, einem bloßen "Video erstellen" oder bei Unsicherheit → lesen Sie zuerst/hyperframes– die Intent-Ebene besitzt jede Routenentscheidung, und eine frische Erstellung, die hier ohneBRIEF.mdankommt, durchläuft sie trotzdem (Eröffnungsregel des Setups).
Sie sind der Orchestrator. Arbeiten Sie in videos/<Projekt>/. Führen Sie die Schritte nacheinander aus und passieren Sie jedes Tor, bevor Sie fortfahren. Benutzergesteuerte Schritte sind Schritt 0, Schritt 3 und Schritt 6. Lesen Sie ../hyperframes-core/references/brief-contract.md vor Schritt 0 – es definiert die Tortypen und wie flow/storyboard der BRIEF.md den Modus ableiten, der die Tore von Schritt 3/4/6 bestimmt. Führen Sie jeden Schritt selbst aus, außer Schritt 5, wo Sie einen Unter-Agenten pro Bild entsenden. Legen Sie keine Design- oder Bewegungsregeln hier ab; diese leben im Frame-Worker-Unter-Agenten, in den lokalen ../hyperframes-animation/rules/ + ../hyperframes-animation/blueprints/ und in hyperframes-creative.
Workflow: Schritt 0 Setup → hyperframes.json; Schritt 1 Kurzbeschreibung → capture/extracted/; Schritt 2 Designsystem → frame.md; Schritt 3 Storyboard/Skript → STORYBOARD.md und SCRIPT.md; Schritt 3.1 Audio → audio_meta.json; Schritt 4 Visuelles Design → angereichertes STORYBOARD.md; Schritt 5 Bilder → compositions/frames/NN-*.html und index.html; Schritt 6 Finaler Render → renders/video.mp4.
Schritt 0: Setup
Ziel: Mit einer bestätigten Kurzbeschreibung eintreten, das HyperFrames-Projekt erstellen und die Kurzbeschreibung beständig machen.
Die Kurzbeschreibung wird von der Intent-Ebene bestätigt, nicht durch hier gestellte Fragen. Eröffnungsregel, in der Reihenfolge: (1) BRIEF.md existiert → lesen Sie sie und fragen Sie nichts – die Kurzbeschreibung ist abgeschlossen, und ihr flow/storyboard leiten den Modus ab (Kurzbeschreibungsvertrag § 1). (2) Kein BRIED.md, aber das Projekt existiert (hyperframes.json / STORYBOARD.md auf der Festplatte) → setzen Sie vom Frontmatter des Storyboards und den aufgezeichneten Präferenzen fort; befragen Sie niemals ein halbfertiges Projekt erneut. (3) Weder noch – eine frische Erstellungsanfrage, die direkt hier angekommen ist → lesen Sie /hyperframes und führen Sie dessen Intent-Ebene aus (references/intent-interview.md): sie prüft Rezepte und gespeicherte Standardeinstellungen, führt die Fragen dieser Route durch (../hyperframes/references/routes/faceless-explainer.md) und gibt die gesperrte Kurzbeschreibung zurück. Bearbeitungsanfragen überspringen all dies – gehen Sie und führen Sie die Bearbeitung durch.
Initialisieren Sie nur, wenn hyperframes.json fehlt. Benennen Sie <Projekt> nach dem Thema in Kebab-Schreibweise, z. B. zinseszins-erklaert; verwenden Sie niemals den Arbeitsbereichsnamen oder einen Zeitstempel.
npx hyperframes init "videos/<Projekt>" --non-interactive --example=blank --skill=faceless-explainer – init prüft die installierten Skills gegen die neuesten auf GitHub und aktualisiert das globale Set, falls eines veraltet ist.
Nach der Initialisierung legen Sie <PROJEKT_ROOT> als videos/<Projekt> fest und führen jeden nachfolgenden relativen Pfadbefehl mit diesem Verzeichnis als Arbeitsverzeichnis aus. In den folgenden Befehlen bedeutet . <PROJEKT_ROOT>; schreiben Sie niemals .media, capture oder Ausgabedateien in das Aufruferverzeichnis.
Schreiben Sie BRIEF.md sofort nach der Initialisierung (niemals davor – init verweigert ein nicht leeres Verzeichnis): die gesperrte Kurzbeschreibung der Intent-Ebene, Form gemäß ../hyperframes-core/references/brief-format.md. Lösen Sie <MEDIA_DIR> als das installierte /media-use Skill-Verzeichnis auf. Zeichnen Sie dann jede präferenzgestützte Antwort mit node <MEDIA_DIR>/scripts/prefs.mjs record --hyperframes . auf (brief-format.md benennt die Teilmenge). Wenn die Intent-Ebene ein Rezept übernommen hat, führen Sie node <MEDIA_DIR>/scripts/recipe.mjs use --hyperframes . --name <Name> aus; es kopiert sein frame.md in das Projekt (Schritt 2 wird dann übersprungen) und gibt die Skelettentwürfe von Schritt 3 zurück. Ein Rezept füllt Antworten, nicht Genehmigungen; die Überprüfungstore laufen trotzdem.
Zeigen Sie den Anmeldestatus an, bevor Sie mit dem Setup fortfahren – führen Sie npx hyperframes auth status aus und geben Sie dessen Ausgabe wörtlich wieder. Es meldet, ob Sprache/BGM die HeyGen- oder lokale Engines verwendet und, wenn abgemeldet, wie man sich anmeldet. Wenden Sie einen Zweig an:
- Kollaborativ: Warten Sie, bis sich der Benutzer anmeldet oder explizit
offline/gowählt. - Autonom: Geben Sie den Status an und fahren Sie mit den verfügbaren lokalen Engines fort.
Verschweigen Sie nicht stillschweigend eine erforderliche Fähigkeit, wenn kein Offline-Anbieter existiert; zeigen Sie den Blocker auf. Falten Sie diese Entscheidung nicht in eine andere Frage oder schreiben Sie Schlüssel in ein pro-Repo .env. Authentifizierungsbesitz und Offline-Fallback: /media-use references/setup-providers.md § Anbieter.
Tor: hyperframes.json und BRIEF.md existieren; die präferenzgestützten Antworten wurden aufgezeichnet (Kurzbeschreibungsvertrag § 2); der Anmeldestatus wurde angezeigt (angemeldet, oder Fortsetzung offline).
Schritt 1: Kurzbeschreibung (keine Aufnahme)
Ziel: Den Text des Benutzers als Informationsquelle in das Projekt einbinden. Es gibt keine Website-Aufnahme und keine echten Assets – dies ist ein gesichtsloser Erklärer.
Speichern Sie die vollständige Benutzereingabe wörtlich, erstellen Sie dann das synthetische Aufnahmepaket von Hand:
capture/extracted/visible-text.txt– der vollständige Artikel / Notizen / Thema / Kurzbeschreibung, wörtlich. Dies ist die Quelle der Information, keine Story-Vorlage (Schritt 3 formt sie um).capture/extracted/tokens.json–{ "title": "", "description": "", "colors": [], "fonts": [] }. Füllen Sietitle/descriptionaus der Kurzbeschreibung. Lassen Siecolors/fontsleer, es sei denn, der Benutzer hat explizit Markenfarben oder -schriftarten angegeben – dann fügen Sie sie hinzu (die Designvoreinstellung liefert trotzdem eine vollständige Palette).
Wenn der Benutzer ein Skript eingefügt hat oder wünscht, dass sein Wortlaut beibehalten wird, speichern Sie es wörtlich als user_script.txt; VO_MODE (wörtlich oder umstrukturiert) stammt aus BRIEF.md – die Intent-Ebene fragt danach, wenn ein Skript ankommt. Fragen Sie hier nur einmal, wenn die Kurzbeschreibung es irgendwie nicht enthält, und speichern Sie die Antwort für Schritt 3.
Führen Sie nicht npx hyperframes capture aus (es gibt keine URL). Erstellen Sie keine asset-descriptions.md oder befüllen Sie capture/assets/ – gesichtslose Bilder werden in den Schritten 4-5 erfunden, nicht aufgenommen. Die eine Ausnahme: Wenn der Benutzer ein echtes Bild geliefert hat, legen Sie es unter public/<Basisname> ab und notieren Sie es für Schritt 3.
Tor: capture/extracted/visible-text.txt und capture/extracted/tokens.json existieren; Sie können das Thema und die Zielgruppe des Erklärers in einem klaren Satz angeben.
Schritt 2: Designsystem
Ziel: Eine ausgelieferte Bildvoreinstellung auswählen; ein Skript wandelt sie in das frame.md + Untertitel-Skin dieses Videos um.
Wenn BRIEF.md einen style_preset benennt – der Benutzer hat ihn in der Intent-Ebene anhand der Vorschauen ausgewählt – verwenden Sie ihn; das Urteil liegt nur bei Ihnen, wenn die Kurzbeschreibung schweigt. Dann treffen Sie die eine Entscheidung – welche Voreinstellung: Lesen Sie ../hyperframes-creative/references/design-spec.md und durchsuchen Sie ../hyperframes-creative/frame-presets/; wählen Sie die Voreinstellung, deren Look am besten zum Thema, Ton und Publikum passt. Führen Sie dann aus:
node <SKILL_DIR>/scripts/build-frame.mjs --preset <Name> --hyperframes .
Das Skript erledigt den Rest deterministisch: Kopiert das FRAME.md der Voreinstellung → frame.md und remixt es auf alle Marken-Tokens in capture/extracted/tokens.json (Markenfarben auf die Farbtasten der Voreinstellung nach Rolle abgebildet; die Anzeige- und Textschriftarten der Voreinstellung durch die der Marke ersetzt), kopiert das Untertitel-Skin der Voreinstellung nach .hyperframes/caption-skin.html und validiert sich selbst (beendet mit 1 bei einer defekten Zuordnung). Fahren Sie fort, sobald es mit 0 beendet ist – keine manuelle Bearbeitung der Spezifikation.
Ein gesichtsloser Erklärer hat normalerweise keine Markenfarben/-schriftarten (tokens.json colors/fonts leer) → das Skript behält die eigene Palette der Voreinstellung, ein vollständiges auslieferbares Design. Nur wenn der Benutzer Markenfarben/-schriftarten genannt hat, fügen Sie sie zu tokens.json hinzu, bevor Sie es ausführen, und passen Sie frame.md danach nur von Hand an, wenn eine Zuordnung es wirklich benötigt.
Tor: build-frame.mjs wurde mit 0 beendet – frame.md existiert von einer benannten Voreinstellung, und (wenn die Voreinstellung eine ausliefert) .hyperframes/caption-skin.html existiert als Quelle des Untertitel-Skins; die gewählte Voreinstellung wurde als Präferenz aufgezeichnet (--key style_preset --workflow <dieser workflow>, Kurzbeschreibungsvertrag § 2).
Schritt 3: Storyboard und Skript
Ziel: Den Text in einen genehmigten, bildweisen Lehrplan verwandeln.
Lesen Sie ../hyperframes-creative/references/story-spine.md (Hook-Sprache, Wert-vor-Beweis, Storyboard-als-Vorschlag), references/story-design.md, ../hyperframes-animation/blueprints-index.md, ../hyperframes-core/references/storyboard-format.md und ../hyperframes-core/references/script-format.md. Verwenden Sie sie, um STORYBOARD.md und, wenn eine Erzählung benötigt wird, SCRIPT.md zu schreiben. Setzen Sie die duration: im Frontmatter aus der length der Kurzbeschreibung – eine grobe Erwartung; der Zusammenbau berichtet, wo der Schnitt im Vergleich dazu landet.
Verwenden Sie story-design.md für die Erklärer-Struktur (Konzept / Anleitung / Listicle / Geschichte), Hook-Strategie, Klarheitstechniken, emotionale Beats, die Typ-Enum-Zuordnung und VO_MODE. Die Abfolge des Videos stammt aus narrativem Design, nicht aus der Absatzreihenfolge des Eingabetextes – neu ordnen, zusammenführen, weglassen, komprimieren. Als weiche Leitlinie konsultieren Sie die Rollen-zu-Blaupausen-Menü in ../hyperframes-animation/blueprints-index.md: Schreiben Sie für jeden Beat das Voiceover in der Form, die seine Kandidaten-Blaupause impliziert, und taggen Sie diese Kandidaten-blueprint: ID, wenn eine passt. Die Lehrwahrheit entscheidet dennoch, welche Beats existieren – erzwingen Sie niemals einen Beat, um in eine Blaupause zu passen, und erfinden Sie niemals einen Beat nur, weil eine bewährte Form verfügbar ist. Gesichtslose Bilder werden nachgelagert erfunden, daher tragen Bilder kein Asset-Inventar: Lassen Sie asset_candidates leer, es sei denn, der Benutzer hat ein echtes public/<Basisname>-Bild geliefert. Verwenden Sie die genauen erforderlichen Felder aus den Storyboard- und Skript-Referenzen.
Führen Sie nach dem Entwurf den Plan-Durchlauf der Überprüfungsschleife aus – ../hyperframes-core/references/review-loop.md § 1: Öffnen Sie das Board (fragen Sie nicht, ob), präsentieren Sie den Plan als Vorschlag und stellen Sie die beiden Fragen – genehmigen oder ändern, und zuerst Skizzen (empfohlen) oder überspringen. Feedback durchläuft Chat oder die Kommentardatei des Boards bis zur Genehmigung. Dies ist ein Kontrollpunkt-Tor (Kurzbeschreibungsvertrag § 1): Im autonomen Modus gibt es kein Board und nichts zu fragen – posten Sie dieselbe Zusammenfassung als Vorankündigung und fahren Sie fort; Skizzen fallen in den Bau, und die eine Vorschaufrage kommt bei Schritt 6.
Tor: STORYBOARD.md existiert, jedes Bild hat die erforderlichen narrativen Felder, SCRIPT.md existiert, wenn eine Erzählung benötigt wird, und der Benutzer hat den bildweisen Plan genehmigt (autonom: die Zusammenfassung wurde als Vorankündigung gepostet).
Schritt 3.1: Audio
Ziel: Erzählung, Wortzeiten, Musik und Audio-Metadaten aus dem genehmigten Skript generieren.
Starten Sie Audio nach der Genehmigung von Schritt 3. Führen Sie es im Hintergrund aus, fahren Sie dann mit Schritt 4 fort. (Der Anmeldestatus wurde bereits in Schritt 0 angezeigt; die Engine fällt automatisch zurück.)
Wählen Sie die Erzählstimme aus der Benutzeranfrage aus, bevor Sie sie aufrufen. Wenn die Anfrage eine Stimme, ein Geschlecht oder einen Ton genannt hat, wählen Sie eine passende Stimmen-ID und übergeben Sie sie mit --voice <ID>. Die Pipeline-Voreinstellung ist ansonsten Marcia (weiblich) auf HeyGen / am_michael auf Kokoro – daher wird eine Anfrage wie "eine männliche Stimme" stillschweigend ignoriert, es sei denn, Sie übergeben das Flag. Stimmen-IDs sind anbieterabhängig; lösen Sie sie gegen den Anbieter auf, den der Anmeldestatus von Schritt 0 ausgewählt hat: HeyGen (angemeldet) über node <MEDIA_DIR>/audio/scripts/heygen-tts.mjs --list (oder GET /v3/voices?engine=starfish); Kokoro (offline) über die Stimm-Tabelle in <MEDIA_DIR>/audio/references/tts.md (Präfixe am_/bm_ männlich, af_/bf_ weiblich). Wenn der Benutzer keine Präferenz geäußert hat, fallen Sie auf die gespeicherte Stimme zurück (Kurzbeschreibungsvertrag § 2), bevor Sie die Pipeline-Voreinstellung verwenden, und sagen Sie, welche Sie verwendet haben; lassen Sie --voice nur weg, wenn keiner eine nennt. Wenn der Benutzer in diesem Lauf explizit eine Stimme ausgewählt hat, zeichnen Sie sie auf (prefs.mjs record --key voice).
node <SKILL_DIR>/scripts/audio.mjs --script ./SCRIPT.md --storyboard ./STORYBOARD.md --hyperframes . --out ./audio_meta.json --voice <Stimmen-ID> &
Das Audio-Skript kümmert sich um Erzählung, Wortzeiten, BGM-Suche aus der HeyGen-Musikbibliothek und Zeitmetadaten. Die BGM-Stimmung stammt aus dem music:-Feld des Storyboards. Dies verwendet die HeyGen-Audio-API für die Suche, nicht für die Generierung, und dieselbe ~/.heygen-Anmeldeinformation wie TTS. Für Anbieterdetails lesen Sie ../media-use/audio/references/tts.md.
Wenn es keine Erzählung und kein SCRIPT.md gibt, überspringen Sie die Sprachgenerierung. BGM kann trotzdem laufen, wenn das Storyboard eine Musikstimmung hat.
Der kanonische, vollständig stille Marker (gemeinsam für die Workflows, die dieses Audiomodell wiederverwenden): music: none im oberen YAML-Block von STORYBOARD.md und kein SCRIPT.md. Diese Kombination markiert das Projekt als still – keine Erzählung, kein BGM, kein SFX. audio.mjs erkennt es und generiert nichts (es entfernt jegliches veraltetes audio_meta.json; ein abwesendes audio_meta.json wird vom Zusammenbau als still behandelt), daher ist dieser Schritt ein sauberer Übersprung. music: none mit Erzählung behält TTS und schaltet nur BGM aus. Verwenden Sie genau diese Schreibweise – improvisieren Sie keine anderen Marker.
Tor: Audio-Job wurde gestartet, oder das Projekt ist als still markiert (music: none + kein SCRIPT.md).
Schritt 4: Visuelles Framedesign
Ziel: Die visuelle Richtung, das Layout-Intention und die Bewegungsauswahl zu jedem Storyboard-Bild hinzufügen.
Skizzieren Sie das Board zuerst (nur kollaborativ). Sobald der Plan genehmigt ist, führen Sie den Skizzendurchlauf aus – ../hyperframes-core/references/review-loop.md § 2 (warten Sie nicht auf Schritt 3.1; Skizzen verwenden keine Zeiten): Erstellen Sie eine Drahtgestellskizze für jedes Bild, ...
...