Communitygithub.com

Drama2557/4RealDigital-Video-Studio

Le contrat de composition HyperFrames — construisez un projet rendu. Utilisez-le pour la structure de composition, les attributs de temporisation `data-*`, `class="clip"`, les pistes, les sous-compositions, les variables, la lecture multimédia gérée par le framework, les règles de rendu déterministe et la validation. Couvre également les projets Tailwind et les formats de plan STORYBOARD.md / SCRIPT.md. À lire avant d'écrire le HTML de composition.

Qu'est-ce que 4RealDigital-Video-Studio ?

Cette compétence définit le contrat technique pour la construction d'un projet HyperFrames, un système où le HTML est rendu sous forme de vidéo. Elle explique comment structurer une composition à l'aide d'attributs `data-*` pour la temporisation, de pistes et de clips, de sous-compositions et de variables, le tout orchestré par le framework pour une lecture déterministe et déplaçable. Elle détaille les règles essentielles à respecter pour éviter les bugs silencieux, comme l'interdiction d'utiliser `Math.random` non ensemencé ou `repeat: -1`, et fournit une checklist de validation via la CLI `hyperframes-cli`. Cette compétence est essentielle pour tout développeur souhaitant créer des vidéos programmatiques avec HyperFrames, que ce soit pour des projets autonomes ou des sous-compositions réutilisables, et couvre également l'intégration avec Tailwind CSS v4.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Drama2557/4RealDigital-Video-Studio/tree/HEAD/.agents/skills/hyperframes-core

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

HyperFrames Core

HyperFrames rend la vidéo à partir d'HTML. Une composition est un fichier HTML dont le DOM déclare la temporisation avec des attributs data-*, dont le runtime d'animation est déplaçable, et dont la lecture multimédia est gérée par le framework.

Cette compétence est le contrat technique — comment construire un projet hyperframes. Le corps ci-dessous est le guide de construction ; les détails par sujet se trouvent dans references/ (index suivant), à lire à la demande. Les autres préoccupations résident dans les compétences de domaine sœurs — hyperframes-animation, hyperframes-creative, media-use, hyperframes-cli, hyperframes-registry. La carte des capacités dans /hyperframes décrit ce que chacune couvre.

Références

