Alle Skills

hyperframes-animation (HeyGen HyperFrames)

Legt die Timing- und Animationsregeln für eine HyperFrames-Komposition fest: data-*-Attribute, Clips, Spuren und Unterkompositionen.

hyperframes-animation: Bringt HyperFrames-Animationskompositionen dazu, den Render-Vertrag zu befolgen (Kontrolle 3.8, Skill 4.9, One-Liner 4.5) bei 1.05x den Kontroll-Tokens, aber dieser Skill wurde aus HeyGens Repo zurückgezogen

EmpfohlenVorsicht

Codex CLI · gpt-6-astra

26.1 / 30

Lift gegenüber ohne Skill: +1.16 · Empfohlen · 18 Läufe

Empfohlen: Die Gesamtpunktzahl 26.1/30 liegt bei mindestens 22, die Ausgabequalität 4.9 bei mindestens 3.5 und der Lift +1.16 bei mindestens +1.0.

SOTA

Bestanden

Getestet mit Codex.

Gilt für Codex, Claude Code

Codex CLI 0.166 (SOTA-Stufe): 18 bewertete Läufe. Ein Bestehen hier deckt gemäß unserer Stufenregel auch Claude Code ab; über die zweite Stufe sagt es nichts aus.

Punktzahlen

Jede Dimension reicht von 0 bis 5, und die sechs ergeben zusammen die Gesamtpunktzahl von 30. 5 ist in jeder Dimension besser. Kosten 5 bedeutet günstig und schnell. Installation 5 bedeutet einfach.

Trigger-Zuverlässigkeit
5.0
Lift gegenüber ohne Skill
3.2
Ausgabequalität
4.9
Token- und Zeitkosten
5.0
Installation und Portabilität
4.0
Sicherheit
4.0

Sicherheitsprüfung

Vorsicht

Statischer Scan: 17 CRITICAL / 17 HIGH / 148 MEDIUM. Manuelle Prüfung: Sicher in einer Sandbox ohne Netzwerk auszuführen (Scanner-BLOCK ist ein Fehlalarm); die Skripte nicht blind ausführen. Ein sauberer Scan beweist nicht, dass ein Skill sicher ist.

Installieren

npx skills@latest add heygen-com/hyperframes --skill hyperframes-animation

Quelle

Fixierter Commit: 207c8a4daf6480d697f203784f1fd422727569e3

Getestet: 2026-11-02

Was wir getestet haben

  • Kinetische Headline — Eine 6-sekündige 1920x1080-HyperFrames-Komposition erstellen (ein Open-Source-Framework, das eine HTML-Seite nach MP4 rendert, indem es eine GSAP-Timeline Frame für Frame durchläuft; GSAP kommt per CDN-Script-Tag): eine dreiwortige Headline („Build. Ship. Repeat.“), bei der jedes Wort hineinknallt…
  • Szenenübergang — Eine 8-sekündige 1920x1080-HyperFrames-Komposition erstellen (ein Open-Source-Framework, das eine HTML-Seite nach MP4 rendert, indem es eine GSAP-Timeline Frame für Frame durchläuft; GSAP kommt per CDN-Script-Tag) mit zwei Vollbildszenen („Problem“ für 4.5s, „Solution“ für 4.5s), d…
  • Hochzähl-Statistik mit Balken — Eine 7-sekündige 1920x1080-HyperFrames-Komposition erstellen (ein Open-Source-Framework, das eine HTML-Seite nach MP4 rendert, indem es eine GSAP-Timeline Frame für Frame durchläuft; GSAP kommt per CDN-Script-Tag): eine große Zahl, die über 2.5 Sekunden von 0 auf 87 % hochzählt, mit einem horiz…

Vorteile

  • Hebt den Mittelwert von 3.76 auf 4.92 gegenüber ohne Skill (+1.16).
  • Der Skill wurde erkannt, ohne genannt zu werden: Skill-Datei in 6/6 Treatment-Läufen gelesen.
  • Kein Token-Overhead: 1.05x die Tokens von ohne Skill.
  • Schlägt eine Ein-Satz-Version seiner eigenen Regel um +0.39.
  • Hohe absolute Qualität mit dem Skill: 4.92 von 5.

