Communitygithub.com

evgenspm/launchfilm

品牌信息采集:用于发布影片、产品视频或宣传片——从用户的仓库(Tailwind 配置、CSS 变量、shadcn 令牌、next/font、Logo SVG)、实时网站和截图捕获产品的真实颜色、字体、Logo、圆角和主题,并输出 films/<slug>/brand.json,记录每个值的来源。当开始新影片、品牌/Logo/颜色发生变化,或用户说“用我的品牌/我的颜色/我的Logo”时使用。采集失败则硬性停止:绝不虚构 Logo 或颜色。不用于选择风格或分级(场景构建、craft/06),也不用于撰写文案(故事)。

launchfilm 是什么?

该技能专为 AI 代理(如 Claude Code、Cursor、Codex 等)设计,用于自动采集产品的真实品牌信息并输出结构化的 `brand.json` 文件。它通过严格的优先级顺序(用户仓库 > 实时网站 > 截图 > 询问用户)获取颜色、字体、Logo、圆角半径和主题模式数据,确保每个值都有明确来源,绝不依赖猜测或默认值。该技能支持 Tailwind CSS v3/v4、shadcn 令牌、next/font 以及自定义 CSS 变量,并可检测多种文件路径(如 Logo 的 SVG、PNG 等)。执行过程中会进行对比度检查、字体映射,并生成源文件记录(BRAND-SOURCES.md)。如果无法找到 Logo 或颜色,技能会要求用户提供,而不是虚构。最终输出仅包含公开信息,不存储敏感数据。适用于品牌信息更新、新项目初始化或用户明确要求使用自有品牌的场景。

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

在你喜欢的 AI 中提问

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

文档

brand-intake:真实令牌输入,brand.json 输出

影片必须看起来像产品本身,因此令牌来自产品本身,而非个人品味。源优先级顺序:遇到第一个能提供字段值的源即停止,并记录每个值的来源:

  1. 用户的仓库(最佳:精确的令牌、真实字体名称、真实 Logo 文件)。
  2. 实时 URL(计算后的样式、meta 标签、首部 SVG)。
  3. 用户提供的截图(像素采样)。
  4. 向用户询问任何仍然缺失的信息。绝不猜测。

输出(路径相对于 launch-video/):films/<slug>/brand.json、films/<slug>/BRAND-SOURCES.md,以及按原样复制到 public/films/<slug>/brand/ 的 Logo 文件(以便场景通过 staticFile() 加载它们)。 提取配方:references/sources.md。字段映射、字体回退、对比度计算:references/brand-json.md。

