Communitygithub.com

スライドショー

HyperFramesスライドショーの作成契約。シーン、クリップ、JSONアイランドを用いて、ナビゲーション可能なインタラクティブデッキを構築します。

スライドショー とは?

このスキルは、HyperFrames上でスライドショー(インタラクティブデッキ)をオーサリングするための完全な契約書です。HyperFramesの通常のコンポジション(シーン、クリップ、GSAPタイムライン)に加え、スライドの順序や分岐、フラグメント(中間停止点)、ホットスポット、発表者ノートを定義するJSONアイランドをHTML内に埋め込みます。これにより、プレイヤーのSlideshowControllerがリニアなタイムラインを離散的なナビゲーション可能なデッキに変換し、`hyperframes present`コマンドでライブプレゼンテーションとして実行できます。出力はリニアなMP4ではなく、実行可能なデッキであることに注意が必要です。`hyperframes render`は最初のコンポジションのみをレンダリングし、切り詰められたMP4を生成するため、このスキルでは禁止されています。スライド作成時には、完全な文章の見出し、スライドあたり1つのアイデアと1つのビジュアル、ボトムアップの市場規模推定、30pt相当の最小フォントサイズなどの厳格なルールに従う必要があります。また、既存のページを移植する際は、ソースのビジュアルデザイン、モーション、メディア動作を忠実に再現し、`npx hyperframes catalog`でホスト済みブロックを検索してから手動でビルドすることが推奨されます。このスキルは、Claude Code、Cursor、CodexなどのAIエージェントがスライドショー作成の指示を受けた際に、その意図を確認し、正しい成果物(デッキ)を構築するために使用されます。

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

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

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

ドキュメント

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

figma ソース: デッキのコンテンツやストーリーボードがfigma.comのURLから来ている場合、先に/figmaを実行してください——アセットエクスポート、ブランドトークン、およびソースがシーンフレームのストリップである場合のストーリーボード再構築——そしてその出力からビルドします。生のMCPツールを介して直接Figmaを操作しないでください。それはSVGサニタイゼーション、.media/manifest.jsonlの来歴、およびブランドトークンのvar()バインディングをスキップするため、後でブランドが変更された場合、完全な再インポートなしでは伝播できなくなります。

スライドショーオーサリング契約

HyperFramesスライドショーは、通常のHyperFramesコンポジション(シーン、クリップ、GSAPタイムライン)に、1つの追加要素があります。それは、どのシーンがスライドであり、それらがどのように接続されるかを宣言するJSONアイランドです。プレイヤーのSlideshowControllerがこのアイランドを読み取り、連続したGSAPタイムラインを、離散的でナビゲーション可能なデッキに変換します。

最初に/hyperframes-coreを読んでください。ベースとなるコンポジション契約(クリップ、トラック、data-*属性、決定性ルール)について説明されています。このスキルでは、新しいものだけをカバーします:アイランドスキーマ、スライド作成ルール、フラグメント、分岐、バリデーション、およびラッピングコンポーネントです。

出力——リニアなMP4ではなく、ナビゲーション可能なデッキ

スライドショーの出力は実行中のデッキです:hyperframes present <project-dir>(またはStudioのプレゼントモード)で提供します。プレイヤーのSlideshowControllerがアイランドを読み取り、ナビゲーション、フラグメント、分岐、プレゼンターモードを駆動します。プレゼンテーションとハンドオフのセクションを参照してください。

スライドショーをhyperframes renderで単一のMP4にレンダリングしないでください。 デッキは、いくつかのトップレベルのシーンコンポジション(スライドごとに1つのdata-composition-id)として作成され、それらをラップするマスタールートコンポジションはありません。そのため、renderは最初のコンポジションのみを解決し、静かに切り詰められたMP4(例:40秒のデッキのうち6秒)を出力します。リニアなメインラインエクスポート(メインスライドのみ、ブランチシーケンスは除外)は延期されています——出荷されるまでは、サポートされる出力はライブのpresentデッキとスライドごとのsnapshot静止画です。ユーザーが今日リニアなMP4を必要とする場合は、この制限を表面化させ、デッキにrenderを向けないでください。

