Communitygithub.com

heygen-com/hyperframes

Verwandelt eine wöchentliche Änderungsprotokoll-Markdown-Datei in ein fertiges Marken-Video (quadratisch 1080, ~45-60s, Annie-Sprecherin, animierter Markenhintergrund, Mock-UI-Visualisierungen, dezente Untertitel).

Was ist hyperframes?

Diese Fähigkeit (Skill) nimmt eine changelog.md-Datei mit wöchentlichen Themen und Einträgen entgegen und erstellt daraus ein vollständig produziertes, gebrandetes Erklärvideo im Quadratformat (1080×1080). Das Video ist 45–60 Sekunden lang, verwendet die Sprecherstimme „Annie“ von HeyGen, einen animierten Markenhintergrund, UI-Mockups zur Visualisierung von Änderungen und dezent integrierte Untertitel. Der Skill ist vollständig in sich geschlossen – Schriftarten, Hintergründe, Vokabular und Skripte werden direkt mitgeliefert.

Funktioniert mit✓Claude Code✓Codex CLI✓Cursor
npx skills add https://github.com/heygen-com/hyperframes/tree/HEAD/.agents/skills/changelog-video

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Changelog → Markenvideo

Eingabe: eine changelog.md-Datei (Themen + Einträge, z. B. der wöchentliche HyperFrames-Digest). Ausgabe: ein lint-sauberes, seam-gate-grünes HyperFrames-Projekt in projects/active/weekly-changelog-<range>/. Rendern nur auf Anfrage.

Zuerst laden, nicht verhandelbar: motion-doctrine (+ cut-the-curve, oversized-cursor falls ein Cursor erscheint, seam-craft) und captions-overlay. Diese Fähigkeit stellt die changelog-spezifische Pipeline bereit; die Doktrin liefert das Bewegungsgesetz.

Die oberste Direktive: visualisieren, nicht auflisten

Jedes Thema wird durch einen animierten Mock der tatsächlichen Benutzeroberfläche oder ein treues Analogon illustriert, das die Änderung im Erlebnis nachbildet – niemals Textaufzählungen. Jedes Thema/jeden Eintrag VOR dem Schreiben des Skripts durch references/visualization-registry.md leiten; die Registry entscheidet über ui-recreate / ui-analog / terminal / checkliste. Text-Checkliste ist der LETZTE Ausweg, reserviert für wirklich nicht-visuelle Einträge (zuverlässigkeitsbezogene Fehlerbehebungslisten).

Pipeline

0 · Bootstrapping des Projekts AUS DEN RESSOURCEN DIESER FÄHIGKEIT – nicht verhandelbar

Tun Sie dies, bevor Sie Composition-HTML schreiben. Das Überspringen führt immer zu einem Video, das wie ein ähnliches Projekt aussieht, das Sie zuvor gebaut haben, NICHT wie die Marke dieser Fähigkeit – das ist der mit Abstand häufigste Weg, wie diese Fähigkeit von der Marke abweicht. Die Ressourcen, Schriftarten und das Gerüst dieser Fähigkeit SIND die Fähigkeit; die SKILL.md-Anweisung ist ein Router.

