hyperframes (heygen-com/hyperframes)
Erstellt, bearbeitet, animiert und rendert HyperFrames-Videos, von Launch-Filmen und Erklärvideos bis zu Diagrammen und Untertiteln.
HyperFrames-Skill: Gleiche Videoqualität wie ohne Skill, aber 1.9x die Tokens und eine besser editierbare Projektstruktur
Codex CLI · gpt-6-astra
19.9 / 30
Lift gegenüber ohne Skill: -0.01 · Situativ · 18 Läufe
Situativ: die Gesamtpunktzahl 19.9/30 liegt unter 22 und der Lift -0.01 liegt unter +1.0. Für „Empfohlen“ sind insgesamt 22/30, eine Ausgabequalität von 3.5 und ein Lift von +1.0 nötig.
SOTA
BestandenGetestet 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
- 2.0
- Ausgabequalität
- 4.9
- Token- und Zeitkosten
- 2.0
- Installation und Portabilität
- 3.0
- Sicherheit
- 3.0
Sicherheitsprüfung
VorsichtStatischer Scan: 27 CRITICAL / 26 HIGH / 88 MEDIUM. Manuelle Prüfung: sicher auszuführen (Sandbox ohne Netzwerk). Ein sauberer Scan beweist nicht, dass ein Skill sicher ist.
Installieren
npx skills@latest add heygen-com/hyperframes --skill hyperframes
Fixierter Commit: af0d68d612ebd9c419f27d9ebc8068512667bae4
Getestet: 2026-11-02
Was wir getestet haben
- 15-s-Produktteaser — In diesem HyperFrames-Projekt (index.html als Wurzelkomposition, GSAP-Timeline, gerendert mit npx hyperframes render) einen 15-sekündigen Produktteaser für Tidepool bauen, 1920x1080, 30 fps, für ein monatliches Algen-Snack-Abo. Erforderlicher Bildschirmtext: der Name „Tidepool“,…
- 20-s-Erklärer mit animiertem Balkendiagramm — In diesem HyperFrames-Projekt (index.html als Wurzelkomposition, GSAP-Timeline, gerendert mit npx hyperframes render) einen 20-sekündigen animierten Erklärer bauen, 1920x1080, 30 fps: ein Balkendiagramm des Monatsumsatzes (Aug 42k $, Sep 58k $, Okt 71k $). Titel „Revenue, last 3 months…
- 30-s-vertikaler Short mit Untertiteln — In diesem HyperFrames-Projekt (index.html als Wurzelkomposition, GSAP-Timeline, gerendert mit npx hyperframes render) einen 30-sekündigen vertikalen Social-Short mit eingebrannten Untertiteln bauen, 1080x1920, 30 fps. Untertitel in Reihenfolge, jeweils etwa 5 Sekunden lang ab…
Vorteile
- Der Skill wurde erkannt, ohne genannt zu werden: Skill-Datei in 6/6 Treatment-Läufen gelesen.
- Hohe absolute Qualität mit dem Skill: 4.89 von 5.
Nachteile
- Kein messbarer Lift gegenüber ohne Skill (-0.01, im Rauschen).
- Ein Ein-Satz-Prompt erzielte 4.91 gegenüber 4.89 mit dem Skill (-0.01).
- Verbraucht 1.95x die Tokens von ohne Skill.
- Die Kontrolle erreicht bereits 4.9: ein Deckeneffekt, daher kann der Test keinen Lift zeigen.
- Testhinweis: Bewertet nur die Anleitung des Skills: Die hyperframes-CLI-Schleife (check, preview, render) war in der Sandbox nicht verfügbar. Die CLI ist ein separates npm-Paket, das wir nicht geprüft oder ausgeführt haben und das Nutzungstelemetrie sendet, sofern nicht deaktiviert. Die Schwester-Skills hyperframes-core und hyperframes-animation wurden beim älteren Commit 207c8a4 getestet, dieser hier bei af0d68d.
- 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 Mac-Testrechner, 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). Umgebung: Die Projektvorlage (index.html mit GSAP-Script-Tag, Kompositionsmetadaten) ist für alle Gruppen gleich. Die Sandbox hat kein Netzwerk und keine HyperFrames-CLI, daher konnte keine Gruppe check, snapshot oder render ausführen; sie schrieben nur den Quellcode. Anschließend haben wir jedes Projekt auf einem separaten Offline-Rechner mit dem festen HyperFrames 0.8.226 (Entwurfsqualität) gerendert. Das testet den Text des Skills, nicht seine CLI-Schleife.
Drei-Arm-Vergleich
| Variante | Durchschnittsnote (0-5) | Tokens pro Lauf |
|---|---|---|
| Ohne Skill | 4.9 | 128k |
| Ein-Satz-Prompt | 4.91 | 150k |
| Mit Skill | 4.89 | 249k |
Gemessen mit Codex CLI über 18 Läufe, bewertet durch regelbasierte Prüfungen ohne LLM-Richter. Gesamt 19.9 / 30, Urteil Situativ.
Offenlegung: Bewertet nur die Anleitung des Skills: Die hyperframes-CLI-Schleife (check, preview, render) war in der Sandbox nicht verfügbar. Die CLI ist ein separates npm-Paket, das wir nicht geprüft oder ausgeführt haben und das Nutzungstelemetrie sendet, sofern nicht deaktiviert. Die Schwester-Skills hyperframes-core und hyperframes-animation wurden beim älteren Commit 207c8a4 getestet, dieser hier bei af0d68d.
Urteil: Situationsabhängig (19.9 / 30). Quelle: heygen-com/hyperframes, skills/hyperframes, festgeschrieben auf Commit af0d68d. Installation: npx skills@latest add heygen-com/hyperframes --skill hyperframes. Lizenz: Apache-2.0.
Was es ist
Der Skill hyperframes aus heygen-com/hyperframes (Apache-2.0): eine SKILL.md mit 1,100 Wörtern plus ~25 Referenzdateien und einige Hilfsskripte, um Videos als HTML zu erstellen, das zu MP4 gerendert wird, indem eine pausierte GSAP-Timeline Bild für Bild durchlaufen wird. Er legt einen Render-Vertrag mit 12 Regeln fest (jedes zeitgesteuerte Element ist class="clip" mit data-start/data-duration, eine pausierte Timeline registriert auf window.__timelines, nichts Nichtdeterministisches), eine editierbare Struktur (eine Szene pro Subkomposition) und einen Arbeitsablauf rund um die CLI npx hyperframes (check, snapshot, preview, render).
Wie wir getestet haben
Codex CLI 0.166 (gpt-6-astra, niedriges Reasoning) auf einem Mac-Testgerät, pro Lauf ein frisches temporäres Projekt sowie temporäre HOME/TMPDIR/Caches, Skill installiert (Treatment) oder nicht vorhanden (Kontrolle) oder nicht vorhanden 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 erwähnten Formulierung).
Umgebung: Die Projektvorlage (index.html mit dem GSAP-Script-Tag, Kompositions-Metadaten) ist für alle Gruppen gleich. Die Sandbox hat kein Netzwerk und keine HyperFrames-CLI, daher konnte keine Gruppe check, snapshot oder render ausführen; sie schrieben nur den Quellcode. Anschließend renderten wir jedes Projekt auf einem separaten Offline-Rechner mit dem festgeschriebenen HyperFrames 0.8.226 (Entwurfsqualität). Das testet den Text des Skills, nicht seine CLI-Schleife.
- 15-s-Produkt-Teaser — Baue in diesem HyperFrames-Projekt (index.html als Root-Komposition, GSAP-Timeline, gerendert mit
npx hyperframes render) einen 15-sekündigen Produkt-Teaser für Tidepool in 1920x1080 bei 30 fps, ein monatliches Algen-Snack-Abo. Geforderter Text auf dem Bildschirm: der Name „Tidepool“,… - 20-s-Erklärvideo mit animiertem Balkendiagramm — Baue in diesem HyperFrames-Projekt (index.html als Root-Komposition, GSAP-Timeline, gerendert mit
npx hyperframes render) ein 20-sekündiges animiertes Erklärvideo in 1920x1080 bei 30 fps: ein Balkendiagramm des Monatsumsatzes (Aug $42k, Sep $58k, Oct $71k). Titel: Revenue, last 3 months… - 30-s-vertikaler Short mit Untertiteln — Baue in diesem HyperFrames-Projekt (index.html als Root-Komposition, GSAP-Timeline, gerendert mit
npx hyperframes render) einen 30-sekündigen vertikalen Social-Short in 1080x1920 bei 30 fps mit eingebrannten Untertiteln. Die Untertitel, in Reihenfolge, jeweils etwa 5 Sekunden lang ab…
Die Bewertung erfolgt programmatisch (versteckte Tests / Erkennung eingepflanzter Fehler / Constraint-Checks / Rendering+OCR, wo relevant), 0–5 pro Lauf. Kein LLM-Judge hat eine Bewertung entschieden.
Ergebnisse
Der Ein-Satz-Prompt für die dritte Gruppe: "Baue es als HyperFrames-HTML-Komposition: ein Root mit data-composition-id/data-width/data-height/data-duration, jedes zeitgesteuerte Element mit class="clip" plus data-start und data-duration in Sekunden, eine pausierte GSAP-Timeline registriert als window.__timelines["<composition-id>"], und nichts Nichtdeterministisches (kein Date.now(), ungeseedetes Math.random(), Timer, Netzwerk oder repeat:-1)."
| Aufgabe | Kontrollwert | Ein-Satz | Mit Skill | Kontroll-Token | Ein-Satz-Token | Mit-Skill-Token | Skill gelesen |
|---|---|---|---|---|---|---|---|
| t1-teaser | 5.0 | 5.0 | 4.97 | 140k | 173k | 364k | 2/2 |
| t2-chart | 4.71 | 4.72 | 4.71 | 125k | 116k | 184k | 2/2 |
| t3-vertical | 5.0 | 5.0 | 5.0 | 117k | 158k | 197k | 2/2 |
Durchschnittswert: 4.9 ohne vs. 4.89 mit dem Skill (Delta -0.01). Token pro Lauf: 128k vs. 249k (1.95x); Zeit 154s vs. 208s. Ein-Satz-Gruppe: 4.91 (Gewinn des Skills gegenüber dem Ein-Satz-Prompt: -0.01; Gewinn des Ein-Satz-Prompts gegenüber ohne Skill: +0.0); Ein-Satz-Token 150k pro Lauf, der Skill kostet also 1.67x so viel wie der Ein-Satz-Prompt.
Was passiert ist
- Die Videoqualität war gleich. Alle 18 Projekte renderten beim ersten Versuch in der richtigen Größe, Länge und Bildrate, und der geforderte Text (Name, Tagline, $14 / box, Schlusszeile, Untertitel) wurde in jedem Lauf, in dem er vorkommen sollte, per OCR auf dem Bildschirm gefunden. Durchschnittswert 4.90 ohne den Skill, 4.91 nur mit der Ein-Satz-Version seiner Regeln, 4.89 mit dem Skill. Die einzigen verlorenen Punkte, in allen drei Gruppen, stammen vom Balkendiagramm-Erklärvideo, das lange Strecken stillsteht (Bilder mit Bewegung 15-23%).
- Die Ein-Satz-Version war so gut wie der Skill. Gab man dem Kontroll-Agenten einen einzigen Satz des Vertrags (clip-Klasse, data-start/data-duration, eine pausierte Timeline, kein nichtdeterministischer Code), ergab das dieselben Werte und dasselbe Aussehen: Wir sahen uns Kontaktbögen des Teasers, des Diagramms und des vertikalen Shorts aus allen drei Gruppen an und konnten sie qualitativ nicht ordnen.
- Der Skill wird jedes Mal gelesen (6/6 Treatment-Läufe), ändert aber, wie das Projekt gebaut wird, und nicht, wie es aussieht. Alle 6 Skill-Läufe teilten den Film in Subkompositionen (compositions/*.html, eine pro Szene), wie es sein Abschnitt zur Editierbarkeit verlangt; 0 von 12 Läufen ohne Skill taten das. Die Markierung zeitgesteuerter Elemente als
clips variierte nach Gruppe, nicht nach Skill: Die Läufe ohne Skill verwendeten 0-6 pro Projekt, die Skill-Läufe 1-9 und die Ein-Satz-Läufe 3-25. Das ist der Teil des Skills, der zählt, wenn danach ein Mensch das Projekt in HyperFrames Studio öffnet, und er wird hier nicht bewertet. - Er kostet viel. 249k Token pro Lauf gegenüber 128k ohne den Skill (1.94x) und 150k mit dem Ein-Satz-Prompt (1.66x), 15 Befehle pro Lauf gegenüber 8, und etwa 35% mehr Zeit. Der Agent liest zuerst SKILL.md und mehrere Referenzdateien und schreibt im autonomen Modus trotzdem
SPEC.md,REVIEW.mdund eine README, die niemand angefordert hat (4.7 Dateien pro Lauf gegenüber 1). - Ein Teil des Skills konnte nicht laufen. Die Schleife in SKILL.md ist check, snapshot, review, dann render; ohne verfügbare CLI wichen die Agenten auf handgeschriebene REVIEW.md-Dateien aus. Eine Umgebung, in der die CLI funktioniert, könnte ein anderes Ergebnis zeigen und Fehler abfangen, die die Erstentwürfe hier nicht hatten.
Dimensionswerte
| Dimension | Wert | Begründung |
|---|---|---|
| 1_output_quality | 4.89 | Durchschnittswert 4.89/5 mit dem Skill (programmatische Checks, siehe Tabelle pro Aufgabe). |
| 2_lift_vs_no_skill | 1.99 | -0.01 Punkte gegenüber 4.90 ohne den Skill (n=2 pro Aufgabe; unter ~1 Punkt ist Rauschen). |
| 3_trigger | 5.0 | Skill-Datei in 6/6 Treatment-Läufen gelesen. |
| 4_instructions_portability | 3 | Verlässt sich auf die CLI |
| 5_efficiency | 2 | 1.95x Token (249k vs. 128k pro Lauf) und 1.35x Zeit (208s vs. 154s). |
| 6_safety_hygiene | 3 | Text und Skripte geprüft: nur Treffer in der Dokumentation zu |
Grenzen dieses Tests
- Die CLI-Schleife (check, snapshot, preview, render) war in der Sandbox nicht verfügbar, daher bewertet dies nur die Anleitung des Skills; die Prämisse des Skills ist, dass die CLI die Schleife schließt.
- Drei Aufgaben: ein Produkt-Teaser, ein Drei-Balken-Diagramm und ein vertikaler Short mit Untertiteln, alles im Code gezeichnet. Footage, Audio, Karten, Registry-Blöcke und die HeyGen-basierten Medienfunktionen wurden nicht getestet.
- Renderings in Entwurfsqualität auf einem Linux-Rechner; die Bewegungsprüfung ist eine grobe Bilddifferenz-Schwelle, und dieselbe Diagrammaufgabe verliert in jeder Gruppe Punkte.
- Die strukturellen Zählungen (Subkompositionen, clip-Elemente) stammen aus dem Lesen der Quelldateien und sind nicht Teil der 0-30-Bewertung.
- Die Lizenz ist Apache-2.0, aber die CLI, auf die der Skill sich stützt, ist ein separates npm-Paket, das wir nicht geprüft oder auf dem Testrechner ausgeführt haben; es sendet Nutzungstelemetrie, sofern nicht deaktiviert.
- n = 2 pro Gruppe und Aufgabe: Abweichungen unter etwa 1 Punkt sind Rauschen.
- Regelbasierte Bewertung misst, was die Checks sehen können; sie kann weder Geschmack beurteilen noch, ob ein Ergebnis das bestmögliche ist.
Sicherheit
Siehe security.md. Scan: 27 CRITICAL / 26 HIGH / 88 MEDIUM. Urteil: sicher ausführbar (Sandbox ohne Netzwerk). Ein sauberer Scan beweist nicht, dass ein Skill sicher ist.
Fazit
Für einmalige, im Code gezeichnete Videos in dieser Sandbox machte der Skill die Videos nicht besser und kostete etwa doppelt so viele Token; ein Satz seines Vertrags erledigte dieselbe Aufgabe. Sein Wert liegt in der Projektstruktur (eine Szene pro Subkomposition, markierte Clips) für alle, die danach in HyperFrames Studio weiterbearbeiten, und in der CLI-Schleife, die wir nicht ausprobieren konnten. Installiere ihn, wenn du regelmäßig mit HyperFrames arbeitest; lass ihn weg für schnelle Wegwerf-Renderings.
Transkript
Laufprotokoll: hyperframes (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-teaser control-1: Punkte 5.0, Tokens 158742, Sek. 258.0, Prüfungen 5/5, nichts geöffnet t1-teaser control-2: Punkte 5.0, Tokens 122491, Sek. 163.4, Prüfungen 5/5, nichts geöffnet t1-teaser oneliner-1: Punkte 5.0, Tokens 194827, Sek. 274.5, Prüfungen 5/5, nichts geöffnet t1-teaser oneliner-2: Punkte 5.0, Tokens 151350, Sek. 215.4, Prüfungen 5/5, nichts geöffnet t1-teaser treatment-1: Punkte 4.94, Tokens 359882, Sek. 360.9, Prüfungen 5/5, geöffnet hyperframes t1-teaser treatment-2: Punkte 5.0, Tokens 370088, Sek. 251.3, Prüfungen 5/5, geöffnet hyperframes t2-chart control-1: Punkte 4.73, Tokens 159545, Sek. 126.0, Prüfungen 4/5, nichts geöffnet t2-chart control-2: Punkte 4.69, Tokens 91764, Sek. 107.4, Prüfungen 4/5, nichts geöffnet t2-chart oneliner-1: Punkte 4.74, Tokens 118117, Sek. 146.0, Prüfungen 4/5, nichts geöffnet
18 Läufe, 21 Artefakte
Beispielausgabe
SOTA · With the skill: compositions/arrival.html (t1-teaser, run 1, Codex)
<template> <style>*{box-sizing:border-box}#root{position:absolute;inset:0;font-family:Arial,Helvetica,sans-serif;color:#173E32}.stage,.artboard{position:absolute;inset:0;width:1920px;height:1080px;overflow:hidden}.artboard{background:#F5F0DF}h1,h2,p{margin:0}.eyebrow{font-size:24px;font-weight:700;letter-spacing:4px;text-transform:uppercase}.rule{height:2px;background:currentColor;opacity:.3}.pouch{position:absolute;width:470px;height:650px}.pouch svg{width:100%;height:100%}.wipe{position:absolute;z-index:20}.serial{position:absolute;left:192px;top:930px;font-size:22px;letter-spacing:3px}.wordmark{font-weight:900;letter-spacing:-8px}.chip{position:absolute;width:400px;height:472px}.chip svg{width:100%;height:100%} </style> <div id="root" data-composition-id="arrival" data-width="1920" data-height="1080" data-duration="5"> <div id="arrival-stage" class="clip stage" data-start="0" data-duration="5" data-track-index="0" data-track-kind="graphics"><div class="artboard"> <svg id="arrival-rings" width="1920" height="1080" style="position:absolute" aria-hidden="true"><g fill="none" stroke="#173E32" stroke-width="2" opacity=".16"><ellipse cx="1450" cy="530" rx="335" ry="335"/><ellipse cx="1450" cy="530" rx="445" ry="445"/><ellipse cx="1450" cy="530" rx="560" ry="560"/></g></svg> <div id="arrival-kicker" class="eyebrow" style="position:absolute;left:192px;top:202px">Meet your monthly ocean fix</div> <div style="position:absolute;left:192px;top:299px;overflow:hidden;width:1000px;height:220px"><h1 id="arrival-title" class="wordmark" data-var-text="brand" style="font-size:192px;line-height:1.1">Tidepool</h1></div> <p id="arrival-copy" data-var-text="tagline" style="position:absolute;left:194px;top:555px;width:820px;font-size:48px;line-height:1.25;letter-spacing:-1px">Crisp seaweed snacks, delivered monthly</p> <div id="arrival-rule" class="rule" style="position:absolute;left:194px;top:750px;width:710px"></div> <p id="arrival-note" style="position:absolute;left:194px;top:785px;font-size:24px;letter-spacing:2px">FROM THE SEA. TO YOUR SNACK DRAWER.</p> <div id="arrival-pouch" class="pouch" style="left:1190px;top:201px"><svg viewBox="0 0 470 650" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Illustrated Tidepool seaweed snack pouch"><defs><linearGradient id="a-foil" x1="0" x2="1"><stop stop-color="#BACA99"/><stop offset=".12" stop-color="#E3E8BC"/><stop offset=".7" stop-color="#D7DFAE"/><stop offset="1" stop-color="#AABA8C"/></linearGradient><pattern id="a-seal" width="8" height="8" patternUnits="userSpaceOnUse"><path d="M0 0V8" stroke="#173E32" opacity=".2" stroke-width="2"/></pattern></defs><path d="M40 15Q235 0 430 15L420 68Q436 350 445 605Q235 640 25 605L48 68Z" fill="url(#a-foil)" stroke="#173E32" stroke-width="3"/><path d="M40 15Q235 0 430 15L425 50H44Z" fill="url(#a-seal)"/><path d="M30 580Q235 600 441 580L445 605Q235 640 25 605Z" fill="url(#a-seal)"/><path d="M48 68H420" stroke="#173E32" stroke-width="3" opacity=".4"/><path d="M64 82L47 565M405 80L423 564" stroke="#FFFBE2" stroke-width="4" opacity=".6"/><text x="235" y="157" text-anchor="middle" fill="#173E32" font-family="Arial, sans-serif" font-size="71" font-weight="900" letter-spacin [... excerpt: first 3200 of 5490 characters]