hyperframes-core

작성자: heygen-com

HyperFrames HTML 구성 계약. 구성 구조, 데이터 속성, 클립, 트랙, 하위 구성, 변수, 미디어 재생, 결정적 렌더링 규칙 및 최소 렌더링 가능 프로젝트의 검증에 사용합니다.

npx skills add https://github.com/heygen-com/hyperframes --skill hyperframes-core

HyperFrames Core

HyperFrames renders video from HTML. A composition is an HTML file whose DOM declares timing with data-* attributes, whose animation runtime is seekable, and whose media playback is owned by the framework.

This skill is the technical contract — how to build one hyperframes project. The body below is the build guide; per-topic detail lives in references/ (index next), read on demand. Other concerns live in the sibling domain skills — hyperframes-animation, hyperframes-creative, media-use, hyperframes-cli, hyperframes-registry. The capability map in /hyperframes says what each one covers.

References

FileRead it to…
references/minimal-composition.mdstart from the smallest renderable composition skeleton
references/composition-patterns.mdchoose monolithic vs modular; structure a modular index.html; pick a sub-comp archetype
references/data-attributes.mdlook up any data-* (root / clip / sub-comp host / legacy aliases); use class="clip"
references/tracks-and-clips.mdpick data-track-index, handle same-track overlap / z-index, time a clip relative to another
references/sub-compositions.mdwire a sub-composition (host attrs, <template>, per-instance vars) and animate inside it
references/variables-and-media.mddeclare variables; place <video>/<audio>, set volume, trim
references/determinism-rules.mdbuild a seekable timeline; determinism bans; the animatable-property allowlist; layout / text fit
references/full-screen-motion.mdauthor full-frame motion with shared backgrounds
references/storyboard-format.mdauthor a STORYBOARD.md plan (+ the parsed manifest)
references/review-loop.mdrun the plan → sketch → build review passes on a live board — shared by every storyboard-planning workflow
references/production-loop.mdtake an approved plan to a delivered video — the stage dependencies (audio, frames, assembly, transitions, captions, verify, deliver) a freeform build follows directly
references/brief-contract.mdthe brief's ground rules — mode derivation (collaborative / autonomous), shared field registry, question invariants (the asking itself lives in /hyperframes → the intent layer)
references/brief-format.mdauthor BRIEF.md — the confirmed intent document a workflow's Setup writes and every later step reads
references/script-format.mdauthor the optional SCRIPT.md locked narration
references/subagent-dispatch.mdmap subagent dispatch verbs (parallel fan-out / background / wait) to your harness
references/frame-worker-core.mdthe shared frame-worker role contract — each narrative workflow's packet builder prepends it to that workflow's sub-agents/frame-worker.md delta
references/tailwind.mdwork in a Tailwind v4 project (init --tailwind; runtime contract differs from Studio's v3)

For animation runtime specifics (GSAP API, Lottie, Three.js, etc.) go to hyperframes-animationadapters/<runtime>.md.

Building a composition

Two root forms (not interchangeable)

  • Standalone (top-level index.html) — root <div data-composition-id="…"> sits directly in <body>, no <template> wrapper (wrapping it hides all content and breaks rendering).
  • Sub-composition (loaded via data-composition-src) — root must be wrapped in <template>.

⚠ Transport rule: the runtime only clones <template> contents; everything outside (incl. <head> styles/scripts) is discarded — put <style>/<script> inside the template. ⚠ Host-id rule: the host slot's data-composition-id must exactly equal the inner template's data-composition-id and the window.__timelines["<id>"] key — no -mount/-slot/-host suffix.

File shape, host wiring, and the pre-render checklist → references/sub-compositions.md.

Root must be sized (silent layout bug)

The standalone root needs an explicit sized box (width/height in px), and every ancestor down to a height:100% element must have a resolved height — otherwise a flex/100% child collapses to ~0 and content piles into the top-left corner. Do not rely on automated gates alone to catch this; inspect a snapshot. Skeleton → references/minimal-composition.md.

One paused timeline

Each composition registers exactly one gsap.timeline({ paused: true }) at window.__timelines["<id>"] (key = root data-composition-id), built synchronously at page load. Render duration = root data-duration, not timeline length. Don't manually nest sub-timelines into the host. Full contract (incl. non-GSAP runtimes) → references/determinism-rules.md + hyperframes-animation/adapters/.

First-pass lint gotchas (a guaranteed first build failure)

Two rules that lint does catch, but only after the fact — write them right the first time:

  • The root composition element must carry data-start="0" (alongside data-composition-id/data-width/data-height); omitting it fails lint with root_composition_missing_data_start.
  • Never pair a CSS initial transform with a GSAP tween on the same property — the CSS value and the tween's start fight and lint rejects it with gsap_css_transform_conflict. Set the initial state inside the tween with gsap.fromTo(el, { x: -40 }, { x: 0 }) instead of a CSS transform: translateX(-40px).

Non-negotiable rules (silent bugs automated gates may miss)

Surfaced here; full rationale in the linked reference. Do not violate:

  • No render-time clocks / unseeded Math.random / network / input-state; no repeat: -1 (use a finite count). → determinism-rules.md
  • Animate only the visual-property allowlist; never tween display or raw visibility. GSAP autoAlpha and zero-duration timeline boundary sets are the only visibility exceptions, and only on non-clip elements or wrappers inside a clip. The framework alone controls .clip visibility. Do not gsap.set later-scene clips at page load. → determinism-rules.md
  • No <br> in body text; transformed elements must be block-level + sized; pulsing absolute decoratives need peak clearance. → determinism-rules.md
  • <video>/<audio> work at any nesting depth (including inside a sub-comp <template> or wrapper); the framework owns playback and seeks/decodes media wherever it lives. The one caveat is timelines, not placement: a sub-comp timeline can't animate host-root elements. → variables-and-media.md
  • Every id must be unique across the assembled page; inside a sub-comp, prefix ids with the composition id (#<id>-hero). Duplicate <video>/<img> ids render blank — the producer injects frames by getElementById, and cross-file dupes slip past lint. → composition-patterns.md
  • A full-screen scene fill goes on a full-bleed child (position:absolute; inset:0), never on the composition root itself — the producer's frame compositing can drop the root element's own background (the frame renders black) even though preview/snapshot show it correctly. → composition-patterns.md

Editing existing compositions

  • Read the files first. Preserve unrelated timing, tracks, IDs, variables, media paths.
  • Match existing composition IDs and timeline keys.
  • Adding a clip: pick a non-overlapping data-track-index or adjust surrounding timing intentionally.
  • data-hidden on any composition element hides it in BOTH preview and render, overriding its time window; it is non-destructive/reversible and toggled by Studio's timeline eye icon.
  • Adding a sub-composition: verify its internal data-composition-id before wiring the host.

Validation

Use hyperframes-cli for command details

  • npx hyperframes check passes (0 findings across lint, runtime, layout, motion, and contrast)
  • Projects with sub-compositions: npx hyperframes snapshot --at <midpoints> and eyeball each frame
  • npx hyperframes preview for review (the user can edit anything in Studio's timeline)
  • npx hyperframes render only after the user approves

heygen-com의 다른 스킬

hyperframes-cli
heygen-com
HyperFrames CLI 개발 루프
developmenttestingapi
hyperframes-animation
heygen-com
HyperFrames의 모든 애니메이션 지식 — 원자적 모션 규칙, 다중 단계 씬 청사진, 씬 전환, 광범위한 모션 디자인 기법, 그리고 7개의 런타임 어댑터(GSAP 기본, Lottie, Three.js, Anime.js, CSS 키프레임, Web Animations API, TypeGPU). 모든 모션 또는 애니메이션 작업에 사용: 2-4개의 규칙을 선택하여 구성하거나, 청사진을 로드하거나, 런타임별 API(GSAP 이징 / Lottie 플레이어 / Three.js 믹서 등)를 조회합니다. HyperFrames 네이티브: 단일 일시 정지 타임라인, 시크 안전,...
creativedevelopmentdesign
hyperframes-media
heygen-com
HyperFrames 컴포지션을 위한 에셋 전처리 — 다중 제공자 TTS(HeyGen / ElevenLabs / Kokoro 로컬), 다중 제공자 BGM(Google Lyria / 로컬 MusicGen), Whisper 전사, 배경 제거 및 캡션 작성. npx hyperframes tts, bgm, transcribe, remove-background, voice/provider 선택, music-mood 프롬프팅, captions / subtitles / lyrics / karaoke / per-word 스타일링에 사용합니다.
mediaaudiovideo
hyperframes-registry
heygen-com
레지스트리 블록과 컴포넌트를 HyperFrames 구성에 설치하고 연결합니다. hyperframes add 실행 시, 블록이나 컴포넌트 설치 시, 설치된 항목을 index.html에 연결할 때, 또는 hyperframes.json 작업 시 사용합니다. add 명령어, 설치 위치, 블록 하위 구성 연결, 컴포넌트 스니펫 병합, 레지스트리 검색, 그리고 업스트림에 기여할 새 블록이나 컴포넌트 작성(아이디어 → 스캐폴드 → 검증 → PR)을 다룹니다.
developmentapicode-review
general-video
heygen-com
사용자 정의 HyperFrames HTML 비디오 구성 제작 시 전용 워크플로가 적합하지 않을 때 대체 도구로 사용합니다. 긴 길이 또는 여러 장면의 작품, 브랜드/시즐 릴, 몽타주, 타이틀 카드, 모션 포스터, 정적 루프, 모든 길이와 형식의 자유로운 구성을 다룹니다. 마케팅 제품 프로모션(product-launch-video), 일반 웹사이트-투-비디오 캡처(website-to-video), 주제 설명(faceless-explainer), GitHub PR 비디오(pr-to-video), 기존 영상 자막 처리 등에는 사용되지 않습니다.
videocreativemedia
motion-graphics
heygen-com
사용자가 모션이 메시지가 되는 짧고 디자인 중심의 모션 그래픽을 원할 때 사용합니다: 키네틱 타이포그래피, 숫자/통계 카운트업, 차트/데이터 시각화 히트, 로고 스팅, 브랜드 록업, 하단 서드, 콜아웃, 소셜 오버레이, 애니메이션 헤드라인/트윗/뉴스 아이템, 모션 포스터, 또는 빠른 캡처 페이지 하이라이트. 일반적으로 10초 미만에서 최대 약 30초이며, 내레이션 구성, 음성 해설, 또는 실사 피사체가 없습니다. MP4 또는 투명 오버레이로 렌더링 가능합니다. 더 길고, 여러 장면이 있거나, 내레이션이 포함되거나, 브랜드 릴 형식의 작업에는 적합하지 않습니다...
creativevideodesign
hyperframes-read-first
heygen-com
동영상, 애니메이션, 모션 그래픽, 설명 영상, 타이틀 카드, 오버레이, 자막 영상, 제품 홍보 영상, 웹사이트 영상, 홍보 또는 변경 로그 영상, 데이터 몽타주, 모션 포스터 또는 HyperFrames HTML 구성을 만들거나, 생성하거나, 편집하거나, 애니메이션화하거나, 렌더링하는 모든 요청에 대해 여기서 시작하세요. 사용자가 HyperFrames가 완성된 MP4/웹 동영상을 제작하거나 렌더링하도록 하거나, 워크플로를 선택하거나, 제품 출시 동영상, 얼굴 없는 설명 영상, 웹사이트-투-비디오 등 중에서 경로를 지정하려는 경우 다른 동영상 또는 애니메이션 스킬보다 먼저 사용하세요.
creativevideomedia
hyperframes-creative
heygen-com
Non-animation creative direction for HyperFrames videos. Use for design spec (frame.md / design.md) handling, palettes, typography, narration, beat planning, audio-reactive visuals, composition patterns, and brand / style decisions. For atomic motion patterns and scene blueprints, use `hyperframes-animation`.
creativedesignvideo