Nachteile

  • Testhinweis: Getestet bei heygen-com/hyperframes Commit 207c8a4, einer älteren Version. Der Skill wurde später aus dem Repository-HEAD entfernt, daher funktioniert der Installationsbefehl gegen das aktuelle Repository möglicherweise nicht. Während der Läufe wird außerdem hyperframes-core gelesen.
  • n=2 pro Aufgabe und Variante; Unterschiede unter etwa 1 Punkt sind Rauschen.

Bewertung

Codex CLI 0.166 (gpt-6-astra, niedriges Reasoning) auf einem dedizierten Windows-Test-PC, einem frischen temporären Projekt und temporären HOME/TMPDIR/Caches pro Lauf; Skill installiert (Treatment) oder nicht vorhanden (Kontrolle) oder nicht vorhanden mit der Kernanforderung des Skills in einem an den Prompt angehängten Satz (One-Liner-Gruppe); 2 Läufe pro Gruppe und Aufgabe; Netzwerk aus; Schreiben nach /tmp blockiert. Die Prompts nennen den Skill nie (außer der unten genannten Formulierung). HyperFrames wird in jedem Prompt in einem Satz beschrieben (eine HTML-Seite, die nach MP4 gerendert wird, indem eine GSAP-Timeline durchlaufen wird). Aufgaben: eine 6-sekündige kinetische Headline, bei der drei Wörter hineinknallen, ein 8-sekündiger Übergang zwischen zwei Szenen und eine 7-sekündige hochzählende Zahl mit Balken. Der One-Liner nennt die Animationsregeln in einem Absatz.

Drei-Arm-Vergleich

VarianteDurchschnittsnote (0-5)Tokens pro Lauf
Ohne Skill3.76131k
Ein-Satz-Prompt4.5287k
Mit Skill4.92137k

Gemessen mit Codex CLI über 18 Läufe, bewertet durch regelbasierte Prüfungen ohne LLM-Richter. Gesamt 26.1 / 30, Urteil Empfohlen.

Offenlegung: Getestet bei heygen-com/hyperframes Commit 207c8a4, einer älteren Version. Der Skill wurde später aus dem Repository-HEAD entfernt, daher funktioniert der Installationsbefehl gegen das aktuelle Repository möglicherweise nicht. Während der Läufe wird außerdem hyperframes-core gelesen.

Urteil: Empfohlen (26.1 / 30). Quelle: heygen-com/hyperframes, skills/hyperframes-animation, skills/hyperframes-core, gepinnt auf Commit 207c8a4. Installation: npx skills@latest add heygen-com/hyperframes --skill hyperframes-animation. Lizenz: Apache-2.0 (Repo-LICENSE).

Was es ist

Der Skill hyperframes-animation aus heygen-com/hyperframes, getestet auf Commit 207c8a4 (der Skill liegt nicht mehr am Repo-HEAD, dies beschreibt also eine zurückgezogene Version): Animationsvorgaben für HyperFrames-Kompositionen: eine pausierte GSAP-Timeline, registriert unter window.__timelines[root id], GSAP-Transform-Aliase statt Layout-Eigenschaften, benannte Eases, Stagger für Sequenzen, kein Math.random/Date.now/Timer/rAF/getBoundingClientRect zum Tween-Zeitpunkt, Count-up-Zähler, die auf einem Proxy-Objekt getweent werden, und Szenen mit data-start/data-duration, deren Summe von der Root-Duration abgedeckt wird.

So haben wir getestet

Codex CLI 0.166 (gpt-6-astra, low reasoning) auf einem dedizierten Windows-Test-PC, pro Lauf ein frisches temporäres Projekt und temporäre HOME/TMPDIR/Caches, Skill installiert (Mit-Skill-Gruppe) oder nicht vorhanden (Kontrollgruppe) oder nicht vorhanden, aber mit der Kernanforderung des Skills als einem an den Prompt angehängten Satz (Ein-Satz-Gruppe), 2 Läufe pro Gruppe und Aufgabe, Netzwerk aus, Schreibzugriffe auf /tmp blockiert. Die Prompts nennen den Skill nie (außer der unten genannten Formulierung).