mkdir -p project/assets/fonts
cp <SKILL_DIR>/assets/fonts/*.woff2 project/assets/fonts/
cp <SKILL_DIR>/assets/bgm.mp3 project/bgm.mp3
ffmpeg -y -stream_loop 15 -i <SKILL_DIR>/assets/bg-pattern.mp4 -t <TOTAL> \
  -vf "scale=1080:1080,fps=30,eq=saturation=0.72,[email protected]:t=fill" \
  -an -c:v libx264 -crf 20 -pix_fmt yuv420p project/assets/bg-pattern-<TOTAL>s.mp4
cp <SKILL_DIR>/examples/master-skeleton.html project/index.html

Lesen Sie dann references/build-spec.md vollständig durch (nicht überfliegen) – es definiert die Marken-Token (TT Norms Pro + ABC Solar Display + TT Norms Mono, Cremefarbe #f5f6f4, rationiertes Grün #5ef17c, Glaskarten mit grün getönten Rändern, Kicker/Sec-Chip-Pillenform, 32px Untertitel-Schiene bei top: 990), die jede Szene vom Gerüst erbt.

Erst DANN beginnen Sie mit den Schritten 1-6 unten. Die Schritte 1-4 (Parsen, Routing, Skript, Sprecher) planen, was in das Gerüst kommt; Schritt 5 füllt Platzhalter (<RANGE>, <TOTAL>, <CUT_N>, <DUR_N>, Szeneninhalte) innerhalb der bereits kopierten project/index.html – Sie überschreiben NICHT das Chrome, die Schriftarten, die Palette oder das Layout-Shell des Gerüsts.

Wenn Sie dabei ertappen, dass Sie nach einem cp auf das index.html eines früheren Videos greifen, eigene @font-face-Deklarationen schreiben oder einen WebGL-Shader-Hintergrund entwerfen, anstatt das codierte bg-pattern-MP4 von oben zu verwenden: STOPPEN Sie. Löschen Sie das aktuelle index.html und beginnen Sie neu beim cp des master-skeleton-Gerüsts. Den Szeneninhalt auf dem richtigen Gerüst neu aufzubauen, ist günstiger, als nachträglich die Marke in das falsche Gerüst einzubauen.

1 · Parsen + redaktioneller Schnitt

  • Extrahieren: Wochenbereich, Überschriftsstatistiken (Releases, Commits), Themen, Einträge.
  • Budget: 45-60s gesamt. Titel ≤2s, Abspann ≤3.5s, 4 Themen ≈ 9-12s pro Thema.
  • Pro Thema BEHALTEN Sie EINE Heldenvisualisierung + maximal 3 gesprochene Einträge. Alles andere existiert nur als Verweis auf den „vollständigen Digest“ im Abspann. Schneiden ist die Aufgabe: ein Changelog mit 30 Einträgen ergibt immer noch ≤14 gesprochene Beats.
  • Themen nach Geschichte ordnen: Vorzeigefunktion → Produktoberfläche → Leistung → Zuverlässigkeit (der Digest ist normalerweise bereits so aufgebaut).

2 · Visualisierungs-Routing

Wählen Sie für jedes Thema die Oberfläche aus references/visualization-registry.md und schreiben Sie eine Zeile: thema → oberfläche → die 2-4 sequenziellen Aktionen, die der Mock ausführt, jede verknüpft mit einem Skriptsatz. Wenn keine Registry-Oberfläche passt und kein treues Analogon existiert, handelt es sich um eine Checklisten-Szene – erfinden Sie keine gefälschte Benutzeroberfläche für etwas, das wir nicht ehrlich darstellen können.

3 · Zweischichtiges Skript (gesprochen vs. Anzeige)

Schreiben Sie das Skript als Token-Zeilen gemäß references/script-voice.md: konversationeller Register, jeder technische Begriff trägt eine spoken-Phonetikform aus references/lexicon.json, während display die Standardschreibweise beibehält. Untertitel zeigen display; die Sprecherstimme liest spoken. Jeder Begriff, der nicht im Lexikon ist: STOPPEN und den Benutzer fragen, wie er ausgesprochen wird, dann zum Lexikon hinzufügen. Speichern Sie als script-tokens.json im Projekt.

4 · Sprecher – Annie (HeyGen, fixiert)

# Nur Text der gesprochenen Ebene; words JSON = Ground-Truth-Zeitstempel des GESPROCHENEN Texts
# Repo-eigener Pfad: Der Changelog-Video-Skill wird vom HyperFrames-Repo-Root aus ausgeführt,
# verwendet also direkt den getrackten hyperframes-media TTS-Helfer (kein `npx hyperframes
# skills` Installationsschritt). Wenn Sie den Skill in ein anderes Repo kopiert haben, tauschen Sie
# Ihren eigenen Pfad zum media-use / hyperframes-media heygen-tts.mjs aus.
node skills/hyperframes-media/scripts/heygen-tts.mjs ./vo-spoken.txt \
  -o voiceover.mp3 --words vo-words.json \
  --voice 330290724a1b470fb63153f34d4c0183   # Annie – naturgetreu (nicht ersetzen)

Erfordert heygen CLI ≥0.3.0, authentifiziert (heygen auth login --oauth). Dann die gesprochenen Zeitstempel zurück auf die Anzeige-Token abgleichen:

node <SKILL_DIR>/scripts/align-captions.mjs \
  --tokens script-tokens.json --words vo-words.json --out captions.json

captions.json ist die Eingabe für die Untertitelschiene (Anzeige-Schreibweise, gesprochenes Timing). Der Aligner gibt MISMATCH-Warnungen aus – jede einzelne auflösen, bevor weitergebaut wird (meistens ein Lexikonbegriff, den der TTS als mehrere Wörter rendert). Der Ton ist die Uhr: alle Beat-Zeiten stammen aus vo-words.json; eine erneute Sprechergenerierung öffnet jede Naht neu.

Wort-Zeitstempel sind eine harte Hürde. Bevor Sie zu Schritt 5 übergehen, stellen Sie sicher, dass vo-words.json nicht leer ist und ein words: [...]-Array mit start/end pro Wort enthält. Wenn es leer (0 Byte) ist oder das Array fehlt – ein bekannter Fehlermodus, wenn der TTS-Anbieter Audio, aber keine Zeitstempel-Nutzlast zurückgibt – FAHREN Sie NICHT ohne sie fort. Rückfall: Erzwingen Sie die Ausrichtung des produzierten Audios gegen das Anzeigeskript mithilfe von lokalem Whisper:

uvx --from openai-whisper whisper voiceover.mp3 \
  --model base.en --language en --word_timestamps True \
  --output_format json --output_dir .
# dann align-captions.mjs ausführen mit --words voiceover.json (gleiche Form)

Whisper hört TTS-Renderings falsch („gee-sap“ → „gsap“, „heyjen“ → „hey Jen“, usw.) – Untertitel verwenden trotzdem die ANZEIGE-Schreibweise aus script-tokens.json; Whisper liefert nur die Zeitstempel. align-captions.mjs kümmert sich um die Zusammenführung. Dieser Rückfall ist der Unterschied zwischen einem Build mit Untertiteln und einem stillen Build ohne Untertitel.

5 · Bauen

Folgen Sie genau references/build-spec.md: Marken-Token + Schriftarten (gebündelt in <SKILL_DIR>/assets/), die codierte animierte Hintergrund-Enkodierung, Szenengerüst, Chrome, Untertitelschiene, ein rationierter grüner Moment pro Szene. Dann die Doktrin-Reihenfolge: ledger.json (alle gewöhnlichen Nähte geschnitten-the-curve LINKS) → Seam-Stempel → interne Beats auf VO-Wörtern → Seam-Gate-Überprüfung.

Untertitel sind nicht optional. Das Master-Skelett enthält eine Caption-Rail-IIFE, die ein LINES-Array liest – dieses Array leer zu lassen, ist ein ausgelieferter Fehler, keine Stilwahl. Befüllen Sie es aus captions.json, bevor Sie zu Schritt 6 übergehen:

// Ersetzen von "const LINES = /* … */ []" in der Caption-Rail-IIFE:
const LINES = /* Inhalt von captions.json */ [
  { id: 0, end: 2.74, w: [["This", 0.0], ["week,", 0.30], …] },
  …
];

