Plugin-Installation: Vor der Einrichtung oder Aktualisierung der Skills folgen Sie bitte den Plugin-Ausführungsregeln, wenn sich dieses Skill in einem HyperFrames-Plugin befindet. Bei eigenständigen Installationen gelten die unten stehenden Update-Anweisungen.
Zuerst: Halten Sie dieses Skill aktuell – bestätigen Sie mit dem Benutzer, bevor Sie es ausführen:
npx hyperframes skills update faceless-explainer. Ein schneller No-op, wenn alles aktuell ist; andernfalls wird dieses Skill zusammen mit den Kern-Skills, von denen es abhängt, aktualisiert, bevor Sie darauf vertrauen.
media-use: Bevor Sie Audio/Images/Logos beschaffen, rufen Sie
/media-useauf, um BGM/SFX/Images aus dem HeyGen-Katalog und Markenlogos aus offiziellen Quellen zu beziehen. Führen Sie zuerst--adoptaus, um vorhandene Assets zu registrieren. Siehe/media-useSkill. Wenn die Host-App eigene Musik- oder Soundeffekt-Tools bereitstellt, verwenden Sie diese für Musik und Soundeffekte.
Faceless Explainer zu HyperFrames
Verwenden Sie dieses Skill, um einen Textkörper in ein erklärendes Video zu verwandeln: Wählen Sie ein Designsystem, planen Sie eine lehrreiche Geschichte, und bauen Sie sie Frame für Frame in HyperFrames auf. Faceless bedeutet, dass jedes visuelle Element nachgelagert erfunden wird – es gibt keinen Erfassungsschritt und kein reales Asset-Inventar.
Die Eingangstür ist
/hyperframes. Sie sind der Orchestrator. Führen Sie jeden Schritt aus, überprüfen Sie sein Gate, und fahren Sie dann fort. Dieses Skill dient dazu, ein Thema aus Text zu erklären, wobei es kein Produkt und keine zu erfassende Website gibt. Jede andere Absicht, ein einfaches „Video erstellen" oder jegliche Unsicherheit → lesen Sie zuerst/hyperframes– die Absichtsebene ist für alle Routenentscheidungen zuständig, und eine Neu-Erstellung, die ohneBRIEF.mdhier ankommt, durchläuft sie ohnehin (Einrichtungsregel 1).
Sie sind der Orchestrator. Arbeiten Sie im Verzeichnis videos/<project>/. Führen Sie die Schritte in der angegebenen Reihenfolge aus und bestehen Sie jedes Gate, bevor Sie fortfahren. Benutzergesteuerte Schritte sind Schritt 0, Schritt 3 und Schritt 6. Lesen Sie ../hyperframes/references/brief-contract.md vor Schritt 0 – es definiert die Gate-Typen und wie flow/storyboard aus der BRIEF.md den Modus ableiten, der die Gates in Schritt 3/4/6 steuert. Führen Sie jeden Schritt selbst aus, mit Ausnahme von Schritt 5, bei dem Sie einen Unter-Agenten pro Frame einsetzen. Platzieren Sie keine Design- oder Bewegungsregeln hier; diese befinden sich im Frame-Worker-Unter-Agenten, in den lokalen Regeln ../hyperframes-animation/rules/ + ../hyperframes-animation/blueprints/ und in hyperframes-creative.
Workflow: Schritt 0 Einrichtung → hyperframes.json; Schritt 1 Kurzbeschreibung → capture/extracted/; Schritt 2 Designsystem → frame.md; Schritt 3 Storyboard/Drehbuch → STORYBOARD.md und SCRIPT.md; Schritt 3.1 Audio → audio_meta.json; Schritt 4 Visuelles Design → angereicherte STORYBOARD.md; Schritt 5 Frames → compositions/frames/NN-*.html und index.html; Schritt 6 Finaler Render → renders/video.mp4.
Schritt 0: Einrichtung
Ziel: Mit einer bestätigten Kurzbeschreibung eintreten, das HyperFrames-Projekt erstellen und die Kurzbeschreibung dauerhaft speichern.
Die Kurzbeschreibung wird von der Absichtsebene bestätigt, nicht durch hier gestellte Fragen. Einleitungsregel, in der Reihenfolge: (1) BRIEF.md existiert → lesen Sie sie und stellen Sie keine Fragen – die Kurzbeschreibung ist endgültig, und ihre flow/storyboard leiten den Modus ab (Kurzvertrag § 1). (2) Keine BRIEF.md, aber das Projekt existiert (hyperframes.json / STORYBOARD.md auf der Festplatte) → setzen Sie ab dem Frontmatter des Storyboards und den aufgezeichneten Präferenzen fort; befragen Sie ein halb aufgebautes Projekt nie erneut. (3) Weder noch – eine Neu-Erstellungsanfrage, die direkt hier ankommt → lesen Sie /hyperframes und führen Sie die Absichtsebene aus (references/intent-interview.md): sie prüft Rezepte und gespeicherte Standardwerte, führt die Fragen dieser Route durch (../hyperframes/references/routes/faceless-explainer.md) und gibt die gesperrte Kurzbeschreibung zurück. Bearbeitungsanfragen überspringen all dies – führen Sie die Bearbeitung durch.
Initialisieren Sie nur, wenn hyperframes.json fehlt. Benennen Sie <project> nach dem Thema in Kebab-Schreibweise, z. B. compound-interest-explained; verwenden Sie niemals den Workspace-Namen oder einen Zeitstempel.
npx hyperframes init "videos/<project>" --non-interactive --example=blank --skill=faceless-explainer – init überprüft die installierten Skills mit den neuesten auf GitHub und aktualisiert die globale Menge, wenn welche veraltet sind.
Nach der Initialisierung setzen Sie <PROJECT_ROOT> auf videos/<project> und führen jeden nachfolgenden relativen Pfad-Befehl mit diesem Verzeichnis als Arbeitsverzeichnis aus. In den unten stehenden Befehlen bedeutet . <PROJECT_ROOT>; schreiben Sie niemals .media, capture oder Ausgabedateien in das aufrufende Verzeichnis.
Schreiben Sie BRIEF.md sofort nach der Initialisierung (niemals davor – init lehnt ein nicht leeres Verzeichnis ab): die gesperrte Kurzbeschreibung der Absichtsebene, Form entsprechend ../hyperframes/references/brief-format.md. Lösen Sie <MEDIA_DIR> als das installierte Verzeichnis des /media-use Skills auf. Zeichnen Sie dann jede präferenzgestützte Antwort auf mit node <MEDIA_DIR>/scripts/prefs.mjs record --hyperframes . (brief-format.md benennt die Teilmenge). Wenn die Absichtsebene ein Rezept übernommen hat, führen Sie node <MEDIA_DIR>/scripts/recipe.mjs use --hyperframes . --name <name> aus; es kopiert seine frame.md in das Projekt (Schritt 2 wird dann übersprungen) und gibt die Skelette zurück, von denen Schritt 3-Entwürfe erstellt werden. Ein Rezept füllt Antworten, nicht Genehmigungen; die Überprüfungsgates laufen trotzdem.
Zeigen Sie den Anmeldestatus an, bevor Sie nach der Einrichtung fortfahren – führen Sie npx hyperframes auth status aus und geben Sie die Ausgabe wörtlich wieder. Es meldet, ob die Stimme/BGM HeyGen oder lokale Engines verwendet, und, wenn abgemeldet, wie Sie sich anmelden können. Wenden Sie einen Zweig an:
- Kollaborativ: Warten Sie, bis der Benutzer sich anmeldet oder explizit
offline/gowählt. - Autonom: Geben Sie den Status an und setzen Sie mit den verfügbaren lokalen Engines fort.
Verschweigen Sie nicht stillschweigend eine erforderliche Fähigkeit, wenn kein Offline-Provider existiert; machen Sie das Hindernis sichtbar. Führen Sie diese Entscheidung nicht in eine andere Frage ein oder schreiben Sie Schlüssel in eine per-Repo .env. Anmeldeeigentum und Offline-Fallbacks: /media-use references/setup-providers.md § Anbieter.
Gate: hyperframes.json und BRIEF.md existieren; die präferenzgestützten Antworten wurden aufgezeichnet (Kurzvertrag § 2); der Anmeldestatus wurde angezeigt (angemeldet oder Fortsetzung offline).
Schritt 1: Kurzbeschreibung (keine Erfassung)
Ziel: Den Text des Benutzers als Informationsquelle in das Projekt einbinden. Es gibt keine Website-Erfassung und keine echten Assets – dies ist ein erklärendes Video ohne Gesichter.
Speichern Sie die vollständige Eingabe des Benutzers wörtlich ab und erstellen Sie dann das synthetische Erfassungspaket von Hand:
capture/extracted/visible-text.txt– der vollständige Artikel / die Notizen / das Thema / die Zusammenfassung, wörtlich. Dies ist die Quelle der Information, keine Vorlage für die Geschichte (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 – fügen Sie diese dann hinzu (die Designvoreinstellung stellt ohnehin eine vollständige Palette bereit).
Wenn der Benutzer ein Skript eingefügt hat oder die Beibehaltung seiner Formulierung wünscht, speichern Sie es wörtlich als user_script.txt; VO_MODE (wörtlich oder umstrukturiert) stammt aus der BRIEF.md – die Absichtsebene fragt danach, wenn ein Skript ankommt. Fragen Sie hier nur einmal, wenn die Kurzbeschreibung es irgendwie vermissen lässt, 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 und befüllen Sie nicht capture/assets/ – visuelle Elemente ohne Gesichter werden in den Schritten 4-5 erfunden, nicht erfasst. Die einzige Ausnahme: Wenn der Benutzer ein echtes Bild bereitgestellt hat, legen Sie es unter public/<basename> ab und notieren Sie es für Schritt 3.
Gate: 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: Wählen Sie eine ausgelieferte Frame-Voreinstellung aus; ein Skript verwandelt sie in die frame.md + Beschriftungs-Skin dieses Videos.
Wenn BRIEF.md einen style_preset benennt – der Benutzer hat ihn durch Ansicht der Showcases auf der Absichtsebene ausgewählt – verwenden Sie ihn; die Entscheidungsbefugnis liegt nur bei Ihnen, wenn die Kurzbeschreibung dazu 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 Aussehen am besten zu Thema, Ton und Zielgruppe 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 mit allen Markentoken in capture/extracted/tokens.json (Markenfarben werden rollenbasiert auf die Farbschlüssel der Voreinstellung abgebildet; die Anzeige- und Textschriftarten der Voreinstellung werden durch die der Marke ersetzt), kopiert den Beschriftungs-Skin der Voreinstellung nach .hyperframes/caption-skin.html und validiert sich selbst (beendet mit Exit-Code 1 bei einer fehlerhaften Abbildung). Fahren Sie fort, sobald es mit Exit-Code 0 endet – keine manuelle Bearbeitung der Spezifikation.
Ein erklärendes Video ohne Gesichter hat normalerweise keine Markenfarben/Schriftarten (Farben/Schriftarten in tokens.json leer) → das Skript behält die eigene Palette der Voreinstellung bei, ein vollständiges versandfertiges Design. Nur wenn der Benutzer Markenfarben oder Schriftarten benannt hat, fügen Sie sie vor der Ausführung zu tokens.json hinzu und passen Sie frame.md nur dann von Hand an, wenn eine Abbildung dies wirklich erfordert.
Gate: build-frame.mjs mit Exit-Code 0 beendet – frame.md existiert von einer benannten Voreinstellung, und (wenn die Voreinstellung eine mitliefert) existiert .hyperframes/caption-skin.html als Quelle des Beschriftungs-Skins; die gewählte Voreinstellung wurde als Präferenz aufgezeichnet (--key style_preset --workflow <dieser Workflow>, Kurzvertrag § 2).
Schritt 3: Storyboard und Drehbuch
Ziel: Den Text in einen genehmigten Frame-für-Frame-Lehrplan verwandeln.
Lesen Sie ../hyperframes-creative/references/story-spine.md (Hakensprache, Wert-vor-Beweis, Storyboard-als-Vorschlag, quellennachvollziehbare Visuals), references/story-design.md, ../hyperframes-animation/blueprints-index.md, ../hyperframes/references/storyboard-format.md und ../hyperframes/references/script-format.md. Verwenden Sie sie, um STORYBOARD.md und, wenn eine Erzählung erforderlich ist, SCRIPT.md zu schreiben. Setzen Sie im Frontmatter duration: gemäß der length aus der Kurzbeschreibung – eine grobe Erwartung; der Zusammenbau berichtet, wo der Schnitt im Vergleich dazu liegt.
Verwenden Sie story-design.md für die Erklärstruktur (Konzept / Anleitung / Liste / Geschichte), Hakenstrategie, Klarheitstechniken, emotionale Momente, die Typ-Enum-Abbildung und VO_MODE. Die Reihenfolge des Videos folgt dem narrativen Design, nicht der Absatzreihenfolge des Eingabetextes – ordnen Sie neu, fügen Sie zusammen, lassen Sie weg, komprimieren Sie. Als weiche Richtschnur konsultieren Sie die Rollen→Blueprint-Auswahl in ../hyperframes-animation/blueprints-index.md: Schreiben Sie für jeden Beat den Voiceover in der Form, die sein Kandidaten-Blueprint impliziert, und versehen Sie diesen Kandidaten mit blueprint: id, wenn einer passt. Die lehrreiche Wahrheit entscheidet immer noch, welche Beats existieren – erzwingen Sie nie einen Beat, um in ein Blueprint zu passen, und erfinden Sie nie einen Beat, nur weil eine bewährte Form verfügbar ist. Visuelle Elemente ohne Gesichter werden nachgelagert erfunden, daher tragen Frames kein Asset-Inventar: Lassen Sie asset_candidates leer, es sei denn, der Benutzer hat ein reales Bild public/<basename> bereitgestellt. Verwenden Sie die genauen erforderlichen Felder aus den Referenzen für Storyboard und Drehbuch.
Führen Sie nach dem Entwurf den Plan-Durchlauf der Überprüfungsschleife durch – ../hyperframes/references/review-loop.md § 1: präsentieren Sie den Plan als Vorschlag und stellen Sie die zwei Fragen – genehmigen oder ändern, und Skizzen zuerst (empfohlen) oder überspringen. Feedback kommt als Chat-Antwort; wiederholen Sie die Schleife, bis genehmigt. Dies ist ein Kontrollpunkt-Gate (Kurzvertrag § 1): Im autonomen Modus gibt es nichts zu fragen – veröffentlichen Sie dieselbe Zusammenfassung als Vorankündigung und fahren Sie fort; Skizzen fallen in den Bau, und die endgültige Vorschau mit ihrer einen Frage kommt in Schritt 6.
Gate: STORYBOARD.md existiert, jeder Frame hat die erforderlichen narrativen Felder, SCRIPT.md existiert, wenn eine Erzählung erforderlich ist, und der Benutzer hat den Frame-für-Frame-Plan genehmigt (autonom: die Zusammenfassung wurde als Vorankündigung veröffentlicht).
Schritt 3.1: Audio
Ziel: Erzählung, Wort-Zeitsteuerung, Musik und Audio-Metadaten aus dem genehmigten Drehbuch generieren.
Starten Sie Audio nach der Genehmigung von Schritt 3. Führen Sie es im Hintergrund aus und setzen 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 basierend auf der Anfrage des Benutzers 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 anbieterspezifisch; lösen Sie sie gegen den Anbieter auf, den der Anmeldestatus in 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 Stimmentabelle 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 (Kurzvertrag § 2) vor der Pipeline-Voreinstellung zurück und teilen Sie mit, welche Sie verwendet haben; lassen Sie --voice nur weg, wenn keiner eine benennt. Wenn der Benutzer in diesem Durchlauf 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 <voice-id> &
Das Audio-Skript kümmert sich um Erzählung, Wort-Zeitsteuerung, BGM-Suche aus der HeyGen-Musikbibliothek und Timing-Metadaten. Die BGM-Stimmung stammt aus dem music:-Feld des Storyboards. Dies verwendet die HeyGen Audio API für den Abruf, nicht die Generierung, und dieselbe ~/.heygen-Anmeldeinformation wie TTS. Lesen Sie für Anbieterdetails ../media-use/audio/references/tts.md. Wenn die eigenen Tools der Host-App die Musik oder einen Soundeffekt erstellen, legen Sie die Datei unter assets/ ab und listen Sie sie in der Datei audio_meta.json als "source": "host" auf: Musik als bgm { "path": "assets/…", "source": "host" } mit music: none im Storyboard; ein Sound als sfx-Eintrag { "frame": <n>, "file": "assets/…", "offset_s": 0, "duration_s": <seine Länge>, "source": "host" }. Jeder Audio-Durchlauf behält diese bei, und ein Frame mit einem Host-Sound erhält keinen gesuchten Hinweis.
Wenn es keine Erzählung und keine SCRIPT.md gibt, überspringen Sie die Sprachgenerierung. BGM kann trotzdem ausgeführt werden, wenn das Storyboard eine Musikstimmung hat.
Der kanonische Marker für vollständige Stille (gemeinsam mit den Workflows, die dieses Audiomodell wiederverwenden): music: none im oberen YAML-Block der STORYBOARD.md, keine SCRIPT.md, und keine sfx:-Hinweise oder Host-Audio. Diese Kombination kennzeichnet das Projekt als still – die Audio-Pipeline wird dies erkennen und keinen Soundtrack generieren.
Gate: audio_meta.json existiert. Wenn es still ist, ist audio_meta.json eine leere Liste []. Schritt 4-Frames können in der Zwischenzeit erstellt werden.
Schritt 4: Visuelles Design
Ziel: Fügen Sie die Frame-für-Frame-Bildsprache in das Storyboard ein, bevor Sie die Frames bauen.
Essenziell: Lesen Sie ../hyperframes-animation/references/visual-design.md und ../hyperframes-animation/references/caption-design.md – sie definieren das visuelle Vokabular und das Bildmaterial für jede Frame-Klasse, sodass Sie keine Symbole oder Kästchen erfinden müssen.
Überlagern Sie für jeden Beat im genehmigten STORYBOARD.md die visuellen Felder entsprechend der Storyboard-Format-Referenz. Die Quelle jedes visuellen Elements ist entweder ein benannter Kandidat aus dem Blueprint (definiert in ../hyperframes-animation/blueprints-index.md als visuelle Anforderungen) oder wird nach den Stilregeln von Grund auf neu erfunden. Markieren Sie es mit visual_invention: (Szenenbeschreibung, die der Frame-Arbeiter als Eingabe verwendet). Da es keine Asset-Erfassung gibt, wird jedes visuelle Element in Schritt 5 von Grund auf neu generiert – Diagramme, abstrakte Formen, Datenvisualisierungen, alles. Die minimale visuelle Einheit ist ein Frame, der mit frame_number: im YAML-Frontmatter von STORYBOARD.md nummeriert ist.
Gate: Die visuellen Felder jedes Storyboard-Eintrags sind gemäß dem Storyboard-Format ausgefüllt.
Schritt 5: Frames bauen
Ziel: Bauen Sie jedes Frame unter Verwendung der Unter-Agenten als animierte, eigenständige HTML-Dateien.
Erstellen Sie compositions/frames/ und generieren Sie eine HTML-Datei pro Frame. Sie delegieren diesen Schritt an Frame-Arbeiter; Sie sind hier nur der Projektmanager. Informieren Sie den Benutzer, dass Sie eine Reihe von Frame-Arbeitern starten, und fragen Sie nach einem Batch-Start. Jeder Arbeiter empfängt den gesamten Arbeitsbereich als Kontext und erhält nur den Eintrag seines eigenen Storyboard-Index als Arbeitspaket; er ist für die vollständige visuelle Ausführung dieses Frames verantwortlich – einschließlich aller Animationsregeln, Design-Blueprints und kreativen Richtlinien, die im Benutzerbereich verfügbar sind. Arbeiter haben keine unabhängige Verbindung zu externen APIs; sie sind reine Code-Generatoren. Sie arbeiten parallel, unter Verwendung benutzerdefinierter Generatoren, die mit den Blueprint-Regeln des Skills übereinstimmen. Jeder Frame funktioniert als vollständig eigenständige .html-Datei mit eingebetteten Stilen und Skripten (keine Abhängigkeit von CDN oder Entwicklungsserver; alles inline).
Wenn alle Frames erstellt sind, bauen Sie compositions/index.html – eine sequentielle, abspielbare Zusammenstellung mit Vorwärts-/Rückwärts-Navigation. Lesen Sie für das Zusammenstellungsformat ../hyperframes-animation/references/composition-format.md.
Gate: compositions/frames/ enthält die erwartete Anzahl von Dateien im Format NN-*.html; alle sind gültiges HTML mit eingebetteten Stilen; compositions/index.html navigiert durch sie.
Schritt 6: Finaler Render und Zugänglichkeit
Ziel: Rendern Sie das Video und zeigen Sie es dem Benutzer.
Führen Sie aus dem Projektstammverzeichnis aus: npx hyperframes render . (Das Skript verwendet HyperFrames-Renderer – es kann lokal oder über eine gerenderte Cloud-Rendering-Engine ausgeführt werden.) Die Ausgabe wird als <PROJECT_ROOT>/renders/video.mp4 gespeichert.
Dies ist das letzte benutzergesteuerte Gate (Kurzvertrag § 1): Nach dem Render stellen Sie den Link zur Ausgabe bereit, zeigen eine Vorschau an und fragen: „Was soll ich anpassen – Inhalt, Timing, Erzählung, Audio?" Warten Sie auf Antwort. Wenn der Benutzer es genehmigt, endet die Sitzung hier. Andernfalls führen Sie die angeforderte Bearbeitung durch.
Gate: renders/video.mp4 existiert; der Benutzer hat die endgültige Ausgabe genehmigt (autonom: stellen Sie den Link bereit und fahren mit der Zusammenfassung fort).