Communitygithub.com

content-system

当用户希望制作一段以动效为核心表达方式的简短、设计主导的动态图形时使用:包含动态文字排版、数据统计数字滚动、图表/数据可视化、标志动画、品牌组合、底部字幕条、标注、社交覆盖层、动画标题/推文/新闻、动态海报或快速页面亮点。通常时长在10秒以内,最长不超过30秒,无需旁白叙述、配音或真人出镜。可输出为MP4或透明叠加格式。不适用于较长多场景、旁白叙述或品牌宣传片(请使用 general-video)、网站旁白视频(请使用 website-to-video)、主题解说视频(请使用 faceless-explainer)、产品推广视频(请使用 product-launch-video)、PR 视频(请使用 pr-to-video),或为现有素材添加字幕(请使用 embedded-captions)。如果不确定是快速动效优先的作品还是较长/带旁白的处理方式,请参阅 /hyperframes。

content-system 是什么?

`content-system` 技能专门用于创建简短、设计驱动、无旁白的动态图形视频(通常10秒以内,无配音)。其核心原则是“以动效传递信息”,适用于动态文字排版、数据计数动画、标志展示、底部字幕条、社交媒体动画以及网页/界面动画等多种场景。该技能采用“资源优先”的工作流程:先确定资源策略并获取真实素材,再围绕已有资源设计镜头,最后通过复用目录块(catalog blocks)和 hyperframes-animation 规则进行组合。整个流程包含六个步骤:初始化项目、规划(确定是否需要搜索资源)、资源获取(条件性执行)、镜头设计、构建(复用优先)、渲染和验证。所有工作均在 `videos/<项目名称>/` 目录下完成,并支持通过 `shot-plan.json` 等中间产物进行断点续传。该技能运行在 macOS Apple Silicon 或 Linux x64 系统上,需要 Node.js 和 ffmpeg,并可选使用 Gemini API 进行图片生成。它明确区分于更长的、带旁白的视频制作技能,例如 general-video(通用视频)、faceless-explainer(无脸解说)、product-launch-video(产品发布视频)等,用户可通过 /hyperframes 入口进行路由判断。

兼容平台~Claude Code~Codex CLI✓Cursor✓Gemini CLI
npx skills add https://github.com/The-Ai-automation-Queen/content-system/tree/HEAD/skills/hyperframes/motion-graphics

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

动态图形 — 分发入口

在步骤 0 之前确认路由。 该技能制作简短、设计主导、无旁白的动态图形(动效即信息;通常 10 秒以内,无配音)。对于较长、多场景或带旁白的处理方式 → /general-video;带旁白的网站视频 → /website-to-video;主题解说 → /faceless-explainer;产品推广 → /product-launch-video;为现有素材添加字幕 → /embedded-captions。范围之外:实时/渲染时数据,或无法捕获的素材。不确定是动效优先还是带旁白?请先阅读 /hyperframes。

一种简短的设计主导动态图形。资源优先:在设计镜头之前决定资源策略并获取真实素材,然后围绕已有资源设计镜头,最后通过复用目录能力进行组合。所有成品放置在 PROJECT_DIR = videos/<项目名称>/ 下(在步骤 0 中创建);以下所有路径均相对于该目录。

阶段执行方式主要成品详细流程
initBashhyperframes.json步骤 0
plan子代理 — 决定是否需要搜索? + 分类 + 资源策略shot-plan.json(草稿:类别,asset_needs 查询,简报)agents/director.md(第一部分)
source ◇Bash — media-use resolve(如果 asset_needs 为空则跳过)assets/ + assets/index.mdphases/source/guide.md
design子代理 — 围绕已解决资源进行镜头设计shot-plan.json(最终版:块 + 布局 + 动效 + 位置)agents/director.md(第二部分)
build子代理 — 复用优先的组合compositions/index.htmlagents/builder.md
renderBash — hyperframes render(MP4,或 --format webm/mov 用于叠加)renders/video.mp4步骤 5
verifyBash — lint / inspect -> 失败时派遣修复子代理(就地修复)agents/finalize.md

◇ source 仅当所选类别声明了资源时才运行。纯代码/文本类别(例如 kinetic-type,大多数 charts/stat)的 asset_needs: [],直接从规划跳到设计。

类别 — 按搜索决策划分

