コンテンツ制作 · heygen-com/hyperframes

faceless-explainer

任意のテキスト(記事、メモ、トピック、ブリーフなど)を顔出しなしの解説動画に変換します。キャプチャ対象のWebサイトや実写素材が存在しないため、ビジュアルはシーンごとに新規作成されます(タイポグラフィ、抽象グラフィック、ダイアグラム、データ可視化)。トピック解説、概念分解、How-to、リスト記事(ランキング・まとめ)に適しています。Webサイトから作成する動画(/product-launch-video — プロモーションやツアー)ではありません。判断がつかない場合は → /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仕組みと動作原理

「キャプチャすべき素材が存在しない」ことを前提とし、意図的にキャプチャを行わず、asset-descriptions.md を作成せず、capture/assets/ も配置しません。画面ビジュアルはすべて下流工程で新規作成されます(タイポグラフィ/抽象グラフィック/ダイアグラム/データ可視化)。

skills/faceless-explainer/SKILL.md
Do **not** run `npx hyperframes capture` (there is no URL). Do not create `asset-descriptions.md` or populate `capture/assets/` — faceless visuals are invented in Steps 4-5, not captured.
処理内容:同一バッチの product-launch-video と共通の6ステップパイプライン(同一のStep 0/3/6ユーザーゲート、同一のスクリプト名)を使用しますが、Step 1のキャプチャを「ユーザーテキストをそのまま visible-text.txt として保存 + tokens.json を手動生成」に差し替えています。Quick Referenceには『Faceless deltas vs a captured-asset workflow』として4つの差異が明記されています。

デザインシステムは手動での配色調整に依存しません。同梱のフレームプリセットを選択後、build-frame.mjs がプリセットの FRAME.md をプロジェクトの frame.md に再マッピングし、caption skin を生成します。ブランドカラーが未指定の場合はプリセット自体の配色を完全に維持します。

skills/faceless-explainer/SKILL.md
A faceless explainer usually has **no brand colors/fonts** (`tokens.json` colors/fonts empty) → the script keeps the preset's own palette, a complete shippable design.
処理内容:「デザインシステム」を一度の選定(プリセット選択)+ 1本の確定的なコマンドに単純化し、仕様の手動編集を禁止('no hand-editing of the spec')しています。スクリプトの自己検証に失敗した場合は exit 1 で終了します。

ストーリー構成は入力テキストの段落順ではなくナラティブ設計に基づいて決定されます。明示的な並び替え/統合/省略/圧縮が求められ、「役割→ブループリント」メニューに従って各ビートの候補ショット形状を選択しますが、形状に合わせるためだけにビートを捏造することは禁止されています。

skills/faceless-explainer/SKILL.md
The video's sequence comes from **narrative design, not the input text's paragraph order** — reorder, merge, omit, compress.
処理内容:素材が記事やメモの束である場合、最も安易な手法は段落順に逐次図解を当てはめることです。本スキルはStep 3でこの手法を明確に禁止し、ブループリントはあくまで**ソフトな指針**('Teaching truth still decides which beats exist — never force a beat to fit a blueprint')であることを求めています。

ナレーションと音楽はメディア側スクリプトで処理されます。voice/provider の指定が可能で、デフォルト音声はワークフロー内に固定定義されており(HeyGen Marcia / Kokoro am_michael)、「完全ミュート」を表す正規のフラグ組み合わせも定義されています。

skills/faceless-explainer/SKILL.md
The pipeline default is otherwise **Marcia (female)** on HeyGen / `am_michael` on Kokoro — so a request like "a male voice" is silently ignored unless you pass the flag.
処理内容:「ユーザーが男声を指定したのにデフォルトの女声になる」といった潜在的な不一致を明示的な警告として扱い、voice id を取得する前にまず provider を解決することを義務付けています。ミュートフラグは `music: none`(STORYBOARD上部YAML)+ SCRIPT.md なしの組み合わせです。audio.mjs がこれを検知すると古い audio_meta.json を削除し(ファイル不在 = ミュート)、Step 5 の duration sync と fetch-sfx をスキップします。

