Communitygithub.com

heygen-com/hyperframes

週次の変更ログ(changelog)Markdownファイルを、ブランド化された変更ログ動画(スクエア1080、約45〜60秒、Annie VO、アニメーション背景、モックUIビジュアライゼーション、控えめなキャプション)に変換します。ユーザーが変更ログ/ダイジェストMarkdownを提供し、週次動画を希望した場合、または「changelog video」と言った場合に使用します。自己完結型で、フォント、背景、用語集、スクリプトはこのスキルに同梱されています。

hyperframes とは?

このスキルは、週次の変更ログ(changelog)Markdownファイルから、ブランド化された短尺動画(約45〜60秒、スクエア1080)を自動生成するためのものです。主な特徴として、箇条書きのテキストリストではなく、UIのモックアップやアナロジーを用いて変更内容を視覚的に表現します。対応プラットフォームは主にClaude CodeなどのAIエージェント環境を想定しており、内部ではHeyGenのTTS(音声はAnnie固定)を使用したナレーション生成、指定されたフォントやカラーパレット(例:クリーム色#f5f6f4、グリーン#5ef17c)に基づくブランディング、そしてローカルCLIツール(`hyperframes`)による品質チェック(キャプションの表示確認、シームの検証)を行います。スキルは自己完結型であり、`examples/master-skeleton.html`をベースにアセット(フォント、BGM、背景動画)をコピーすることで、一貫したブランド体験を保証します。

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

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

変更ログ → ブランド動画

入力: 変更ログ .md(テーマと項目、例:毎週のHyperFramesダイジェスト) 出力: 構文チェック済み、シームゲートグリーンのHyperFramesプロジェクトを projects/active/weekly-changelog-<range>/ に生成します。レンダリングは要求された場合のみ行います。

最初に必ずロードすること(譲れません): motion-doctrine(+ カーソル表示時は cut-the-curve、oversized-cursor、seam-craft)と captions-overlay。このスキルは変更ログ固有のパイプラインを提供し、ドクトリンがモーション法則を提供します。

最優先指示: リストで表示せず、可視化せよ

全てのテーマは、実際のUIのアニメーションモック、または忠実な類似物で体験の変化を表現します。テキストの箇条書きは絶対に使わないでください。すべてのテーマ/項目をスクリプト作成前に references/visualization-registry.md 経由でルーティングします。レジストリが ui-recreate / ui-analog / terminal / checklist を決定します。テキストチェックリストは最後の手段であり、本当に視覚化できない項目(信頼性修正のリストなど)に限定します。

パイプライン

0 · このスキルのアセットからプロジェクトをブートストラップする — 譲れません

どのコンポジションHTMLを書くよりも先にこれを行ってください。これをスキップすると、必ず以前に構築した類似プロジェクトのような見た目の動画になり、このスキルのブランドにはなりません。これはこのスキルがブランドから外れる最も一般的な原因です。 スキルのアセット、フォント、スキャフォールドこそがスキルそのものです。SKILL.md のプロンプトはルーターです。

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

次に、references/build-spec.md を最初から最後まで読んでください(斜め読みではなく)— これにより、すべてのシーンがスキャフォールドから継承するブランドトークン(TT Norms Pro + ABC Solar Display + TT Norms Mono、クリーム色 #f5f6f4、限定使用のグリーン #5ef17c、グリーンがかった境界線のガラスカード、キッカー/セクションチップのピル型、top: 990 の32pxキャプションレール)が定義されています。

その後に、以下の手順1〜6を開始します。手順1〜4(解析、ルーティング、スクリプト、VO)はスキャフォールドに何を入れるかを計画し、手順5では、すでにコピーされた project/index.html 内のプレースホルダー(<RANGE>、<TOTAL>、<CUT_N>、<DUR_N>、シーンボディ)を埋めます。スキャフォールドのクローム、フォント、パレット、レイアウトシェルを書き換えてはいけません。

以前の動画の index.html に cp しようとしたり、独自の @font-face 宣言を書いたり、上記のエンコード済み bg-pattern MP4 を使わずにWebGLシェーダーの背景をデザインしようとしたりしている自分に気づいたら:中止してください。現在の index.html を削除し、マスタースケルトンのスキャフォールドの cp からやり直してください。間違ったスキャフォールドにブランドを後付けするよりも、正しいスキャフォールドでシーンコンテンツを再構築する方が効率的です。

1 · 解析 + 編集カット

  • 抽出: 週範囲、見出し統計(リリース数、コミット数)、テーマ、項目。
  • 予算: 合計45〜60秒。 タイトル≤2秒、アウトロ≤3.5秒、4つのテーマで各9〜12秒程度。
  • テーマごとに、1つのメインの可視化 + 最大3つの読み上げ項目のみ保持します。 それ以外のすべては、アウトロの「完全なダイジェスト」へのリンクとしてのみ存在します。カットが仕事です。 30項目の変更ログでも、14以下の読み上げビートに収めます。
  • テーマをストーリー順に並べます: 目玉機能 → プロダクト表面 → パフォーマンス → 信頼性(通常、ダイジェストはすでにこの順序になっています)。

2 · 可視化ルーティング

各テーマについて、references/visualization-registry.md から表面を選び、1行を書きます: テーマ → 表面 → モックが実行する2〜4の順次アクション(各アクションはスクリプトのフレーズに紐づく)。レジストリに適合する表面がなく、忠実な類似物も存在しない場合は、チェックリストシーンになります。正直に表現できないものに対して、偽のUIを作成してはいけません。

3 · 2層スクリプト(読み上げ vs 表示)

references/script-voice.md に従って、スクリプトを トークン行 として書きます。 会話調のレジスターで、すべての技術用語は references/lexicon.json から spoken 発音形を持ち、display は標準スペルを維持します。 キャプションは display を表示し、VOは spoken を読み上げます。 用語集にない用語がある場合:停止してユーザーに発音を尋ね、その後用語集に追加します。 script-tokens.json としてプロジェクトに保存します。

4 · VO — Annie(HeyGen、固定)

# 読み上げレイヤーのテキストのみ。単語JSON = 読み上げテキストのグラウンドトゥルースタイムスタンプ
# リポジトリネイティブパス: changelog-videoスキルは hyperframes リポジトリルートから実行されるため、
# 追跡された hyperframes-media TTS ヘルパーを直接使用します(`npx hyperframes
# skills` インストール手順は不要)。このスキルを別のリポジトリにコピーした場合は、
# 自身の media-use / hyperframes-media heygen-tts.mjs へのパスに置き換えてください。
node skills/hyperframes-media/scripts/heygen-tts.mjs ./vo-spoken.txt \
  -o voiceover.mp3 --words vo-words.json \
  --voice 330290724a1b470fb63153f34d4c0183   # Annie — リアルな声(代替禁止)

heygen CLI ≥0.3.0 が必要です。認証済みであること(heygen auth login --oauth)。 次に、読み上げタイムスタンプを表示トークンに合わせます:

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

captions.json はキャプションレールの入力です(表示スペル、読み上げタイミング)。 アライナーは MISMATCH 警告を出力します — ビルド前にすべて解決してください(通常は、TTSが複数の単語としてレンダリングする綴りが用語集に存在することによる問題です)。音声が時計です: すべてのビートタイムは vo-words.json から取得されます。VOを再生成すると、すべてのシームが再開されます。

単語タイミングは厳格なゲートです。 手順5に進む前に、vo-words.json が空でなく、start/end を持つ words: [...] 配列があることを確認してください。もし空(0バイト)または配列がない場合(TTSプロバイダーがタイムスタンプペイロードなしで音声を返す既知の障害モード)は、それらなしで進めないでください。代替案: 生成された音声をローカルのwhisperを使用して表示スクリプトに強制アライメントします:

uvx --from openai-whisper whisper voiceover.mp3 \
  --model base.en --language en --word_timestamps True \
  --output_format json --output_dir .
# その後、align-captions.mjs を --words voiceover.json(同じ形式)で実行

WhisperはTTSレンダリングを聞き間違えることがあります("gee-sap" → "gsap"、"heyjen" → "hey Jen" など)— キャプションは依然として script-tokens.json の DISPLAY スペルを使用します。whisperはタイムスタンプのみを提供します。align-captions.mjs が結合を処理します。この代替案は、キャプション付きビルドと、静かにキャプションなしで出荷することの違いを生みます。

5 · ビルド

references/build-spec.md に正確に従います: ブランドトークン + フォント(<SKILL_DIR>/assets/ にバンドル)、アニメーション背景エンコード、シーンスキャフォールド、クローム、キャプションレール、シーンごとに1つの限定使用グリーン瞬間。次に、ドクトリンの順序: ledger.json(すべての通常シームは cut-the-curve LEFT) → seam-stamp → VO単語上の内部ビート → seam-gate 検証。

キャプションは必須です。 マスタースケルトンには、LINES 配列を読み取るキャプションレール IIFE が同梱されています。その配列を空のままにすることは、出荷バグであり、スタイルの選択ではありません。手順6に進む前に、captions.json からそれを入力してください:

// キャプションレール IIFE 内の "const LINES = /* … */ []" をこれで置き換えます:
const LINES = /* captions.json の内容 */ [
  { id: 0, end: 2.74, w: [["This", 0.0], ["week,", 0.30], …] },
  …
];

align-captions.mjs がスキップされた場合、または LINES が [] の場合、手順6のフレームチェックは失敗します。スキャフォールドから #cap-line を削除してごまかさないでください。

6 · ゲート(提示前にすべてグリーン)

  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"(またはリポジトリローカルの skills/hyperframes-cli/ スキルからインストールされた hyperframes CLI)— 0エラー(コントラスト: 薄暗いテキスト ≥ .66 alpha; シーンコンテンツはキャプションレールの上に留まる)。npx hyperframes@latest に手を出さないでください。追跡されたリポジトリローカルCLIが、このスキルが生成するコンポジション契約の真実の情報源です。
  2. seam-gate.mjs verify — 0失敗。
  3. プレビューサーバーを再起動します(バンドルをキャッシュします)。生のコンポジションページで __player.seek を使用して3〜4ビートをスポットチェックします。
  4. ユーザーが要求しない限り、レンダリングしないでください。要求されたレンダリング後、MP4のフレームを確認します(ffmpeg -ss <t> … -frames:v 1):キャプションが存在する、背景動画が黒でない、小さな/フリーズしたフレームがないこと。
  5. キャプション存在ゲート — ハードフェイル。 VOの読み上げウィンドウ全体にわたって3〜4フレームをサンプリングし(例:48秒のVOの場合 t=3、t=15、t=30、t=42)、top: 990 のキャプションレールがそれぞれに表示可能なテキストをレンダリングしていることを確認します。読み上げ区間内のフレームでキャプションが欠落している場合、ビルドはキャプションなしで出荷されます — レッドゲートとして扱い、手順5の LINES 入力を再確認してください。これこそが、Jul 13-20 v4ビルドで問題が発生した点です。

プロジェクトレイアウト

projects/active/weekly-changelog-<range>/
├── index.html            # 単一ドキュメントマスター(スライドとしてのシーン、スタンプされたシーム)
├── ledger.json           # ベクトル元帳(seam-stamp入力)
├── script-tokens.json    # 2層スクリプト(VO + キャプションの真実の情報源)
├── vo-spoken.txt         # 生成: 読み上げレイヤー、1行
├── voiceover.mp3 + vo-words.json + captions.json
├── bgm.mp3               # <SKILL_DIR>/assets/bgm.mp3(ハウストラック)からコピー(ユーザーが別のものを提供しない場合)
└── assets/fonts/ + assets/bg-pattern-<dur>s.mp4

アンチパターン

してはいけないこと代わりに行うこと
UI変更の箇条書きスライド変更を実行している表面をモックする
表現不可能な項目に対する偽のUI正直なチェックリストシーン
TTSテキスト内のプレーンな「JSON」/「CLI」用語集の読み上げ形式を使用。表示は標準のまま
キャプション内の発音綴りキャプションは常に表示レイヤーをレンダリング
未知の用語の発音を推測すること尋ねて、用語集を拡張する
すべての変更ログ項目を読み上げることテーマごとに最大3つ。残りはダイジェストリンクが担う
あらゆるところでグリーンアクセントシーンごとに1つのグリーン瞬間(#5ef17c)
以前の動画の index.html から始めること手順0 — このスキルの examples/master-skeleton.html を project/index.html にコピーする。常に。
手書きの @font-face / WebGLシェーダー / カスタムBGM手順0 — このスキルの assets/ をそのままコピーする。スキルのアセットこそがブランドである
CloudFront 無効化なしで納品することS3置換後、ディストリビューション E2BSLVSZ7FG3U0 に対して正確なパスで aws cloudfront create-invalidation を実行する。CDNはそうでなければ古いファイルをキャッシュする
スキャフォールド内の LINES 配列が空のまま出荷すること手順4で入力された captions.json を生成しなければならない。手順5でそれをIIFEに貼り付けなければならない。手順6のゲート5でレンダリングフレームにキャプションを確認しなければならない。空の LINES = キャプションなしの出荷 = やり直し
vo-words.json がない → キャプションをスキップしてそのまま出荷生成された音声に対してwhisper強制アライメントにフォールバックする。キャプションは必須である

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]

関連スキル