Communitygithub.com

shengdabai/Tony-Claude-Code-Skills

Créez un nouveau bloc de registre HyperFrames (style de légende, bloc VFX, transition, tiers inférieur) ou un composant (effet de texte, superposition, extrait de code) et publiez-le sous forme de PR en amont vers le dépôt HyperFrames. À utiliser UNIQUEMENT lorsque l'utilisateur souhaite CONTRIBUER au catalogue public — pour la création de légendes/transitions dans un projet, utilisez la compétence `hyperframes` ; pour installer des éléments de registre existants, utilisez la compétence `hyperframes-registry`.

Qu'est-ce que Tony-Claude-Code-Skills ?

Cette compétence permet aux développeurs de contribuer au registre public HyperFrames en créant de nouveaux blocs (compositions autonomes comme des styles de légende, des effets VFX, des transitions, des tiers inférieurs) ou des composants (extraits réutilisables comme des effets de texte, des superpositions, des snippets). Elle guide l'utilisateur à travers un flux de travail complet en 6 étapes : clarification du concept, génération de la structure de fichier, construction avec des modèles spécifiques (y compris les règles strictes pour les légendes et les effets Three.js), validation via des outils CLI, prévisualisation avec rendu vidéo et instantanés, puis création d'une Pull Request sur le dépôt upstream. La compétence met en œuvre des règles de qualité strictes (ID uniques préfixés, animations sans `Math.random()`, validation sans erreur). Elle prend en charge tous les environnements de développement dotés de Node.js et du CLI HyperFrames (voir la compétence `hyperframes-registry` pour l'installation). Cette compétence est destinée aux contributeurs souhaitant enrichir le catalogue public HyperFrames et nécessite un compte GitHub pour ouvrir une PR.

Compatible avec✓Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/shengdabai/Tony-Claude-Code-Skills/tree/HEAD/skills/hyperframes-contribute-catalog

Demander à votre IA préférée

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

Documentation

Contribuer au registre HyperFrames

Guidez l'utilisateur de l'idée à la PR fusionnée pour un nouveau bloc ou composant de registre.

Flux de travail

1. Clarifier → 2. Générer la structure → 3. Construire → 4. Valider → 5. Prévisualiser → 6. Publier

Étape 1 : Clarifier

Demandez ce que l'utilisateur construit. Le registre comporte deux types d'éléments :

  • Bloc (registry/blocks/, type hyperframes:block) — une composition autonome complète avec des dimensions et une durée fixes. Styles de légende, effets VFX, cartes titres, tiers inférieurs.
  • Composant (registry/components/, type hyperframes:component) — un extrait réutilisable sans dimensions ni durée fixes. Effets CSS, traitements de texte, superpositions qui s'adaptent à n'importe quelle taille de composition.

Puis demandez :

  • Description en une phrase de l'effet
  • Référence visuelle (URL, capture d'écran ou description)
  • Qui utilise cela et quand ?

Étape 2 : Générer la structure

Créez la structure du registre :

Pour les blocs :

registry/blocks/{nom-du-bloc}/
  {nom-du-bloc}.html
  registry-item.json

Pour les composants :

registry/components/{nom-du-composant}/
  {nom-du-composant}.html
  registry-item.json

Convention de nommage :

Nom de l'élémentPréfixe IDExemples d'ID
cap-hormozihzhz-cg-0, hz-cw-3
cap-typewritertwtw-cg-0, tw-ch-0-5
vfx-chromevcvc-canvas

Utilisez un préfixe de 2 à 3 lettres. TOUS les ID d'éléments doivent utiliser ce préfixe pour éviter les collisions dans les sous-compositions.

registry-item.json pour les blocs :

{
  "$schema": "https://hyperframes.heygen.com/schema/registry-item.json",
  "name": "{nom-du-bloc}",
  "type": "hyperframes:block",
  "title": "{Titre humain}",
  "description": "{une phrase}",
  "dimensions": { "width": 1920, "height": 1080 }, // ajuster : 1080x1920 pour portrait/réseaux sociaux
  "duration": 10, // ajuster pour votre composition
  "tags": ["{catégorie}", "{sous-catégorie}"],
  "files": [
    {
      "path": "{nom-du-bloc}.html",
      "target": "compositions/{nom-du-bloc}.html",
      "type": "hyperframes:composition"
    }
  ]
}

registry-item.json pour les composants (pas de dimensions ni duration) :

{
  "$schema": "https://hyperframes.heygen.com/schema/registry-item.json",
  "name": "{nom-du-composant}",
  "type": "hyperframes:component",
  "title": "{Titre humain}",
  "description": "{une phrase}",
  "tags": ["{catégorie}"],
  "files": [
    {
      "path": "{nom-du-composant}.html",
      "target": "compositions/components/{nom-du-composant}.html",
      "type": "hyperframes:snippet"
    }
  ]
}

Étape 3 : Construire

Appliquez le modèle approprié en fonction du type. Voir templates.md pour les modèles prêts à copier-coller.

Blocs de légende

Règles de légende non négociables :

  • Police : 96px minimum pour les polices proportionnelles. 64-72px acceptable pour les polices monospace (les caractères plus larges nécessitent moins de taille).
  • Lisibilité : -webkit-text-stroke: 2-3px OU text-shadow multicouche
  • Débordement : appeler window.__hyperframes.fitTextFontSize() sur chaque groupe
  • Karaoké : mettre en surbrillance le mot actif via tl.to(wordEl, { color/scale }, WORDS[wi].start)
  • Suppression définitive : tl.set(groupEl, { opacity: 0, visibility: "hidden" }, g.end) sur CHAQUE groupe
  • N'utilisez jamais tl.from(el, { opacity: 0 }) à la même position que tl.set(el, { opacity: 1 }) — le from écrase le set. Utilisez tl.to à la place.

Animation par caractère (machine à écrire, embrouillage) :

  • Encapsuler chaque caractère dans <span> avec l'ID {préfixe}-ch-{groupe}-{caractère}
  • Échelonner via tl.set à des intervalles calculés à partir des horodatages des mots
  • Curseurs/éléments décoratifs : utiliser tl.set à intervalles — PAS d'animation CSS (non accessible par seek)

Variantes de positionnement :

  • Centré : display: flex; align-items: center; justify-content: center;
  • Tiers inférieur : position: absolute; bottom: 100px; left: 0; width: 100%; text-align: center;
  • Aligné à gauche : position: absolute; bottom: 100px; left: 120px; text-align: left;

Blocs VFX (Three.js)

  • Utiliser [email protected] depuis un CDN (script global)
  • tl.eventCallback("onUpdate", renderScene); renderScene(); — PAS de requestAnimationFrame
  • Modèle de proxy d'état : GSAP anime un objet JS simple, la fonction de rendu le lit
  • PRNG ensemencée (mulberry32) pour l'aléatoire

Tous les types

  • data-composition-id DOIT correspondre à window.__timelines["id"]
  • Tous les ID d'éléments préfixés par l'abréviation du bloc
  • gsap.timeline({ paused: true }) — toujours en pause
  • Pas de Math.random(), pas de Date.now()

Étape 4 : Valider

hyperframes lint                    # 0 erreurs requises
hyperframes validate --no-contrast  # 0 erreurs console requises

Étape 5 : Prévisualiser

# Générer la vidéo de prévisualisation
hyperframes render -o preview.mp4

# Instantané pour vérification visuelle
hyperframes snapshot --at "1.0,3.0,5.0,7.0"

# Publier sur hyperframes.dev pour révision
npx hyperframes publish

Image de prévisualisation du catalogue — La carte du catalogue utilise un PNG à docs/images/catalog/{kind}/{name}.png (où {kind} est blocks ou components). Générez-la à partir d'un instantané, puis :

  • Contributeurs internes HeyGen : exécutez scripts/upload-docs-images.sh (nécessite le profil AWS engineering-767398024897)
  • Contributeurs externes : joignez la MP4 de prévisualisation à la description de votre PR. Un mainteneur générera et téléchargera l'image du catalogue avant la fusion.

Étape 6 : Publier

Toutes les étapes sont requises. L'absence de l'une d'entre elles produit une entrée de catalogue cassée.

{kind} est blocks ou components selon ce que vous avez construit à l'étape 1.

# 1. Créer une branche
git checkout -b feat/registry-{nom}

# 2. Formater le HTML
npx oxfmt registry/{kind}/{nom}/*.html

# 3. Mettre à jour registry/registry.json — ajouter l'entrée au tableau "items" :
#    { "name": "{nom}", "type": "hyperframes:block" }  (ou "hyperframes:component")

# 4. Générer la page de documentation du catalogue
npx tsx scripts/generate-catalog-pages.ts

# 5. Publier sur hyperframes.dev pour que les réviseurs puissent prévisualiser
npx hyperframes publish

# 6. Mettre en scène tout
git add registry/{kind}/{nom}/ registry/registry.json docs/catalog/

# 7. Commiter
git commit -m "feat(registry): ajout de {nom} — {une phrase}"

# 8. Pousser et ouvrir une PR avec le lien hyperframes.dev
git push origin feat/registry-{nom}
gh pr create --title "feat(registry): {nom}" --body "preview: {url-hyperframes-dev}"

Si vous n'avez pas de compte GitHub : vous en avez besoin pour ouvrir une PR. Inscrivez-vous sur https://github.com/signup, puis exécutez gh auth login.

Porte de qualité

  • hyperframes lint → 0 erreurs
  • hyperframes validate → 0 erreurs console
  • npx oxfmt --check passe
  • registry/registry.json mis à jour avec la nouvelle entrée
  • scripts/generate-catalog-pages.ts exécuté (page de documentation générée)
  • npx hyperframes publish exécuté (revendiquez l'URL de votre projet)
  • MP4 de prévisualisation jointe à la PR (externe) ou PNG du catalogue téléchargé (interne)
  • Tous les ID uniques et préfixés

Individual skills in this repo

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

shengdabai/Tony-Claude-Code-Skills

Downloads videos from YouTube and other platforms for offline viewing, editing, or archival. Handles various formats and quality options.

shengdabai/Tony-Claude-Code-Skills

接收抖音、小红书、微信视频号等短视频链接或分享文案,查询作品/账号数据并提取语音文字稿,按作者和标题归档为 Markdown。用户希望完整解析短视频、取得数据或文字稿时使用;运行前检查 TikHub 与轻抖使用凭证,缺少时用新手能理解的方式引导购买和安全配置。

shengdabai/Tony-Claude-Code-Skills

Read-only queue dashboard for workspace-aware ship. (gstack)

shengdabai/Tony-Claude-Code-Skills

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.

shengdabai/Tony-Claude-Code-Skills

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.

shengdabai/Tony-Claude-Code-Skills

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.

shengdabai/Tony-Claude-Code-Skills

HyperFrames CLI dev loop — `npx hyperframes` for scaffolding (init), validation (lint, inspect), preview, render, and environment troubleshooting (doctor, browser, info, upgrade). Use when running any of these commands or troubleshooting the HyperFrames build/render environment. For asset preprocessing commands (`tts`, `transcribe`, `remove-background`), invoke the `hyperframes-media` skill instead.

shengdabai/Tony-Claude-Code-Skills

Asset preprocessing for HyperFrames compositions — text-to-speech narration (Kokoro), audio/video transcription (Whisper), and background removal for transparent overlays (u2net). Use when generating voiceover from text, transcribing speech for captions, removing the background from a video or image to use as a transparent overlay, choosing a TTS voice or whisper model, or chaining these (TTS → transcribe → captions). Each command downloads its own model on first run.

Skills associés