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

x-posting-license

任意のX(Twitter)プロフィールを10.3秒のアニメーション「POSTING LICENSE」カード動画に変換します。Xブランドを模した偽の運転免許証スタイルで、アニメーションするドットマトリクスグラウンド上にカードがスライドインし、ライセンステキストが1文字ずつタイピングされ、フォロワー/フォロー中/ポスト数のカウンターがカウントアップ。カードが3Dに傾きながら斜めの光彩が走り、裏面の署名が手書きされる細かい規約面へフリップした後、身構えてフレーム外へと跳び去ります。トリガーワード: 「X driver's license」、「posting license」、「make an X license for @handle」、「license card video」。コンポジション全体が完成したテンプレートとなっており、エージェントはプロフィールデータを入力してレンダリングするだけです。

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

1仕組みと動作原理

「テンプレート即完成品」のアプローチを採用:固定された1920×1080 @60fps、10.35秒のコンポジションで、モーションは完全に固定(キーフレームのシームレスな重複、デッドフレームゼロ)。エージェントはデータトークンを埋めてレンダリングするのみで、タイムラインの**変更は不可**、変更可能なのはデータのみです。

skills/x-posting-license/SKILL.md
One fixed 1920×1080 @ 60fps, 10.35s composition. The motion is locked and doctrine-verified (overlapped keyframes end to end, zero dead frames): do NOT edit the timeline — fill the data tokens and render.
ここでの処理内容:同系統の prod-by-claude や session-story(タイムラインを動的計算する手法)とは対照的に、タイムラインを固定化して確実性と一貫性を優先しています。

3ステップのワークフローで、ステップ2以降は構図調整作業が不要:① データの取得(name/handle/joined/followers/following/posts/1行bio/400×400アバター)② node build.mjs によるテンプレートからのプロジェクト生成 ③ npx hyperframes render によるMP4出力(ホスト環境でレンダリング制限がある場合は事前にユーザーへ確認)。

skills/x-posting-license/SKILL.md
1. **Gather profile data** — name, handle, joined month/year, followers, following, posts, one bio line, and the 400×400 avatar.
ここでの処理内容:「制作」をデータ取得と流し込みのみに集約し、出力クオリティをテンプレートと運用原則(doctrine)によって完全に担保します。

レンダリングの前提条件は明確:Node 18+ および npx 経由で取得する HyperFrames CLI(@latest は挙動が変わる可能性があるため、完全一致の再レンダリングにはバージョンを固定);WebGLドットマトリクスグラウンドにはmacOSハードウェアGPUレンダリングを推奨;署名にはmacOSシステムフォントの Snell Roundhand(src: local(...))を使用し、Linuxでは汎用 cursive にフォールバック(動作はしますが視覚的な美しさは劣ります)。

skills/x-posting-license/SKILL.md
macOS GPU render for the WebGL dot ground: `export PRODUCER_BROWSER_GPU_MODE=hardware`.
ここでの処理内容:プラットフォーム間の差異を事前に明記することで、Linuxや非力なGPUでのレンダリング後にドットマトリクスや署名の崩れが発覚するのを防ぎます。

データ注入は「信頼できない入力」として処理:build.mjs に必須項目リストがあり、handle は ^[A-Za-z0-9_]{1,15}$ に一致必須、joined は「JAN 2026」形式かつ ISS MM/YYYY を導出できること、カウンター値は非負整数のみ許容(コンポジションの <script> に展開されるため、符号/小数/指数/NaN/カンマは明示的に拒否)、テキスト項目は制御文字除去と文字数制限を適用、全文字列をHTMLエスケープした後に {{TOKEN}} を置換し、最後にトークンの残りがないかを検証。

skills/x-posting-license/scripts/build.mjs
// counters land inside the composition's <script>: accept ONLY plain … // non-negative integers (no signs, fractions, exponents, NaN, commas)
ここでの処理内容:「第三者が操作可能なプロフィールデータ」をインジェクション対象とみなし、JSコンテキストに入るカウンターとDOMに入るテキストを、型ホワイトリストとエスケープで個別に保護します。

ディスク書き込みの境界制御:--out 配下に assets/ および renders/ を作成後、その realpath を取得。以降の全パスはその実パス内部に解決されること(safePath)を強制し、最初からシンボリックリンクのターゲットを拒否。テンプレートはスクリプト自身からの相対パス、--out は作業ディレクトリからの相対パスで解決し、アバターファイルが存在しない場合は即座にエラーを出力。

skills/x-posting-license/scripts/build.mjs
// after mkdir, every path we touch must resolve inside the real out dir
ここでの処理内容:出力ディレクトリが別領域へのリンクとして悪用され、システム上の無関係な場所に書き込まれるのを防止します。

テンプレートの内部構造は固定:データトークンはテキストノードに配置(NAME_BIG / NAME_SIG / HANDLE_UPPER / JOINED / ISS / FOLLOWERS_FMT / BIO_UPPER)、カウンターはスクリプトコンテキスト内で数値としてカウントアップ。#root には data-composition-id="x-license"、data-duration="10.35"、data-fps="60" が固定記述され、タイムラインは window.__timelines["x-license"] に登録。裏面の細かい規約ではフォロワー数を「生年月日」に見立てたジョークがあり、長い名前は署名マスク幅の拡張で対応。

