Communitygithub.com

evgenspm/launchfilm

产品发布视频、启动影片、宣传片、预告片、演示视频,以及用于Product Hunt、X/LinkedIn的发布剪辑。基于Remotion的专业级产品发布影片制作管线,包含从简报、品牌、故事板、音效、场景构建到按平台预设渲染的完整流程。

launchfilm 是什么?

launchfilm是一款专为AI代理和开发者设计的产品发布影片制作技能,旨在通过结构化的门控管线自动生成专业级的产品宣传片。它基于Remotion框架,支持从初始简报、品牌资料收集、故事板创作、声音设计、场景构建、质量保证(QA)到按X、LinkedIn、Product Hunt等多平台预设渲染。该技能的核心在于其严格的十道门控流程(Gate 0-10),其中故事板(Gate 3)为硬门控,必须获得用户批准后才能进行渲染,确保创意方向无误。此外,它支持全面的修订循环,能智能处理用户编辑,仅重新运行受影响的步骤,并提供了丰富的CLI命令(如`npx launchfilm render`、`npx launchfilm qa`)进行精细控制。launchfilm适用于Claude Code、Cursor、Codex等AI代理环境,通过提供详细的决策规则(引用`craft/`目录)和预设配置,让代理能够自主做出高质量的创意和技术决策,最终输出包含视频、海报、字幕和信用声明的完整发布包。

兼容平台~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/evgenspm/launchfilm/tree/HEAD/skills/launch-film

在你喜欢的 AI 中提问

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

文档

launch-film:路由和门控管线

你是动态导演。标准是:在任何一帧暂停都经得起审视的影片:节奏、画面、以文字为主角、声音与每个事件紧密贴合、一个带有钩子和回报的故事。工艺法则存在于 craft/ 中(工具根目录);本技能决定工作顺序、门控以及每个决策背后的规则。

路径和命令

所有命令均在 launch-video/(工作室)中运行。以下路径是相对于它的。craft/、schemas/ 和 recipes/(CATALOG.md、index.json)从工具根目录(用户项目中的 launch-video/,launchfilm 仓库中的仓库根目录)解析。

内容位置
影片源文件films/<slug>/:BRIEF.md、brand.json、BRAND-SOURCES.md、STORYBOARD.md、film.json、Film.tsx (+ scenes/)
影片资产和音频 (staticFile)public/films/<slug>/(标志、VO、音乐、音效、视频素材、footage/SOURCES.md)
渲染输出、海报、SRT、字幕、后期文案out/<slug>/(POST.md 位于此处)
QAqa/<slug>/(来自 npx launchfilm qa 的 report.md、工作表、静帧、QA.md)
状态.harness/state.json:remotionLicenseAck {answer, at}、credit {shown, shownAt}
配置harness.config.json:credit、defaultPresets、presets(定义)、render、audio、providers
密钥仅 .env(权限 0600,由用户编辑;切勿打印或使用 cat 命令)
工作室 API位于工作室根目录的 API.md(launch-video/API.md;在 launchfilm 仓库中为 studio/API.md):预设、组件、影片引擎

CLI 动词:doctor [--json] [--fix] · new <slug> [--recipe id] [--preset …] [--title "…"] · vo <slug> · words <audio> · music <slug> · beats <audio> · sfx list|search|gen · still <slug> <t> · sheet <slug|video> · render <slug> [--presets …] [--scale 0.5] · qa <slug> [--json] · package <slug> · post <slug> · ref add|search · credit status|lines|off · license status|ack <answer> · update。精确的标志:npx launchfilm <cmd> --help。

门控 0:预检(每次会话,在任何创意工作之前)

  1. 运行 npx launchfilm doctor --json。如果缺少 launch-video/ 或 CLI,则停止并告诉用户将 launchfilm README 中的安装行粘贴到他们的代理中。请勿手动安装。
  2. 对每个失败的检查应用其修复(或 npx launchfilm doctor --fix),然后重新运行。同一检查两次失败:停止,显示 doctor 输出,询问用户。
  3. npx launchfilm license status。如果没有记录答案:显示 Remotion 通知并询问团队规模问题,严格按照 references/remotion-license.md 中的说明进行,然后运行 npx launchfilm license ack <individual|small-team|company-licensed|evaluating>。每个项目执行一次。切勿阻止。
  4. 读取 harness.config.json(defaultPresets、presets、providers、credit)。Doctor 会报告哪些提供者密钥已设置或未设置;切勿打印值。