意図の確認

ユーザーが明示的にスライドショー、スライド表示、またはHyperFramesスライドショーを要求した場合は、このスキルを進めてください。リクエストが/hyperframesを通じて届いた場合、インテントレイヤーのトリアージがこの確認を所有しています——ここにルーティングされたということは既に確認済みであることを意味するため、再度尋ねないでください。レイヤーの実行形状に関する質問は該当しません(成果物はレンダリングされたビデオではなくデッキです)。BRIEF.mdが存在する場合、それは確認された意図を伝えています——それを読んでください。

「プレゼンテーション」、「ピッチデッキ」、「デッキ」、「インタラクティブデッキ」、または「このページを変換」などの隣接するリクエストからスキルがトリガーされた場合は、オーサリングの前に一時停止し、確認を求める前に選択肢を提示してください。HyperFramesスライドショーが、離散的なスライド、組み込みのナビゲーションとプレゼンターモード、編集可能なスピーカーノート、共有メディア処理、およびハンドオフ前のバリデーションを備えた実行可能なデッキを意味することを簡単に説明してください。ソースページの変換については、ページの移動をスライド間のトランジションに変換しながら、元のページのビジュアルデザイン、インタラクション、モーション、メディア動作を維持することを目標とすることも言及してください。

その後、短い確認質問をしてください:

これをHyperFramesスライドショーにしますか?

環境が提供する場合ははい/いいえの選択UIを使用し、それ以外の場合はプレーンテキストで質問してください。

ユーザーが「はい」と言うまでスライドショーを実装しないでください。「いいえ」と言った場合は、このスキルの使用を停止し、/hyperframesを読んでインテントレイヤーに再ルーティングさせてください。この確認はルーティングの決定であり、好みのゲートではありません——../hyperframes/references/brief-contract.md § 1に従い、自律モードでも存続します(「驚かせて」でもスキップされません):間違った成果物タイプを構築することは、創造的な判断ではなく、品質の失敗です。


2つの構成要素

1. シーン——通常の方法で宣言

すべてのスライドはシーンによって支えられています。data-composition-id、data-start、data-duration、data-labelを使用してシーンを宣言します:

<div
  data-composition-id="problem"
  data-start="0"
  data-duration="8"
  data-label="The problem"
  data-width="1920"
  data-height="1080"
>
  <!-- クリップはここに配置 -->
</div>

ブランチスライド(ホットスポット経由でのみ到達可能で、メインラインから除外される)もまったく同じ方法で宣言されます——アイランドのslideSequencesエントリにのみ表示され、メインのslides配列には表示されません。

2. JSONアイランド——コンポジションごとに1つのスクリプトブロック

コンポジションHTMLに、<script type="application/hyperframes-slideshow+json">ブロックを1つだけ追加します。これにより、すべてのスライドショーメタデータが保持されます:

<script type="application/hyperframes-slideshow+json">
  {
    "slides": [...],
    "slideSequences": [...]
  }
</script>

アイランドは、スライドの順序、ノート、フラグメントのホールドポイント、ホットスポット、ブランチシーケンスに関する単一の真実の情報源です。シーンのdivの前に、<body>の上部近くに配置して、見つけやすくしてください。

スライドショーマニフェストを、代替の<script type="application/json">ブロックと、アイランドを作成するランタイムコードの背後に隠さないでください。presentコマンドはコンポジションHTMLを静的に読み取り、実際のapplication/hyperframes-slideshow+jsonアイランドが既に存在することを期待します。


スキーマ

SlideshowManifest(トップレベルのアイランドオブジェクト)

{
  "slides": [
    /* SlideRef[] — メインライン、順序通り */
  ],
  "slideSequences": [
    /* SlideSequence[] — オフラインのブランチシーケンス */
  ]
}

SlideRef