skills/x-posting-license/template/index.template.html
<div id="root" data-composition-id="x-license" data-start="0" data-duration="10.35" data-width="1920" data-height="1080" data-fps="60">
ここでの処理内容:テンプレート自体が完成品であり、すべてのモーション(ドットグラウンド、タイピング、3Dチルト+斜光、フリップ、署名描写、跳躍退出)が組み込まれているため、エージェントはタイムラインのコードを1行も書く必要がありません。

2つの規律と出自の明示:データは実在すること(生きたプロフィールから取得し、数値やbioの捏造は禁止)、bioは大文字かつ約65文字以下で「·」区切りに圧縮、表示名の表記揺れや特殊表記(例: `|||`)もそのまま保持。ブランド面では、Xのロゴや意匠の再現はパロディ/ファンコンテンツの位置づけであり公開可否はユーザー自身の判断によるものとし、ドットマトリクスは Originkit Dot Matrix の外観に基づく確定的なGLSL/WebGL再実装(ソースの再配布は不実施)、シンプレックスノイズは標準的なAshima実装(MIT)、GSAPは jsDelivr から読み込みベンダー同梱はしない方針。

skills/x-posting-license/SKILL.md
- Data must be REAL, scraped from the live profile — never invent counts or bios.
ここでの処理内容:「データを捏造しない」と「コードを盗用しない」の双方を明文化し、パロディ/ファン利用に関する法的な境界線をあらかじめ示しています。

2コア機能

01任意のXプロフィールを10.35秒の「POSTING LICENSE」カード動画へ変換:ドットマトリクスグラウンド、タイピング文字、カウンター数値上昇、3D傾斜+斜光スイープ、裏面規約、署名描画、跳躍アウト
02コマンド1発でプロジェクト構築:8つの必須データ+LAST, FIRSTヘッダーを上書きする任意の --big(特殊な表示名もそのまま維持)
03信頼できない入力を想定したビルダー:フィールド単位の検証+1文字ずつのHTMLエスケープ+残存トークン検査+シンボリックリンクを拒否する制限付き書き込み
04データ収集レシピとフォールバック戦略:Webページ取得+認証不要APIのクロスチェック、競合時はWebページを優先し、APIダウン時はユーザーに確認
05明確な合格基準:check エラー0件、仕上がり動画長約10.3秒、カード反転と跳び出しのタイミング完全一致
06ブランドと権利境界の明文化:パロディ/ファン位置づけ、サードパーティ製コンポーネントの再配布なし、GSAP非同梱

3外部依存関係

KindDependency / Endpoint
networkx.com/<handle>:登出档案页(agent 用浏览器工具读显示名/Joined/Following/Followers;纯 HTTP fetch 只得 JS 壳)
networkpbs.twimg.com:头像图片下载(profile_images 的 _400x400 变体)
apiapi.fxtwitter.com/<handle>:取 post 数(免费、无凭证的第三方 API)
cliHyperFrames CLI(经 npx,文档写 @latest;要 byte-identical 重渲需自行 pin 版本)
networkcdn.jsdelivr.net:构图在 preview/render 时加载 GSAP 3.14.2(文档明说渲染并非完全离线)
clicurl(取数示例:下载头像、拉 fxtwitter JSON)与 macOS 系统字体 Snell Roundhand(src: local(...),Linux 退化为 cursive)

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

安全運用のための推奨統制措置
Agent 向け
段階的・都度認可、サンドボックス推奨
管理者向け
承認フロー、ロールバック可能、全履歴監査
判定根拠(ファイルパスと抜粋)
  • scripts/: ローカルスクリプトまたはコマンドの実行: node <SKILL_DIR>/scripts/build.mjs --out <dir> --name … --handle … --joined
  • 网络端点: 外部ネットワークアクセスの宣言: https://x.com/<handle>(エージェント側のデータ収集用、ログアウト状態のプロフィールページ)
  • 本地工作目录: ファイル読み書きと成果物出力: --out ディレクトリ内: index.html、assets/avatar.jpg、hyperframes.json、meta.json、およびレンダリング成果物
監査ノート: 評価対象=スキル自身のディレクトリ(SKILL.md + scripts/build.mjs + template/index.template.html + references/profile-data.md)。唯一のスクリプトは完全にローカルで動作:テンプレートとローカルアバターを読み込み、トークン置換を行い、--out ディレクトリ内へ出力。フィールド検証、HTMLエスケープ、残存トークン確認、シンボリックリンクセーフな書き込みを備え、環境変数やクレデンシャルの読み取りは一切ありません。警告対象になり得るのはデータ取得およびレンダリング時の固定された公開エンドポイントのみです:x.com/<handle> のログアウトプロフィール(エージェントのブラウザで閲覧。単純なHTTP fetchではJSシェルしか取得できないため)、pbs.twimg.com からのアバター画像取得、api.fxtwitter.com/<handle> のポスト数取得(サードパーティ製・認証不要)、registry.npmjs.org(npx経由のCLI取得)、cdn.jsdelivr.net の GSAP 3.14.2(プレビュー/レンダリング時にロードされ、ドキュメントにも「Rendering is NOT fully offline」と明記)。すべて想定内かつ公開・非認証のエンドポイントであり、ドキュメントでも網羅的に開示されテレメトリがないことも宣言されています。TLSダウングレードやボット検知回避、大量スクレイピング(指定された単一プロフィールの読み込みのみ)も見られないため、オレンジやレッドの評価には該当しません。

