ホーム / 全スキル / コンテンツ制作 / product-launch-video
コンテンツ制作 · heygen-com/hyperframes

product-launch-video

製品やマーケティングのURL、貼り付けられたスクリプト、またはブリーフを、製品発表・プロモーション動画(SaaSプロモ、機能紹介、製品デモ、アプリや企業の立ち上げなど)に変換します。ユーザーが製品のマーケティング、ローンチ、プロモーション、発表を行いたい場合に使用し、あらゆる商用URLのデフォルトとなります。Webサイトのツアーやショーケースもここへルーティングされ、ブリーフには「ありのままを表示する」意図が含まれます。判断がつかない場合は → /hyperframes。

L4 高権限 · 段階的認可と監査V1 コミット固定コマンド実行ネットワーク通信ファイル書き込みDual-pass Audit
Author heygen-comGitHub heygen-com/hyperframes ↗Stars 44283License Apache-2.0(仓库根 LICENSE 为 Apache License Version 2.0;池内值亦为 Apache-2.0)Commit b8328f9573
管理レベルは Skill の能力と推奨統制措置を示すものであり、品質や安全性の認証、利用可否の判定ではありません。使用の可否はユーザーおよび管理者が決定します。Agent 環境によって制約が異なるため、自動保護を仮定しないでください。第三者製 Skill の著作権は原著作者に帰属し、利用リスクは利用者が負います。

1仕組みと動作原理

6段階のオーケストレーション+ステップごとのゲート管理:Setup → Capture → Design System → Storyboard/Script → Audio → Visual Design → Frames → Finalize。各ステップに「このステップで禁止される事項」と通過条件が明確に定められており、ステップのスキップは禁止されています。

skills/product-launch-video/SKILL.md
You are the orchestrator. Work in `videos/<project>/`. Run steps in order and pass each gate before continuing. User-gated steps are Step 0, Step 3, and Step 6.
ここでの処理内容:「長尺動画を一度に生成する」タスクを検証可能なフェーズに分割しています。各Gateセクションには必須成果物を明記(例:Step 1ではcapture JSONのok:true、BLOCKED.mdの非存在、tokens.json/visible-text.txt/asset-descriptions.mdおよびassets/の存在が必須)。オーケストレーター自身がStep 5以外の全ステップを実行し、Step 5ではフレームごとに1つのサブエージェントを割り当てます。

素材収集はローカルリポジトリのCLIによるサイトスクレイピングで実行:`npx hyperframes capture "<URL>" -o ./capture --json`。スクリプト自体がページとアセットの取得を担い、スクレイピング失敗時はハードストップとなり、偽装フォールバックは許可されません。

skills/product-launch-video/SKILL.md
A non-zero exit, JSON `ok: false`, or `capture/BLOCKED.md` is a **hard stop** for the capture path: report the recorded reason and do not consume partial screenshots, DOM, tokens, or assets. Do not manufacture a synthetic no-capture fallback after a failed URL capture.
ここでの処理内容:「取得できない場合に勝手にページを捏造する」といった典型的なハルシネーションによるフォールバックを防止します。元のブリーフに素材が含まれている場合、またはユーザーが明示的にスクリーンショット/原稿の提供に切り替えた場合のみ、no-captureパスが許可されます。同時に、「テキストコンテンツが極めて少ない」などの警告を使用可能の根拠とみなすことも禁止しています。

オプションのビジョン機能は環境変数内のキーにより決定:GEMINI_API_KEY / GOOGLE_API_KEY / OpenRouterキーが検出されると、キャプチャフェーズでアセットの説明がasset-descriptions.mdに自動生成されます。キーが存在しない場合はDOMコンテキストを使用して続行します。

skills/product-launch-video/SKILL.md
If `GEMINI_API_KEY`, `GOOGLE_API_KEY`, or an OpenRouter key exists, capture auto-captions assets into `capture/extracted/asset-descriptions.md`. This is not a review gate. Without a vision key, use DOM context and continue.
ここでの処理内容:「ビジョンモデルの有無」を失敗要因ではなく機能の段階的適用へと昇華させています。キーがあればアセット一覧の精度が向上し、キーがなくても動画の出力は可能です。なお、これは**環境認証情報の検出**(envを読み取って能力を判定)であり、キー自体をディスクに保存したり外部送信したりすることはありません。

