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

promo-video

This skill should be used when the user asks to "make a sale video", "create a promo video", "build a discount/percentage-off reveal", "animate a was→now price with a strike-through", "do a Black Friday / flash-sale / clearance video", "make a promo-code reveal with a countdown", or "batch a promo template across many products". Covers the offer-announcement arc — discount reveal, price strike-through, promo code, urgency, product shot, CTA — and product+offer data → many videos.

风险提醒:橙色 · 评估后使用AI 侦查报告
作者 iart-aiGitHub iart-ai/ecommerce-video-skills ↗Stars 8许可 MIT(仓库根 LICENSE:「MIT License」/「Copyright (c) 2026 iart.ai」;.claude-plugin/plugin.json 与 README「## License」同声明 MIT)commit 2bd0dd19c9
agent 宿主通常会约束 skill 执行权限;风险提醒为 AI 侦查观点,不构成质量或安全保证。第三方 skill 仅作拆解与展示,安装使用风险自负,版权归原作者。

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

第一铁律:数字就是信息——价格与折扣必须推导,绝不输入两次。

skills/promo-video/SKILL.md
1. **The number is the message — keep it exact.** Prices and percentages must be computed, never typed twice. Derive `now` and the `% off` from `was` and the discount so they can't disagree.
注:「精确」在这里指数据来源唯一,而非显示格式。

只存真源:now 与 pct 不落数据、必须由 was/discount 派生,因此不可能自相矛盾。

skills/promo-video/references/promo-components.md
One object per product. `now` and `pct` are NOT stored — they are derived, so they can never contradict `was` and `discount`. Store only the source of truth.
注:结构性保证,而非靠人工核对。

先划线、后落价——顺序错会被读成故障。

skills/promo-video/SKILL.md
Order matters: strike the old price *first*, then drop the new one. Striking and counting at the same instant reads as a glitch.
注:实现上 strike 是 0–12 帧宽度插值,新价从第 8 帧起 spring 计数。

金额先四舍五入到分再格式化,用 Intl 呈现。

skills/promo-video/references/promo-components.md
Compute every displayed figure from the offer in one place. Round to cents *before* formatting so the price a viewer reads is exactly the price they pay.
注:SKILL.md 同口径要求 Round currency to cents + Intl.NumberFormat + tabular-nums。

批量前逐行校验、坏行即停:静默渲染坏行正是「470 美元标成 47 美元」的来源。

skills/promo-video/references/promo-components.md
A batch that silently renders a bad row is how a $470 item ships labelled "$47". Validate every offer before rendering and stop the run on the first bad one.
注:校验项含 now<was、discount∈(0,1)、code 非空、deadline 可解析、图片存在。

紧迫感必须真实:给死线或像真倒计时,绝不用假计时器。

skills/promo-video/SKILL.md
Urgency lifts conversion only when it's real. Show a concrete deadline ("Ends Sun 11:59pm") or a live-looking countdown — never a fake timer.
注:并要求死线节拍保持 ≥2s 可读、倒计时另起一行。

一帧一个焦点:一个折扣、一个码、一个 CTA;两个优惠就做两条片。

skills/promo-video/SKILL.md
2. **One offer, one focus per frame.** A single discount, a single code, a single CTA. Competing offers kill the urgency. If there are two deals, make two videos.
注:折扣数字是全屏最响元素(比品牌、比产品都大)。

按价位选择呈现方式:高价用百分比,低价用固定金额。

skills/promo-video/SKILL.md
Choose the framing by price: percentage for higher-priced items ("40% OFF" beats "$32 off"), a flat amount for low-priced items ("$5 off" beats "8% off").
注:把「怎么说」也做成规则,而非留给审美判断。

验证环重点是「钱对不对、图在不在」:数字精确与产品图加载不可妥协。

skills/promo-video/SKILL.md
This is heavy-tier: the deliverable is an MP4, not a live page. A promo carries exact money — the verify pass is mostly *are the numbers right and is the product image actually there*.
注:检查项含 was/now/% 精确、划线画在旧价上、码拼写正确、图是那一张。

2核心能力

01offer 派生模型(priceModel:now/pct/off 全部由 was 派生)
02逐行校验(now<was、discount 区间、code、deadline、图片存在)fail loud
03discount badge(折扣数字是画面最响元素)
04was→now 划线掉价(strike 先行 + spring 计数 + 落定过冲)
05promo code chip(mono 字体 + 虚线框 + 静止便于截图)
06倒计时或静态死线(6s 片里静态死线更干净)
07template × data 批量(价格表 → N 条片,价格由数据保证)
08多比例 reframe(把 badge/价格/码/CTA 都放进中心安全区)

3外部依赖

类型依赖
packageremotion(frame/spring/interpolate/Img/Sequence)
clinode fs(校验时检查图片是否存在)
packageIntl.NumberFormat / Intl.DateTimeFormat(运行时内置,无第三方包)
clinpx remotion render(逐 offer 渲染)
cliffmpeg / ffprobe(仓库共享 contact-sheet.sh、probe-mp4.sh)
networkiart.ai(reference 尾部推广链接,具 utm 参数;仅读者点击才请求)

4风险提醒 风险提醒:橙色 · 评估后使用

风险提醒:橙色 · 评估后使用
  • 倒计时实现引入挂钟时间,破坏确定性 — Date.now() 出现在 reference 组件里,与 SKILL.md 的铁律冲突;服务端或并行渲染会得到不一致的剩余时间,甚至跨渲染回跳。
  • 示例代码有拼写错误 — AbstractFill 不是 Remotion 导出(应为 AbsoluteFill),照抄即报错。
  • 商业欺诈仅被算术一致性挡住 — 虚高原价(was)以制造虚假折扣不会被拦;skill 校验 now<was,但不校验 was 是否为真实历史价。
  • 数据校验是结构性的,不查真伪 — code/url/cta 文案可任意填写,skill 不校验链接可用性或文案合规。
  • 商业引流位 — reference 尾部固定 iart.ai 推广段与 utm 链接。
风险提醒:橙色,评估后使用。触发项是分级范式「依赖第三方插件、镜像、远程包」:skill 目录为纯 Markdown(无脚本、无凭证读取、无 env 读取),但交付路径要求 remotion 与 @remotion/cli(经 npx 从 npm 获取执行)以及 zod 契约;同仓 `remotion-video` 已按同口径判橙,此处与之一致。**明确不成立的项**:无凭证/cookie/环境变量读取(token 扫描零实质命中);不把商品素材上传外部服务(渲染本地完成);无 TLS 降级、无 `--no-verify`、无沙箱关闭、无反自动化绕过。触发条件:仅在真的渲染视频时发生。

5第二遍独立确认

  • [discrepancy] 「全部为帧纯函数、禁用 Date.now()」与 reference 实现是否一致 — SKILL.md 明确要求所有动画值为 useCurrentFrame() 纯函数(no CSS transitions, timers, Date.now()),其自身示例也写「derived from a deadline prop (deterministic per frame)」;但 promo-components.md 的 Countdown 实际用 `const remaining = Math.max(0, (end - Date.now()) / 1000 - frame / fps);`——引入挂钟时间,同一 props 在不同时刻渲染会得到不同剩余时间,不可复现。
  • [discrepancy] 组件 import 名是否可运行 — promo-components.md 的 composition 写成 AbstractFill(Remotion 并无该导出,应为 AbsoluteFill),且使用处同样写 <AbstractFill …>;照抄会直接 import 失败。
  • [ok] 折扣公式是否两处一致 — SKILL.md 的 Math.round((1 - now / was) * 100) 与 priceModel 的 Math.round((1 - now / o.was) * 100) 同式同精度。
  • [ok] 校验清单是否与 SKILL.md 文字一致 — validateOffer 覆盖 now≥0 且 <was、discount∈(0,1)(当 now 未给)、code 非空、deadline 可解析、图片存在;与 SKILL.md 的 now < was / code present / image exists 一致且更强。
  • [ok] 节拍/时长的一致性 — SKILL.md 的 10s 节拍表与 reference 的帧调度(hook 0 / badge 27 / price 60 / code 210 / cta 270)及 --frames=0-299(10s@30fps)一致。
  • [ok] 「先划线后落价」顺序的实现 — PriceDrop 的 strike 从 f=0 起(0–12 帧画完),新价 spring 从 f-8 起跑;与 SKILL.md 的 strike the old price first 时序意图一致。

6结论

  • 价格只存真源、now/pct 全部派生,从结构上排除自相矛盾的错价
  • 批量前逐行校验、坏行即停,专门防「470 卖成 47」
  • 金额先取整到分再格式化,附带 tabular-nums 防抖动
  • 拒绝假紧迫感,把诚实写成明文规则
  • 折扣呈现方式按价位分流(百分比 vs 固定金额),有可执行判据
  • 适合:电商运营/增长团队做促销公告片:折扣揭示、划线掉价、促销码与死线、按价格表批量出 N 条(200 条级),且要求价格绝对准确。
    不适合:性能广告与 A/B 投放(用 ad-creative-video);客户证言/评价(用 testimonial 类);长期品牌片或产品讲解(本 skill 只做 6–15s 的 offer 公告)。
    安装 agent 直装可复制
    ① 本站镜像 更新 2026-09-28
    方式 A · 人下载镜像包下载 promo-video.tar.gz
    sha256: 0c3e003bf0617b1c…
    方式 B · JSON 格式安装指南,复制给 agent
    安装指南
    agent 读 JSON 指南后会自动从本站下载安装,无需更多说明。
    ② 上游 GitHub · 原始来源
    能访问 GitHub?直接去上游安装(实时版,可能已更新)GitHub 原始 ↗
    本页镜像锁定 commit 2bd0dd19c9;上游为实时仓库。
    来源信息 GitHub 原始
    作者 / 仓库iart-ai / iart-ai/ecommerce-video-skills
    Stars8
    最近推送2026-06-22
    本 skill commit2bd0dd19c9
    许可MIT(仓库根 LICENSE:「MIT License」/「Copyright (c) 2026 iart.ai」;.claude-plugin/plugin.json 与 README「## License」同声明 MIT)
    本站信息
    收录日期2026-09-06
    分类内容创作
    侦查报告AI 侦查 · 2 遍 · 2026-09-06
    本站镜像与 GitHub 原始是不同来源:本站锁定 commit 快照经 /r2 分发;GitHub 为实时上游,内容可能已更新。
    同分类邻近