ucsandman/marketing-studio

GitHub: ucsandman/marketing-studio

一个由 Claude Code agent 驱动的营销工作室,通过单条命令自动生成产品发布所需的全套视频、图像和社交媒体物料。

Stars: 84 | Forks: 14

# Marketing Studio 一个由 agent 驱动的、专为 Claude Code 设计的营销工作室。你只需在产品的 repo 中输入 `/marketing`;agent 会引导你的品牌资料,录制你的应用,在此引擎中渲染一整套营销物料,并将最终文件复制回给你。 ![工作室渲染的动态 OG 循环](https://raw.githubusercontent.com/ucsandman/marketing-studio/main/examples/paperroute/readme.gif) *工作室仅凭品牌 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, 特征检测, 自定义脚本, 营销工具, 视频生成, 逆向工具