デザインシステムは手動変更不可:提供済みのframe presetから1つを選択することのみが許可され、build-frame.mjsがpresetのFRAME.mdとブランドトークンを「ロールに基づく色の再マッピング+フォント置換」によって決定論的に処理し、自己検証を行います。

skills/product-launch-video/scripts/build-frame.mjs
// Remix rule — ONLY `colors:` values and `typography:` fontFamily change; keys, // structure, geometry, and components are untouched: // colors — map brand tokens onto the preset's keys BY ROLE: the ink-role key takes // the brand ink (darkest/ink-named), the canvas-role key takes the brand // canvas (lightest), and every other color is repainted with the nearest // brand accent's hue+saturation while KEEPING its own lightness
ここでの処理内容:作成者のコメントに意図が明記されています――『Strict on brand(厳格なブランド準拠)は決定論的であるため、LLMによる手動編集(hexの誤記やキーの破損を招く)ではなくスクリプトで行うべきである』。ブランドカラー/フォントが空の場合は、preset独自のリッチなパレット(それ自体が完成された納品可能デザイン)が維持されます。

ナレーション/BGMはHeyGen(ログイン状態)またはローカルエンジンを利用:`auth status`のexit 1は「未ログイン」を示す通常のセマンティクスであり、skillはこれを失敗として再試行したり&&で連結したりしないよう明記しています。認証情報は~/.heygenに保持されます。

skills/product-launch-video/SKILL.md
Note the exit code contract: `auth status` **exits 1 when not signed in** (and when the stored credential is rejected) — that non-zero exit is the normal signed-out state, not a command failure, so don't treat it as an error, don't retry it, and don't chain it with `&&`/`set -e` in a way that would abort the workflow.
ここでの処理内容:CLIのゼロ以外の終了コードのセマンティクスをフローに組み込むことで、エージェントが「未ログイン」を異常と誤認して再試行を繰り返したり中断したりするのを防ぎます。オーディオステップではHeyGen Audio APIを**検索**(音楽ライブラリ/BGM検索)に使用し、TTSと同一の~/.heygen認証情報を共有します。

フレーム間の連続性はワーカー同士の推測ではなく数値ハンドオフ規約(handoff_out / handoff_in)で担保:各フィールドを網羅的に記述し、定数も明示的に記載する必要があります。

skills/product-launch-video/SKILL.md
When an element visibly continues across a frame boundary, give both workers the same numerical handoff in `STORYBOARD.md`: add `handoff_out:` to the outgoing frame and a matching `handoff_in:` to the incoming frame. Name the element and its exact x/y position, scale, opacity, and motion direction/speed at the cut — state every field even when it does not change, because a constant is `opacity: 1`, not an omission.
ここでの処理内容:並列ワーカーがそれぞれ個別にHTMLを記述すると境界部分で最も破綻しやすくなります。本skillでは「カットポイントでの数値ハンドシェイク」により、境界の整合性をSTORYBOARD.mdの設計フェーズへと前倒しし、Step 6のスナップショットによるカット前後比較(カット前0.1秒/カット後0.2秒)で検収を行います。

検証および承認チェーンによる仕上げ:トランジションのinject/verify → lint → check → コンタクトシートスナップショット → 手動/自動承認 → preview → render。レンダリング完了後はチェックを重複実行しません。

