motion-graphics — Dispatch-Eintrag
Bestätige die Route vor Schritt 0. Dieser Skill erstellt eine kurze, designgetriebene, unkommentierte Bewegtgrafik (Bewegung ist die Botschaft; ~unter 10 s, kein Voice-Over). Eine längere, mehrszenige oder kommentierte Produktion →
/general-video; ein kommentiertes Video einer Website →/general-video; ein Themen-Erklärvideo →/faceless-explainer; eine Produkt-Promo →/product-launch-video; Untertitel auf vorhandenem Material →/embedded-captions. Nicht im Scope: Live-Daten zur Renderzeit oder Material, das nicht erfasst werden kann. Unsicher, ob Bewegtgrafik oder kommentiert? Lies zuerst/hyperframes.
Eine kurze, designgetriebene Bewegtgrafik. Asset-First: Entscheide die Asset-Strategie und besorge echtes Material, bevor du den Shot gestaltest, gestalte den Shot dann um das Vorhandene herum und komponiere anschließend durch Wiederverwendung von Katalogfunktionen. Alle Artefakte gehen nach PROJECT_DIR = videos/<project-name>/ (in Schritt 0 erstellt); alle Pfade unten sind relativ dazu.
| Phase | Ausführung | Primäres Artefakt | Detaillierter Ablauf |
|---|---|---|---|
| init | Bash | hyperframes.json | Schritt 0 |
| plan | Subagent – Suche entscheiden? + klassifizieren + Asset-Strategie | shot-plan.json (Entwurf: Kategorie, asset_needs-Queries, Brief) | agents/director.md (Teil 1) |
| source ◇ | Bash – Medien-Nutzung auflösen (überspringen, wenn asset_needs leer ist) | assets/ + assets/index.md | phases/source/guide.md |
| design | Subagent – Shot-Design um aufgelöste Assets herum | shot-plan.json (final: Block(s) + Layout + Motion + Positionen) | agents/director.md (Teil 2) |
| build | Subagent – Wiederverwendungsorientierte Komposition | compositions/index.html | agents/builder.md |
| render | Bash – hyperframes render (MP4, oder --format webm/mov für Overlay) | renders/video.mp4 | Schritt 5 |
| verify | Bash – lint / inspect -> Reparatursubagent bei Fehlern | (Korrekturen an Ort und Stelle) | agents/finalize.md |
◇ source läuft nur, wenn die gewählte Kategorie Assets deklariert. Reine Code/Text-Kategorien (z. B. kinetic-type, die meisten charts/stat) haben asset_needs: [] und springen direkt vom Plan zum Design.
Kategorien – geteilt durch die Suchentscheidung
Die erste Entscheidung des plan lautet: Braucht dies eine Suche? Diese Gabelung teilt die Kategorien in zwei Gruppen; dann wird die spezifische Kategorie ausgewählt – bei suchgetriebenen nach der Art des von der Suche zurückgegebenen Inhalts. Jede Kategorie ist eine Datei categories/<id>/module.md (ihre Planungs- und Build-Regeln); das gemeinsame Bewegungsvokabular lebt in references/motion-vocabulary.md (→ hyperframes-animation Regeln/Blueprints + Registry-Blöcke).
Form-Kategorien – keine Suche; der Nutzer liefert den Inhalt:
| Kategorie | Absicht | Stützt sich auf |
|---|---|---|
kinetic-type | Prägnante Zeile / Zitat / Titel, bewegungsfokussierter Text | caption-* Blöcke + Animationsregeln |
stat | Einzelne Heldenzahl / Count-up + Ring | apple-money-count / rules/{counting-dynamic-scale, stat-bars-and-fills} |
charts | Balken-/Linien-/Kreis-/Rennen/%-Diagramm aus Daten | data-chart Block |
logo-reveal | Logo-Sting / Brand-Lockup (Nutzer-Logo) | logo-outro / rules/svg-path-draw |
lower-thirds | Namens-/Titel-Balken, Callouts, Social Overlays | caption-* + Registry-Overlay-Blöcke |
Suchgetriebene Kategorien – zuerst suchen, dann nach Inhaltstyp animieren (der RWA-Pfad):
| Zurückgegebener Inhalt | Kategorie | Animation |
|---|---|---|
| Webseite / Link | webpage | Webseiten-/UI-Animation (Scroll, Reveal, Cursor, Callouts) |
| Nachrichtenartikel | news | Schlagzeilen-Reveal + Quellenkarte + Key-Fact-Callouts |
| Tweet | tweet | Animierte Tweet-Karte |
| Bild / Entität | asset-fusion | Die Geometrie des Assets wird zum Diagramm (RWA diegetische Fusion) |
Baureihenfolge: einzeln nacheinander, abdeckungsorientiert (roh ist okay). kinetic-type aus dem Prototyp portiert; der Rest folgt.
Voraussetzungen
macOS Apple Silicon oder Linux x64. System-Tools: brew install node ffmpeg. Einmalig: npx hyperframes doctor. macOS GPU-Render: export PRODUCER_BROWSER_GPU_MODE=hardware.
Optionale Keys (lokale Fallbacks, falls nicht gesetzt) – werden nur von Kategorien benötigt, die Assets über Mediennutzung beschaffen/generieren:
| Key | Verwendung für | Fallback |
|---|---|---|
GEMINI_API_KEY / GOOGLE_API_KEY | Bildgenerierung (Medien-Nutzung auflösen) | generate überspringen / nur Suche |
| (asset_scout / Suchanbieter) | webpage/news/tweet + asset-fusion Echt-Asset-Suche | Kategorie degradiert zu asset-frei |
Ablauf
Schritt 0 — Initialisieren
Aktuelles Arbeitsverzeichnis (cwd) ist das Agent-Workspace-Root; schreibe alle Artefakte unter PROJECT_DIR = videos/<project-name>/. <project-name>: Verwende das vom Nutzer angegebene Verzeichnis, sonst einen kurzen Kebab-Case-Namen aus der Absicht (<thema>-motion). Nicht den Workspace-Basename oder einen Zeitstempel.
Nur wenn $PROJECT_DIR/hyperframes.json fehlt:
PROJECT_DIR="${MOTION_GRAPHICS_DIR:-videos/<project-name>}"
mkdir -p "$(dirname "$PROJECT_DIR")"
npx hyperframes init "$PROJECT_DIR" --non-interactive --example=blank
init prüft die installierten Skills gegen die neuesten auf GitHub und aktualisiert das globale Set, falls welche veraltet sind.
Einschränkungen: Niemals hyperframes init im Workspace-Root ausführen; niemals ein weiteres hyperframes/ innerhalb von PROJECT_DIR verschachteln; jeder Bash-Befehl (Master + Subagenten) ist eine (cd "$PROJECT_DIR" && ...) Subshell – niemals bare cd.
Schritt 1 — Planen (Subagent: Director Teil 1)
Einen Subagenten ausführen. Prompt = vollständiges agents/director.md + ## Dispatch context (SKILL_DIR / PROJECT_DIR / die Anfrage des Nutzers / Schema: <SKILL_DIR>/references/shot-plan-ir.md). Er muss:
- Entscheiden: Braucht dies eine Suche? (die erste Gabelung)
- Nein → eine Form-Kategorie auswählen (kinetic-type / stat / charts / logo-reveal / lower-thirds); der Inhalt wird vom Nutzer bereitgestellt;
asset_needs: []. - Ja → einen Suchplan in
asset_needs[]ausgeben (news / web / tweet / image; zwei-Pol-Queries). Die spezifische suchgetriebene Kategorie (webpage / news / tweet / asset-fusion) wird durch den in Schritt 2 zurückgegebenen Inhaltstyp bestätigt und in Schritt 3 finalisiert.
- Nein → eine Form-Kategorie auswählen (kinetic-type / stat / charts / logo-reveal / lower-thirds); der Inhalt wird vom Nutzer bereitgestellt;
- Einen Entwurf
shot-plan.jsonschreiben (Hülle + gewählte Form-Kategorie oder Suchabsicht +asset_needs+ ein einleitender Shot-Brief). Schema:references/shot-plan-ir.md.
Validierung: [ -s "$PROJECT_DIR/shot-plan.json" ] && echo ok || echo missing.
Schritt 2 — Quellen ◇ (Bash: Mediennutzung, bedingt)
Wenn shot-plan.json.asset_needs nicht leer ist, Assets auflösen (suchen / generieren / abrufen → eingefrorene projektspezifische Pfade + Logbuch). Siehe phases/source/guide.md (umhüllt media-use resolve; die suchgetriebenen Kategorien verwenden die News-/Web-/Tweet-/Bildsuche). Ist asset_needs leer, zu Schritt 3 springen.
# illustrativ – siehe phases/source/guide.md
(cd "$PROJECT_DIR" && node <SKILL_DIR>/phases/source/resolve.mjs --plan ./shot-plan.json --out ./assets)
Graceful Degradation: Wenn eine Suche/ein Anbieter nicht verfügbar ist, fällt die Kategorie auf asset-frei zurück (in context.log notieren).
Schritt 3 — Design (Subagent: Director Teil 2)
Einen Subagenten ausführen (Prompt = agents/director.md Teil 2 + Dispatch-Kontext einschließlich des aufgelösten assets/index.md, falls Schritt 2 ausgeführt wurde + catalog-map.md). Er gestaltet den Shot um die verfügbaren Assets herum: wählt den/die Katalog-Block(s) + die hyperframes-animation Regeln/Blueprints, das Layout, die Bewegung, Beats und (für asset-fusion) die element_positions + Eyedropper-Palette. Finalisiert shot-plan.json (content.block + content.customize + kategoriespezifischer Inhalt).
Schritt 4 — Bauen (Subagent: Builder, Wiederverwendung zuerst)
Einen Subagenten ausführen. Prompt = vollständiges agents/builder.md + Dispatch-Kontext (shot-plan.json, catalog-map.md, das module.md der Kategorie, references/motion-vocabulary.md, references/builder-contract.md). Wiederverwendung zuerst: npx hyperframes add <block> + Anpassung an Ort und Stelle; nur Lücken + die Asset-Fusion-Möglichkeit von Hand erstellen. Ausgabe: compositions/index.html unter Einhaltung des HF-Vertrags (pausierte GSAP-Zeitleiste auf window.__timelines, class="clip" + stabile IDs, tl.seek(0), deterministisch).
Schritt 5 — Rendern (Bash)
(cd "$PROJECT_DIR" && npx hyperframes render . --skill=motion-graphics -q draft -o ./renders/video.mp4)
# transparente Overlay-Variante: --format webm (oder mov)
Schritt 6 — Verifizieren (Bash → Reparatursubagent bei Fehlern)
(cd "$PROJECT_DIR" && npx hyperframes lint . && npx hyperframes inspect .)
Exit 0 → fertig. Bei Lint-/Inspect-Fehlern den Reparatursubagenten ausführen (agents/finalize.md: Snapshot-QA + einmalige Korrektur an Ort und Stelle + erneutes Rendern). Niemals eine festgelegte Dauer bei der Reparatur ändern.
Bericht + optionales Vorschau
Den finalen Output (renders/video.mp4, oder die .webm / .mov Overlay-Variante) + Dauer melden. Während des Laufs keine Vorschau öffnen. Nur auf Anfrage anbieten, gestartet nach dem Rendern, damit die finale Datei ausgeliefert wird:
(cd "$PROJECT_DIR" && npx hyperframes preview) # Studio-UI; oder `npx hyperframes play` für einen teilbaren Link
Flags leben im hyperframes-cli Skill (references/preview-render.md).
Wiederaufnahme-Tabelle
| Zustand | Weiter ab |
|---|---|
kein shot-plan.json | Schritt 1 (plan) |
shot-plan.json hat asset_needs, kein assets/ | Schritt 2 (source) |
shot-plan.json final, kein compositions/index.html | Schritt 3/4 (design+build) |
compositions/index.html existiert, kein renders/video.mp4 | Schritt 5 (render) + Schritt 6 |
renders/video.mp4 existiert | Bericht + Stop |
Design-Notizen (Maintainer – die Ausführung liest dies nicht)
- Asset-First-Begründung: Die Beschaffung wird vorab erledigt und informiert das Shot-Design (der RWA-Ablauf: analysieren → suchen → prüfen → komponieren). Die suchgetriebenen Kategorien (
webpage/news/tweet) undasset-fusionstützen sich beide auf die Mediennutzung-Suche (news/web/tweet/image), die die dokumentierte RWA-Linie der Mediennutzung darstellt. - Wiederverwendung zuerst: Das Ökosystem-Analogon zu LLM-generierten Vorlagen ist „Katalogblöcke +
hyperframes-animation-Regeln komponieren“. HFs pausierte GSAP-Zeitleiste entspricht RemotionsuseCurrentFrame. - Kategorie-Modul-Vertrag: Ein
categories/<id>/module.md(Planung + Build), gemeinsam genutztreferences/motion-vocabulary.md(+ optionale Bewertung). Hinzufügen einer Kategorie = Ordner ablegen + Klassifikatorzeile inagents/director.mdregistrieren + ihre Zeile incatalog-map.md; die Phasen-Pipeline bleibt unberührt. - Verzeichnisstruktur:
videos/<project-name>/ hyperframes.json context.log shot-plan.json # das IR (Director-Output) assets/ assets/index.md # Mediennutzung-Output (falls beschafft) compositions/index.html # Builder-Output renders/video.mp4 - Registrierung: im
hyperframesRouter – die Absicht „designgetriebene kurze Bewegtgrafik“ + Workflow-Beschreibung hinzufügen; die motion-graphics-Auslöser aus/general-videoherausschneiden; umgekehrte DO-NOT-use-Kanten hinzufügen. Siehemotion-graphics-genre.md§5-7.