plan 的首要决策是:是否需要搜索? 这个分支将类别分为两组;然后选择具体的类别——对于搜索驱动型,根据搜索返回的内容类型来选择。每个类别是一个 categories/<id>/module.md(包含其规划 + 构建规则);共享的动效词汇表位于 references/motion-vocabulary.md 中(→ hyperframes-animation 规则/蓝图 + 注册表块)。

表单类别 — 无需搜索;用户提供内容:

类别意图依赖
kinetic-type有力的引文/引语/标题,动效优先的文本caption-* 块 + 动画规则
stat单个英雄数字/计数动画 + 环形apple-money-count / rules/{counting-dynamic-scale, stat-bars-and-fills}
charts来自数据的柱状图/折线图/饼图/竞赛图/百分比图data-chart 块
logo-reveal标志动画 / 品牌组合(用户标志)logo-outro / rules/svg-path-draw
lower-thirds姓名/标题条、标注、社交覆盖层caption-* + 注册表覆盖层块

搜索驱动类别 — 先搜索,然后根据内容类型进行动画(RWA 路径):

返回的内容类别动画
网页/链接webpage网页/界面动画(滚动、揭示、光标、标注)
新闻文章news标题揭示 + 来源卡片 + 关键事实标注
推文tweet动画推文卡片
图片/实体asset-fusion资源的几何形状_变成_图表(RWA 融合)

构建顺序:一次一个,覆盖率优先(粗糙也可以)。kinetic-type 从原型移植而来;其余遵循此模式。

前置条件

macOS Apple Silicon 或 Linux x64。系统工具:brew install node ffmpeg。运行一次 npx hyperframes doctor。macOS GPU 渲染:export PRODUCER_BROWSER_GPU_MODE=hardware。

可选密钥(未设置时使用本地回退)——仅由通过 media-use 获取/生成资源的类别需要:

密钥用途回退方式
GEMINI_API_KEY / GOOGLE_API_KEY图片生成(media-use 解析)跳过生成 / 仅搜索
(asset_scout / 搜索提供商)webpage/news/tweet + asset-fusion 真实资源搜索类别降级为无资源模式

流程

步骤 0 — 初始化

当前工作目录是代理工作区根目录;将所有成品写入 PROJECT_DIR = videos/<项目名称>/。<项目名称>:使用用户提供的目录名,否则根据意图使用短横线命名格式(<主题>-motion)。不是工作区基本名称或时间戳。

仅当 $PROJECT_DIR/hyperframes.json 不存在时:

PROJECT_DIR="${MOTION_GRAPHICS_DIR:-videos/<项目名称>}"
mkdir -p "$(dirname "$PROJECT_DIR")"
npx hyperframes init "$PROJECT_DIR" --non-interactive --example=blank

init 检查已安装的技能是否与 GitHub 上的最新版本一致,并更新任何过时的全局技能集。

约束: 切勿在工作区根目录执行 hyperframes init;切勿在 PROJECT_DIR 内嵌套另一个 hyperframes/;每个 Bash 命令(主代理 + 子代理)都是一个 (cd "$PROJECT_DIR" && ...) 子 shell — 切勿使用裸 cd。

步骤 1 — 规划(子代理:导演 第一部分)

派遣一个子代理。提示 = 完整的 agents/director.md + ## 分派上下文(SKILL_DIR / PROJECT_DIR / 用户请求 / 架构: <SKILL_DIR>/references/shot-plan-ir.md)。它必须:

  1. 决定:这是否需要搜索?(第一个分支)
    • 否 → 选择一个表单类别(kinetic-type / stat / charts / logo-reveal / lower-thirds);内容由用户提供;asset_needs: []。
    • 是 → 将搜索计划写入 asset_needs[](新闻/网页/推文/图片;两极查询)。具体的搜索驱动类别(webpage / news / tweet / asset-fusion)由步骤 2 返回的内容类型确认,并在步骤 3 中最终确定。
  2. 编写一个草稿 shot-plan.json(信封结构 + 选定的表单类别 或 搜索意图 + asset_needs + 一段镜头简报)。架构:references/shot-plan-ir.md。

验证:[ -s "$PROJECT_DIR/shot-plan.json" ] && echo ok || echo missing。

步骤 2 — 获取资源 ◇(Bash:media-use,条件性执行)

如果 shot-plan.json.asset_needs 非空,则解析资源(搜索/生成/获取 → 冻结的项目本地路径 + 台账)。请参阅 phases/source/guide.md(封装 media-use resolve;搜索驱动类别使用新闻/网页/推文/图片搜索)。如果 asset_needs 为空,则跳到步骤 3。

