首页 / 全部技能 / 内容创作 / x-posting-license
内容创作 · heygen-com/hyperframes-community-skills

x-posting-license

Turn any X (Twitter) profile into a 10.3s animated "POSTING LICENSE" card video — a fake driver's license in X's branding: the card slides in over an animated dot-matrix ground, license text types on letter-by-letter, follower / following / post counters tick up, a diagonal glimmer sweeps as the card tilts in 3D, it flips to a fine-print back with a signature write-on, then crouches and leaps out of frame. Trigger on: "X driver's license", "posting license", "make an X license for @handle", "license card video". The whole composition is a finished template — the agent only supplies profile data and renders.

风险提醒:黄色 · 留意使用AI 侦查报告
作者 heygen-comGitHub heygen-com/hyperframes-community-skills ↗Stars 156许可 Apache-2.0(仓库根 LICENSE)commit ba7a0bb6d3
agent 宿主通常会约束 skill 执行权限;风险提醒为 AI 侦查观点,不构成质量或安全保证。第三方 skill 仅作拆解与展示,安装使用风险自负,版权归原作者。

1实现原理 · 为什么它能做到

这是一条「模板即成品」的路线:一条固定 1920×1080 @60fps、10.35 秒的构图,运动被锁死(关键帧首尾相叠、零死帧),agent 只填数据 token 后渲染——时间轴**不允许改**,改动面只有数据。

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 相反——那两个把时间轴算出来,这个把时间轴冻结,用确定性换一致性。

三步流程且第二步之后没有构图工作:① 采数据(name/handle/joined/followers/following/posts/一行 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 会漂移,要 byte-identical 重渲就 pin 版本);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,计数只接受纯非负整数(显式拒绝符号/小数/指数/NaN/逗号,因为它们会落进构图的 <script>),文本字段去控制字符并限长,所有字符串 HTML 转义后再替换 {{TOKEN}},最后还检查有没有残留 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,此后每个路径都必须解析在 out 实路径内(safePath),并且一开始就拒绝符号链接目标;模板相对脚本自身解析、--out 相对工作目录解析;头像文件不存在直接报错。

skills/x-posting-license/scripts/build.mjs
// after mkdir, every path we touch must resolve inside the real out dir
注:这里在做什么:防止「输出目录」被做成指向别处的链接而写到系统其他位置。

模板内部结构固定:数据 token 落在文本节点(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"];背面 fine print 拿 follower 数当「出生日期」调侃,长名靠加宽签名遮罩处理。

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 倾斜 + 斜向高光、翻面、签名书写、下蹲跳出)都在模板里,agent 一行时间轴都不用写。

两条纪律与一条出身声明:数据必须真实(从活档案抓,禁止编造计数与 bio),bio 压成大写 ≤ ~65 字符并以 · 分隔,显示名异常也原样保留(例如 `|||`);品牌方面,卡面复刻 X 的标志与视觉语言属 parody/fan 内容、发布与否由用户自行判断,点阵地面是基于 Originkit Dot Matrix 观感的确定性 GLSL/WebGL 重写(不重分发其源码),simplex 噪声是标准 Ashima 实现(MIT),GSAP 从 jsDelivr 加载不 vendor。

skills/x-posting-license/SKILL.md
- Data must be REAL, scraped from the live profile — never invent counts or bios.
注:这里在做什么:把『别编数据』与『别偷代码』两件事都写成明文规则;同时预告了 parody/fan 的法律边界。

2核心能力

01把任意 X 档案变成 10.35 秒的「POSTING LICENSE」驾照卡视频:点阵地面、逐字打字、计数上跳、3D 倾斜 + 斜向高光、翻面 fine print、签名书写、下蹲跳出
02一条命令建项目:8 个必填数据 + 可选 --big 覆盖 LAST, FIRST 表头(异常显示名原样保留)
03面向不可信输入的构建器:字段级校验 + 逐字符 HTML 转义 + 残留 token 检查 + 拒绝符号链接的受限写入
04取数配方与降级策略:页面抓 + 免认证 API 交叉核对,冲突以页面为准,API 挂掉就问用户
05验收标准明确:check 0 错误、成片约 10.3 秒、翻面与跳出的时刻可对表
06品牌与出身边界写成明文:parody/fan 定位、第三方组件不重分发、GSAP 不 vendor

3外部依赖

类型依赖
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风险提醒 风险提醒:黄色 · 留意使用

