Communitygithub.com

heygen-com/hyperframes

GitHubプルリクエスト(PR URL、owner/repo#N、またはチェックアウトしたリポジトリ内の「このPR」)をコード変更の説明ビデオに変換します。変更ログ、機能紹介、修正、リファクタリングのウォークスルーを、差分、コミット、ファイルから構築します。入力はコード変更であり、ウェブサイトではありません。プロモーションビデオ(/product-launch-video)や、PRを伴わないトピック解説(/faceless-explainer)は対象外です。不明な場合は → /hyperframes。

hyperframes とは?

このスキルは、GitHubのプルリクエスト(PR)をコード変更の説明ビデオに変換する、HyperFramesエコシステム向けのオーケストレーターです。入力としてPRのURL、`owner/repo#N`形式の参照、またはチェックアウト済みリポジトリ内の「このPR」を受け取り、`gh` CLIを使用してPRの差分、コミット、ファイル情報を取得します。ウェブサイトのキャプチャは行わず、純粋にコード変更のみをソースとします。ワークフローは6つのステップ(セットアップ、PRの取り込み、デザインシステムの適用、ストーリーボードとスクリプト作成、オーディオ生成、フレーム構築、最終レンダリング)で構成され、各ステップはゲートで区切られ、ユーザーの承認や自動チェックを経て進行します。このスキルは、HyperFramesプラグイン内で実行されるか、スタンドアロンで使用され、コードエディトリアルスタイルのビデオを生成します。PRの内容に基づいて変更ログ、機能紹介、修正、リファクタリングのウォークスルーなど、適切な説明形式を自動的に選択します。このスキルはClaude Code、Cursor、CodexなどのAIエージェントプラットフォームで動作するように設計されています。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/heygen-com/hyperframes/tree/main/skills/pr-to-video

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

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

ドキュメント

プラグインインストール: セットアップやフレッシュネスコマンドの前に、このスキルがHyperFramesプラグイン内にある場合は、プラグイン実行ルールに従ってください。スタンドアロンインストールの場合は、以下の更新手順をそのまま使用します。

最初に、このスキルを最新の状態に保ってください — ユーザーに確認してから実行: npx hyperframes skills update pr-to-video。すべてが最新の場合は高速なno-opです。そうでない場合は、このスキルと、それが依存するコアドメインスキルを、それらに依存する前に更新します。

media-use: オーディオ/画像/ロゴを調達する前に、/media-useを呼び出して、HeyGenカタログからBGM/SFX/画像を、公式ソースからブランドロゴを解決します。最初に--adoptを実行して既存のアセットを登録します。/media-useスキルを参照してください。

PR to HyperFrames

このスキルを使用して、GitHubプルリクエストを取り込み、変更を理解し、コード変更の説明ビデオを計画し、HyperFramesでフレームごとに構築します。入力はコード変更(gh経由で読み取り)であり、ウェブサイトではありません — キャプチャステップはなく、コントリビューターのアバター以外に実際のアセットはありません。

正面玄関は/hyperframesです。 あなたはオーケストレーターです。各ステップを実行し、そのゲートを確認し、その後にのみ続行します。このスキルはGitHubプルリクエスト(コード変更)用です。他の意図、単なる「ビデオを作成」、または不確かな場合は → 最初に/hyperframesを読んでください — インテントレイヤーがすべてのルート決定を所有しており、BRIEF.mdなしでここに到着した新しい作成は、とにかくそれを通過します(セットアップの開始ルール)。

あなたはオーケストレーターです。解決された外部のPROJECT_DIRで作業し、デフォルトでは呼び出し元リポジトリでは作業しません。ステップを順番に実行し、続行する前に各ゲートを通過します。ユーザーゲートのステップは、ステップ0、ステップ3、ステップ6です。ステップ0の前に../hyperframes/references/brief-contract.mdを読んでください — ゲートタイプと、BRIEF.mdのflow/storyboardがステップ3/4/6のゲートを管理するモードをどのように導出するかが定義されています。ステップ5を除くすべてのステップを自分で実行します。ステップ5では、制限付きのフレームワーカープールをディスパッチします。デザインやモーションのルールはここに配置しないでください。それらはフレームワーカーサブエージェント、このスキルのローカル../hyperframes-animation/rules/ + ../hyperframes-animation/blueprints/、およびhyperframes-creativeにあります。

ワークフロー: ステップ0 セットアップ → hyperframes.json; ステップ1 取り込み → capture/extracted/ + assets/<login>.png; ステップ2 デザインシステム → frame.md; ステップ3 ストーリーボード/スクリプト → STORYBOARD.md および SCRIPT.md; ステップ3.1 オーディオ → audio_meta.json; ステップ4 ビジュアルデザイン → 拡張された STORYBOARD.md; ステップ5 フレーム → compositions/frames/NN-*.html および index.html; ステップ6 最終レンダリング → renders/video.mp4。


ステップ 0: セットアップ

目標: 確認済みのブリーフ — PR参照(完全なURL、<owner>/<repo>#<N>形式の参照、またはチェックアウト済みリポジトリ内の「このPR」)を含む — を持って開始し、HyperFramesプロジェクトを作成し、ブリーフを永続化します。スタイルは常にコードエディトリアルです(ステップ2で固定され、質問されることはありません)。

ブリーフはここでの質問ではなく、インテントレイヤーによって確認されます。 開始ルール、順序: (1) BRIEF.mdが存在する → それを読み、何も質問しません — ブリーフは確定しており、そのflow/storyboardがモードを導出します(ブリーフ契約 § 1)。 (2) BRIEF.mdはないが、プロジェクトが存在する(ディスク上にhyperframes.json / STORYBOARD.mdがある) → ストーリーボードのフロントマターと記録されたプリファレンスから再開します。構築途中のプロジェクトに再び問い合わせることは決してしません。 (3) どちらでもない — ここに直接到着した新しい作成リクエスト → /hyperframesを読み、そのインテントレイヤー(references/intent-interview.md)を実行します: レシピと記憶されたデフォルトをチェックし、このルートの質問を実施します — PRサイズ→長さのドクトリンを含みます。これは../hyperframes/references/routes/pr-to-video.md全体に存在します — その後、ロックされたブリーフを返します。編集リクエストはこれらすべてをスキップします — 編集に進んでください。

他の作業を行う前に、プロジェクトディレクトリを解決します。ユーザーが指定したプロジェクトディレクトリを保持します。それ以外の場合は、リゾルバーによって出力される永続的な外部キャッシュロケーションを使用します。呼び出し元リポジトリにvideos/を作成しないでください:

PR="<url | owner/repo#N>"
if [ -n "${EXPLICIT_PROJECT_DIR:-}" ]; then
  PROJECT_DIR="$(node <SKILL_DIR>/scripts/project-dir.mjs --pr "$PR" --project-dir "$EXPLICIT_PROJECT_DIR")"
else
  PROJECT_DIR="$(node <SKILL_DIR>/scripts/project-dir.mjs --pr "$PR")"
fi
echo "PR-to-video project: $PROJECT_DIR"
node <SKILL_DIR>/scripts/preflight.mjs

機能のプリフライトは、フェッチ、ストーリー作業、オーディオ、またはフレームディスパッチの前に実行されます。インストールされたCLIがこのスキルに必要な検証コマンドを実行できない場合は、実行のコンテキストを最初に消費するのではなく、アップグレード手順で停止します。

$PROJECT_DIR/hyperframes.jsonがない場合にのみ初期化します。そのベース名はPRから派生します。例: acme-sdk-pr-1842。ワークスペース名やタイムスタンプは絶対に使用しないでください。

npx hyperframes init "$PROJECT_DIR" --non-interactive --example=blank --skill=pr-to-video — initはインストールされたスキルをGitHub上の最新のものと比較し、いずれかが古い場合はグローバルセットを更新します。

以下のすべての相対パスコマンドは、$PROJECT_DIRを作業ディレクトリとして実行されます。明示的なサブシェルのない例は (cd "$PROJECT_DIR" && …) を意味します。呼び出し元リポジトリの作業ツリーを変更することは決してありません。

initの直後にBRIEF.mdを書き込みます(それより前では決してありません — initは空でないディレクトリを拒否します): インテントレイヤーのロックされたブリーフ、形状は../hyperframes/references/brief-format.mdに従います。<MEDIA_DIR>をインストールされた/media-useスキルディレクトリとして解決します。次に、node <MEDIA_DIR>/scripts/prefs.mjs record --hyperframes .で各プリファレンスバックアップされた回答を記録します(brief-format.mdがサブセットを指定します)。インテントレイヤーがレシピを採用した場合は、node <MEDIA_DIR>/scripts/recipe.mjs use --hyperframes . --name <name>を実行します。これにより、そのframe.mdがプロジェクトにコピーされ(ステップ2はスキップされます)、ステップ3のドラフトの基となるスケルトンが返されます。レシピは回答を埋めますが、承認は埋めません。レビューゲートは引き続き実行されます。

セットアップを通過する前にサインインステータスを表示します — npx hyperframes auth statusを実行し、その出力をそのまま中継します。これにより、音声/BGMがHeyGenエンジンとローカルエンジンのどちらを使用するか、およびサインアウトしている場合のサインイン方法が報告されます。1つのブランチを適用します:

  • 協調: ユーザーがサインインするか、明示的にoffline / goを選択するのを待ちます。
  • 自律: ステータスを表示し、利用可能なローカルエンジンで続行します。

オフラインプロバイダーが存在しない場合に必要な機能を黙って省略しないでください。ブロッカーを表面化させます。この決定を別の質問に折り込んだり、リポジトリごとの.envにキーを書き込んだりしないでください。認証の所有権とオフラインフォールバック: /media-use references/setup-providers.md § プロバイダー。

ゲート: hyperframes.jsonとBRIEF.mdが存在する。PR参照がブリーフにキャプチャされている。プリファレンスバックアップされた回答が記録されている(ブリーフ契約 § 2)。サインインステータスが表示された(サインイン済み、またはオフラインで続行)。


ステップ 1: PRの取り込み(キャプチャなし)

目標: PRの事実を取得し、情報源としてプロジェクトに取り込みます。ウェブサイトのキャプチャはありません。fetch-pr.mjsはghを決定論的に実行します — ページネーションされたgh apiを介してファイルリストを完成させるため、大規模なPRでも約100ファイルで切り詰められることはなく、capture/pr.json + capture/diff.patchのみを書き込みます(スクラッチディレクトリはありません)。MERGEされたPRの場合は、pr.jsonにベストエフォートのshipped_version(+ version_source)も解決するため、エンドカードで実際のバージョンを引用でき、発明する必要はありません。次にingest.mjsがそれをオフラインで合成キャプチャパッケージに取り込みます。

PR="<url | owner/repo#N | N>"

# PRを決定論的にフェッチ: ghを実行し、ページネーションされたgh apiを介してファイルリストを完成させ
# (大きなPRでも約100ファイルで切り詰められない)、capture/pr.json + capture/diff.patchのみを書き込む
# — スクラッチディレクトリはなし。gh認証/未検出/プライベートエラーはここでexit 1。
(cd "$PROJECT_DIR" && node <SKILL_DIR>/scripts/fetch-pr.mjs --pr "$PR" --out-dir ./capture)

# オフライン変換 → capture/extracted/{tokens.json (colors:[] → code-editorialパレット)、
# visible-text.txt(ブリーフ)、people.json(コントリビューター、ボットフィルター済み、name+login、
# avatarFile=assets/<login>.png)}。
(cd "$PROJECT_DIR" && node <SKILL_DIR>/scripts/ingest.mjs \
  --pr-json ./capture/pr.json --diff ./capture/diff.patch --out-dir ./capture/extracted)

# 人物フロントの1つのネットワークステップ — 各コントリビューターのGitHubアバターをassets/<login>.pngに
# ダウンロード(クレジットクローズ用)。ベストエフォート。常にexit 0。
(cd "$PROJECT_DIR" && node <SKILL_DIR>/scripts/fetch-people-avatars.mjs \
  --people ./capture/extracted/people.json)

fetch-pr.mjsがexit 1の場合(gh認証/未検出/プライベート)、そのstderrを報告して停止します — PRコンテンツを捏造しないでください。ingest.mjsがexit 1の場合、そのstderrを読み(通常は不正なpr.json)、修正して再実行します(決定論的)。fetch-people-avatars.mjsは常にexit 0。アバターがない場合は、作成者へのクレジットクローズがないことを意味するだけです。

people.jsonは、ghがすでに名前を付けているコントリビューター(PR作成者、コミット作成者、mergedBy)のnameを保持します。残り(レビュアー/コメンター/アサイン、gh pr viewが常にベアloginのみを与える)はnullです。ステップ3でクレジットクローズを書き込む前に、そのフレームに実際に表示される1〜6人のnullの名前を自分で解決します: gh api users/<login> --jq .name(すでにghがあるため、これをスクリプト化する必要はありません)。GitHubがそのユーザーの公開名も持っていない場合は、画面上でログインにフォールバックし、その人を音声ラインから削除します(story-design.mdのクレジットセクションを参照 — ナレーションは名前を言う必要があり、生のハンドルは決して使用しないでください)。

ゲート: capture/pr.json、capture/diff.patch、capture/extracted/tokens.json、capture/extracted/visible-text.txt、capture/extracted/people.jsonが存在する。PRの変更を1つの明確な文で説明できる。assets/<login>.pngはベストエフォート — その欠如は失敗ではありません。


ステップ 2: デザインシステム

目標: コードエディトリアルフレームプリセットを採用する。スクリプトがこれをこのビデオのframe.md + キャプションスキンに変換します。

スタイルは固定 — コードエディトリアル(ウォームなエディトリアル。差分用に作られたネイビーのコードサーフェス)。実行:

node <SKILL_DIR>/scripts/build-frame.mjs --preset code-editorial --hyperframes .

スクリプトはコードエディトリアルプリセットのFRAME.mdをframe.mdにコピーし、capture/extracted/tokens.json内のブランドトークンにリミックスします(PRにはないため → colors:[]/fonts:[]はコードエディトリアル自身のパレット(完全なデザイン)を保持します)、プリセットのキャプションスキンを.hyperframes/caption-skin.htmlにコピーし、自己検証します(壊れたマッピングでexit 1)。exit 0になったらすぐに進みます — 手動編集はしません。

ゲート: build-frame.mjsがexit 0で終了した — frame.mdがコードエディトリアルプリセットから存在し、.hyperframes/caption-skin.htmlがキャプションスキンソースとして存在する。


ステップ 3: ストーリーボードとスクリプト

目標: PRを承認されたフレームごとの説明計画に変換します。

../hyperframes-creative/references/story-spine.md(フック言語、証拠より先に価値、提案としてのストーリーボード、ソーストレーサブルなビジュアル)、references/story-design.md、../hyperframes-animation/blueprints-index.md、../hyperframes/references/storyboard-format.md、../hyperframes/references/script-format.mdを読んでください。それらを使用してSTORYBOARD.mdを作成し、ナレーションが必要な場合はSCRIPT.mdも作成します。フロントマターのduration:をブリーフのlengthから設定します — 大まかな期待値。アセンブリがカットがそれに対してどこに着地するかを報告します。

PRのアーキタイプ(changelog / feature-reveal / fix-explainer / refactor-walkthrough)、PRネイティブのフレームタイプ、フック、説得、ビート、フレームごとの単語予算、クレジットクローズにはstory-design.mdを使用します。シーケンスはナラティブデザインから来ており、diffのファイル順ではありません — 変更を説明し、diffを声に出して読まないでください。ソフトガイドとして、../hyperframes-animation/blueprints-index.mdの役割→ブループリントメニューを参照してください: 各ビートについて、その候補ブループリントが暗示する形状でナレーションを書き、1つが適合する場合はその候補blueprint: idをタグ付けします(ストーリーの真実がどのビートが存在するかを決定します — 形状に合わせてビートを強制しないでください)。capture/diff.patchから実際のdiffハンクを2〜4つ特徴として含め、それぞれ小さな読みやすいスニペットにします。各フレームのsceneで各スニペットが必要とするcode-*ブロックを指定します。フレームは、creditsクローズ(1〜6個のassets/<login>.pngアバター)を除いて、asset_candidatesを持ちません。ストーリーボードおよびスクリプトリファレンスの正確な必須フィールドを使用します。

ドラフト後、レビューループのプランパスを実行します — ../hyperframes/references/review-loop.md § 1: プランを提案として提示し、2つの質問をします — 承認するか変更するか、およびスケッチを先に(推奨)するかスキップするか。フィードバックはチャット返信として届きます。承認されるまでループします。これはチェックポイントゲートです(ブリーフ契約 § 1): 自律モードでは、質問することは何もありません — 同じ要約をヘッズアップとして投稿し、進みます。スケッチはビルドに折り込まれ、1つのプレビュー質問がステップ6で行われます。

ゲート: STORYBOARD.mdが存在し、すべてのフレームに必要なナラティブフィールドがある。ナレーションが必要な場合、SCRIPT.mdが存在する。ユーザーがプランを承認した(自律: 要約がヘッズアップとして投稿された)。


ステップ 3.1: オーディオ

目標: 承認されたスクリプトからナレーション、単語タイミング、音楽、オーディオメタデータを生成します。

ステップ3の承認後にオーディオを開始します。バックグラウンドで実行し、ステップ4に進みます。

呼び出す前に、ユーザーの要求からナレーションボイスを選択します。 リクエストがボイス、性別、またはトーンを指定した場合は、一致するボイスIDを選択し、--voice <id>で渡します。パイプラインデフォルトはそれ以外の場合Marcia(女性)(HeyGen)/ am_michael(Kokoro)です — そのため、「男性の声」のようなリクエストは、フラグを渡さない限り黙って無視されます。ボイスIDはプロバイダー固有です。ステップ0のサインインステータスが選択したプロバイダーに対して解決します: HeyGen(サインイン済み)は node <MEDIA_DIR>/audio/scripts/heygen-tts.mjs --list(またはGET /v3/voices?engine=starfish)経由。Kokoro(オフライン)は <MEDIA_DIR>/audio/references/tts.mdのボイステーブル(接頭辞 am_/bm_ が男性、af_/bf_ が女性)経由。ユーザーが特に希望を述べていない場合は、パイプラインデフォルトの前に記憶されたボイス(ブリーフ契約 § 2)にフォールバックします。

...

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

Leaves sweep through the frame and part to reveal the headline. HyperFrames block, 1920×1080, 12s, 11 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

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]

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

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

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

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

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

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

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

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]

関連スキル