首页 / 全部技能 / 内容创作 / ad-creative-video
内容创作 · iart-ai/ad-video-skills

ad-creative-video

This skill should be used when the user asks to "make a video ad", "create an animated ad", "build a performance/UGC-style ad", "batch-produce ad creative variations", "generate ad variants for A/B testing", "swap headline/offer/CTA across many ad versions", or "export one ad in multiple aspect ratios for Meta/TikTok/Reels". Covers ad hook structures, hook→CTA message-match, data-driven variant generation (1 template × CSV = N ads), multi-aspect export, and platform specs.

L4 高权限 · 分级授权与审计V1 已固定执行命令联网读写文件Dual-pass Audit
Author iart-aiGitHub iart-ai/ad-video-skills ↗Stars 8License MIT(仓库根 LICENSE:「MIT License」/「Copyright (c) 2026 iart.ai」;.claude-plugin/plugin.json 与 README「## License」同声明 MIT)Commit 0de0f2a1c1
管控等级描述 skill 的能力与建议配套的管控措施,不代表质量或安全认证,也不表示可用或不可用。是否使用由用户和管理者决定。不同 agent 宿主对权限的约束各不相同,请勿假定宿主一定会提供安全兜底。第三方 skill 版权归原作者,使用风险由使用者自行承担。

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

批量机制:一个数据驱动模板 × CSV = N 个变体,每行一个已 message-matched 的完整广告,逐行渲染。

skills/ad-creative-video/SKILL.md
The payoff: author the ad once, then let a CSV drive the matrix. Each row is one fully-formed, message-matched variant. Render once per row.
把「批量」做成 props 化,而不是复制模板文件。

确定性渲染纪律:模板只读一个 variant 对象,所有动画值必须是 useCurrentFrame() 的纯函数。

skills/ad-creative-video/SKILL.md
Make every animated value a pure function of `useCurrentFrame()` so each frame renders deterministically (no CSS transitions, no library timers — they desync the render).
CSS/库计时器会与帧渲染器失步,导致导出抖动。

实验可解释性纪律:一次只变一个字段,其余布局/动效/配色/时长全部锁死。

skills/ad-creative-video/SKILL.md
Hold layout, motion, colors, and timing constant; swap *only* the field under test (hook, or offer, or CTA). Mixing two changes makes the winner uninterpretable.
把实验设计写进 skill 的输出纪律。

hook 与 CTA 必须消息对齐:3 秒内的承诺=按钮兑现的承诺。

skills/ad-creative-video/SKILL.md
The promise made in the first 3 seconds must be the promise the button pays off.
示例 CSV 每一行 CTA 都回指该行 hook。

多比例导出:hook/产品/CTA 全部设计在 1:1 中心方块内,靠重新居中而不是 letterbox。

skills/ad-creative-video/SKILL.md
Design the hook text, product, and CTA inside the **1:1 center square** so they survive every crop.
aspect 由 prop 驱动,reference 用 calculateMetadata 解析尺寸。

平台安全区是真规格:9:16 底部三分之一被平台 UI 占据,必须预留 bottomSafe。

skills/ad-creative-video/references/platform-specs.md
The 9:16 bottom third is the single most violated zone — captions, the CTA button, and the handle stack there.
布局常量里预留 keep-clear band,不靠目测。

坏数据必须 fail loud:解析器累计错误后 exit 1,不产出任何坏广告。

skills/ad-creative-video/references/batch-ad-pipeline.md
error(s) — no broken ads written.
缺字段/重复 id/非法 hex 颜色都会被拦下。

验证环:先渲染便宜 PNG stills,再用 shipped props(真实数据行)判定而非 defaultProps。

skills/ad-creative-video/SKILL.md
Cheap PNGs first, full encode only once they're clean. Render with the **shipped** props (the real row), not just `defaultProps`.
多比例批量前先逐比例验一个代表变体。

2核心能力

01数据驱动广告模板(1 模板 × CSV = N 变体)
02单变量测试矩阵生成器(把「一次只变一个」写成代码约束)
03多版位/多比例规格与安全区(9:16 / 4:5 / 1:1 / 16:9)
04hook taxonomy(5 类钩子模板与适用场景)
05品牌锁 theme 单对象(40 个变体只变被测字段)
06calculateMetadata 让一个 composition 输出任意比例

3外部依赖

KindDependency / Endpoint
packageremotion(帧驱动渲染框架)
clinpx remotion render / still
packagezod(输出契约要求的 props schema)
cliffmpeg / ffprobe(仓库共享 contact-sheet.sh、probe-mp4.sh)
networkiart.ai(reference 尾部推广链接,具 utm 参数;仅读者点击才请求)

4管控建议与判定依据

建议配套管控措施
面向 Agent
分级或逐次授权,建议在沙箱运行
面向管理者
审批流程、可回滚、全程审计
判定依据(文件路径与关键语句摘要)
  • scripts/: 执行本地脚本或命令: skill 目录内无自带脚本;SKILL.md 指示 agent 执行 `node csv-to-props.js variants.csv ./pr
  • 网络端点: 声明外部网络访问: 执行期无业务 API 调用、无业务端点查询;广告数据与素材全部来自本地。
  • 本地工作目录: 文件读写与工件输出: 在用户工程内写 `props/<id>.json`、`out/<id>.mp4`、`out/demo.gif`;contact-sheet.sh 写
审计说明: 。触发项是分级范式「依赖第三方插件、镜像、远程包」:skill 自身目录是纯 Markdown(无脚本、无凭证读取、无 env 读取),但其声明的交付路径必须引入远程包 `remotion`(+ zod 契约)与 `@remotion/cli`,经 `npx` 从 npm 获取并执行;同批同仓同工具链的 `remotion-video` 已按同口径判橙,此处与之一致。**明确不成立的项**:无 process.env / API key / token / cookie / 钥匙串读取(全仓 token 扫描零实质命中);不把用户素材送外部生成服务(渲染全程本地);无 TLS 降级、无 `--no-verify`、无沙箱关闭、无反自动化绕过。触发条件:仅在真的要渲染视频(安装并执行远程工具链)时发生;若团队已把 remotion 锁进本地 node_modules 并离线渲染,接触面收敛为「本地执行用户自己的项目代码」。

5第二遍独立确认

  • [ok] skill 目录内是否藏脚本或凭证读取 — 目录只有 README.md(0B)/SKILL.md/references/*.md;全仓 token 扫描 process.env|API_KEY|TOKEN|cookie|keychain|Bearer 零实质命中(唯一命中是 product-demo reference 的 `.cookie-banner{display:none!important}`,属 UI 清理样式,非凭证读取)。
  • [ok] SKILL.md 与 reference 的渲染命令是否自洽 — SKILL.md 走「扁平 props/ + --props-merge 传 aspect」,reference 走「props/<ar>/ 目录 + calculateMetadata 解析尺寸」;两条路线实现同一目标,非矛盾。
  • [discrepancy] CSV 解析器校验的真实行为 — `if (errors) return;` 用的是全局错误计数:首个坏行之后,后续原本合法的行也不会写盘(注释宣称的语义是「不产出坏广告」)。行为偏保守、不会产出错误广告,但会让使用者误以为只有 1 行坏。
  • [ok] hook 长度告警阈值与平台规格是否一致 — 解析器 `if (row.hook && row.hook.length > 60) console.warn(...)` 与 platform-specs 的 hook 在 9:16 ≤ ~60 chars 的规格对得上。
  • [discrepancy] `Packaged helper (scripts/)` 的路径可解析性 — SKILL.md 写 `scripts/contact-sheet.sh` / `scripts/probe-mp4.sh` 这类相对路径,但这些脚本位于**仓库根** scripts/,skill 目录内并无 scripts/(skill 位于 skills/ad-creative-video/);从 skill 目录直接执行会找不到文件。
  • [ok] 跨 skill 指名与边界声明 — SKILL.md 用结构描述而非 skill 名排除促销与证言类("Not for sale/discount countdown promos, and not for testimonial/review-driven ads"),不存在跨仓库依赖或指纹不明的外部 skill 调用。

6结论

  • 把「实验可解释性」变成可执行约束
  • 批量能力来自 props 化而非模板复制,40 个变体共用一套品牌锁
  • 数据完整性前置:缺字段/重复 id/非法 hex 颜色直接 exit 1
  • 平台规格是可执行的像素级安全区,而非泛泛建议
  • 验证环便宜先行(PNG stills),且强制用 shipped props 验证
  • 适合: 性能/增长团队做多版位、多变体的视频广告投放:需要 hook 测试、A/B 实验设计、一套模板批量出 9:16/4:5/1:1/16:9,且已有 Node/Remotion 工程能力。
    不适合: 只想剪一条片子的人(批量与实验设计是它的价值所在);需要折扣倒计时促销(用 promo 类)、客户证言/评价(用 testimonial 类)的场景;没有 Node 工具链的环境。
    Install Agent-Ready
    ① Verified Mirror 2026-09-28
    Option A · Direct DownloadDownload ad-creative-video.tar.gz
    sha256: 6cc9db5805b68bad…
    Option B · Copy Guide for Agent
    install.json
    agent 读 JSON 指南后会自动从本站下载安装,无需更多说明。
    ② Upstream GitHub
    GitHub Repo ↗
    Pinned to commit 0de0f2a1c1.