ucsandman/marketing-studio
GitHub: ucsandman/marketing-studio
一个由 Claude Code agent 驱动的营销工作室,通过单条命令自动生成产品发布所需的全套视频、图像和社交媒体物料。
Stars: 84 | Forks: 14
# Marketing Studio
一个由 agent 驱动的、专为 Claude Code 设计的营销工作室。你只需在产品的 repo 中输入 `/marketing`;agent 会引导你的品牌资料,录制你的应用,在此引擎中渲染一整套营销物料,并将最终文件复制回给你。

*工作室仅凭品牌 token 为一款真实产品渲染出的动态 OG 循环。更多内容请见 [`examples/`](examples/)。*
## 唯一的一条命令
```
/marketing
```
一次运行会按顺序生成以下内容:
| # | 物料 | 背后技能 |
|---|-------|-----------------|
| 1 | Logo 展示 (Blender + Remotion) | `/logo-reveal` |
| 2 | 带有镜头缩放和光标的产品演示 (Playwright 捕获) | `/product-demo` |
| 3 | 30 到 90 秒的发布视频,组合了演示、logo 和文案 | `/launch-video` |
| 4 | 为发布视频配制的配音和音乐 | `/audio-track` |
| 5 | 各平台的社交媒体短片 (X, LinkedIn, TikTok) | `/social-clip` |
| 6 | OG 图像、动态 OG 循环、README GIF | `/og-assets` |
这个顺序是刻意安排的:成本最低的合成物会最先渲染,这样品牌 token 的错误就能在昂贵的物料生成前暴露出来;演示只录制一次,其素材将提供给后续所有环节;而音频只有在发布视频的画面锁定后才会进行配制。运行过程会在磁盘上保留一个清单,因此中断的 session 会从停止的地方恢复,而不是重新开始。
围绕这些物料,pipeline 还添加了:
- **一份衍生内容简报。** agent 会读取你的产品 repo(README、路由、落地页)并合成故事——包括引子、按优势排序的功能、分幕解说、各平台文案——将其整合为一个经过验证的 `brief.json` 供所有构建程序使用。在任何内容渲染之前,你可以在故事板页面上审批整个故事。
- **一个文案 linter。** 每一行生成的文案在进入渲染之前,都会经过限制,以剔除破折号、夸大宣传和 AI 垃圾词汇。
- **电影级调色和专属品牌动态个性。** 为每个品牌调整颗粒感、暗角和泛光,并使用 `motion` token 块,让每个品牌的编排都独具特色。
- **导出矩阵。** 画面锁定的发布视频和社交媒体短片通过响应式布局(而非裁剪)转换为 16:9、9:16、1:1 和 4:5 比例,并带有用于静音自动播放的烧录字幕版本以及 SRT/VTT 附带文件。
- **任务控制中心。** 一个本地点击审批画廊:观看物料生成进度,在昂贵的渲染之前审查幕间边界联系表,通过备注进行批准或要求重做,运行过程会随之响应——无需使用终端。
- **精心设计的音效。** 幕间切换的嗖嗖声、功能展示的滴答声,以及引入 CTA 的高昂音效,这些音效一次性生成为共享的 SFX 库,并自动混入配音下方。
- **可直接粘贴发布的套装和素材缓存。** 每个平台都会获得一个包含正确宽高比视频、经过 lint 审查的字幕、alt 文本和发布清单的文件夹;套装根目录还包含 `manifest.json`,这是一个机器可读的索引,launch-engine 会读取它以自动将视频附加到 X 和 LinkedIn 帖子中。得益于捕获和 Blender 暂存的内容哈希缓存,未更改的产品 UI 绝不会被重新录制。
每种物料也可以独立运行:可以在任何 repo 中单独运行 `/logo-reveal`、`/product-demo`、`/launch-video`、`/audio-track`、`/social-clip` 或 `/og-assets`。
## 示例输出
以下所有内容均由 `/marketing` 针对两款真实产品运行生成,未经任何编辑。请打开声音:配音和音乐也是自动生成的。
### noban.gg (CS2 皮肤套利仪表盘)
https://github.com/user-attachments/assets/7d184b12-1afc-4129-a4f0-87a33da986e3
| 文件 | 物料 |
|------|-------|
| [`launch.mp4`](examples/noban/launch.mp4) | 60秒发布视频,包含生成的配音和音乐 |
| [`demo.mp4`](examples/noban/demo.mp4) | 带有精确镜头缩放的产品演示 ([静态预览](examples/noban/demo-still.png)) |
| [`logo-reveal.mp4`](examples/noban/logo-reveal.mp4) | Blender 绘制式 logo 展示 |
| [`social-launch.mp4`](examples/noban/social-launch.mp4) | X/LinkedIn 公告短片 |
| [`og.mp4`](examples/noban/og.mp4) | 动态 OG 循环 |
### paperroute.gg (壁纸广告网络)
https://github.com/user-attachments/assets/1bf89936-4f8b-405a-b507-5f051ae18ef8
| 文件 | 物料 |
|------|-------|
| [`launch.mp4`](examples/paperroute/launch.mp4) | 带音频的发布视频 |
| [`demo.mp4`](examples/paperroute/demo.mp4) | 产品演示 |
| [`logo-reveal.mp4`](examples/paperroute/logo-reveal.mp4) | Blender logo 展示 |
| [`social-x.mp4`](examples/paperroute/social-x.mp4), [`social-linkedin.mp4`](examples/paperroute/social-linkedin.mp4), [`social-vertical.mp4`](examples/paperroute/social-vertical.mp4) | 各平台的社交媒体短片 |
| [`og.png`](examples/paperroute/og.png), [`og.gif`](examples/paperroute/og.gif), [`og.mp4`](examples/paperroute/og.mp4) | OG 图像、循环和视频 |
| [`readme.gif`](examples/paperroute/readme.gif) | README 尺寸的 GIF(即本页面顶部的那个) |
## 工作原理
- **一个引擎,多个品牌。** 所有渲染过程都在此 repo 中进行,绝不在你的产品 repo 中执行。最终物料会在结束时复制出去。
- **Remotion 是核心骨干。** 每个最终视频都通过 `studio/` 中的 Remotion 合成进行渲染 (SocialClip, ProductDemo, LogoReveal, LaunchVideo, AnimatedOG)。
- **品牌即数据。** `brands/.json` 保存了你产品的 token(13 种颜色、3 种字体、标语、语音规则),并经过 zod 验证。模板会解析 `getBrand(brandId)` 且从不硬编码品牌值,因此接入新产品只需添加一个 JSON 文件和一个 logo 标记组件,而不必 fork。
- **供给器生成原始素材。** Playwright 录制你运行中的应用以供演示使用,headless Blender 渲染 3D logo 展示,ElevenLabs 生成配音和音乐,而 ComfyUI 可以添加 AI 背景。每个供给器在其依赖项缺失时都能优雅降级。
- **知识内置于技能中。** `skills/` 目录提供了操作此 repo 的 Claude Code 技能,其中包含了 `docs/PLAYBOOK.md` 中来之不易的经验和陷阱(镜头计算、无缝循环规则、Blender API 陷阱),让 agent 不必重新摸索。
## 快速开始
环境要求:[Claude Code](https://claude.com/claude-code)、Node 20+、Python 3.10+。可选:Blender(3D logo 展示)、ElevenLabs API 密钥(音频)、ComfyUI(AI 背景);如果没有这些,所有功能都会优雅降级。
```
git clone git@github.com:ucsandman/marketing-studio.git
cd marketing-studio
cd studio && npm install && cd ..
cp .env.example .env # set BLENDER_PATH / ELEVENLABS_API_KEY if you have them
node scripts/install-skills.mjs # installs /marketing and friends into ~/.claude/skills
python launch.py --check # verifies the toolchain
```
然后,在你的产品 repo 中执行:
```
claude
> /marketing
```
agent 会一次性集中提出一组问题(品牌、目标位置、音频、平台、检查点模式)并运行整个 pipeline。如果你的品牌是新的,它会从你 repo 的设计系统(DESIGN.md、Tailwind 配置、CSS 变量)中推导 token,并且只询问它无法推断的内容。
## 技能列表
| 技能 | 功能 |
|-------|--------------|
| `/marketing` | 完整 pipeline:排序、门控、运行清单、恢复、最终 QA 和交付画廊 |
| `/logo-reveal` | 动态 logo 展示视频(在 Remotion 中合成的 Blender 绘制式编排) |
| `/product-demo` | Screen-Studio 风格的演示:录制你运行的应用,添加精确的镜头缩放和光标 |
| `/launch-video` | 主视觉发布视频,组合演示素材、logo 展示和文案 |
| `/audio-track` | 为任何视频提供配音和音乐,或作为独立音频 |
| `/social-clip` | 按各平台尺寸调整的短功能片段 |
| `/og-assets` | OG 图像、动态 OG 循环、README GIF、社交卡片 |
| `marketing-studio` | 共享后台技能:引擎工作流、品牌引导、不可妥协的规则 |
pipeline 的辅助技能也已包含在内,因此运行过程中不会遗漏任何环节:
| 技能 | 功能 |
|-------|--------------|
| `/polish` | 在录制演示之前进行最终的 UI 质量检查(对齐、间距、状态、微小细节) |
| `/frontend-verify` | Headless 路由验证:控制台错误、失败请求、文本断言 |
| `/de-vibe` | 在发布任何内容之前去除 AI 生成的痕迹(安全特征、垃圾文案、通用默认值) |
| `/ship` | 验证、文档、密钥扫描、提交、推送的标准流程 |
| `/launch` | 各渠道(X、LinkedIn、Show HN、电子邮件)的公告草稿,并带有审批门控 |
`scripts/install-skills.mjs` 会将所有这些技能复制到 `~/.claude/skills` 中,并将引擎路径重写为你克隆此 repo 的位置。它绝不会覆盖你已设置符号链接的技能。如果你有两个可选插件(`impeccable` 和 `frontend-design`),它们会深化 UI 打磨阶段;如果没有它们,pipeline 会原样录制你的应用。
## Repo 结构
```
brands/ per-product brand tokens (zod-validated JSON)
studio/ Remotion project: all final video compositions
feeders/blender/ headless bpy scenes (3D logo reveals)
feeders/capture/ Playwright recorder (product demos)
feeders/audio/ ElevenLabs client (voiceover + music)
feeders/comfy/ ComfyUI client (optional AI backdrops)
skills/ the Claude Code skills that drive all of this
examples/ real output: full asset suites for two shipped products
scripts/ props builders, staging, statics, smoke, copy linter, brief
gatherer, storyboard board, export matrix, captions, thumbs,
post kit, contact sheets, footage cache, SFX library,
Mission Control review server
props/ generated render props (edit via their builder scripts only)
docs/PLAYBOOK.md the operational reference: engine map, onboarding, gotchas
launch.py single-command health check + Remotion Studio
```
`out/`、`assets/` 和 `studio/public/*/` 是构建产物,保持不被 Git 跟踪。
## 手动控制
这些技能执行的所有操作都可以手动运行:
```
python launch.py # health checks + Remotion Studio
node scripts/smoke.mjs # frame-0 still of every composition
cd studio && npx remotion render LogoReveal ../out//logo.mp4 \
--props='{"brandId":"","cta":"..."}'
node scripts/lint-copy.mjs props/-launch.json # no-slop copy gate
node scripts/render-matrix.mjs --stills-only # 16:9/9:16/1:1/4:5 fan-out
node scripts/build-captions.mjs --check # SRT/VTT sidecars
node scripts/mission-control.mjs # click-to-approve run console
```
`docs/PLAYBOOK.md` 包含了完整的引擎图谱:每个供给器、构建脚本和渲染命令,以及经过验证的陷阱。
## 添加品牌
1. 复制现有品牌的结构以创建 `brands/.json`(颜色、字体、标语、语音规则)。
2. 在 `studio/src/lib/brand.ts` 中注册它,并在 `studio/src/brands/` 中添加一个标记组件。
3. 执行 `cd studio && npm test` 以验证 schema。
`/marketing` 技能可以根据你产品 repo 的设计系统为你完成所有这些工作;以上步骤是手动操作的方法。详情请参阅 `docs/PLAYBOOK.md`。
## 验证
```
python launch.py --check # toolchain health
node scripts/smoke.mjs # renders frame 0 of every composition; must stay green
cd studio && npm test # brand schema tests
```
每个物料 prop 都是可为空的并带有占位符,因此在一个没有任何捕获内容、没有 Blender 且没有 API 密钥的纯净克隆中,冒烟测试也能通过。
## License
MIT
标签:AI代理, Blender, Claude, CVE检测, MITM代理, Playwright, Remotion, 特征检测, 自定义脚本, 营销工具, 视频生成, 逆向工具