5二重目の独立検証

  • [ok] 『do NOT edit the timeline』是否与模板事实一致 — #root 上写死 data-duration="10.35"、data-fps="60"、data-composition-id="x-license",时间线注册在 window.__timelines["x-license"];build.mjs 只做 token 替换,不触碰任何时间属性。模板确实锁死,agent 的改动面只有数据。
  • [ok] 模板 token 与 build.mjs 的 fill 键是否一一对应 — fill 提供 NAME_BIG、NAME_SIG、HANDLE_UPPER、JOINED、ISS、FOLLOWERS、FOLLOWING、POSTS、FOLLOWERS_FMT、BIO_UPPER;模板中出现的 {{…}} 均在其中(FOLLOWERS_FMT 用于背面 fine print),且替换后有 unfilled token 检查兜底。
  • [ok] 『profile 数据是不可信输入』的处理是否真存在 — cleanText(去控制字符 + 限长)、cleanCount(只收纯非负整数,显式拒绝符号/小数/指数/NaN/逗号)、handle 正则 ^[A-Za-z0-9_]{1,15}$、joined 走 MONTHS 枚举、esc() 逐字符转义、refuseSymlink() + safePath() 限定写入在 out 实路径内——逐条在源码可验。
  • [ok] 端点是否都可预期、是否真的无凭证 — SKILL.md 的 Network and side effects 列表与 references/profile-data.md、模板引用一一对应;无 API key、无 cookie 读取、无 telemetry;fxtwitter 免认证且文档给了降级路径(不可用时问用户)。
  • [ok] 『Rendering is NOT fully offline』是否属实 — 模板 <head> 第 6 行就有 jsDelivr 的 [email protected] 引用,preview/render 时构图会去取——与文档声明一致,不是夸大也不隐瞒。
  • [unlocatable] 10.35s 与 flip ~6.5s / leap ~9.9s 的时刻声明 — 这些时刻来自文档叙述与模板属性,本次只读侦查未渲染核对;且文档用的是 @latest 的 CLI(版本未固定),故这些时刻只对该 pin commit 的模板有效,不作为已核事实。

6結論

  • テンプレート即完成品:モーション固定・デッドフレームゼロで、エージェントはデータ入力のみ—最も高い出力一貫性を誇る設計
  • 堅牢な入力防御策:フィールド検証+HTMLエスケープ+トークン残存チェック+シンボリックリンクセーフな書き込みにより、一般的なスキルよりも厳格に制御
  • データ正確性の徹底:実在のアカウントから取得し捏造を禁止、サードパーティAPIが使えない場合はユーザーへの確認を義務付け
  • 明瞭な依存関係と副作用:エンドポイントの明記、クレデンシャル/テレメトリなし、完全オフライン不可の明記、@latest 変動への注意喚起
  • クリアな著作権境界:パロディ/ファンの位置づけ、Originkit ソースの非再配布、GSAP非同梱、公開可否のユーザー判断委任
  • プラットフォーム差異の事前告知(macOS GPU推奨、Linuxにおける Snell Roundhand のフォールバック)
  • 最適な用途: 「X運転免許証」風の10秒ショート動画を作成したいシナリオに最適:@handle を指定し、実際のプロフィールデータを取得して、build と render を1回ずつ実行するだけで完了します。同一テンプレートでデータのみを差し替えて量産するコンテンツや、SNS用のギフト・ミーム作成にも適しています。利用者に必要なのは Node 18+ と HyperFrames レンダリングを実行可能な環境のみです。
    不向きな用途: 不向きなケース:① レイアウトやカラーの自由度を求める場合(テンプレート固定であり、SKILL.md にもユーザーごとのスタイル変更禁止と明記);② GPUアクセラレーションのないレンダリング環境(WebGLドットマトリクスが正常に描画されません);③ 公開プロフィールから自身または他者のデータを収集したくない場合;④ タイムラインを変更したり異なる尺にしたい場合(10.35秒固定であり、改変すると品質保証の前提が崩れます);⑤ 商用利用かつ商標やプラットフォーム規約の確認を行いたくない場合;⑥ 完全オフライン環境でのレンダリングを想定している場合(GSAPを jsDelivr から読み込むため)。
    Install Agent-Ready
    ① Verified Mirror 2026-09-28
    Option A · Direct DownloadDownload x-posting-license.tar.gz
    sha256: 6e227bb6839e972c…
    Option B · Copy Guide for Agent
    install.json
    Agent はこの JSON ガイドから自動的にダウンロードして検証します。
    ② Upstream GitHub
    GitHub Repo ↗
    Pinned to commit ba7a0bb6d3.