Wenn align-captions.mjs übersprungen wurde oder LINES [] ist, wird die Frame-Prüfung in Schritt 6 fehlschlagen – überdecken Sie das nicht, indem Sie #cap-line aus dem Gerüst entfernen.

6 · Hürden (alle grün, bevor präsentiert wird)

  1. node packages/cli/bin/hyperframes.mjs check --caption-zone "x0=0;y0=.90;x1=1;y1=1;severity=error;seek=.02,.06,.10,.14,.18,.22,.26,.30,.34,.38,.42,.46,.50,.54,.58,.62,.66,.70,.74,.78,.82,.86,.90,.94,.98" (oder die installierte hyperframes-CLI aus dem Repo-lokalen skills/hyperframes-cli/ Skill) — 0 Fehler (Kontrast: gedimmter Text ≥ .66 Alpha; Szeneninhalt bleibt oberhalb der Untertitelschiene). NICHT zu npx hyperframes@latest greifen; die getrackte, Repo-lokale CLI ist die Quelle der Wahrheit für den Kompositionsvertrag, den dieser Skill produziert.
  2. seam-gate.mjs verify — 0 Fehler.
  3. Starten Sie den Vorschau-Server neu (er cacht das Bundle), überprüfen Sie 3-4 Beats stichprobenartig über __player.seek auf der rohen Kompositionsseite.
  4. NICHT rendern, es sei denn, der Benutzer fragt. Nach einem angeforderten Render überprüfen Sie Frames aus dem MP4 (ffmpeg -ss <t> … -frames:v 1): Untertitel vorhanden, Hintergrundvideo nicht schwarz, keine winzigen/eingefrorenen Frames.
  5. Untertitel-Präsenz-Hürde – harter Fehler. Überprüfen Sie stichprobenartig 3-4 Frames, die über das gesprochene Fenster der VO verteilt sind (z. B. t=3, t=15, t=30, t=42 für eine 48s VO) und bestätigen Sie, dass die Untertitelschiene bei top: 990 auf jedem sichtbaren Text rendert. Wenn irgendein Frame in einem gesprochenen Intervall keine Untertitel hat, wird der Build ohne Untertitel ausgeliefert – behandeln Sie es als rote Hürde und überprüfen Sie erneut die Befüllung von LINES in Schritt 5. Genau das ist beim Build vom 13.-20. Juli v4 schiefgelaufen.