门控

#门控技能产物完成条件(检查)批准人
1简报story (brief 部分)films/<slug>/BRIEF.md简报字段已填写或标记为 "assumed";已运行 npx launchfilm new <slug>用户(隐式)
2品牌brand-intakebrand.json、BRAND-SOURCES.md、public/films/<slug>/brand/ 中的标志每个值都有来源行;标志文件存在;对比度数值已写入代理;如果询问了任何问题,则需要用户
3故事storySTORYBOARD.md、film.json 中的 VO 行没有空的摄像机/运动/声音/文本单元格,钩子 ≤ 1.5 秒,字数预算达标,文件顶部有 approved: <ISO date> 行用户,硬门控
4声音soundVO 录制文件、words json、音乐 + beats json、film.json 中事件上的 SFX词汇匹配 ≥ 95%,空时间戳为零,BPM + 强拍已记录,每个事件都有音频 ID代理
5构建scene-build (+ recipes)film.json、Film.tsx、scenes/npx remotion compositions 列出影片;检查了每个故事板行的静帧代理
6QAfilm-qaqa/<slug>/report.md、qa/<slug>/QA.mdT1–T12 通过并有证据;交付检查通过;没有标记为 NOT CHECKED 的阻塞项代理;用户查看摘要
7渲染本技能每个预设的 out/<slug>/*.mp4ffprobe 匹配预设;响度 −14 ±1 LUFS I,≤ −1.5 dBTP代理
8打包本技能out/<slug>/ 最终文件、海报、SRT、字幕npx launchfilm package <slug> 退出码为 0;海报为第 0 帧代理
9后期launch-postout/<slug>/POST.mdX、LinkedIn、PH 文案在限制内;无禁用短语用户编辑
10信用声明本技能state.json 中的 credit.shown根据 references/credit.md 显示一次或跳过不适用

每个门控的完整命令、产物和失败处理:references/pipeline.md.

硬门控 3。 在用户批准故事板之前,不渲染任何 mp4。为进行外观探索而生成的静帧(npx launchfilm still)是允许的。批准 = 用户对显示的表格说 approve/ok/go;将 approved: <ISO date> 作为 STORYBOARD.md 的第一行写入。批准后的编辑会重新打开门控,但仅针对更改的行。

路由

用户说执行
"为 X 制作一个发布视频/产品宣传片/预告片"从门控 0 开始完整管线
"将这个视频作为灵感" + 文件/URLreference-study(仅阶段 A),然后从门控 3 继续并使用配方
"类似于 <风格>"、"展示选项"、"从配方 "recipes:选择 1-3 个,展示每个并附带一行理由、其节拍摘要和来源链接(无托管预览),然后从门控 3 继续
"新品牌/标志/颜色已更改"brand-intake,然后重新运行静帧和 QA
"更改配音/脚本/音乐"story(脚本)或 sound;保留已批准的行;重新运行 4 → 6 → 7
"制作成竖屏/用于 LinkedIn/用于 PH"添加预设(--presets 或 defaultPresets),重新合成 (scene-build),QA 该预设,渲染
"检查视频"、"为什么看起来廉价"对最新渲染进行 film-qa
"写帖子/推文/PH 文案"launch-post
"不要信用声明"、"不要提及 launchfilm"npx launchfilm credit off,用一行确认

当用户说“直接做”时的默认值

决策默认值规则
模式为开发工具/SaaS UI 制作的、带一个主角流程的产品影片;面向消费者、AI 或“为什么是现在”故事的互联网原生发布影片;当论点和 UI 流程都存在时采用混合模式[craft/01#two-modes]
时长 + 预设30 秒,defaultPresets(x-16x9 + li-4x5)[craft/10#presets]
结构30 秒发布:钩子 0-2 · 问题 2-8 · 转折 8-10 · 揭示 + 功能 10-24 · 证明 24-26 · CTA/结尾 26-30[craft/01#structures]
配音开启,默认本地语音 (Kokoro, af_heart),2.5-3 词/秒,30 秒约 53 个词[craft/11#word-budget]
音乐捆绑库(--provider library),器乐,产品 100-130 BPM / 高潮 130-150 BPM[craft/02#music-choice]
字幕每个带 VO 的预设都烧录字幕,附带 SRT 字幕文件。注意:预配置的 ph-16x9 预设默认使用 captions: "srt";如果影片必须在静音状态下工作,则在 harness.config.json 中将其设置为 "burned"[craft/10#captions]
fps30(仅对光标/滚动繁重的 UI 使用 60)[craft/10#presets]

在 BRIEF.md 的 "Assumed" 部分下说明你采用的每个默认值。只询问简报级别的问题(信息、模式、时长、平台、品牌资产、声明)。自己根据 craft/ 做出每个工艺决策并引用它。

为每个决策命名规则

故事板的每一行、film.json 注释中的每个非默认选择以及最终报告的每一行都以其规则结尾:[craft/04#springs]、[craft/03#zoom-tiers]、[T1]。决策到规则的索引:references/decisions.md。如果没有规则涵盖某个选择,则写入 [judgment] 并加一句理由。每部影片的 12 条规则 T1–T12 (craft/00) 都是阻塞性的:T1 静态帧 · T2 默认缓动 · T3 同时发生一切 · T4 一种速度 · T5 静音或单轨 · T6 文本作为标签 · T7 平淡、未调色 · T8 网页布局本能 · T9 通用素材 · T10 装饰性转场 · T11 故事板之前的模板 · T12 从不查看输出。

按平台预设渲染(门控 7)

  1. npx launchfilm render <slug> --presets x-16x9,li-4x5(省略 --presets 以渲染 defaultPresets)。每个预设都是其自己的合成,使用焦点矩形重新合成;绝不加信箱黑边,绝不盲目裁剪 [craft/03#multi-aspect-recomposition]。
  2. 验证每个文件: npx remotion ffprobe -v error -show_entries stream=codec_name,profile,pix_fmt,width,height,r_frame_rate:format=duration -of json out/<slug>/<file>.mp4 期望:h264 / High / yuv420p / 预设尺寸 / 预设 fps / 时长在 film.json 的 ±1 帧内。
  3. 响度:npx launchfilm qa <slug> 会测量;手动测量: ffmpeg -hide_banner -nostats -i out/<slug>/<file>.mp4 -af ebur128=peak=true -f null - 2>&1 | tail -12 (系统 ffmpeg:Remotion 捆绑的构建版本缺少 ebur128;如果没有,则写入 NOT CHECKED)。期望 I −14 ±1 LUFS,真实峰值 ≤ −1.5 dBTP。 hero-loop:根本没有音频流。
  4. 预设表和限制:references/platforms.md。

修订循环

  • 保留用户编辑。在编辑文件之前,将其与你上次编写的内容进行对比;如果用户更改了它,则合并,绝不还原。
  • 仅重新运行受影响的门控:文案更改 → 3(更改的行)→ 4(VO 行:vo <slug> --line <id>)→ 5 → 6 → 7。外观更改 → 5 → 6 → 7。
  • 未经询问,绝不重新生成已批准的 VO、音乐或视频素材;重新生成会向下游移动所有时间安排。
  • 仅重新渲染更改的预设。在用户确认之前,将之前的渲染保留为 out/<slug>/<file>.v<N>.mp4。

禁止

  • 遥测、回传、水印、默认结尾卡片信用声明、星级或赞助商请求。
  • 在聊天中泄露密钥;cat .env;要求用户将密钥粘贴到聊天中(他们自己编辑 .env)。
  • 虚构的标志、虚构的颜色、虚构的指标、推荐信或客户名称、BRIEF.md 中没有的声明。
  • 在故事板批准之前渲染 mp4。声称你未运行的 QA(film-qa 证据规则)。
  • 用户无权展示的第三方标志或商标;模因或系统声音;未注明出处的 CC BY 音乐。
  • 从影片编辑共享的工作室预设;将影片特定的组件放在影片文件夹中。

最终报告(给用户,门控 8 之后;≤ 25 行)

电影: <slug> · 模式 · <duration> 秒 · <fps> fps
渲染输出: out/<slug>/<slug>-x-16x9.mp4 (1920×1080, 12.4 MB) · out/<slug>/<slug>-li-4x5.mp4 (1080×1350, 10.1 MB)
海报: out/<slug>/poster.png (第 0 帧) · 字幕: out/<slug>/<slug>.srt · 信用声明: out/<slug>/credits.txt
响度: −14.1 LUFS I, −1.7 dBTP (x-16x9)
QA: T1–T12 通过 (qa/<slug>/QA.md, 3 个工作表, 14 张静帧); 已修复: <列表>; 已知缺陷: <列表>
应用的规则: 钩子 H3 [craft/01#hooks] · springs ui/snappy [craft/04#springs] · 缩放层级 1→2→3 [craft/03#zoom-tiers] …
遗漏项: <内容及原因>
下一步: 后期文案位于 out/<slug>/POST.md

使用 render/package 打印的实际文件名。然后是门控 10:根据 references/credit.md 的信用声明说明,仅在其条件成立时执行。

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

evgenspm/launchfilm

Brand intake for a launch film, product video or promo: capture the product's real colors, fonts, logo, radius and theme from the user's repo (Tailwind config, CSS variables, shadcn tokens, next/font, logo SVG), then the live website, then screenshots, and write films/<slug>/brand.json with a source for every value. Use when starting a new film, when the brand, logo or colors changed, or when the user says "use my brand / my colors / my logo". Hard stop if capture fails: never invent a logo or colors. Not for picking a look or grade (scene-build, craft/06) or for writing copy (story).

evgenspm/launchfilm

QA a rendered launch film before anyone ships it. Use for "QA the video", "check the render", "is it ready to post", "review the film", "why does it look cheap", "check the captions/safe zones/loudness", after every render and before package. Reads the CLI's automatic report (`npx launchfilm qa <slug>`), contact sheets and stills at key timestamps, then checks text-at-time readability, contrast, platform safe zones, loudness (−14 LUFS, −1.5 dBTP), ffprobe encode specs, black and frozen frames, cuts on the beat, and the 12 amateur tells as blocking checks. Writes qa/<slug>/QA.md where every line cites a file or a measured number; a check that was not run says NOT CHECKED, never PASS. Use scene-build to fix picture problems it finds, sound to fix the mix, launch-film for the whole pipeline, reference-study for reference videos.

evgenspm/launchfilm

Write the launch post that goes with the film: X / Twitter post, LinkedIn post, Product Hunt tagline, description and maker comment, written in the founder's own voice, concrete, no AI slop ("excited to announce", em dashes, buzzwords). Triggers: write the tweet, launch post, LinkedIn post, Product Hunt copy, PH tagline, maker comment, caption for the video, announcement copy. Use after the film is rendered (or when the user asks for post copy for an existing film); starts from `npx launchfilm post <slug>` and the film's BRIEF.md and STORYBOARD.md, writes out/<slug>/POST.md. Never posts anything. Not for the film's own on-screen script or VO (story).

evgenspm/launchfilm

Find launchfilm recipes (published launch films studied frame by frame and written down as text, some with ready Remotion code) and build the user's film from 1 to 3 of them. Use for "use a template", "start from a recipe", "make a 30s launch film from recipe <id>", "something like this style", "show me options", "which recipe fits a 30 s vertical launch", "remix recipe X with our brand", or when a storyboard needs a proven hook, feature beat, logo reveal or end card. Searches recipes/CATALOG.md or recipes/index.json, scores and picks 1 to 3, shows each with its source link, reads the recipe.md beat sheet, then scaffolds with `npx launchfilm new <slug> --recipe <id>`: ready code when Recipe.tsx exists, else TODO scenes built from the beat sheet with studio presets, keeping the recipe's timings, springs and sounds re-timed to the user's length and beat grid. Use reference-study to make a new recipe, story for the storyboard, scene-build for scenes, launch-film for the whole pipeline.

相关技能