skills/product-launch-video/SKILL.md
Render only after user approval (autonomous mode: after the preview-or-render question): `npx hyperframes render --skill=product-launch-video --quality high --output renders/video.mp4` Do not rerun `lint`, `check`, or `snapshot` after rendering unless the user asks.
ここでの処理内容:「修正のたびに全ゲートを再実行する」という無駄を明示的に禁止し、失敗時はまずstderrを表示した上で、その場で最も低コストな1行の修正を適用し、失敗した項目のみを再実行する('don't pile on recovery commands')よう義務付けています。

2コア機能

01URL/貼り付けスクリプト/ブリーフからの製品プロモ動画生成(SaaSプロモ、機能発表、製品デモ、アプリや企業の立ち上げ、サイトツアー)
02Webサイトのスクレイピングとアセット棚卸し(オプションのビジョンモデルによる自動アセット解説、スクロール演出用full-page.png 1xベースプレートを含む)
03ブランドデザインシステムの適用:preset選択+ロール別ブランドカラー/フォントの再マッピング+caption skinのコピー(単一スクリプトで実行および自己検証)
04TTSナレーション/BGM検索/効果音/尺の同期(プロバイダーとボイスはユーザー要件に基づき決定、プロバイダー選択およびボイス一覧取得を含む)
05フレーム別サブエージェント構築:packetビルダー(シーンブロック+blueprint本文+参照ルール+_role.md)→ 1フレーム1ワーカーの並列ディスパッチ
06プロジェクトのassets/への素材ステージング(stage-assets.mjs、絵コンテに準拠したアセット命名)
07アセンブリとトランジション:captions(caption-skinを含む)→ assemble-index → transitions inject/verify
08楽曲と映像のマッチング再確認:冒頭と後続5秒間を比較し、必要に応じて盛り上がりのあるセクションから切り出してフェードイン/アウトを付与

3外部依存関係

KindDependency / Endpoint
clihyperframes CLI:capture(抓站)/ init / lint / check / snapshot / preview / render / auth status / skills update
network被抓取的目标网站(任意用户给定 URL;含抓取期的页面导航与资产下载)
apiHeyGen Audio API(TTS 与音乐库检索)/ 凭证文件 ~/.heygen
api视觉模型 key(仅探测是否可用,用于抓取期资产描述)
cliffprobe / ffmpeg(BGM 时长探测与循环补齐,缺失时降级为警告)
networkGSAP CDN(写进装配后的 index.html / caption 皮肤,带 SRI 完整性校验)
climedia-use 侧脚本(prefs.mjs 记录偏好、recipe.mjs 应用配方、audio/scripts/heygen-tts.mjs 列语音)
package兄弟 skill 依赖(/hyperframes 路由、/hyperframes-core、/hyperframes-creative、/hyperframes-animation、/media-use、/figma)

4推奨統制措置と判定根拠

安全運用のための推奨統制措置
Agent 向け
段階的・都度認可、サンドボックス推奨
管理者向け
承認フロー、ロールバック可能、全履歴監査
判定根拠(ファイルパスと抜粋)
  • scripts/: ローカルスクリプトまたはコマンドの実行: node scripts/build-frame.mjs --preset <name> --hyperframes .(presetのFRAMをコピー
  • 网络端点: 外部ネットワークアクセスの宣言: npx hyperframes capture "<URL>"(ユーザー指定の製品Webサイトをスクレイピング:スクリーンショット、DOM、トークン、アセット)
  • 本地工作目录: ファイルの読み書きと成果物の出力: videos/<project>/BRIEF.md、hyperframes.json、STORYBOARD.md、SCRIPT.md、audio_me
監査ノート: オレンジ判定となった要因は**認証情報および環境変数の取り扱い**です。本フローは~/.heygenのログイン認証情報(TTS/BGM検索で共用)を読み取り、GEMINI_API_KEY / GOOGLE_API_KEY / OpenRouterキーの存在を検出してアセット自動記述の実行可否を判定します。また、ネットワーク経由でユーザー指定の製品Webサイトをスクレイピングします(ページ内容、スクリーンショット、DOM、トークンを全量ローカル保存)。これらは設計上意図された機能であり悪意ある挙動ではありませんが、次の点を意味します:① 利用者のHeyGenアカウントが本フローのオーディオステップから呼び出されること、② ビジョンキーが存在する場合、取得されたページアセットが該当ビジョンモデルに送信されること、③ スクレイピング対象および出力先ディレクトリはローカルであるものの、ページ内容がモデルコンテキストに入力されること。なお、TLSダウングレード、スクレイピング対策の迂回、認証情報の外部流出(リポジトリ単位の.envへのキー書き込み挙動はなく、SKILL.mdで明示的に禁止)、任意コード実行の懸念(固定されたCLIやバイナリを呼び出すスクリプト構成)は確認されていません。

5二重目の独立検証

  • [ok] 『外部资源』逐条回查调用点是否真实存在 — hyperframes capture 命令原文在 Step 1;~/.heygen 与 HeyGen Audio API 在 Step 3.1 原文;GEMINI/GOOGLE/OpenRouter key 探测在 Step 1 原文;ffprobe/ffmpeg 在 assemble-index.mjs 的 ensureBgmCovers 内真实 spawnSync;gsap CDN 在 assemble-index.mjs:727 与 captions.mjs:480;media-use 的 prefs.mjs/recipe.mjs/heygen-tts.mjs 在 Step 0/3.1 原文。无一条属于推测。
  • [ok] 凭证读取是否被夸大或漏报 — 脚本层(23 个 mjs)未发现任何读取 ~/.heygen 或 env key 的代码——凭证读取发生在 media-use / hyperframes CLI 侧,本 skill 只以文字指令调用它们。SKILL.md 同时明令不得把 key 写进 per-repo .env。判定为『授权链式凭证读取』而非本 skill 直读,橙色理由已按此措辞。
  • [ok] 抓取失败是否真的硬停(有无隐藏的合成兜底) — Step 1 原文 'Do not manufacture a synthetic no-capture fallback after a failed URL capture.';no-capture 路径被限定为『原始 brief 自带素材』或『用户在失败后明确改用提供的截图/brief』两种情形。未发现绕过路径。
  • [ok] 验证:抓取/装配脚本是否有未声明的网络调用 — 对 23 个 mjs 做 fetch/axios/http.request/urllib 扫描 → 0 命中;唯一的对外引用是 HTML 模板字符串里的 CDN URL(浏览器侧加载)。脚本自身不发起 HTTP 请求,网络行为全在 hyperframes CLI 与 media-use 侧。
  • [ok] 与同批 skill 的组内一致性(默认 provider/voice 与静音标记) — 本 skill 与 faceless-explainer 都用 'Marcia (female) on HeyGen / am_michael on Kokoro' 作默认声线、都用 `music: none` 作静音标记;本 skill 额外要求传 `--provider <provider>`(因为它需要在 Step 0 就确定 provider 并在 Step 0 展示登录态语义)。差异有据,未见矛盾。

6結論

  • 高密度で実行可能なゲート管理:各ステップに明確な通過条件と成果物リストが定義され、スクレイピング失敗や構造欠落時は捏造せず確実にハードストップ
  • ブランド再現性を決定論的スクリプトに委ねることで、LLMの手動編集によるhex値やキー名のサイレント破損を防止
  • フレーム間の継ぎ目を数値契約(handoff_out/handoff_in)で定義し、並列ワーカー間で最も破綻しやすい箇所を可視化
  • CLIの変則的な終了コードセマンティクスに関する明確な指示により、エージェントの誤認や不要な再試行を低減
  • 完全なフォールバックパス:ビジョンキーがない場合はDOMで継続、HeyGen未ログイン時はローカルエンジンへ移行、BGMツールチェーン不足時は警告のみで処理を中断しない
  • アセンブリ成果物はSRI付きで外部GSAPを読み込み、CDN依存関係の整合性を検証
  • 最適な用途: 「製品/Webサイト」をプロモーション動画に変換したいユースケースに最適:SaaSのリリース、機能紹介、製品デモ、アプリ/企業のローンチ、および「自社サイトのツアー動画を作成する」といったshow-it-as-isの要望(descriptionでは商用URLにおけるデフォルトスキルと規定されています)。HeyGenアカウントを持つチームであればナレーションや音楽ライブラリ検索を活用でき、アカウントがない場合でもローカルエンジンで動画出力が可能です。また、ゲート管理と再開性を備えた長尺動画パイプラインの設計パターンを参考にしたいスキル作成者にも適しています。
    不向きな用途: 以下には不向きです:① URLや素材がなく、素材の提供も行わない曖昧な要件(スクレイピング失敗時はハードストップし、ページの捏造は行いません)、② テキストのみの解説動画(スクレイピング対象のサイトがない場合)— /faceless-explainerを使用してください、③ ナレーションなしの短いモーショングラフィックス — /motion-graphicsを使用してください、④ 外部アカウントや認証情報を一切利用したくない完全オフライン環境(ナレーションとBGM検索はデフォルトでHeyGenに依存し、一部機能のみローカル代替が可能)、⑤ スクレイピング対象サイトにコンプライアンス上の制限がある場合、または対象サイトへのトラフィック発生を許容できない環境、⑥ 承認なしでの完全ワンクリック生成を求める用途 — Step 0/3/6にユーザーゲートが設けられており、レンダリング前の承認が必須です。
    Install Agent-Ready
    ① Verified Mirror 2026-09-15
    Option A · Direct DownloadDownload product-launch-video.tar.gz
    sha256: 744e4c9d6dfc554d…
    Option B · Copy Guide for Agent
    install.json
    Agent はこの JSON ガイドから自動的にダウンロードして検証します。
    ② Upstream GitHub
    GitHub Repo ↗
    Pinned to commit b8328f9573.