{
  "sceneId": "problem",
  "notes": "痛みから始め、会社からは始めない。",
  "fragments": [3.5, 5.2, 7.0],
  "hotspots": [
    /* SlideHotspot[] */
  ],

  "ttsScript": null,
  "ttsAudioUrl": null,
  "ttsDurationMs": null
}
フィールド必須備考
sceneIdはいシーンのdata-composition-idと完全に一致する必要があります(または明示的なstartTime/endTimeを提供)。リントルールはdata-composition-idでシーンを解決します。
notesいいえ発表者のみのテキスト。聴衆には決して表示されません。
fragmentsいいえスライドの[start, end]範囲内の時間(秒)の配列——以下のフラグメントを参照。
hotspotsいいえブランチをトリガーするインタラクティブなオーバーレイ——以下の分岐を参照。
startTimeいいえオプション。一致したシーンの時間境界をオーバーライドします。デフォルトはシーンの開始/終了。
endTimeいいえオプション。一致したシーンの時間境界をオーバーライドします。デフォルトはシーンの開始/終了。
ttsScript, ttsAudioUrl, ttsDurationMsいいえ予約済み。 スキーマフィールドは存在しますが、TTS再生はまだ配線されていません。将来のビルドのために事前に入力する場合を除き、省略してください。

SlideHotspot

{
  "id": "h1",
  "label": "これはどのように計算しましたか?",
  "target": "market-deep-dive",
  "region": { "x": 60, "y": 10, "w": 35, "h": 20 }
}
フィールド必須備考
idはいスライド内で一意。
labelはい聴衆に表示されるツールチップ/ボタンテキスト。
targetはいslideSequences内のSlideSequence.idと一致する必要があります。
regionいいえスライドのパーセンテージで表したバウンディングボックス:{x, y, w, h}、範囲は0–100。省略すると、代わりにホットスポットはフルスライドのラベル付きボタンとしてレンダリングされます。

SlideSequence

{
  "id": "market-deep-dive",
  "label": "市場規模測定方法論",
  "slides": [{ "sceneId": "mkt-1" }, { "sceneId": "mkt-2" }]
}

シーケンス内のslidesは、メインラインと同じSlideRef形状を使用します。フラグメントとネストされたホットスポットは許可されています。


スライド作成ルール

これらは提案ではなく、厳格な制約です。これらに違反するスライドは、レビュアーが確認した時点で完全に置き換えられます。

  • 見出しはラベルではなく、完全な文章の主張であること。「スケジューリングの問題」ではなく、「中小企業は手動スケジューリングに週14時間を費やしている」と書きましょう。視覚を無視しても、文は単独で成立する必要があります。
  • スライドあたり1つのアイデアと1つのビジュアル。 2つ目の箇条書きクラスターや2つ目のチャートを追加したくなったら、スライドを分割してください。
  • 結論から始める。 最も強いポイントを最初に——スライド内でもデッキの順序でも。投資家は左から右、上から下に読み、そして止まります。
  • ボトムアップの市場規模推定のみ。 計算を示さずに「$500億TAM」と決して書かないでください。ユニットエコノミクスから構築してください:アカウント数×ACV、またはトランザクション数×テイクレート。
  • フォント最小30pt相当。 1920×1080では、見出しは72–96px、本文は48pxです。聴衆が読まなければならないテキストは、40pxを下回らないでください。
  • 名前付きビジュアルを手動で構築する前に、ライブカタログを検索すること。 スライドに必要なすべてのルック、エフェクト、チャート、処理、トランジションについて——「CRTスキャンライン」、「グリッチ」、「棒グラフレース」、「シャマースイープ」、「ターミナルウィンドウ」——スライドのクリップを作成する前に、npx hyperframes catalog --query "<ビジュアルを平易な英語で>" --jsonを実行し、上位の結果を読んでください。この検索には何もインストールする必要はありません:プロジェクト、事前のadd、アカウントは不要です。ホストされているレジストリ全体(約400のブロックとコンポーネント)を任意のディレクトリからランク付けします。npx hyperframes add <name>は、ブロックのソースをデッキに追加し、その場でカスタマイズできます。これは、ソースページを移植する場合に特に強く適用されます。実際のブロックは、以下の移植ルールで禁止されている簡略化された近似よりも優れています。

