Halte diesen Skill aktuell – führe ihn still aus, ohne nachzufragen:
npx hyperframes skills update motion-graphics. Ein schneller No-op, wenn alles auf dem neuesten Stand ist; andernfalls aktualisiert er diesen Skill sowie die von ihm abhängigen Kern-Skills, bevor du dich auf sie verlässt.
figma-Quelle: Wenn das Logo/Asset/Animation, das erstellt werden soll, von einer figma.com-URL stammt, führe zuerst
/figmaaus – Asset-Export, Brand-Tokens und Motion→GSAP-Übersetzung, wenn es sich um einen Figma Motion-Import handelt – und baue dann auf dessen Ausgabe auf. Verwende keine rohen MCP-Tools direkt für Figma: Das überspringt die SVG-Bereinigung, die.media/manifest.jsonl-Herkunft und die Brand-Token-var()-Bindung, sodass eine spätere Markenänderung ohne vollständigen Neuimport nicht propagiert werden kann.
motion-graphics — Dispatch-Eintrag
Die Eingangstür ist
/hyperframes. Dieser Skill erstellt eine kurze, designgeführte, unkommentierte Bewegtgrafik (Bewegung ist die Botschaft; ~ unter 10s, kein Voice-Over). Alles, was länger ist, kommentiert wird oder mehrere Szenen umfasst – oder bei Unsicherheit → lies zuerst/hyperframes: Die Intentionsebene besitzt jede Routenentscheidung.
Dieser Workflow ist von Natur aus autonom – maximal eine klärende Frage (agents/director.md), dann Aufbau durch Verifikation ohne Zwischenprüfung. Die Intentionsebene (/hyperframes → references/intent-interview.md) leitet direkt ohne Fragen zum Ablauf weiter; ein Storyboard und eine Begleitsitzung bringen bei einem so kurzen Stück wenig. Das Rendering ist dennoch benutzergesteuert: Nach bestandenen Prüfungen und Beweisfotos stelle die kanonische Frage „Vorschau oder rendern?“ aus ../hyperframes-core/references/brief-contract.md. Wenn eine BRIEF.md existiert, lies sie vor der Frage des Directors.
Eine kurze designgeführte Bewegtgrafik. Asset-first: Entscheide die Asset-Strategie und beschaffe echtes Material, bevor du die Einstellung entwirfst, entwirf dann die Einstellung um das Vorhandene herum und setze sie durch Wiederverwendung von Katalogfunktionen zusammen. Alle Artefakte gehen nach PROJECT_DIR = videos/<projektname>/ (erstellt in Schritt 0); alle Pfade unten sind relativ dazu.
| Phase | Ausführung | Primäres Artefakt | Detaillierter Ablauf |
|---|---|---|---|
| init | Bash | hyperframes.json | Schritt 0 |
| plan | Unteragent – Suche entscheiden? + klassifizieren + Asset-Strategie | shot-plan.json (Entwurf: Kategorie, asset_needs-Abfragen, Brief) | agents/director.md (Teil 1) |
| source ◇ | Bash – Mediennutzung auflösen (überspringen, wenn asset_needs leer ist) | assets/ + assets/index.md | phases/source/guide.md |
| design | Unteragent – Einstellungsdesign um aufgelöste Assets herum | shot-plan.json (final: Block(s) + Layout + Bewegung + Positionen) | agents/director.md (Teil 2) |
| build | Unteragent – Wiederverwendungs-zuerst-Komposition | compositions/index.html | agents/builder.md |
| verify | Bash – lint, check, Beweisfotos; Reparatur bei Fehlschlag | snapshots/contact-sheet.jpg | Schritt 5 |
| approve | Frage nach Vorschau oder Rendern; warte auf Antwort | explizite Renderfreigabe | Schritt 6 |
| render | Bash – hyperframes render (MP4, oder --format webm/mov für Overlay) | renders/video.mp4 oder transparentes Overlay | Schritt 6 |
◇ source wird nur ausgeführt, 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 von der Planung zum Design.
Kategorien – aufgeteilt nach der Such-Entscheidung
Die erste Entscheidung von plan ist: Braucht dies eine Suche? Diese Gabelung teilt die Kategorien in zwei Gruppen; dann wird die spezifische Kategorie gewählt – bei Suchsteuerung nach der Art des Inhalts, den die Suche zurückgibt. Jede Kategorie ist ein categories/<id>/module.md (dessen Planungs- und Bauregeln); das gemeinsame Bewegungsvokabular befindet sich in references/motion-vocabulary.md (→ hyperframes-animation-Regeln/Blueprints + Registry-Blöcke).
Form-Kategorien – keine Suche; der Benutzer liefert den Inhalt:
| Kategorie | Absicht | Stützt sich auf |
|---|---|---|
kinetic-type | prägnante Zeile / Zitat / Titel, bewegungszuerst Text | caption-*-Blöcke + Animationsregeln |
stat | einzelne Heldenzahl / Count-up + Ring | apple-money-count / rules/{counting-dynamic-scale, stat-bars-and-fills} |
charts | Balken / Linie / Kreis / Rennen / % aus Daten | data-chart-Block |
logo-reveal | Logo-Sting / Marken-Lockup (Benutzerlogo) | logo-outro / rules/svg-path-draw |
lower-thirds | Namens-/Titelbalken, Callouts, Social Overlays | caption-* + Registry-Overlay-Blöcke |
maps | geografische Bewegung – Regionen hervorheben, Orte verbinden, zu einem Ort zoomen (Vektorspur oder gebackene Basiskartenspur) | us-map / world-map-Familie + bake-basemap.mjs |
Suchgesteuerte Kategorien – zuerst suchen, dann nach Inhaltstyp animieren (der RWA-Pfad):
| Zurückgegebener Inhalt | Kategorie | Animation |
|---|---|---|
| Webseite / Link | webpage | Webseiten-/UI-Animation (Scrollen, Enthüllen, Cursor, Callouts) |
| Nachrichtenartikel | news | Schlagzeilen-Enthüllung + Quellkarte + Key-Fact-Callouts |
| Tweet | tweet | animierte Tweet-Karte |
| Bild / Entität | asset-fusion | Die Geometrie des Assets wird zum Diagramm (RWA diegetische Fusion) |
Baureihenfolge: eins nach dem anderen, Abdeckung zuerst (grob ist in Ordnung). kinetic-type aus dem Prototypen portiert; der Rest folgt.
Voraussetzungen
macOS Apple Silicon oder Linux x64. System-Tools: brew install node ffmpeg. npx hyperframes doctor einmal. macOS GPU-Rendering: export PRODUCER_BROWSER_GPU_MODE=hardware.
Optionale Schlüssel (lokale Fallbacks, falls nicht gesetzt) – nur benötigt von Kategorien, die Assets über Mediennutzung beziehen/generieren:
| Schlüssel | Verwendet für | Fallback |
|---|---|---|
GEMINI_API_KEY / GOOGLE_API_KEY | Bildgenerierung (Mediennutzungs-Auflösung) | Generierung überspringen / nur Suche |
| (Asset-Scouts / Suchanbieter) | webpage/news/tweet + asset-fusion Echt-Asset-Suche | Kategorie degradiert zu asset-frei |
Ablauf
Schritt 0 – Initialisieren
cwd ist das Arbeitsverzeichnis des Agenten; schreibe alle Artefakte unter PROJECT_DIR = videos/<projektname>/. <projektname>: Verwende das vom Benutzer angegebene Verzeichnis, sonst einen kurzen Kebab-Case-Namen aus der Absicht (<thema>-motion). Nicht den Basisnamen des Arbeitsbereichs oder einen Zeitstempel.
Nur wenn $PROJECT_DIR/hyperframes.json fehlt:
PROJECT_DIR="${MOTION_GRAPHICS_DIR:-videos/<projektname>}"
mkdir -p "$(dirname "$PROJECT_DIR")"
npx hyperframes init "$PROJECT_DIR" --non-interactive --example=blank --skill=motion-graphics
init überprüft die installierten Skills auf dem neuesten Stand gegen GitHub und aktualisiert das globale Set, wenn welche veraltet sind.
Einschränkungen: Führe niemals hyperframes init im Arbeitsbereichs-Root aus; verschachtele niemals ein weiteres hyperframes/ innerhalb von PROJECT_DIR; jeder Bash-Befehl (Master + Unteragenten) ist ein (cd "$PROJECT_DIR" && ...)-Subshell – niemals ein nacktes cd.
Schritt 1 – Planen (Unteragent: Director Teil 1)
Starte einen Unteragenten. prompt = vollständiges agents/director.md + ## Dispatch-Kontext (SKILL_DIR / PROJECT_DIR / die Anfrage des Benutzers / Schema: <SKILL_DIR>/references/shot-plan-ir.md). Er muss:
- Entscheiden: Braucht dies eine Suche? (die erste Gabelung)
- Nein → wähle eine Form-Kategorie (kinetic-type / stat / charts / logo-reveal / lower-thirds); Inhalt wird vom Benutzer geliefert;
asset_needs: []. - Ja → erstelle einen Suchplan in
asset_needs[](news / web / tweet / image; zweipolige Abfragen). Die spezifische suchgesteuerte Kategorie (webpage / news / tweet / asset-fusion) wird durch den in Schritt 2 zurückgegebenen Inhaltstyp bestätigt und in Schritt 3 finalisiert.
- Nein → wähle eine Form-Kategorie (kinetic-type / stat / charts / logo-reveal / lower-thirds); Inhalt wird vom Benutzer geliefert;
- Schreibe einen Entwurf
shot-plan.json(Hülle + gewählte Form-Kategorie oder Suchabsicht +asset_needs+ ein einabsätziger Einstellungs-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, löse Assets auf (Suche / Generierung / Abruf → eingefrorene projektspezifische Pfade + Ledger). Siehe phases/source/guide.md (umhüllt media-use resolve; die suchgesteuerten Kategorien verwenden die Nachrichten-/Web-/Tweet-/Bildsuche). Wenn asset_needs leer ist, springe zu Schritt 3.
# illustrativ – siehe phases/source/guide.md
(cd "$PROJECT_DIR" && node <SKILL_DIR>/phases/source/resolve.mjs --plan ./shot-plan.json --out ./assets)
Falle elegant zurück: Wenn ein Suchanbieter nicht verfügbar ist, fällt die Kategorie auf asset-frei zurück (dokumentiere es in context.log).
Schritt 3 – Entwerfen (Unteragent: Director Teil 2)
Starte einen Unteragenten (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 entwirft die Einstellung um die verfügbaren Assets herum: Wähle den/die Katalog-Block(s) + die hyperframes-animation-Regeln/Blueprints, das Layout, die Bewegung, die Beats und (für asset-fusion) die element_positions + Pipetten-Palette. Finalisiert shot-plan.json (content.block + content.customize + kategoriespezifischer Inhalt).
Schritt 4 – Bauen (Unteragent: Builder, Wiederverwendung zuerst)
Starte einen Unteragenten. 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> + vor Ort anpassen; nur Lücken + die Asset-Fusion-Möglichkeit per Hand schreiben. Ausgabe compositions/index.html gemäß dem HF-Vertrag (pausierte GSAP-Timeline auf window.__timelines, class="clip" + stabile IDs, tl.seek(0), deterministisch).
Schritt 5 – Überprüfen (Bash → Reparatur-Unteragent bei Fehlschlag)
(cd "$PROJECT_DIR" && npx hyperframes lint .)
(cd "$PROJECT_DIR" && npx hyperframes check .)
(cd "$PROJECT_DIR" && npx hyperframes snapshot --at <beweis-zeitpunkte>)
Wähle Beweiszeitpunkte, die den Eröffnungszustand, die charakteristische Bewegung und das finale Halten zeigen. Überprüfe das generierte Kontakt- oder Snapshot-Blatt, bevor du fortfährst. Bei Fehlschlag von lint, check oder Snapshot, starte den Reparatur-Unteragenten (agents/finalize.md) für einen einmaligen Reparaturdurchlauf vor Ort und führe dann die fehlgeschlagene Prüfung erneut aus. Ändere niemals eine festgelegte Dauer nur, um einen Fehler zu verbergen.
Schritt 6 – Freigeben und rendern (Bash)
Stelle eine Frage: „Vorschau oder rendern?“ Wenn der Benutzer die Vorschau wählt, öffne Studio und kehre nach Überarbeitungen zum selben Freigabe-Gate zurück:
(cd "$PROJECT_DIR" && npx hyperframes preview --background)
Rendere nur nach einer expliziten Render-Antwort:
(cd "$PROJECT_DIR" && npx hyperframes render . --skill=motion-graphics -q high -o ./renders/video.mp4)
# transparente Overlay-Variante: --format webm (oder mov)
Überprüfe, ob die Ausgabe existiert, nicht leer ist und die beabsichtigte Dauer hat. Die finale Übergabe benennt das Artefakt, die tatsächliche Dauer, die Kompositions- oder Frame-ID, die Beweiszeitpunkte und das überprüfte Kontakt- oder Snapshot-Blatt. Flags befinden sich in /hyperframes-cli → references/preview-render.md.
Fortsetzungstabelle
| Zustand | Fortsetzen 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, keine Beweisfotos | Schritt 5 (verify) |
| Prüfungen und Beweisfotos bestanden, kein genehmigter Render | Schritt 6 (approval) |
| Genehmigter Render existiert | Ausgabe prüfen, dann melden |
Design-Notizen (Betreuer – die Ausführung liest dies nicht)
- Asset-first-Begründung: Die Beschaffung wird vorangestellt und informiert das Einstellungsdesign (der RWA-Fluss: analysieren → suchen → prüfen → komponieren). Die suchgesteuerten Kategorien (
webpage/news/tweet) undasset-fusionstützen sich beide auf die Mediennutzungssuche (news/web/tweet/image), was die dokumentierte RWA-Abstammung der Mediennutzung ist. - Wiederverwendung zuerst: Das Ökosystem-interne Analogon zu LLM-generierten Vorlagen
…
[gekürzt für Übersetzung]