FichierLisez-le pour...
references/minimal-composition.mdcommencer par le squelette de composition rendable le plus petit
references/composition-patterns.mdchoisir entre monolithique ou modulaire ; structurer un index.html modulaire ; choisir un archétype de sous-comp
references/data-attributes.mdconsulter tout attribut data-* (racine / clip / hôte de sous-comp / alias hérités) ; utiliser class="clip"
references/tracks-and-clips.mdchoisir data-track-index, gérer le chevauchement / z-index sur la même piste, temporiser un clip par rapport à un autre
references/sub-compositions.mdcâbler une sous-composition (attributs hôte, <template>, variables par instance) et animer à l'intérieur
references/variables-and-media.mddéclarer des variables ; placer <video>/<audio>, régler le volume, le rognage
references/determinism-rules.mdconstruire une timeline déplaçable ; interdictions du déterminisme ; liste blanche des propriétés animables ; ajustement de la disposition / du texte
references/full-screen-motion.mdcréer des animations plein écran avec des arrière-plans partagés
references/storyboard-format.mdrédiger un plan STORYBOARD.md (+ le manifeste analysé)
references/review-loop.mdexécuter les passes de révision plan → esquisse → construction sur un tableau vivant — partagé par chaque workflow de planification de storyboard
references/production-loop.mdtransformer un plan approuvé en une vidéo livrée — les dépendances des étapes (audio, images, assemblage, transitions, sous-titres, vérification, livraison) qu'une construction libre suit directement
references/brief-contract.mdles règles de base du brief — dérivation du mode (collaboratif / autonome), registre de champs partagés, invariants des questions (la question elle-même réside dans /hyperframes → la couche d'intention)
references/brief-format.mdrédiger BRIEF.md — le document d'intention confirmé qu'un Setup de workflow écrit et que chaque étape ultérieure lit
references/script-format.mdrédiger le SCRIPT.md optionnel de narration verrouillée
references/subagent-dispatch.mdmapper les verbes de dispatch des sous-agents (fan-out parallèle / arrière-plan / attente) à votre harnais
references/frame-worker-core.mdle contrat de rôle partagé du frame-worker — chaque constructeur de paquet de workflow narratif le préfixe au delta sub-agents/frame-worker.md de ce workflow
references/tailwind.mdtravailler dans un projet Tailwind v4 (init --tailwind ; le contrat d'exécution diffère de la v3 de Studio)

Pour les spécificités du runtime d'animation (API GSAP, Lottie, Three.js, etc.), allez dans hyperframes-animation → adapters/<runtime>.md.

Construire une composition

Deux formes racines (non interchangeables)

  • Autonome (index.html de premier niveau) — la <div data-composition-id="…"> racine se trouve directement dans <body>, pas d'encapsulation <template> (l'encapsuler cache tout le contenu et casse le rendu).
  • Sous-composition (chargée via data-composition-src) — la racine doit être encapsulée dans <template>.

⚠ Règle de transport : le runtime clone uniquement le contenu de <template> ; tout ce qui est à l'extérieur (incl. les styles/scripts <head>) est ignoré — placez <style>/<script> à l'intérieur du template. ⚠ Règle d'ID hôte : le data-composition-id de l'emplacement hôte doit exactement correspondre au data-composition-id du template interne et à la clé window.__timelines["<id>"] — pas de suffixe -mount/-slot/-host.

Forme du fichier, câblage hôte et liste de contrôle pré-rendu → references/sub-compositions.md.

La racine doit être dimensionnée (bug de disposition silencieux)

La racine autonome nécessite une boîte dimensionnée explicite (width/height en px), et chaque ancêtre jusqu'à un élément height:100% doit avoir une hauteur résolue — sinon un enfant flex/100% s'effondre à ~0 et le contenu s'empile dans le coin supérieur gauche. Ne comptez pas uniquement sur les contrôles automatisés pour détecter cela ; inspectez un instantané. Squelette → references/minimal-composition.md.

Une seule timeline en pause

Chaque composition enregistre exactement une gsap.timeline({ paused: true }) à window.__timelines["<id>"] (clé = data-composition-id racine), construite de manière synchrone au chargement de la page. La durée de rendu = data-duration racine, pas la longueur de la timeline. N'imbriquez pas manuellement de sous-timelines dans l'hôte. Contrat complet (incluant les runtimes non GSAP) → references/determinism-rules.md + hyperframes-animation/adapters/.

Pièges de lint de première passe (un échec garanti à la première construction)

Deux règles que lint attrape, mais seulement après coup — écrivez-les correctement du premier coup :

  • L'élément de composition racine doit porter data-start="0" (avec data-composition-id/data-width/data-height) ; l'omettre fait échouer lint avec root_composition_missing_data_start.
  • Ne jamais associer un transform CSS initial à un tween GSAP sur la même propriété — la valeur CSS et le début du tween se battent et lint le rejette avec gsap_css_transform_conflict. Définissez l'état initial dans le tween avec gsap.fromTo(el, { x: -40 }, { x: 0 }) au lieu d'un transform: translateX(-40px) CSS.

Règles non négociables (bugs silencieux que les contrôles automatisés peuvent manquer)

Signalées ici ; justification complète dans la référence liée. Ne violez pas :

  • Pas d'horloges au moment du rendu / Math.random non ensemencé / réseau / état d'entrée ; pas de repeat: -1 (utilisez un nombre fini). → determinism-rules.md
  • Animez uniquement la liste blanche des propriétés visuelles ; ne tweenez jamais display ou visibility brute. autoAlpha de GSAP et les limites de timeline de durée nulle sont les seules exceptions de visibilité, et uniquement sur des éléments non clip ou des wrappers à l'intérieur d'un clip. Le framework seul contrôle la visibilité .clip. Ne faites pas de gsap.set sur les clips de scènes ultérieures au chargement de la page. → determinism-rules.md
  • Pas de <br> dans le texte du corps ; les éléments transformés doivent être de niveau bloc + dimensionnés ; les décoratifs absolus pulsés nécessitent une marge de crête. → determinism-rules.md
  • <video>/<audio> fonctionnent à n'importe quelle profondeur d'imbrication (y compris à l'intérieur d'un <template> ou wrapper de sous-comp) ; le framework possède la lecture et cherche/décode les médias où qu'ils se trouvent. La seule mise en garde concerne les timelines, pas le placement : une timeline de sous-comp ne peut pas animer les éléments racine de l'hôte. → variables-and-media.md
  • Chaque id doit être unique sur la page assemblée ; à l'intérieur d'une sous-comp, préfixez les ids avec l'identifiant de composition (#<id>-hero). Les ids en double de <video>/<img> rendent une image vierge — le producteur injecte les images par getElementById, et les doublons entre fichiers échappent à lint. → composition-patterns.md
  • Un remplissage de scène plein écran va sur un enfant plein écran (position:absolute; inset:0), jamais sur la racine de la composition elle-même — la composition d'image du producteur peut supprimer le background propre de l'élément racine (l'image rend noir) même si l'aperçu/snapshot l'affiche correctement. → composition-patterns.md

Modifier des compositions existantes

  • Lisez d'abord les fichiers. Préservez la temporisation, les pistes, les IDs, les variables, les chemins de médias non liés.
  • Faites correspondre les IDs de composition et les clés de timeline existants.
  • Ajout d'un clip : choisissez un data-track-index non chevauchant ou ajustez intentionnellement la temporisation environnante.
  • data-hidden sur tout élément de composition le masque à la fois dans l'APERÇU et le rendu, remplaçant sa fenêtre temporelle ; il est non destructif/réversible et basculé par l'icône d'œil de timeline de Studio.
  • Ajout d'une sous-composition : vérifiez son data-composition-id interne avant de câbler l'hôte.

Validation

Utilisez hyperframes-cli pour les détails des commandes

  • npx hyperframes check passe (0 résultats sur le lint, le runtime, la disposition, l'animation et le contraste)
  • Projets avec sous-compositions : npx hyperframes snapshot --at <milieux> et examinez chaque image
  • npx hyperframes preview pour la révision (l'utilisateur peut éditer n'importe quoi dans la timeline de Studio)
  • npx hyperframes render uniquement après approbation de l'utilisateur

Individual skills in this repo

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

Drama2557/4RealDigital-Video-Studio

Overlay doctrine for the embedded-captions workflow — the caption MODEL (drop / rail / embed) and the rule that captions are an OVERLAY composited on top of the film, never a reserved bottom band you shift content up to avoid. Load when adding captions/subtitles to a talking-head or launch video, when deciding whether a phrase should be dropped, ride the verbatim rail, or be promoted to a scarce embedded climax, when laying out a composition that will carry captions (do NOT reserve a keep-out band), or when centering a composition on the true frame center under captions. Quotes the rail+embed model from embedded-captions and constraint #13 (captions overlay, keep-out band retired) from the product-launch-video scene agent. Applies ON TOP of embedded-captions.

Drama2557/4RealDigital-Video-Studio

Turn a weekly changelog .md into a finished branded changelog video (square 1080, ~45-60s, Annie VO, animated brand background, mock-UI visualizations, lowkey captions). Use when the user provides a changelog/digest markdown and wants the weekly video, or says "changelog video". Self-contained — fonts, background, lexicon, and scripts ship in this skill.

Drama2557/4RealDigital-Video-Studio

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]

Drama2557/4RealDigital-Video-Studio

Add captions or subtitles to an existing single-subject talking-head video without editing the footage. Use for plain verbatim captions, cinematic captions embedded behind the subject, VFX captions, “炸/特效/酷炫字幕,” or a named identity from the 35-style catalog. Route by visual identity, not by backend engine. The quiet `anchor` rail is the default; embed every word only when the user explicitly wants a fully cinematic treatment. The workflow runs locally end to end, including transcription and subject matting; split multi-shot footage before applying it.

Drama2557/4RealDigital-Video-Studio

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.

Drama2557/4RealDigital-Video-Studio

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.

Drama2557/4RealDigital-Video-Studio

Author or edit a custom HyperFrames composition when no specialized workflow fits, or when BRIEF.md sets flow: companion. Use for longer or multi-scene pieces, brand and sizzle reels, montages, static loops, static title cards, footage remixes, and freeform builds. Use motion-graphics instead for a short unnarrated motion-first unit, including an animated title. Route fresh creation through hyperframes before using this skill.

Drama2557/4RealDigital-Video-Studio

Use the HyperFrames CLI development loop: init, add, catalog, capture, lint, check, snapshot, compare, grade-compare, preview, play, present, beats, keyframes, single or batch render, publish, cloud, cloudrun, feedback, lambda, doctor, browser, info, upgrade, skills, compositions, docs, benchmark, telemetry, transcribe, auth, tts, and remove-background. Also use when diagnosing build or render failures. validate, inspect, and layout are deprecated aliases; use check. Covers local, HeyGen-hosted cloud, AWS Lambda, and Google Cloud Run rendering.

Drama2557/4RealDigital-Video-Studio

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`.

Drama2557/4RealDigital-Video-Studio

Install, discover, and wire registry blocks and components into HyperFrames compositions. Use when running hyperframes add or hyperframes catalog, installing one item or every block matching a tag, wiring an installed item into index.html, or working with hyperframes.json. Covers discovery, install locations, block sub-composition wiring, component snippet merging, and authoring a new block or component to contribute upstream (idea → scaffold → validate → PR).

Drama2557/4RealDigital-Video-Studio

Agent Media OS, the single skill for every media need in a HyperFrames project. Resolve BGM, SFX, image, icon, brand logo, voice, color grade, or LUT into a frozen local file or paste-ready block + ledger record (one verb, `resolve`); generate via TTS / music / image models when the catalog misses; produce voiceover, transcription, captions, and background removal through one shared audio engine; operate on media (cut / reframe / transform); and reuse assets across projects. Also use for vague feedback that real footage looks dark, flat, boring, should feel retro/camcorder/print/ASCII, needs privacy, or needs a media reveal.

Drama2557/4RealDigital-Video-Studio

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]

Drama2557/4RealDigital-Video-Studio

A short, design-led motion graphic where motion is the message — kinetic typography, stat count-up, chart/data-viz hit, logo sting / brand lockup, lower-third / callout / social overlay, animated map (highlight regions, connect places, zoom to a location), animated tweet / news-article / headline, webpage / UI animation (scroll, cursor, callouts), or fusing a real image's geometry into a chart. Usually under 10s (up to ~30s), no narration or live-action subject; renders to MP4 or transparent overlay. Longer / narrated / multi-scene → /general-video. Unclear → /hyperframes.

Drama2557/4RealDigital-Video-Studio

Turn a music track (an audio file, a video to pull audio from, or a track generated from a mood brief) into a beat-synced video — lyric video, slideshow, or kinetic promo. The music drives all pacing; any user-supplied images/videos are cut onto the same beat grid, and a complete video needs zero assets. Narrated pieces → the input-matched workflow (see /hyperframes). Unclear → /hyperframes.

Drama2557/4RealDigital-Video-Studio

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.

Drama2557/4RealDigital-Video-Studio

Turn a GitHub pull request (a PR URL, owner/repo#N, or 'this PR' in a checked-out repo) into a code-change explainer video — changelog, feature reveal, fix, or refactor walkthrough built from the diff, commits, and files: the input is a code change, not a website. Not a product promo (/product-launch-video) or a no-PR topic explainer (/faceless-explainer). Unclear → /hyperframes.

Drama2557/4RealDigital-Video-Studio

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.

Drama2557/4RealDigital-Video-Studio

Author a HyperFrames slideshow — a presentation, pitch deck, or interactive deck with discrete slides, fragment reveals, branching, hotspot navigation, and built-in presenter mode with speaker notes; also converts an existing page into a deck. Output is a navigable deck, not a rendered MP4. If the user didn't explicitly ask for a slideshow, confirm before authoring. Unclear → /hyperframes.

Drama2557/4RealDigital-Video-Studio

Package an existing talking-head / interview / podcast video with timed, designed GRAPHIC OVERLAY cards — kinetic titles, lower-thirds, data callouts, quotes, side panels, picture-in-picture — synced to the transcript, on a 16:9 / 9:16 / 4:5 canvas of your choice; the clip plays untouched underneath. Trigger on "graphic overlays", "on-screen graphics", "package / dress up my video". Not plain subtitles (/embedded-captions). Unclear → /hyperframes.

Drama2557/4RealDigital-Video-Studio

Agent skill / project related to launch or product demo video: Drama2557/4RealDigital-Video-Studio

Skills associés