HyperFrames wird in jedem Prompt mit einem Satz beschrieben (eine HTML-Seite, die nach MP4 gerendert wird, indem eine GSAP-Timeline abgefahren wird). Aufgaben: eine 6-sekündige kinetische Headline, bei der drei Wörter hineinknallen, ein 8-sekündiger Übergang zwischen zwei Szenen und eine 7-sekündige Hochzählzahl mit Balken. Der Ein-Satz-Prompt nennt die Animationsregeln in einem Absatz.

  1. Kinetische Headline — Erstelle eine 6-sekündige 1920x1080-HyperFrames-Komposition (ein Open-Source-Framework, das eine HTML-Seite nach MP4 rendert, indem es eine GSAP-Timeline Bild für Bild abfährt; GSAP kommt über ein CDN-Script-Tag): eine Drei-Wort-Headline („Build. Ship. Repeat.“), bei der jedes Wort hineinknallt…
  2. Szenenübergang — Erstelle eine 8-sekündige 1920x1080-HyperFrames-Komposition (ein Open-Source-Framework, das eine HTML-Seite nach MP4 rendert, indem es eine GSAP-Timeline Bild für Bild abfährt; GSAP kommt über ein CDN-Script-Tag) mit zwei Vollbild-Szenen („Problem“ für 4.5s, „Solution“ für 4.5s), die…
  3. Hochzähl-Statistik mit Balken — Erstelle eine 7-sekündige 1920x1080-HyperFrames-Komposition (ein Open-Source-Framework, das eine HTML-Seite nach MP4 rendert, indem es eine GSAP-Timeline Bild für Bild abfährt; GSAP kommt über ein CDN-Script-Tag): eine große Zahl, die in 2.5 Sekunden von 0 auf 87% hochzählt, mit einem waagerechten…

Die Bewertung erfolgt programmatisch (versteckte Tests / Trefferquote bei eingebauten Problemen / Constraint-Prüfungen / Rendern+OCR, wo relevant), 0–5 pro Lauf. Kein LLM-Richter hat eine Punktzahl entschieden.

Ergebnisse

Der Ein-Satz-Prompt für die dritte Gruppe: "Verwende in einer HyperFrames-Komposition eine pausierte GSAP-Timeline, registriert unter window.__timelines[root id]; bewege Dinge mit GSAP-Transform-Aliasen (x, y, scale, rotation, opacity), nie mit width/height/top/left; wähle benannte Eases und nutze Stagger für Sequenzen; kein Math.random/Date.now/Timer/rAF/getBoundingClientRect zum Tween-Zeitpunkt, kein repeat:-1; treibe Zähler über ein Tween auf dem onUpdate eines Proxy-Objekts; Szenen sind getimte Elemente mit data-start/data-duration, und die Root-data-duration muss sie abdecken."

AufgabePunktzahl KontrolleEin-SatzMit SkillToken KontrolleToken Ein-SatzToken mit SkillSkill gelesen
t1-kinetic3.54.254.75113k77k144k2/2
t2-transition3.575.05.0152k111k159k2/2
t3-countup4.214.325.0126k73k107k2/2

Durchschnitt: 3.76 ohne vs. 4.92 mit Skill (Delta +1.16). Token pro Lauf: 131k vs. 137k (1.05x); Zeit 72s vs. 70s. Ein-Satz-Gruppe: 4.52 (Zuwachs des Skills gegenüber dem Ein-Satz-Prompt: +0.39; Zuwachs des Ein-Satz-Prompts gegenüber ohne Skill: +0.77); Token des Ein-Satz-Prompts 87k pro Lauf, der Skill kostet also 1.57x so viel wie der Ein-Satz-Prompt.