步骤

  1. 找到产品根目录。 如果 launch-video/ 位于产品仓库内部,则仓库根目录为上一级。否则询问 URL 和截图。注意技术栈:package.json 依赖(tailwindcss 版本、next、@fontsource/*、shadcn)。
  2. 从仓库获取颜色。 按顺序:Tailwind v4 @theme 变量(CSS 中)、Tailwind v3 tailwind.config.{js,ts,cjs,mjs} 中的 theme.extend.colors、shadcn 令牌(globals.css 中的 --background、--foreground、--primary、--muted、--card、--accent)、其他 :root 自定义属性。将 HSL/OKLCH/RGB 转换为 6 位十六进制。使用营销网站使用的主题(深色或浅色),不要混合两者。
  3. 从仓库获取字体。 next/font/google 或 next/font/local 导入、@fontsource* 依赖、@font-face、body/html/h1 上的 font-family、Tailwind fontFamily。记录实际使用的字体名称和字重。
  4. 从仓库获取 Logo。 首先查找 SVG:public/logo*.svg、public/*mark*.svg、app/icon.svg、public/favicon.svg、src/assets/*logo*、src/components/*Logo*(内联 JSX SVG:提取 <svg>),然后是 PNG ≥ 512 px(apple-touch-icon.png 为 180 px:仅作为马克的最后手段,绝不能用于文字标记)。按原样复制到 public/films/<slug>/brand/,不做任何修改。
  5. 获取圆角和主题。 --radius 或 Tailwind borderRadius;主题 = 深色(如果背景相对亮度 < 0.2)。
  6. 从实时 URL 填补空白(references/sources.md § 实时 URL):theme-color meta、og:image、link rel=icon、首部内联 SVG、body、主按钮、h1 的计算样式。
  7. 从截图填补空白: 在指定点(页面背景、正文文本、主按钮、卡片)采样像素。在 BRAND-SOURCES.md 中记录像素坐标。
  8. 名称、标语、URL: 来自 package.json 的 name/description、网站 <title>、英雄区 h1、og:description、README 第一行。使用用户自己的措辞;这里绝不编写新标语(故事负责文案)。
  9. 映射 你不能分发或加载的字体,按其角色映射到一个已分发 OFL 字体(brand-json.md § 字体)并说明。
  10. 对比度检查(brand-json.md § 对比度):前景色在背景色上对比度 ≥ 4.5:1(目标 7:1),强调色在背景色上对比度 ≥ 3:1。写出具体数值。强调色不通过 → 保留它用于形状,选择前景色作为其上的文本色。
  11. 写入 brand.json,然后如果 schemas/brand.schema.json 存在则进行验证: npx -y -p ajv-cli@5 -p ajv-formats ajv validate --spec=draft2020 -c ajv-formats -s schemas/brand.schema.json -d films/<slug>/brand.json
  12. 写入 BRAND-SOURCES.md:每行一个值 → 来源(文件:行号、URL + 选择器、或截图 + x,y)。
  13. 向用户展示一个 6 行摘要(名称、主题、6 个十六进制色样、字体、Logo 文件、任何映射或询问的信息)。

硬性停止(不要继续执行流程)

情况执行绝不
仓库、网站或截图中没有 Logo 文件询问:“请发送 Logo 文件,最好为 SVG 或 ≥ 512 px 的透明 PNG。”绘制、描摹、生成或近似一个 Logo
Logo 仅为一个极小的 favicon询问更大的文件将 32 px 的 favicon 放大为英雄标记
未捕获到颜色(无仓库访问权限、网站被屏蔽、无截图)询问 URL 或 2–3 张截图,或十六进制色码挑选“好看”的颜色或默认调色板
调色板冲突(应用 vs 营销)询问影片应使用哪一个;默认为营销网站混合它们
用户因为不存在 Logo 而想要一个文本文字标记仅在明确回答“是”时允许:显示字体中的产品名称,前景色将其呈现为他们的 Logo

规则

  • 逐字节复制 Logo 文件。除非用户要求,否则不要重新着色、裁剪或“清理”Logo。
  • 未经用户确认其拥有权利,绝不使用其他公司的 Logo 或用户的客户的 Logo。
  • 绝不从许可证禁止将字体重新分发到仓库的来源(如 Fontshare FFL 字体 Satoshi 或 General Sans、Apple SF Pro)获取字体:将其映射(brand-json.md § 字体)。
  • brand.json 不包含任何秘密,也不包含超出公开产品名称和 URL 的个人数据。
  • 重新运行采集仅覆盖来源更改的字段;保留用户手动编辑的字段(先进行差异比较)。
  • 下游技能仅读取 brand.json;绝不将品牌十六进制值硬编码到场景中 [craft/06#grade-discipline]。

Individual skills in this repo

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

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

Launch video, launch film, product video, product launch, promo, teaser, trailer, demo video, Product Hunt video, X / LinkedIn launch clip, reel, hero loop, motion graphics, "make a video for my product", Remotion film. Router and gated pipeline for making a pro product-launch film with the launchfilm studio in ./launch-video: brief, brand intake, story and storyboard (user approves), sound, scene build, frame QA, render per platform preset, package, post copy, one-time credit note. Use this first for any request to make, remake or revise a launch or product film; it calls the sibling skills (brand-intake, story, sound, scene-build, recipes, film-qa, launch-post). Do not use it to study a reference video (use reference-study), to browse recipes only (use recipes), or for generic Remotion questions unrelated to a launch film.

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.

相关技能