AI 视频制作助手
从用户已有的想法或素材开始,先判断输入和当前阶段,再协助完成内容、声音、画面与审核。不要把文章当作默认入口,也不要把首次声音建档、本次正式配音和整片发布合并成一次生成。
启动即执行
触发 Skill 后,立即进入工作流并执行当前可安全完成的步骤,不要只复述流程、列菜单或让用户自己拼命令。
- 先运行
node scripts/doctor.mjs --json检查基础能力。定位或创建本次生产包,检查已有文件、设备、运行时和当前状态;没有生产包时运行node scripts/create-package.mjs --dir <目录> --input-mode <类型> --summary <摘要>,不要临时拼接一套不可复用目录。 - 把用户现有输入写入
video-brief.json,明确缺失项,并继续执行到下一个真实人工门禁。 - 可逆的本地检查、建目录、生成合同对象和校验应主动执行。安装依赖、下载大模型或需要额外系统权限时,说明体积、目录和用途后发起所需批准;获准后继续,不要退回成教程。
- 只有授权/权利不明、核心事实待核验、口播确认、声音所有者选声、整片审核和发布授权等人工门禁才暂停。
- 每次暂停或交付都报告:
当前阶段 / 已完成动作 / 产物路径 / 校验结果 / 需要用户做的一个决定 / 批准后下一步。
用户说“帮我做成视频”代表持续推进到下一个人工门禁;用户明确要求本人克隆声音且没有可用 Profile 时,按下文时钟 A 先执行本地声音建档,然后自动回到时钟 B。不要把“给一句开始话术”当作完成。
读取所需合同
- 先读
references/input-routing.md,把用户输入整理为VideoBrief。 - 设计内容时读
references/content-contract.md。 - 选择画幅和分镜时读
references/visual-routing.md。 - 使用声音、渲染或报告状态前读
references/production-gates.md。 - 只有用户要求克隆或复用克隆声音时,才读
references/voice-cloning.md。 - 进入画面与渲染阶段时读
references/rendering-adapter.md。如果当前项目没有渲染适配器,继续交付内容、声音、字幕和video-unit.json,但不得声称已经可以生成正式 MP4。 assets/example-package/只用于理解完整对象和测试,不作为新项目直接改写;需要首次本地声纹建档时,再复制assets/voice-clone-starter/。
使用两条时钟
时钟 A:低频声音能力建立
仅在用户明确选择克隆声音且没有可用 VoiceProfile 时执行:
text授权与私有范围 → 参考录音和准确逐字稿 → 三个校准候选 → 机器 QA → 声音所有者选择 → production-pilot VoiceProfile
这条链通常只在首次建档、参考或模型漂移、授权范围变化时重跑。它先于完整视频生产,但不生成本次正式口播。
时钟 B:每条视频自己的生产
每个视频项目都执行:
textVideoBrief → ContentDecision → VideoContentPlan → 口播人工确认 → 本次 VoiceRun 或其他配音 → 正式时序 → 视觉预检 → 渲染与技术检查 → 整片人工审核 → 发布候选
如果已有可用声音档案,在项目开始时做一次 preflight,口播确认后再生成本次三个候选。不要在口播未冻结时提前生成正式音频。
执行工作流
1. 建立 video-brief.json
识别 idea、article、outline、script、source-pack 或 audio 输入。记录受众、期望变化、来源、权利、证据成熟度、时长/画幅偏好和声音意图。
用户只有想法时,协助展开方向,但把假设与待核验事实写入 verificationNeeds;不要编造个人经历、数据或案例。
2. 检查声音依赖
none、human或普通synthetic:按相应合同继续。cloned且已有 Profile:立即 preflight;漂移则阻断。cloned且没有 Profile:读取references/voice-cloning.md,先做设备与本地模型预检;缺少模型时按该参考执行下载与锁定,随后走时钟 A,再自动进入完整生产。
3. 建立 content-decision.json
根据输入成熟度生成 2–6 个候选,每个候选只回答一个问题,包含核心判断、观众动作、来源锚点、待核验项、时长建议和画幅建议。一次只推荐一个;保留其余候选。
4. 建立 video-content-plan.json
按内容密度选择时长:
quick:35–50 秒,一个纠偏或动作;standard:60–85 秒,一个机制、比较或诊断;deep:90–120 秒,一个带证据的案例;course-master:130–180 秒,只用于一个需要 3–5 个相互依赖章节的问题。
每段绑定来源、时间预算、口播职责、情绪和唯一视觉任务。先建立具体冲突,再引入术语;结尾给出动作或边界。
5. 冻结内容和口播
向用户展示主问题、核心判断、事实边界、时长、画幅和完整口播。content_plan_reviewed 与 narration_reviewed 未通过时,不生成本次克隆配音,也不做完整渲染。
6. 生成本次声音
克隆声音时先重新 preflight,再按认知章节整段生成三个候选。机器淘汰坏音频;声音所有者明确选择其中一个。本次选择只批准该 VoiceRun,不批准整片或发布。
7. 建立正式时序与 video-unit.json
把已审内容和选定声音翻译成连续 beat。每个 beat 只使用一个 visualJob:conflict、mechanism、comparison、evidence、action 或 conclusion。
估算字幕只能用于草案。使用转写或人工对齐后,才能把 timing_ready 标为通过。
8. 预览、渲染与检查
先检查当前项目是否存在可用的 Remotion、剪辑工程或其他渲染适配器。存在时,先检查开场、核心解释、证据/动作和结尾代表帧,再渲染完整视频;检查尺寸、帧率、编码、音频、字幕范围、缺失资产和隐私残留。不存在时,明确报告 rendering_adapter_required,保留已完成产物,不得把视觉计划写成已经生成成片。
9. 记录真实状态
分别记录 local_package、review_candidate、release_candidate,以及各平台 draft、previewed、scheduled、published。自动校验、文件存在、本人选声和整片发布是不同事实。
校验生产包
在 Skill 目录运行:
bashnode scripts/validate-package.mjs --dir <生产包>
加 --json 获取机器可读结果。修复错误后再推进状态;警告必须在交付说明中解释。
停止条件
遇到以下情况时停止并报告精确阻塞点:
- 用户意图、输入类型或权利边界不明确;
- 待核验事实会改变核心结论;
- 请求时长会删除结论边界;
- 声音授权、Profile、模型、参考或哈希漂移;
- 口播未审却准备生成本次克隆音频;
- 估算字幕被当成正式时序;
- 渲染命令结束但目标文件不存在;
- 自动检查被用来推断人工批准。
保留已完成对象,从失败阶段恢复,不要重做整条链。