ソースページの移植

既存のページをスライドショーに変換する場合、ソースの忠実度は契約の一部です。ユーザーが明示的に再設計を要求しない限り、ソース固有のウィジェットを簡略化された近似に置き換えないでください。

  • 元のページのビジュアルデザイン、モーション言語、インタラクティブな動作、メディア動作、およびプレゼンテーションのアフォーダンスを、実用的な範囲で可能な限り忠実に保持してください。スライドショーシステムがプレゼンターモードをサポートしている場合は、デッキ固有の実装ではなく、共有の編集可能ノート動作を使用してスピーカーノートを含めてください。
  • ソースのDOM/CSS/JSから機械的なビジュアルを、実用的な範囲で可能な限り正確に移植してください:カスタムプレーヤー、キャンバスビジュアライザー、タイムライン、プレイヘッド、ステム、拡大する円、ホバーステート、その他のインタラクティブな詳細は、変換後も存続する必要があります。
  • ネイティブの<video>/<audio>要素は、カスタムメディアクローム、キャンバスビジュアライザー、波形、ビートグリッド、プレイヘッドの真実の情報源として扱ってください。ソースのメディアイベント(play、pause、timeupdate、seeking、seeked、ended、ratechange、volumechange)を配線し、media.currentTimeからビジュアル状態を導出してください。実際の再生からドリフトする可能性のある別個のタイマーを実行しないでください。
  • srcを持つコピーされたすべての<video>または<audio>には、リントの前にHyperFramesタイミング属性(data-startおよびdata-duration)が必要です。また、ネイティブオーディオを保持する必要がある場合はdata-has-audio="true"も必要です。スライド固有のメディアにはシーンの時間範囲を使用してください。複数のフォーカスされたスライドから再生される可能性のあるユーザー制御の証拠ビデオには、デッキ全体の範囲を使用してください。メディアにpreload="none"を残さないでください。metadataまたはautoを使用してください。
  • バリデーションの前にソースフォントトークンを解決してください。カスタムソースフォントを保持する場合は、ローカル/キャプチャされたフォントファイルに@font-faceルールを追加してください。システムフォールバックを使用する場合は、font-family: var(--f-body)などのトークン化された宣言を、system-ui, sans-serifやui-monospace, monospaceなどの具体的なレンダリングセーフなスタックに置き換えてください。var(...)をフォントファミリーの値として残さないでください。
  • ソースで非典型的なページ移動を監査してください。特に、スクロール、ホイール、タッチ、ハッシュステート、リサイズ、またはrequestAnimationFrameループによって駆動される動作に注意してください。変換/スケーリングされた「ワールド」レイヤー、パララックス、ピン留めされたパネル、水平スクローラー、スクロールでスクラブされるタイムライン、セクションスナップ、およびズーム・トゥ・エレメントカメラを備えた固定ビューポートは、ソース動作として扱ってください。スクロールはしばしばソースのトランジショントリガーであるため、その進行停止、イージング、カメラ/フォーカス状態を抽出し、そのモーションをタイムラインポジション、フラグメント、または再利用可能なプレーヤー/ハーネスフックを介してスライドショーナビゲーションに再ホストすることで、トランジションを保持してください。スライドのホールドポイントにジャンプするスタンドアロンラッパーでも、明示的なナビゲーション-カメラトランジションフックが必要です。スライドごとのカメラ変換を計算するだけでは不十分です。スライド内でリテラルなページスクロールダウントランジションをシミュレートしないでください。ビューアーは、Webページがスクロールされるのを見るのではなく、ある焦点から別の焦点へのカメラの移動/ズームを感じるべきです。各スライド間のカメラ移動は連続的に保ってください。x/y方向を逆転させたり、アンズームを行ったりする中間ルートストップを避けてください。

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]

関連スキル