1仕組みと動作原理
核となるのは「単一動詞」の CLI アーキテクチャ:SKILL.md は BGM/SFX/画像/アイコン/ロゴ/音声/カラーグレーディング/LUT の 8 種類のメディア要求をすべて 1 つの `resolve` コマンドに集約。エージェントはユーザーの意図を `--intent` に変換し、検索ノイズはすべてディスクに書き出し、出力は 1 行の結果のみを返します。
```bash node <SKILL_DIR>/scripts/resolve.mjs --type <type> --intent "<description>" --project <dir> ``` Returns one line: `resolved <id> → <path> (<type>, <metadata>)`. All search noise stays on disk.
検索系機能(bgm/sfx/image/icon/voice)はデフォルトで HeyGen カタログの無料利用(free-usage)パスを経由し、heygen CLI の事前インストールおよび OAuth ログイン、ならびに `--doctor` による自己診断を必須としており、これらがないと動作しません。
First run: install and sign in to the `heygen` CLI (the free-usage path), then verify with `node <SKILL_DIR>/scripts/resolve.mjs --doctor`.
生成系機能は「サーバー側デフォルト + ローカル選択可能」のデュアルトラック:BGM 生成は Google Lyria($GOOGLE_API_KEY/$GEMINI_API_KEY が必要)を使用し、失敗時はローカルの MusicGen にフォールバック。音声は HeyGen TTS またはローカルの Kokoro、画像はローカルの mflux、動画はローカルの LTX を採用し、すべて lib/ のスクリプト経由で実行されます。
Generate BGM using Google Lyria RealTime API. Usage: python lyria-recipe.py --output <path> --duration <seconds> [tuning flags] Requires: $GOOGLE_API_KEY or $GEMINI_API_KEY environment variable (treated as aliases).
ロゴの解決は「svgl → simple-icons → GitHub アバター → ドメインの favicon」チェーンを経由し、決して手描きトレースは行いません。これらはネットワークリクエストを伴う実際のリクエストプロバイダーです(logo-provider.mjs)。
https://api.svgl.app https://cdn.jsdelivr.net/npm/simple-icons
メディア操作(カット/リフレーム/変形/ダッキング/ラウドネス/字幕分割/誤差拡散/HEVC)は独自開発の Node スクリプト + ffmpeg で実装。例えば freeze.mjs では「リモート URL の確定保存」に対して SSRF 対策(localhost/内部ネットワーク/リンクローカルアドレスの拒絶)が施されています。
/^(localhost|.*\.local|.*\.internal|127\.|10\.|0\.|169\.254\.|192\.168\.|172\.(1[6-9]|2\d|3[01])\.|\[?(::1|::ffff:127\.|f[cd][0-9a-f]{2}:|fe80:))/i;
プロジェクト間の記憶/キャッシュは実ファイルシステム構造で管理:プロジェクト固有の `.media/` + グローバルの `~/.media/`(SHA-256 コンテンツアドレス指定キャッシュ)。設定やレシピパッケージ全体がプロジェクト単位および個人単位の 2 段階で永続化され、prefs.mjs/recipe.mjs によって読み書きされます。
- `.media/manifest.jsonl`: machine SSOT, one JSON record per line - `~/.media/`: global cross-project reuse cache (content-addressed, SHA-256)
テレメトリはデフォルトで有効化されていますが、内容は意図的に粗い粒度に制限されています:PostHog イベントにはメディアタイプ/ソース/プロバイダーのみが含まれ、意図テキストやパスは含まれません。DO_NOT_TRACK / HYPERFRAMES_NO_TELEMETRY / CI / dev によるオプトアウトが可能で、hyperframes CLI と ~/.hyperframes/config.json の識別情報を共有します。
It records only the media TYPE, the resolution SOURCE, and the winning PROVIDER: never the intent text, file names, or paths, and `$ip:null` so no IP is stored. Best-effort and non-blocking (a resolve never waits on or fails from telemetry).
2コア機能
3外部依存関係
| Kind | Dependency / Endpoint |
|---|---|
| cli | heygen CLI(HeyGen,OAuth free-usage / api-key) |
| cli | ffmpeg/ffprobe(adopt 探测、signalstats、cut、duck bake、loudnorm) |
| cli | mflux-generate / parakeet-mlx / ltx-2-mlx / codex(本地或订阅生成器,opt-in) |
| api | HeyGen REST API |
| api | Google Lyria RealTime(BGM 生成,google-genai) |
| api | ElevenLabs TTS(可选,tts.mjs 分支) |
| network | PostHog 遥测 |
| network | logo 源:svgl / simple-icons(jsdelivr) / GitHub 头像 / DuckDuckGo favicon |
| network | LUT CDN |
| network | 本地模型下载/安装(Hugging Face、uv/pip、git) |
| package | @hyperframes CLI 内联能力(Kokoro TTS、remove-background 等) |
4推奨統制措置と判定根拠
- scripts/: ローカルスクリプトまたはコマンドの実行: node <SKILL_DIR>/scripts/resolve.mjs(各 --type。エージェントが直接実行)
- 网络端点: 外部ネットワークアクセスの宣言: api.heygen.com/v3(カタログ/TTS/アバター、X-HeyGen-Client-Source: media-use 帰属ヘッダー付き)
- 本地工作目录: ファイルの読み書きと成果物の出力: プロジェクト内 `.media/`:manifest.jsonl、index.md、preferences.json、recipes/<name>/、素材のローカル保存
5二重目の独立検証
- [ok] external_deps 中每个 CLI/API/网络端点的调用点真实存在 — 逐一反查:heygen CLI(setup-providers.md 安装/登录段)、ffmpeg(工具表)、Lyria(lyria-recipe.py 头部 docstring + bgm.mjs lyriaConfigured)、PostHog(telemetry.mjs 常量)、logo 源(logo-provider.mjs URL 常量)、LUT CDN(luts/index.json 记录)均有源码落点。
- [ok] 安全结论有无漏网网络调用 — URL 全量扫描覆盖 scripts/audio/luts/references;未发现扫描范围外的域;遥测为默认唯一自发性外发,opt-out 与注释一致。
- [ok] 凭证读取面是否如描述(env/.env/~/.heygen) — heygen.mjs 头注释与 loadEnvFromDir 实现(walk ≤5 dirs、shell env 优先)与描述一致;audio/scripts/lib/{heygen,tts,bgm}.mjs 分别读 HEYGEN/ELEVENLABS/GEMINI key。
- [ok] SSRF 防护声称 — freeze.mjs 第 57 行正则实际拦截 localhost/*.local/*.internal/127./10./169.254./192.168./172.16-31 与 IPv6 环回;freeze.test.mjs 同时断言拦截内网样例。
- [ok] 是否有将远程内容当指令/可执行代码的路径 — 下载资产均为数据文件(audio/image/cube);脚本为随包源码;未发现下载即执行路径。
- [ok] 功能声明夸大检查(media treatments、10k+ 曲库、75k+ 向量) — 目录规模数字来自 HeyGen 服务端宣称(SKILL.md 表格原文),skill 侧可验证的是调用点与回退链存在;『produce voiceover…background removal』对应 audio/ 引擎脚本与 provider 表。超出本地可验证的部分按供应商宣称标注。
6結論
e19482b5849526de…