# 说明性 — 请参阅 phases/source/guide.md
(cd "$PROJECT_DIR" && node <SKILL_DIR>/phases/source/resolve.mjs --plan ./shot-plan.json --out ./assets)

优雅降级:如果搜索/提供者不可用,该类别回退到无资源模式(在 context.log 中注明)。

步骤 3 — 设计(子代理:导演 第二部分)

派遣一个子代理(提示 = agents/director.md 第二部分 + 分派上下文,包括已解析的 assets/index.md(如果步骤 2 运行过)+ catalog-map.md)。它围绕可用资源设计镜头:选择目录块 + hyperframes-animation 规则/蓝图、布局、动效、节拍,以及(对于 asset-fusion)element_positions + 吸色盘。最终确定 shot-plan.json(content.block + content.customize + 每类内容)。

步骤 4 — 构建(子代理:构建者,复用优先)

派遣一个子代理。提示 = 完整的 agents/builder.md + 分派上下文(shot-plan.json、catalog-map.md、类别的 module.md、references/motion-vocabulary.md、references/builder-contract.md)。复用优先:npx hyperframes add <块> + 就地定制;仅手写填补空白和资产融合的适配。输出 compositions/index.html,遵循 HF 契约(暂停的 GSAP 时间线在 window.__timelines 上,class="clip" + 稳定 ID,tl.seek(0),确定性)。

步骤 5 — 渲染(Bash)

(cd "$PROJECT_DIR" && npx hyperframes render . --skill=motion-graphics -q draft -o ./renders/video.mp4)
# 透明叠加变体:--format webm(或 mov)

步骤 6 — 验证(Bash → 失败时派遣修复子代理)

(cd "$PROJECT_DIR" && npx hyperframes lint . && npx hyperframes inspect .)

exit 0 → 完成。对于 lint/inspect 错误,派遣修复子代理(agents/finalize.md:快照 QA + 一次就地修复 + 重新渲染)。修复时切勿更改固定的时长。

报告 + 可选预览

报告最终输出(renders/video.mp4,或 .webm / .mov 叠加变体)+ 时长。运行期间不要打开预览。 仅在请求时提供,在渲染之后启动,以便提供最终文件:

(cd "$PROJECT_DIR" && npx hyperframes preview)   # Studio UI;或 `npx hyperframes play` 获取可共享链接

标志位于 hyperframes-cli 技能中(references/preview-render.md)。

断点续传表

状态从中继续
无 shot-plan.json步骤 1(规划)
shot-plan.json 有 asset_needs,无 assets/步骤 2(获取资源)
shot-plan.json 最终版,无 compositions/index.html步骤 3/4(设计+构建)
compositions/index.html 存在,无 renders/video.mp4步骤 5(渲染)+ 步骤 6
renders/video.mp4 存在报告 + 停止

设计说明(维护者 — 执行时不读取此项)

  • 资源优先的理由: 资源获取前置,并影响镜头设计(RWA 流程:分析 → 搜索 → 审查 → 组合)。搜索驱动类别(webpage/news/tweet)和 asset-fusion 都依赖 media-use 搜索(新闻/网页/推文/图片),这是 media-use 文档化的 RWA 血统。
  • 复用优先: 生态系统内与 LLM 生成的模板的类比是“组合目录块 + hyperframes-animation 规则”。HF 的暂停 GSAP 时间线 ≙ Remotion 的 useCurrentFrame。
  • 类别模块契约: 一个 categories/<id>/module.md(规划 + 构建),共享 references/motion-vocabulary.md(+ 可选的评估)。添加一个类别 = 放置文件夹 + 在 agents/director.md 中注册其分类器行 + 在 catalog-map.md 中注册其行;阶段流水线不变。
  • 目录结构:
    videos/<项目名称>/
      hyperframes.json  context.log
      shot-plan.json            # IR(导演输出)
      assets/  assets/index.md  # media-use 输出(如果获取了资源)
      compositions/index.html   # 构建者输出
      renders/video.mp4
    
  • 注册: 在 hyperframes 路由器中 — 添加“设计主导的简短动态图形”意图 + 工作流描述;从 /general-video 中切出动态图形触发器;添加反向的“请勿使用”边。请参阅 motion-graphics-genre.md §5-7。

相关技能