风险提醒:黄色 · 留意使用
  • 采集的是第三方公开资料 — 读 x.com 登出页 + pbs.twimg.com 头像 + fxtwitter 的 post 数;虽然是用户指定的单个档案、无凭证、无绕过检测,但仍依赖站点与第三方 API 的可接受使用边界与可用性。
  • 头像与 bio 是外部内容 — 头像直接拷进项目、bio 会被压缩改写成大写展示;内容准确性与合法性由使用者判断,skill 不做核验。
  • CLI 版本可变 — 文档用 npx hyperframes@latest;跨时间重渲可能不一致(文档自己建议 pin 版本以获得 byte-identical 结果)。
  • 平台前提 — WebGL 点阵地面在弱 GPU / 无硬件加速环境下可能表现不佳;Linux 上签名退化为通用 cursive。
  • 品牌相似度 — 卡面复刻 X 的标志与视觉语言(parody/fan 定位);对外的商标与平台政策风险由发布者承担。
  • 长显示名要人看 — 文档提示显示名超过 ~14 字符时应查一次快照(签名遮罩会加宽,但仍可能出现版面异常)。
风险提醒:黄色,留意使用。判级对象=skill 自身目录(SKILL.md + scripts/build.mjs + template/index.template.html + references/profile-data.md)。唯一脚本全本地:读模板与本地头像、按 token 替换、写 --out 目录内文件,并带字段校验、HTML 转义、残留 token 检查与 symlink-safe 写盘;零 env、零凭证读取。落黄的是取数与渲染期的固定公开端点:x.com/<handle> 登出档案页(agent 用浏览器读,纯 HTTP fetch 只拿到 JS 壳)、pbs.twimg.com 的头像下载、api.fxtwitter.com/<handle> 的 post 数(第三方但免认证)、registry.npmjs.org(npx 取 CLI)、cdn.jsdelivr.net 的 GSAP 3.14.2(构图在 preview/render 时加载,文档明写 Rendering is NOT fully offline)。全部可预期、公开、无凭证,且文档主动列全并声明无 telemetry。未见 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结论

  • 模板即成品:运动锁死、零死帧,agent 只填数据——出片一致性最高的一类设计
  • 不可信输入的防线完整:字段级校验 + HTML 转义 + 残留 token 检查 + symlink-safe 写盘,比同批多数 skill 严格
  • 数据真实性纪律明确:必须从活档案抓,禁止编造;第三方 API 不可用时要求问用户
  • 依赖与副作用写得干净:端点逐条列出、无凭证/无 telemetry、渲染非完全离线、@latest 可变性提醒
  • 版权边界清楚:parody/fan 定位、不重分发 Originkit 源码、GSAP 不 vendor、发布与否由用户判断
  • 平台差异前置声明(macOS GPU 渲染建议、Snell Roundhand 在 Linux 的退化)
  • 适合:适合要一张「X 驾照卡」式 10 秒短视频的场景:给定 @handle,采真实档案数据,一次 build 一次 render 即可;也适合用同一模板反复出片(只换数据)的批量内容需求,或做社媒礼物/梗图。使用者只需 Node 18+ 与能跑 HyperFrames 渲染的环境。
    不适合:不适合:① 想要版式或调色自由度(模板锁死,SKILL.md 明说 do not restyle per user);② 无 GPU 加速的渲染环境(WebGL 点阵地面会退化);③ 不愿从公开档案采集他人/自己资料的场景;④ 想改时间轴或做成其他时长的需求(固定 10.35 秒,改动即失去 doctrine 验证前提);⑤ 商用发布且不愿评估商标与平台政策的场景;⑥ 期望完全离线渲染的环境(构图会从 jsDelivr 取 GSAP)。
    安装 agent 直装可复制
    ① 本站镜像 更新 2026-09-28
    方式 A · 人下载镜像包下载 x-posting-license.tar.gz
    sha256: 6e227bb6839e972c…
    方式 B · JSON 格式安装指南,复制给 agent
    安装指南
    agent 读 JSON 指南后会自动从本站下载安装,无需更多说明。
    ② 上游 GitHub · 原始来源
    能访问 GitHub?直接去上游安装(实时版,可能已更新)GitHub 原始 ↗
    本页镜像锁定 commit ba7a0bb6d3;上游为实时仓库。
    来源信息 GitHub 原始
    作者 / 仓库heygen-com / heygen-com/hyperframes-community-skills
    Stars156
    最近推送2026-09-24
    本 skill commitba7a0bb6d3
    许可Apache-2.0(仓库根 LICENSE)
    本站信息
    收录日期2026-09-06
    分类内容创作
    侦查报告AI 侦查 · 2 遍 · 2026-09-06
    本站镜像与 GitHub 原始是不同来源:本站锁定 commit 快照经 /r2 分发;GitHub 为实时上游,内容可能已更新。
    同分类邻近