Was dabei herauskam

  • Kontrolle 3.76, Skill 4.92, Ein-Satz 4.52 (n=6 je Gruppe). Die häufigsten Fehler der Kontrolle sind struktureller Art: Dem Root-Element fehlte in 6/6 Läufen ein vollständiges Set aus id/width/height/duration, und die Timeline war in 5/6 nicht bei window.__timelines registriert, sodass der HyperFrames-Renderer sie nicht findet.
  • Der Skill bestand diese Prüfungen in 6/6. Der Ein-Satz-Prompt registrierte die Timeline nur in 2 von 6 Läufen (er scheiterte bei der kinetischen und der Hochzähl-Aufgabe), gab aber die Root-Duration und die Attribute richtig an.
  • Aufgabe kinetische Headline: Sowohl Skill als auch Kontrolle verfehlten den Stagger pro Wort in 2/2 Läufen nach der Stagger-Prüfung (sie nutzten separate Tweens pro Wort); der Ein-Satz-Prompt nutzte Stagger in 2/2. Diese Prüfung ist eng gefasst, der Unterschied betrifft also teils den Codestil.
  • Token: Skill 137k, Ein-Satz 87k, Kontrolle 131k pro Lauf. Der Skill macht Läufe zuverlässiger zu den Token-Kosten der Kontrolle, nicht günstiger, und der Ein-Satz-Prompt ist 36% günstiger als beide.
  • Der Skill ist groß (etwa 133 Dateien im Arbeitsordner installiert, mit Regeln, Blueprints und Techniken). Mit-Skill-Läufe lasen sowohl hyperframes-animation als auch hyperframes-core; der Skill verweist also auf den Kern-Skill, und ein Teil dieses Gewinns ist der Kern-Vertrag.

Bewertung nach Dimensionen

DimensionPunktzahlBegründung
1_output_quality4.92

Durchschnitt 4.92/5 mit Skill (programmatische Prüfungen, siehe Tabelle pro Aufgabe).

2_lift_vs_no_skill3.16

+1.16 Punkte gegenüber 3.76 ohne Skill (n=2 pro Aufgabe; unter etwa 1 Punkt ist Rauschen).

3_trigger5.0Skill-Datei in 6/6 Mit-Skill-Läufen gelesen.
4_instructions_portability4SKILL.md plus viele Referenzdateien; HyperFrames-spezifisch.
5_efficiency5

1.05x Token (137k vs. 131k pro Lauf) und 0.96x Zeit (70s vs. 72s).

6_safety_hygiene4Nur Prosa und Regeln; siehe security.md.

Grenzen dieses Tests

  • Statische Prüfungen des HTML/GSAP-Texts; es wurden keine Frames gerendert (die hyperframes-CLI, Chrome und FFmpeg liefen nicht), daher werden visuelles Timing und Qualität nicht gemessen.
  • Getestet auf Commit 207c8a4, weil HEAD den Skill nicht mehr enthält; der Installationsbefehl funktioniert möglicherweise nicht mit dem aktuellen Repository.
  • Die Stagger-Prüfung akzeptiert nur die GSAP-Option stagger, keine äquivalenten Offsets pro Wort.
  • n=2 pro Zelle.
  • n = 2 pro Gruppe und Aufgabe: Unterschiede unter etwa 1 Punkt sind Rauschen.
  • Regelbasierte Bewertung misst nur, was die Prüfungen sehen können; Geschmack oder ob ein Ergebnis das bestmögliche ist, lässt sich so nicht beurteilen.

Sicherheit

Siehe security.md. Scan: 17 CRITICAL / 17 HIGH / 148 MEDIUM. Urteil: sicher ausführbar (Sandbox ohne Netzwerk). Ein sauberer Scan beweist nicht, dass ein Skill sicher ist.

Fazit

Mit dem Skill erfüllen die Kompositionen den HyperFrames-Vertrag fast immer; ohne ihn sind Root- und Timeline-Registrierung meist falsch. Ein Absatz, der die Regeln nennt, holt das meiste davon mit weniger Token auf. Da der Skill nicht mehr im Anbieter-Repo liegt, ist das Ergebnis als Aufzeichnung jener früheren Version zu verstehen.

Transkript

Laufprotokoll: hyperframes-animation (Codex CLI, network off, per-run temp HOME/TMPDIR, one row per graded run.)
Spalten: Aufgabe, Gruppe-Lauf, Punktzahl (0-5), Tokens, Sekunden, bestandene Prüfungen, vom Agenten geöffnete Skill-Dateien.

