制作 — 从构思到最终视频
工作室的指挥中心。每个阶段都有自己的技能并独立完成工作;本技能决定接下来运行哪个阶段,确保每个关卡在继续前进之前都获得批准,并让用户随时了解进度。阶段之间通过 videos/<video>/ 目录下的文件进行交接,绝不直接调用对方的脚本。
品牌套件(仅新客户)→ 编剧 → 故事板 → 配音 → 渲染
当前状态
node studio/scripts/status.mjs videos/<video> — 读取视频目录中的文件,打印每个阶段的状态(已完成 / 等待批准 / 陈旧 / 未开始)、下一步操作,并写入 videos/<video>/status.md。不带参数时,它会列出所有视频及其下一步操作。在每次制作会话开始时以及每个阶段完成后运行它。
启动新视频
- 获取请求:客户/品牌(网站?)、用途以及用户已提供的任何简要细节。不要追问 — 编剧技能会收集简要信息。
- 品牌:如果客户在
studio/brands/中没有已批准的套件,则运行 品牌套件 技能(它包含资产库)。已有已批准的套件 → 直接复用。 宇宙: 仅当用户提到某个宇宙或其角色名称时(例如“与诺克斯一起”、“在诺克斯宇宙中”),视频才使用该宇宙(宇宙技能):其调色板会替代品牌套件,除非用户明确要求同时使用客户品牌。否则千万不要建议或询问关于宇宙的问题 — 按常规流程运行。 - 运行 编剧 技能。它会创建
videos/<YYYY-MM-DD>-<slug>/目录以及简要信息,然后依次运行:钩子 → 故事 → 脚本,并等待批准。
继续制作视频
运行 status.mjs,然后根据下一步操作调用相应的技能:
| 状态显示的下一步操作 | 技能 |
|---|---|
| 品牌套件缺失 / 未批准 / 无资产库 | brand-kit |
| 简要中提到宇宙但缺失 | universe |
| 简要、钩子、故事或脚本未获批准 | write |
| 故事板未开始、等待批准或陈旧 | storyboard |
| 配音未开始、未适配、等待批准或陈旧 | voiceover |
| 最终渲染未完成、等待批准或陈旧 | render |
| 已完成 | 告知用户视频已定稿;提供变体或新视频的选项 |
使用技能工具调用各阶段技能,并完全遵循其说明 — 包括它们自己的批准步骤。不得在本技能中绕过任何阶段的流程。
关卡(始终等待用户)
- 品牌套件(新客户)· 2. 钩子 · 3. 故事 · 4. 脚本 · 5. 概念 · 6. 风格画面 ·
- 故事板 + 演示文稿 · 8. 声音(试听 + 预览)· 9. 最终视频。
宇宙视频:故事板仅当 studio/scripts/board-check.mjs 通过后才显示以供批准(关卡7)— status.mjs 会在故事板行上显示 check ✓ / check ✗,并在检查失败时指向失败的检查点。
批准必须来自用户在聊天中对当前视频和关卡的确认。“看起来不错”、“批准”、“继续”算作批准;沉默或提问不算。一次批准从不覆盖下一个关卡。每个关卡后,提供一行状态总结和下一步操作。
批准后的更改
- 指明拥有该更改的阶段:文字 → 编剧;外观、动画、转场、声音提示 → 故事板;声音、节奏、时间 → 配音;音乐、字幕、混音、导出 → 渲染。
- 拥有更改的技能会递增
version;后续阶段会变为陈旧(状态显示 ⚠️)。仅重新运行陈旧阶段,按顺序执行。切勿留下陈旧文件 — 一旦有新版本替换,应移除不再匹配的输出(例如旧的预览文件)。
工作室规则(适用于每个阶段)
- 免费优先。 仅在用户要求或在聊天中批准成本估算后才使用付费工具(ElevenLabs 配音、AI 图片、AI 音乐)。
- 克制的声音设计。 仅在标志性时刻使用音效;不要在每次转场都加嗖嗖声。
- 文字源自脚本。 只有编剧技能才能更改文字。
- 节省代币但不牺牲质量: 脚本需要测量并报告 JSON;查看联系表,而不是单个画面;不要观看 MP4 文件 — 将它们发送给用户。
- 保持用户方向清晰:每个阶段结束后,提供简短总结 + 下一步操作。
报告
当被问到“我们到哪了?”或会话结束时:运行 status.mjs(所有视频或单个视频),并用简短表格总结:视频 · 阶段 · 下一步 · 任何等待用户操作的事项。