Projektlayout

projects/active/weekly-changelog-<range>/
├── index.html            # Single-Doc-Master (Szenen als Folien, gestempelte Nähte)
├── ledger.json           # Vektor-Ledger (Seam-Stamp-Eingabe)
├── script-tokens.json    # Zweischicht-Skript (Quelle der Wahrheit für VO + Untertitel)
├── vo-spoken.txt         # generiert: gesprochene Ebene, eine Zeile
├── voiceover.mp3 + vo-words.json + captions.json
├── bgm.mp3               # Kopie von <SKILL_DIR>/assets/bgm.mp3 (der Haus-Track), es sei denn, der Benutzer liefert einen
└── assets/fonts/ + assets/bg-pattern-<dur>s.mp4

Anti-Patterns

Nicht tunStattdessen
Aufzählungspunkte-Folien für UI-ÄnderungenDie Oberfläche nachbilden, die die Änderung vorführt
Gefälschte UI für nicht darstellbare EinträgeEhrliche Checklisten-Szene
Einfache „JSON"/"CLI" im TTS-TextLexikon-Gesprochene-Formen; Anzeige bleibt Standard
Phonetische Schreibweisen in UntertitelnUntertitel rendern immer die Anzeige-Ebene
Erraten der Aussprache eines unbekannten BegriffsFragen, dann das Lexikon erweitern
Jeden Changelog-Eintrag sprechen≤3 pro Thema; der Digest-Link trägt den Rest
Grüne Akzente überallEin grüner Moment pro Szene (#5ef17c)
Beginnen mit dem index.html eines früheren VideosSchritt 0 – examples/master-skeleton.html aus dieser Fähigkeit in project/index.html kopieren, immer
Handgefertigte @font-face / WebGL-Shader / eigener BGMSchritt 0 – die assets/ dieser Fähigkeit unverändert kopieren; die Ressourcen der Fähigkeit SIND die Marke
Lieferung ohne CloudFront-Invalidierungaws cloudfront create-invalidation für die Distribution E2BSLVSZ7FG3U0 für den genauen Pfad nach jedem S3-Ersatz ausführen – der CDN cached sonst die alte Datei
Auslieferung mit leerem LINES-Array im GerüstSchritt 4 muss ein befülltes captions.json produzieren; Schritt 5 muss es in die IIFE einfügen; Schritt 6 Hürde 5 muss Untertitel auf gerenderten Frames bestätigen. Ein leeres LINES = Auslieferung ohne Untertitel = Wiederholung des Durchlaufs
Kein vo-words.json → Untertitel überspringen und trotzdem ausliefernAuf Whisper-Zwangszuordnung des produzierten Audios zurückfallen; Untertitel sind nicht optional

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

general-video

>

heygen-com/animejs

Anime.js adapter patterns for HyperFrames. Use when writing Anime.js animations or timelines inside HyperFrames compositions, registering animations on window.__hfAnime, making Anime.js seek-driven and deterministic, or translating Anime.js examples into render-safe HyperFrames HTML.

heygen-com/claude-design-hyperframes

Use when running inside Claude Design specifically. Produces a valid, brand-accurate HyperFrames video draft using pre-valid skeletons. For Claude Code / Cursor / Codex, use the `hyperframes` skill instead.

heygen-com/contribute-catalog

Author a new HyperFrames registry block (caption style, VFX block, transition, lower third) or component (text effect, overlay, snippet) and ship it as an upstream PR to the hyperframes repo. Use ONLY when the user wants to CONTRIBUTE to the public catalog — for in-project caption/transition authoring use the `hyperframes` skill, for installing existing registry items use the `hyperframes-registry` skill.

heygen-com/css-animations

CSS animation adapter patterns for HyperFrames. Use when authoring CSS keyframes, animation-delay based timing, animation-fill-mode, animation-play-state, or CSS-only motion that HyperFrames must seek deterministically during preview and rendering.

heygen-com/gsap

GSAP animation reference for HyperFrames. Covers gsap.to(), from(), fromTo(), easing, stagger, defaults, timelines (gsap.timeline(), position parameter, labels, nesting, playback), and performance (transforms, will-change, quickTo). Use when writing GSAP animations in HyperFrames compositions.

heygen-com/hyperframes

A tiled headline surface flips cell by cell under a sweeping depth field to reveal the rear headline. HyperFrames block, 1920×1080, 8s, 18 variables.

heygen-com/hyperframes

Leaves sweep through the frame and part to reveal the headline. HyperFrames block, 1920×1080, 12s, 11 variables.

heygen-com/hyperframes

GATEWAY — load FIRST before composing any HyperFrames animation or video. The high-level motion law that makes a multi-scene video feel like ONE continuous camera move instead of a stack of independently-animated slides. Covers the vector law (how you exit determines how you enter, incl. the Z scale-sign rule), the film's current, carrier elements, causal motion, the Seam Gate (build-gate enforcement), the ban on idle wobble (motion must PERFORM, not breathe), stillness-before-climax, and the sustained-motion routes. Routes to the low-level technique skills (cut-the-curve — the full catalog incl. waterfall entry + nudge curve, oversized-cursor, seam-craft). These rules SUPERSEDE generic / upstream motion guidance. [continuity, direction, vector, momentum, seam, transition, ease, performance, idle-motion, narrative-motion, film-grammar]

heygen-com/hyperframes

A single feature card orbits a dot sphere on approved Blender camera motion. HyperFrames block, 1920×1080, 10s, 4 variables.

heygen-com/hyperframes

A wireframe portal bursts open, the title comes through, then its letters swap into a second phrase. HyperFrames block, 1920×1080, 8s, 9 variables.

heygen-com/hyperframes

Glass shards fly in through fog and tile themselves into the headline. HyperFrames block, 1920×1080, 12.16s, 19 variables.

heygen-com/hyperframes

Render-correctness doctrine for scene-to-scene seams in HyperFrames launch videos — the prerequisites that make transitions composite correctly on the master timeline. Load when assembling the master timeline / index.html, when a white flash appears at a cut or crossfade seam (especially on dark films), when reasoning about why a transition opacity dip shows through, or when verifying the render-side mechanics of how overlapping scene wrappers blend. Covers the opaque stage-ground (#root background) white-flash guard and how the injector overlaps wrappers, holds final frames, ping-pongs tracks, and stamps lint-clean template code onto the master timeline. Does NOT contain the per-transition catalog — see the transition registry for individual transition entries.

heygen-com/hyperframes

An orbiting camera follows an ice logo as it breaks apart, reforms into two text moments, and fades. HyperFrames block, 1920×1080, 22.5s, 216 variables.

heygen-com/hyperframes

name: embedded-captions

heygen-com/hyperframes

A chain of bevelled cuboids rides a travelling wave as a content carousel. HyperFrames block, 1920×1080, 6.666666666666667s, 40 variables.

heygen-com/hyperframes

Turn arbitrary text — an article, notes, a topic, a brief — into a faceless explainer video: there is no site or footage to capture, so the visuals are invented per scene (typography, abstract graphics, diagrams, data-viz). Use for topic explainers, concept breakdowns, how-tos, listicles. Not a video built from a website (/product-launch-video — promo or tour). Unclear → /hyperframes.

heygen-com/hyperframes

Import Figma content into a HyperFrames composition — rendered assets, brand tokens, components, storyboard sections → reconstructed motion (frames read as states, not slides) (REST/CLI), connector-assisted motion when available, and shaders from a connector or native export. Use when the user pastes a figma.com link or asks to bring a Figma design, frame, logo, brand, or animation into a video/composition.

heygen-com/hyperframes

House-style oversized macOS cursor technique for HyperFrames launch videos. Load whenever a scene involves cursors or a pointer-led action, when kicking off a UI scene, when igniting a morph/transition/typing run with a click, or when a scene reads as static, dead, or stale and needs a cheap high-yield source of motion to carry the viewer's eye and segment them out of the stale state. Covers cursor size/look (incl. brand-motif cursors), the off-screen entry law, tip-targeting and the click tap, click-ignites-the-next-beat, and exit / cross-scene handoff.

heygen-com/hyperframes

The technique catalog: five velocity-matched SEAMS (zoom-through, INVERSE zoom-through, cut-the-curve, waterfall cut, rack-focus blur-cut) plus the two in-scene techniques — waterfall ENTRY (staggered arrival cascades for title cards / segment openers) and the nudge curve (slow-fast-slow three-phase group slides). Covers partial-travel (~12% of frame) velocity matching via mirrored power4 eases, the Z scale-sign rule, size-scaled blur (10px text / 18-20px full-frame), word-by-word staggered cuts, cascade pacing by element weight, and the 10/65/25 slide ratio. Read before authoring any transition, text-beat handoff, kinetic text entry, or group reposition. [depth, zoom, inverse-zoom, scale-sign, mirrored-zoom, rack-focus, pacing, velocity, cut-the-curve, waterfall, stagger, cascade, kinetic-text, title-card, segment-opener, nudge, slide, easing, group-motion, z-depth, motion-graphics, cinematic, transition, blur, directional-continuity]

Verwandte Skills