Infografik-Voice-Over-Video
Standort und Bereitstellungslayout (Architektur v1.11)
- Im Stamm des Auslieferungs-Repositorys MUSS eine
AGENTS.md(Anleitung zur Verwendung dieser Vorlage) vorhanden sein; Dieser Skill ist fest unter.agents/skills/remotion-infographic-video/abgelegt. tests/befindet sich im Repository-Stamm (zusammen mit.agents/), gehört zur Entwicklungsgate/CI und gehört nicht zur Skill-Laufzeitumgebung; es wird nicht zusammen mit „Nur Skill installieren“ kopiert..envbefindet sich NUR in diesem Skill-Verzeichnis, nicht im Repository-Stamm.
Vorbereitung vor der Verwendung (Kopieren und loslegen)
- Kopieren:
- Gesamtes Repository verwenden: Klonen/kopieren Sie den Stamm des Auslieferungs-Repositorys und öffnen Sie ihn (inklusive Stamm-
AGENTS.mdundtests/). - Nur Skill installieren: Kopieren Sie
.agents/skills/remotion-infographic-video/in den gleichnamigen Pfad des Zielprojekts (inklusivescripts/und dem darunterliegendenlib/). - Das Skill-Paket selbst benötigt keine
pip/npm-Installation;scripts/verwendet nur die Python-Standardbibliothek. Nach Konfiguration der.envkönnen die Schritte 0–5 ausgeführt werden.
- Gesamtes Repository verwenden: Klonen/kopieren Sie den Stamm des Auslieferungs-Repositorys und öffnen Sie ihn (inklusive Stamm-
.envkonfigurieren: Führen Sie in diesem Skill-Verzeichniscp .env.example .envaus und bearbeiten Sie die.env:- Erforderlich:
DOUBAO_TTS_API_KEY=(Schreiben Sie den Key direkt nach dem Gleichheitszeichen, ohne Anführungszeichen) - Optional:
DOUBAO_SPEAKER=(Standardstimme siehe VOICE) .envwird durch.gitignoreignoriert. Geben Sie den Key nicht im Chat preis und wechseln Sie nicht die Sprachausgabe-Engine.
- Erforderlich:
- Umgebungsvoraussetzungen (selbst installieren, Skripte installieren nicht automatisch): Node 18+, Python 3, ffmpeg, ffprobe, Internet.
- Produktion starten: Wenn der Benutzer „Produktion starten“ oder eine gleichwertige Absicht äußert:
- Führen Sie zuerst
python3 scripts/check_env.pyaus (optional mit--skill-dir <absoluter Pfad zum Skill-Paket>; Standard ist das aktuelle Verzeichnis). - Exit-Code 3: Weisen Sie den Benutzer an, in
.agents/skills/remotion-infographic-video/.env(oder im.envunter dem absoluten Pfad dieses Skills) denDOUBAO_TTS_API_KEYeinzutragen, warten Sie auf die Antwort „erledigt“ und führen Sie das Skript erneut aus; führen Sie vorher keine Sprachausgabe durch und erstellen Sie kein Projekt. - Nach erfolgreicher Prüfung: Wenn die Nachricht bereits ein Thema enthält, fahren Sie direkt mit den festgelegten Schritten fort; andernfalls fragen Sie nur einmal nach dem Thema (optional mit Angabe „Hochformat“; Standard ist Querformat 1920×1080, Hochformat 1080×1440, Regeln siehe LAYOUT). Der Plattformname hat keinen Einfluss auf die Bildgröße.
- Führen Sie zuerst
Harte Regeln
- Der Key wird ausschließlich aus
DOUBAO_TTS_API_KEYin der.envdieses Skill-Verzeichnisses (im Auslieferungs-Repository:.agents/skills/remotion-infographic-video/.env) gelesen. Der Benutzer darf den Key nicht im Chat bereitstellen, die Sprachausgabe-Engine darf nicht gewechselt werden, und der Key darf in keiner Ausgabe angezeigt werden. - Nicht veröffentlichen oder hochladen: Es werden nur die fertigen Videodateien, Cover und Texte erstellt.
- Zahlen müssen eine Quelle haben; auf dem Bildschirm angezeigte Zahlen müssen mit einem Quellenvermerk versehen sein; Symbole als „symbolisch“ kennzeichnen.
- Die letzte Zeile jedes Skript-
stdoutist eine JSON-Zusammenfassung; Exit-Codes werden wie folgt behandelt: 3 = Key fehlt (Hinweis zum Befüllen der.env, Stopp), 4 = Authentifizierungsfehler (Stopp), 5 = Korrektur der übergeordneten Ausgabe, 6 = Nur fehlgeschlagene Elemente erneut ausführen, 7 = Fehlerbehebung starten.
Feste Schritte
- Vorabprüfung:
python3 scripts/check_env.py. Bei Exit-Code 3 wie oben beschrieben die.envbefüllen und erneut ausführen. - Thema erfassen: Thema, Slug und Bildformat bestimmen,
<slug>/job.jsonschreiben (wenn kein Format genannt, Standard Querformat). Wenn der Benutzer eine Plattform nennt,platformseintragen, sonst Standard-Plattformen gemäß PUBLISH verwenden. - Skripterstellung:
script.mdschreiben (## Sxx Segmentname+- [01] Text {context: … | rate: 0 | pause: 300}) undsources.md(JSON-Block am Ende). Dannpython3 scripts/validate.py sources <slug>/script.md <slug>/sources.mdausführen; Zahlen ohne Quelle müssen gelöscht oder mit einer Quelle versehen werden. - Sprachausgabe: Wenn in der Umgebung ein gleichwertiges MCP-Tool für Sprachausgabe (tts_synthesize) vorhanden ist, dieses verwenden; andernfalls
python3 scripts/tts_doubao.py <slug>/script.md --out-dir <slug>/voiceausführen. Die von beiden Methoden erzeugtetimeline.jsonwird mit demselben Schema (assets/schemas/) validiert:python3 scripts/validate.py timeline <slug>/voice/timeline.json. Fehlgeschlagene Sätze mit--onlyerneut ausführen. - Storyboard:
storyboard.jsonschreiben (jeder Satz wird von mindestens einer Kameraeinstellung abgedeckt, Segmentübergänge und Kameraeinstellungen verwenden Enum-Werte). Dannpython3 scripts/validate.py storyboard <slug>/storyboard.json --timeline <slug>/voice/timeline.jsonausführen. - Assets: Mit
python3 scripts/fetch_asset.pyaddjedes Asset registrieren,prunelöscht nicht verwendete Assets; Assets ohne ausreichende Lizenz dürfen nicht verwendet werden. - Projekt erstellen:
python3 scripts/scaffold_project.py --job <slug>/job.json --out <slug>/projectgeneriert das Projekt. Szenen für jedes Segment gemäß Beispiel (assets/example/) schreiben. Dannpython3 scripts/build_timeline.py --timeline <slug>/voice/timeline.json --storyboard <slug>/storyboard.json --subtitles <slug>/voice/subtitles.json --manifest <slug>/assets-manifest.json --project <slug>/projectausführen. Anschließend im Projektverzeichnisnpm ciausführen. - Selbstprüfung:
bash scripts/check_project.sh <slug>; bei Fehlschlagcheck/report.jsonlesen, korrigieren und erneut ausführen; maximal 3 Versuche, bei anhaltendem Fehlschlag stoppen und Bericht erstatten. - Rendern:
bash scripts/render.sh <slug>erzeugt das fertige Video (<slug>/out/video.mp4) und das Cover (<slug>/publish/cover_<W>x<H>.png) und führt automatisch eine Abnahme durch. - Veröffentlichungstexte und Auslieferung: Gemäß PUBLISH für jede Zielplattform ein Set
publish/<Plattform>/title.txt,description.txtund plattformspezifische Tags inpublish/<Plattform>/tags.txt(ein Tag pro Zeile) erstellen. Dannpython3 scripts/validate.py publish <slug>,python3 scripts/validate.py deliverable <slug>,python3 scripts/validate.py leak <slug>ausführen. Abschließend die Namensnennung mitpython3 scripts/fetch_asset.py credits-diff --manifest <slug>/assets-manifest.json --slug-dir <slug>überprüfen.
Zusammenfassung der harten Stilregeln
- Farben, Schriftgrößen und Animationswerte stammen ausschließlich aus
assets/tokens.json, Hintergrundfarbe Basis #070A0F; Szenencode schreibt keine Farbwerte (siehe STYLE). - Einheitliche Federanimation beim Betreten; 5 Segmentübergänge, 3 Kameraeinstellungen; aus Storyboard-Enumerationen (siehe MOTION).
- Es werden nur die 15 Komponenten aus dem Register verwendet; außerhalb des Registers neue Komponenten im Projekt schreiben und Tokens +
useLayout()verwenden (siehe COMPONENTS). - Nur vier Ebenen: background / scene / hud / subtitle; kein Abspann mit Namensnennung; Videolänge = Sprachausgabe-Länge.
- Zufall nur mit
random(seed);Math.randomist verboten. - Layout wird aus Canvas-Breite und -Höhe abgeleitet; Nur
src/layout/presets.tsdarf Canvas-Größen enthalten (siehe LAYOUT). - Skriptformat siehe SCRIPT; Sprachparameter siehe VOICE; Asset-Lizenzierung und Namensnennung siehe ASSETS.
Verbotene Handlungen
- Nicht auf irgendeiner Plattform veröffentlichen oder hochladen.
- Key niemals preisgeben: nicht anzeigen, nicht in Ausgaben schreiben, Benutzer nicht bitten, den Key im Chat einzufügen, keine andere Sprachausgabe-Engine verwenden.
- Keine Assets ohne ausreichende Lizenz verwenden; keine Links in Namensnennungen, Beschreibungen oder Titeln.
- Keine Daten erfinden: Zahlen ohne Quelle gelangen weder ins Skript noch auf den Bildschirm.
- Keine weiteren Fragen an den Benutzer zwischen Themenauswahl und Auslieferung; auch keine Anfrage nach zusätzlichen Assets.
Auslieferung
Die Inhalte der deliverable.json werden einmalig ausgegeben: Pfad und Dauer des fertigen Videos, Bildformat, Cover, Titel und Beschreibungen für jede Plattform, Tags, Asset-Namensnennungen, Ausgabeverzeichnis und Anmerkungen.