t1-kinetic control-1: Punkte 3.5, Tokens 128548, Sek. 60.2, Prüfungen 7/10, nichts geöffnet
t1-kinetic control-2: Punkte 3.5, Tokens 99223, Sek. 66.5, Prüfungen 7/10, nichts geöffnet
t1-kinetic oneliner-1: Punkte 4.25, Tokens 79255, Sek. 64.5, Prüfungen 9/10, nichts geöffnet
t1-kinetic oneliner-2: Punkte 4.25, Tokens 75639, Sek. 62.9, Prüfungen 9/10, nichts geöffnet
t1-kinetic treatment-1: Punkte 4.75, Tokens 106794, Sek. 54.6, Prüfungen 9/10, geöffnet hyperframes-animation,hyperframes-core
t1-kinetic treatment-2: Punkte 4.75, Tokens 181725, Sek. 64.4, Prüfungen 9/10, geöffnet hyperframes-animation,hyperframes-core
t2-transition control-1: Punkte 3.57, Tokens 139995, Sek. 89.6, Prüfungen 8/11, nichts geöffnet
t2-transition control-2: Punkte 3.57, Tokens 164538, Sek. 97.6, Prüfungen 8/11, nichts geöffnet
t2-transition oneliner-1: Punkte 5.0, Tokens 98384, Sek. 101.1, Prüfungen 11/11, nichts geöffnet

18 Läufe, 21 Artefakte

Beispielausgabe

SOTA · With the skill: index.html (t1-kinetic, run 1, Codex)

<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=1920, height=1080"> <title>Build. Ship. Repeat.</title> <script src="https://cdn.jsdelivr.net/npm/gsap@3.14.2/dist/gsap.min.js"></script> <style> * { box-sizing: border-box; } html, body { width: 100%; height: 100%; margin: 0; } body { background: #080b10; color: #f5f7f5; font-family: system-ui, sans-serif; } #root { position: relative; width: 100%; height: 100%; overflow: hidden; } .clip { position: absolute; inset: 0; } .background { background: #080b10; } .glow { position: absolute; left: 310px; top: 140px; width: 1300px; height: 800px; border-radius: 50%; background: radial-gradient(ellipse, #167b60 0%, #0d463e 32%, transparent 70%); opacity: .24; } .grid { position: absolute; inset: 0; background-image: linear-gradient(#ffffff04 1px, transparent 1px), linear-gradient(90deg, #ffffff04 1px, transparent 1px); background-size: 120px 120px; mask-image: radial-gradient(ellipse, black, transparent 72%); } .content { display: flex; align-items: center; justify-content: center; flex-direction: column; } .headline { display: flex; align-items: baseline; justify-content: center; gap: 34px; margin: 0; width: 1720px; font-size: 160px; font-weight: 850; letter-spacing: -9px; line-height: 1.15; } .word { display: block; flex: 0 0 auto; transform-origin: 50% 65%; opacity: 0; } #repeat { color: #b7f676; } .subtitle { margin: 38px 0 0; font-size: 34px; font-weight: 400; letter-spacing: 1px; color: #b9c5c2; opacity: 0; } .beats { position: absolute; bottom: 210px; left: 0; right: 0; display: flex; justify-content: center; gap: 12px; } .beat { display: block; width: 38px; height: 4px; background: #b7f676; opacity: .15; transform-origin: left center; } </style> </head> <body> <div id="root" data-composition-id="main" data-start="0" data-duration="6" data-width="1920" data-height="1080"> <div class="clip background" data-start="0" data-duration="6" data-track-index="0" aria-hidden="true"> <div class="glow" id="glow"></div> <div class="grid"></div> </div> <section class="clip content" data-start="0" data-duration="6" data-track-index="1"> <h1 class="headline" aria-label="Build. Ship. Repeat."><span class="word" id="build">Build.</span><span class="word" id="ship">Ship.</span><span class="word" id="repeat">Repeat.</span></h1> <p class="subtitle" id="subtitle">The loop that never stops</p> <div class="beats" aria-hidden="true"><i class="beat"></i><i class="beat"></i><i class="beat"></i></div> </section> </div> <script> // Every visual change belongs to this single, frame-seekable timeline. const tl = gsap.timeline({ paused: true }); const beats = [0.25, 0.95, 1.65]; tl.fromTo('#glow', { scale: 0.88, x: -65, opacity: 0.24 }, { scale: 1.12, x: 65, opacity: 0.40, duration: 6, ease: 'sine.inOut' }, 0); tl.fromTo('#build', { scale: 1.65, y: -55, opacity: 0 }, { scale: 1, y: 0, opacity: 1, duration: 0.32, ease: 'power4.out' }, beats[0]); tl.fromTo('#ship', { scale: 1.35, x: 95, opacity: 0 }, { scale: 1, x [... excerpt: first 3200 of 4167 characters]

Pro ansehen