構築フェーズでは1フレームにつき1つのサブエージェントを割り当てます。packet ビルダーが「該当フレームの storyboard ブロック + blueprint 本文 + 参照ルール一式」をインライン化して境界付き packet を構築し、完全なワーカーロール定義 _role.md を生成します。ワーカーはこの2つのドキュメントのみを読み込みます。

skills/faceless-explainer/SKILL.md
Workers read only their packet and `frame.md`; they never open `STORYBOARD.md` or the skill documents (the packet inlines what was selected upstream). Each worker writes only `compositions/frames/NN-*.html`. Workers must never edit `STORYBOARD.md`.
処理内容:コンテキストの分離を厳密な制約として課しています。ワーカーには全体が見えないため、ストーリーボードを越権変更することが防止されます。オーケストレーターはワーカーの完了後に該当フレームを animated としてマークします。フレームの背景(単色/グラデーション/グリッド)は #root ではなく `class="clip"` レイヤーに配置するよう規定されています。#root の背景がクリップ境界外に逃げ、黒い body 上で暗いコンテンツが不可視になるのを防ぐためです。

完了ゲートと明示的に登録された既知の偽陽性:check コマンドがキャプション単語に対して 1〜4px の text_box_overflow を報告する場合がありますが、スキルはこれを深追いせず、line-height の拡大などの不適切な対症療法で覆い隠さないよう規定しています。

skills/faceless-explainer/SKILL.md
**Known false-positive — do not chase it.** `check` may report a handful of `text_box_overflow` findings of ~1–4px on the **caption** highlight words (selector `#caption-word-*` / `.caption-line`).
処理内容:「ツールのノイズ vs 真の欠陥」の判定基準をフローに組み込み(フレーム要素 `#el-NN-*` を指している場合のみ対処が必要)、line-height を水増しして隠蔽することを警告しています。エンジニアリングの経験則を規律として固定化し、エージェントが偽陽性で空回りするのを防止します。

レビューおよびレンダリングゲート:トランジションの挿入/検証、lint、check、スナップショットコンタクトシートの作成を先に行い、Studio プレビューでユーザー確認のために一時停止してから、最後に MP4 レンダリングを実行します。レンダリング後は lint/check/snapshot を再実行しません。

skills/faceless-explainer/SKILL.md
**Gate:** `lint` and `check` passed and the snapshots were inspected before render; user approved at the review pause (autonomous: checks passed and the delivery includes the contact sheet); `renders/video.mp4` exists. Final reply states MP4 path and final duration.
処理内容:「チェック通過」と「人間の確認」を2つの独立した条件として分離しています。自律(autonomous)モードでは、「プレビューを先に確認するか直接レンダリングするか」という単一の予約質問(brief-contract 由来の標準文面)に単純化されます。

2コア機能

