hyperframes-core (HeyGen HyperFrames)
Construit une composition HyperFrames rendable en HTML, avec structure, timing, lecture multimédia et validation.
hyperframes-core : Codex produit bien plus souvent des compositions HyperFrames correctes avec le skill (contrôle 4.1, skill 4.9, une phrase 4.6) et utilise moins de tokens (0.48 fois les tokens du contrôle), mais ce skill a été retiré du dépôt de HeyGen
Codex CLI · gpt-6-astra
25.8 / 30
Gain par rapport à sans skill : +0.85 · Selon les cas · 18 exécutions
Selon les cas : le gain +0.85 est inférieur à +1.0. Pour être recommandé, il faut un total de 22/30, une qualité de sortie de 3.5 et un gain de +1.0.
SOTA
RéussiTesté avec Codex.
Couvre Codex, Claude Code
Codex CLI 0.166 (palier SOTA) : 18 exécutions notées. Une réussite ici couvre aussi Claude Code selon notre règle de palier ; elle ne dit rien du second palier.
Scores
Chaque dimension va de 0 à 5 et les six forment le total sur 30. 5 est la meilleure note dans chaque dimension. Coût 5 signifie bon marché et rapide. Installation 5 signifie facile.
- Fiabilité du déclenchement
- 5.0
- Gain par rapport à sans skill
- 2.9
- Qualité de sortie
- 4.9
- Coût en tokens et en temps
- 5.0
- Installation et portabilité
- 4.0
- Sécurité
- 4.0
Revue de sécurité
SûrScan statique : 0 CRITIQUE / 0 ÉLEVÉ / 21 MOYEN. Revue manuelle : sûr à installer. Un scan propre ne prouve pas qu'un skill est sûr.
Installer
npx skills@latest add heygen-com/hyperframes --skill hyperframes-core
Commit épinglé: 207c8a4daf6480d697f203784f1fd422727569e3
Testé: 2026-11-02
Ce que nous avons testé
- Explainer en trois scènes — Créez une vidéo de 12 secondes en 1920x1080 sous forme de composition HyperFrames (un framework open source qui rend une page HTML en MP4 en parcourant une timeline GSAP image par image ; GSAP vient d'une balise script CDN). Trois scènes de 4 secondes chacune : une carte de titre (« Meet Orbit »), une liste à puces…
- Corriger une composition cassée — index.html dans ce dossier est une composition HyperFrames (un framework open source qui rend une page HTML en MP4 en parcourant une timeline GSAP image par image ; GSAP vient d'une balise script CDN) qui rend mal (saccadée, timing de scène erroné, scène 2 invisible, d…
- Lower-third réutilisable en sous-composition — Construisez une vidéo HyperFrames (un framework open source qui rend une page HTML en MP4 en parcourant une timeline GSAP image par image ; GSAP vient d'une balise script CDN) de 8 secondes, 1920x1080. Un lower-third réutilisable (nom et intitulé de poste qui glissent depuis la gauche et…
Points forts
- Fait passer le score moyen de 4.09 à 4.94 par rapport à sans skill (+0.85).
- Le skill a été détecté sans être nommé : son fichier a été lu dans 6/6 exécutions avec skill.
- Aucune surcharge de tokens : 0.47 fois le volume de tokens sans skill.
- Fait mieux que la version en une phrase de sa propre règle de +0.32.
- Qualité absolue élevée avec le skill : 4.94 sur 5.
Points faibles
- Réserve de test : testé au commit 207c8a4 de heygen-com/hyperframes. Le skill a ensuite été retiré du HEAD du dépôt ; cet avis décrit donc une version retirée et la commande d'installation peut ne pas fonctionner sur le dépôt actuel.
- n=2 par tâche et par bras ; les écarts inférieurs à environ 1 point sont du bruit.
Avis
Codex CLI 0.166 (gpt-6-astra, low reasoning) sur un PC Windows de test dédié, un projet temporaire neuf et des HOME/TMPDIR/caches temporaires à chaque exécution, skill installé (traitement) ou absent (contrôle) ou absent avec l'exigence centrale du skill compressée en une phrase ajoutée au prompt (groupe « prompt d'une phrase »), 2 exécutions par groupe et par tâche, réseau coupé, écritures dans /tmp bloquées. Les prompts ne mentionnent jamais le skill (sauf la formulation indiquée ci-dessous). HyperFrames est décrit dans le prompt comme « un framework open source qui rend une page HTML en MP4 en parcourant une timeline GSAP image par image », sans détails de contrat. Tâches : concevoir un explainer de 12 secondes en trois scènes, corriger une composition cassée (saccades, timing erroné), et construire un lower-third réutilisable en sous-composition. Le groupe « une phrase » énonce tout le contrat de composition en un paragraphe.
Comparaison à trois bras
| Bras | Score moyen (0-5) | Tokens par exécution |
|---|---|---|
| Sans le skill | 4.09 | 239k |
| Prompt d'une phrase | 4.62 | 160k |
| Avec le skill | 4.94 | 114k |
Mesuré avec Codex CLI sur 18 exécutions, noté par des contrôles basés sur des règles, sans juge LLM. Total 25.8 / 30, verdict Selon les cas.
Divulgation : testé au commit 207c8a4 de heygen-com/hyperframes. Le skill a ensuite été retiré du HEAD du dépôt ; cet avis décrit donc une version retirée et la commande d'installation peut ne pas fonctionner sur le dépôt actuel.
Verdict : Selon les cas (25.8 / 30). Source : heygen-com/hyperframes, skills/hyperframes-core, épinglé au commit 207c8a4. Installation : npx skills@latest add heygen-com/hyperframes --skill hyperframes-core. Licence : Apache-2.0 (LICENSE du dépôt).
Ce que c'est
Le skill hyperframes-core de heygen-com/hyperframes, testé au commit 207c8a4 (le skill a ensuite été retiré du HEAD du dépôt, donc cette revue décrit une version retirée). Il documente le contrat de composition HyperFrames : div racine avec data-composition-id/width/height/duration, clips temporisés avec data-start/data-duration et class=clip, une seule timeline GSAP en pause enregistrée sur window.__timelines[id racine], des règles de déterminisme au moment du rendu, et des sous-compositions dans des fichiers séparés.
Comment nous avons testé
Codex CLI 0.166 (gpt-6-astra, raisonnement faible) sur un PC de test Windows dédié, un projet temporaire neuf et des caches HOME/TMPDIR temporaires à chaque exécution, skill installé (groupe avec skill) ou absent (groupe témoin) ou absent avec l'exigence centrale du skill compressée en une phrase ajoutée à la fin du prompt (groupe prompt d'une phrase), 2 exécutions par groupe et par tâche, réseau coupé, écritures dans /tmp bloquées. Les prompts ne mentionnent jamais le skill (sauf la formulation indiquée ci-dessous).
HyperFrames est décrit dans le prompt comme « un framework open source qui rend une page HTML en MP4 en parcourant une timeline GSAP image par image », sans détails sur le contrat. Tâches : rédiger une vidéo explicative de 12 secondes en trois scènes, corriger une composition cassée (saccades, mauvais timing), et construire un bandeau inférieur réutilisable sous forme de sous-composition. Le prompt d'une phrase énonce le contrat de composition complet en un paragraphe.
- Vidéo explicative en trois scènes — Créez une vidéo de 12 secondes en 1920x1080 avec HyperFrames (un framework open source qui rend une page HTML en MP4 en parcourant une timeline GSAP image par image ; GSAP est chargé depuis un script CDN). Trois scènes de 4 secondes chacune : une carte de titre (« Meet Orbit »), une liste à puces…
- Corriger une composition cassée — index.html dans ce dossier est une composition HyperFrames (un framework open source qui rend une page HTML en MP4 en parcourant une timeline GSAP image par image ; GSAP est chargé depuis un script CDN) qui s'affiche mal (saccades, mauvais timing des scènes, scène 2 invisible, d…
- Bandeau inférieur réutilisable en sous-composition — Créez une vidéo HyperFrames (un framework open source qui rend une page HTML en MP4 en parcourant une timeline GSAP image par image ; GSAP est chargé depuis un script CDN) de 8 secondes, 1920x1080. Un bandeau inférieur réutilisable (nom et intitulé de poste qui glissent depuis la gauche an…
La notation est programmatique (tests cachés / détection de problèmes implantés / vérifications de contraintes / rendu + OCR le cas échéant), de 0 à 5 par exécution. Aucun juge LLM n'a décidé d'un seul score.
Résultats
Le prompt d'une phrase donné au troisième groupe : "Contrat de composition HyperFrames : un <div data-composition-id data-width data-height data-duration> racine autonome dans <body> ; les éléments temporisés portent data-start et data-duration (class=clip) ; construire UNE gsap.timeline({paused:true}) et l'enregistrer sur window.__timelines['<root id>'] ; déterminisme au rendu : pas de Math.random/Date.now/timers/rAF, pas de repeat:-1, ne jamais animer display/visibility/autoAlpha sur un clip ; les sous-compositions vivent dans des fichiers séparés avec data-composition-src, le contenu enveloppé dans <template>, id hôte = id interne = clé de timeline."
| Tâche | Score sans skill | Prompt d'une phrase | Avec le skill | Tokens sans skill | Tokens prompt d'une phrase | Tokens avec skill | Skill lu |
|---|---|---|---|---|---|---|---|
| t1-explainer | 3.33 | 5.0 | 5.0 | 136k | 82k | 98k | 2/2 |
| t2-fix | 3.95 | 3.86 | 4.82 | 377k | 100k | 128k | 2/2 |
| t3-sub | 5.0 | 5.0 | 5.0 | 203k | 298k | 114k | 2/2 |
Score moyen : 4.09 sans le skill contre 4.94 avec (delta +0.85). Tokens par exécution : 239k contre 114k (0.47x) ; temps 107s contre 79s. Groupe prompt d'une phrase : 4.62 (gain du skill par rapport au prompt d'une phrase : +0.32 ; gain du prompt d'une phrase par rapport à l'absence de skill : +0.53) ; 160k tokens par exécution pour le prompt d'une phrase, donc le skill coûte 0.71x le prompt d'une phrase.
Ce qui s'est passé
- Témoin 4.09, skill 4.94, prompt d'une phrase 4.62 (n=6 chacun). L'écart le plus fort est sur la vidéo explicative : le témoin a écrit des tweens de visibility/display ou autoAlpha sur des clips dans 2/2 exécutions et n'a pas enregistré la timeline sur window.__timelines dans 2/2 ; les deux exécutions avec skill et les deux du prompt d'une phrase étaient propres (5.0).
- Tâche de correction : le skill a obtenu 4.82 contre 3.95 pour le témoin et 3.86 pour le prompt d'une phrase. Le témoin a laissé la racine sans durée et avec une taille en px codée en dur dans 2/2, et la durée de la racine ne couvrait pas le dernier clip ; les exécutions du prompt d'une phrase ont codé la taille en px en dur et l'une n'a pas enregistré la timeline.
- Tâche de sous-composition : les trois groupes ont obtenu 5.0, donc un modèle seul gère déjà
data-composition-srcet l'enveloppe template quand on lui demande un composant réutilisable. - Tokens : skill 114k, prompt d'une phrase 160k, témoin 239k par exécution. Sans le contrat, le témoin dépense beaucoup plus d'étapes (13 commandes par exécution contre 9) pour déduire le format ; le skill coûte moins cher que l'absence totale de consigne.
- Une vérification, « chaque élément temporisé a une durée », échoue pour 3 exécutions, dont des exécutions avec skill ; elle ne compte que deux clips dans le fichier de la tâche de correction et s'applique de la même façon à tous les groupes.
Scores par dimension
| Dimension | Score | Pourquoi |
|---|---|---|
| 1_output_quality | 4.94 | Score moyen 4.94/5 avec le skill (vérifications programmatiques, voir le tableau par tâche). |
| 2_lift_vs_no_skill | 2.85 | +0.85 point contre 4.09 sans le skill (n=2 par tâche ; moins d'environ 1 point relève du bruit). |
| 3_trigger | 5.0 | Fichier du skill lu dans 6/6 exécutions avec skill. |
| 4_instructions_portability | 4 | SKILL.md et des références ; contenu spécifique au CLI HyperFrames. |
| 5_efficiency | 5 | 0.47x tokens (114k contre 239k par exécution) et 0.74x temps (79s contre 107s). |
| 6_safety_hygiene | 4 | Prose et règles uniquement ; voir security.md. |
Limites de ce test
- Les vérifications sont statiques : la structure HTML, les appels GSAP et l'enregistrement de la timeline ont été analysés, mais aucune image n'a été rendue (le CLI hyperframes, Chrome et FFmpeg n'ont pas été exécutés).
- Le skill a été testé au commit 207c8a4 parce que HEAD ne le contient plus ; la commande d'installation de la revue peut ne pas fonctionner sur le dépôt actuel.
- n=2 par cellule ; le nombre de tokens du témoin est gonflé par quelques exécutions très longues (jusqu'à 440k).
- Les prompts décrivent HyperFrames en une phrase ; un agent avec accès web pourrait consulter la documentation, mais le réseau était coupé.
- n = 2 par groupe et par tâche : les écarts inférieurs à environ 1 point relèvent du bruit.
- La notation basée sur des règles mesure ce que les vérifications peuvent voir ; elle ne juge ni le goût ni si le résultat est le meilleur possible.
Sécurité
Voir security.md. Scan : 0 CRITICAL / 0 HIGH / 21 MEDIUM. Verdict : exécution sûre (bac à sable hors ligne). Un scan propre ne prouve pas qu'un skill est sûr.
En résumé
Là où le format est inconnu, le skill divise à peu près par deux le risque d'erreurs de contrat et économise des tokens. Un paragraphe énonçant le contrat récupère l'essentiel du bénéfice. Comme le skill ne figure plus dans le dépôt de l'éditeur, considérez ce résultat comme l'archive de cette version antérieure.
Transcription
Journal d'exécution : hyperframes-core (Codex CLI, network off, per-run temp HOME/TMPDIR, one row per graded run.) Colonnes : tâche, groupe-exécution, score (0-5), tokens, secondes, vérifications réussies, fichiers de la skill ouverts par l'agent. t1-explainer control-1: score 3.1, tokens 140793, s 87.3, vérifications 7/11, rien ouvert t1-explainer control-2: score 3.57, tokens 132979, s 80.3, vérifications 8/11, rien ouvert t1-explainer oneliner-1: score 5.0, tokens 90890, s 75.8, vérifications 11/11, rien ouvert t1-explainer oneliner-2: score 5.0, tokens 73311, s 72.9, vérifications 11/11, rien ouvert t1-explainer treatment-1: score 5.0, tokens 111517, s 90.6, vérifications 11/11, ouvert hyperframes-core t1-explainer treatment-2: score 5.0, tokens 84676, s 102.2, vérifications 11/11, ouvert hyperframes-core t2-fix control-1: score 3.95, tokens 314272, s 165.7, vérifications 7/10, rien ouvert t2-fix control-2: score 3.95, tokens 440614, s 142.2, vérifications 7/10, rien ouvert t2-fix oneliner-1: score 3.77, tokens 108753, s 81.4, vérifications 7/10, rien ouvert
18 exécutions, 3 artefacts
Exemple de sortie
SOTA · With the skill: index.html (t1-explainer, run 1, Codex)
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=1920, height=1080"> <title>Meet Orbit — 12-second film</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: #f3f0e7; color: #202d29; font-family: system-ui, sans-serif; } #root { position: relative; width: 100%; height: 100%; overflow: hidden; background: #f3f0e7; } .brand { position: absolute; top: 66px; left: 100px; display: flex; align-items: center; gap: 16px; font-size: 32px; font-weight: 750; letter-spacing: -1px; } .brand-mark { width: 30px; height: 30px; border: 8px solid #e65932; border-radius: 50%; } .edition { position: absolute; top: 77px; right: 100px; font-size: 18px; letter-spacing: 3px; } .clip { position: absolute; inset: 0; } .scene { width: 100%; height: 100%; padding: 190px 100px 150px; display: flex; align-items: center; gap: 65px; } .copy { flex: 1; position: relative; z-index: 2; } .eyebrow { margin: 0 0 30px; font-size: 21px; font-weight: 650; letter-spacing: 4px; text-transform: uppercase; color: #52635b; } h1, h2, p { margin: 0; } h1 { font-size: 150px; line-height: 1.05; letter-spacing: -10px; font-weight: 650; } h2 { font-size: 86px; line-height: 1.07; letter-spacing: -5px; font-weight: 650; } .subtitle { margin-top: 34px; font-size: 31px; line-height: 1.5; color: #52635b; } .art { width: 760px; height: 650px; flex: none; } .orbit-svg { display: block; width: 100%; height: 100%; overflow: visible; } .footer { position: absolute; bottom: 65px; left: 100px; right: 100px; display: flex; justify-content: space-between; font-size: 18px; letter-spacing: 2px; color: #52635b; } .progress-track { position: absolute; bottom: 0; left: 0; right: 0; height: 7px; background: #deded3; } .progress { width: 100%; height: 100%; background: #e65932; transform-origin: left center; } .features-copy { max-width: 650px; } .features { list-style: none; margin: 0; padding: 0; width: 930px; } .feature { display: flex; align-items: center; gap: 30px; padding: 39px 0; border-bottom: 2px solid #ced3c9; font-size: 43px; font-weight: 550; letter-spacing: -1.5px; } .feature:first-child { border-top: 2px solid #ced3c9; } .number { display: grid; place-items: center; width: 66px; height: 66px; flex: none; border-radius: 50%; background: #202d29; color: #f3f0e7; font-size: 22px; letter-spacing: 0; } .feature-dot { margin-left: auto; color: #e65932; font-size: 40px; } .closing { justify-content: center; text-align: center; } .closing-copy { width: 1300px; } .closing h2 { font-size: 119px; letter-spacing: -7px; } .cta { display: inline-flex; align-items: center; justify-content: center; gap: 50px; margin-top: 48px; padding: 26px 42px; border-radius: 100px; background: #e65932; color: #17251f; font-size: 32px; font-weight: 650; } .cta-arrow { font-size: 40px; line-height: 1; } .closing-icon { display: block; width: 84px; height: 84px; margin: 0 auto 38px; border: 19px solid [... excerpt: first 3200 of 7731 characters]