01任意のテキスト → 顔出しなし解説動画(トピック解説、概念分解、How-to、リスト記事)、ビジュアルはすべて現場で新規生成
02合成インプットパッケージ:ユーザー全文の原本保存 + 最小限の tokens.json 手動生成(タイトル/説明/任意のブランドカラー・フォント)、ユーザー指定台本の維持(VO_MODE verbatim/restructured)
03単一スクリプトによるデザインシステム:preset → frame.md + caption skin(役割別のブランドトークン再マッピングおよび自己検証を含む)
04解説ストラクチャー設計:フック戦略、証明より価値の先行提示、明確化テクニック、感情ビート、類型マッピング、VO_MODE
05フレーム単位のビジュアル設計(タイムコード付きショットシーケンス + インライン Layout/モーション語彙 + 動画レベルの ## Video direction ブロック)、オーディオトラックの並行立ち上げ
06並行フレーム構築(1フレーム1サブエージェント、packet + _role.md)および字幕/アセンブリパイプライン(バックグラウンド字幕 + assemble-index)
07ミュートプロジェクトの正規処理(`music: none` + SCRIPT.md 不在の組み合わせセマンティクス、古い audio_meta.json のクリーンアップを含む)
08コラボレーションモードでのドラフトボード(sketch pass):全フレームのワイヤーフレームを先行提示し、完成後にレイアウトに関する質問を1点のみ行い、指定されたドラフトのみを修正

3外部依存関係

KindDependency / Endpoint
clihyperframes CLI(init / lint / check / snapshot / preview / render / skills update;注意本 skill 不调用 capture)
apiHeyGen(TTS 与音乐库检索;凭证 ~/.heygen,由媒体侧脚本使用)
api本地离线 TTS(Kokoro)作为无登录态降级路径
cliffprobe / ffmpeg(装配期音频探测与补齐,由 assemble-index.mjs 调用)
networkGSAP CDN(写进装配产物 HTML,带 SRI 完整性校验)
climedia-use 侧脚本(prefs.mjs 记偏好、recipe.mjs 应用配方、heygen-tts.mjs 列语音)
package兄弟 skill 依赖(/hyperframes 路由、/hyperframes-core、/hyperframes-creative 的 frame-presets、/hyperframes-animation 的 blueprints+rules、/media-use)

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

安全運用のための推奨統制措置
Agent 向け
段階的・都度認可、サンドボックス推奨
管理者向け
承認フロー、ロールバック可能、全履歴監査
判定根拠(ファイルパスと抜粋)
  • scripts/: ローカルスクリプトまたはコマンドの実行: node scripts/build-frame.mjs --preset <name> --hyperframes .(step 2 デザインシステム、frame.md を出力)
  • 网络端点: 外部ネットワークアクセスの宣言: HeyGen Audio API(media-side スクリプト/CLI経由でのTTS音声合成および音楽ライブラリ検索、認証情報は ~/.heygen)
  • 本地工作目录: ファイル読み書きおよび成果物出力: videos/<project>/hyperframes.json、BRIEF.md、capture/extracted/visible-text.txt
監査ノート: オレンジ判定となった要因は**認証情報の取り扱い**です。音声処理ステップにおいて ~/.heygen のログイン認証情報を使用して HeyGen(音声合成 + 音楽ライブラリ検索)を呼び出し、未ログイン時のみローカルの Kokoro にフォールバックします。また、`npx hyperframes auth status` の出力をそのままユーザーに対話形式で伝える仕様(アカウント状態を会話に持ち込む挙動)となっています。それ以外の動作面はクリーンです。Webスクレイピングを行わず、ビジュアルキーの探索も行いません(product-launch-video との明確な相違点)。17本のスクリプトはHTTP呼び出しを一切行わず、生成されるHTMLが参照するCDNリソースにはSRIハッシュが付与されています。イエローではなくオレンジにとどまる理由は、コア機能の完遂に外部アカウント認証情報とサードパーティサービスへの依存が存在し、利用者が費用発生や国外データ転送の可能性を評価・確認する必要があるためです。

5二重目の独立検証

  • [ok] 『无抓取、无视觉 key』这一关键差异是否属实 — 整目录 grep GEMINI/GOOGLE_API_KEY/OpenRouter → 0 命中;SKILL.md 明确 'Do **not** run `npx hyperframes capture` (there is no URL).';URL 扫描仅 2 处(同一 gsap CDN 字符串出现在 assemble-index.mjs 与 captions.mjs)。差异成立。
  • [discrepancy] 是否与 product-launch-video 真正共享脚本(第一遍的资产描述是否正确) — 第一遍初稿把本 skill 写成『无 build-frame』——复核发现**错误**:Step 2 原文就是 `node <SKILL_DIR>/scripts/build-frame.mjs --preset <name> --hyperframes .`,scripts/ 下确有 build-frame.mjs。真实差异是:本 skill 无 capture(Step 1 改为手造输入包)、无 stage-assets(SKILL.md 写明 'There is **no asset-staging step**'),而 build-frame / audio / captions / transitions / frame-packets / assemble-index 六个脚本两家都有。已按源码更正 analysis 与 internal_assets 的表述。
  • [ok] 『外部资源』逐条回查调用点 — hyperframes init/lint/check/snapshot/preview/render 均在 SKILL.md 出现;HeyGen 与 ~/.heygen 在 Step 3.1 原文;Kokoro 离线降级与 am_/bm_ 前缀在 Step 3.1 原文;prefs.mjs/recipe.mjs 在 Step 0 原文并定义了 <MEDIA_DIR>;ffprobe/ffmpeg 在 assemble-index.mjs 的 spawnSync 可验。
  • [ok] 静音标记的实现语义是否与文档一致 — SKILL.md 规定 `music: none` + 无 SCRIPT.md = 全静音,且『audio.mjs recognizes it and generates nothing (it removes any stale audio_meta.json; an absent audio_meta.json is what assemble treats as silent)』;Step 5 的 sync-durations / fetch-sfx 在静音时跳过。语义自洽(以「文件不存在」作为静音的真值载体)。
  • [unlocatable] 正文自述的已知假阳性是否真实存在于工具链 — SKILL.md 声称 `check` 会在 caption 高亮词上报 1–4px 的 text_box_overflow(选择器 `#caption-word-*` / `.caption-line`),且该 pill 的 snug line-height 由 scripts/captions.mjs 设定。caption pill 的 line-height 设定可在本 skill 的 captions.mjs 中定位,但『该假阳性确实会出现』这一行为需要实际跑 `npx hyperframes check` 才能证实——本任务为只读侦查,未执行构建/渲染(亦被任务书禁止)。故记为无法在源码内定位,不做进一步断言。

6結論

  • 「素材が存在しないこと」を欠陥ではなく設計の前提として定義:アセットリストの捏造を明示的に禁止し、ビジュアルを下流工程で新規作成
  • ストーリー順序の規律:入力テキストの段落順よりもナラティブ設計を優先。ブループリントはソフトな指針に過ぎず、形状に合わせるためのビート捏造を禁止
  • 並行ワーカーのコンテキスト分離を強制(自身の packet + frame.md のみ閲覧可能、STORYBOARD の変更を禁止)
  • ミュートや音声タイプといった誤りの起きやすいポイントを明示的に標準化(`music: none` の組み合わせセマンティクス、デフォルト女声による男声要望の上書き防止)
  • 完全なゲートと承認チェーン:lint/check/snapshot 通過 + ユーザーのプレビュー確認後にレンダリングを実行し、レンダリング後の重複検査を排除
  • ツールの既知の偽陽性をプロセスの規律として登録し、エージェントがノイズで空回りしたり不適切な対症療法を行ったりするのを防止
  • 最適な用途: 手元にテキスト(記事、メモ、トピック、ブリーフなど)しかなく、素材やWebサイトが一切存在しないナレーション付き解説動画に最適です。概念分解、How-to、リスト記事、または長文を教育的テンポの短い動画に要約したい用途に向いています。また、日中・英中などのバイリンガルシナリオにも適しています(TTSはHeyGenまたはローカルのKokoroを使用し、字幕とストーリーボードの形式は他のHyperFramesワークフローと共通であるため、同じプロジェクト構造の運用ノウハウを再利用可能)。
    不向きな用途: 以下には適していません:① 表示すべきWebサイトや製品UIが存在するプロモーション/製品ツアー動画(/product-launch-video を使用、説明文に明記);② ナレーションなしでモーショングラフィックス主体の短尺作品(/motion-graphics を使用);③ 実写映像、スクリーンショット、実物製品写真などの実素材を必要とする動画(本スキルはキャプチャやアセットリスト作成を明示的に行わず、例外はユーザーが public/<basename> に直接配置した単一画像のみ);④ 外部アカウントや認証情報を一切使用したくない完全オフライン環境(音声はデフォルトでHeyGenに依存し、一部のみKokoroへのダウングレードが可能);⑤ 人間の承認なしで直接最終出力を期待する場合(Step 0/3/6 にユーザーゲートが存在);⑥ 原文の章・段落の並び順に厳密に従って1対1で図解を付ける必要がある用途(本スキルは並び替え/統合/省略を明示的に要求)。
    Install Agent-Ready
    ① Verified Mirror 2026-09-15
    Option A · Direct DownloadDownload faceless-explainer.tar.gz
    sha256: 2b565aaa0ac76062…
    Option B · Copy Guide for Agent
    install.json
    Agent はこの JSON ガイドから自動的にダウンロードして検証します。
    ② Upstream GitHub
    GitHub Repo ↗
    Pinned to commit b8328f9573.