---
name: draftcut
description: Turn natural speech into a refined original-voice narration and a polished video. Review the full spoken manuscript in the conversation, then automatically deliver a clean original-voice video after explicit approval. Graphic packaging is a separate stage with its own director-script approval.
---

# DraftCut

自然说话 → 对话中审核完整文稿 → 批准后自动交付干净成片 → 按需审核导演脚本 → 包装成片。输入一份录音或一支口播视频，可选素材和参考片；保留用户声音，不用 TTS 补词。所有工作放入新的独立项目目录，原片不覆盖。

## 从一句请求开始

用户只需说“请使用 DraftCut 的 Skill，把这个文件做成一个视频。我想要的样式和风格是……”。以下流程、独立目录、原声保护、两道审核由本 Skill 默认负责，不要求用户补写操作步骤。Agent 自选新的项目目录；风格缺少细节时结合内容提出一个方案，不为可选偏好连续追问。已有可靠转写和健康依赖优先复用。

DraftCut 是本次专用工作流的负责人，HyperFrames 用作底层制作与渲染。按需要读取 HyperFrames 的结构、动画和 CLI 规范；没有外部 HyperFrames Skill 时，使用本仓库 references 与锁定 CLI 的 `--help`，不依赖作者安装的私有 Skill，不另启一套重复的用户创意访谈；将本次已有素材/风格写入工程 brief，后续问题集中在可读提案的必要取舍上。

直接在当前命令行／Codex 对话正文中输出完整可读稿件、简短删改理由和导演方案，不能只给文件路径或下载链接代替正文。用户以自然语言确认具体版本；不另建展示网页或操作平台，不把内部 hash、JSON、目录规划、测试签名命令当作用户的制作工作。内部证据由 Agent 管理。干净成片阶段按宿主 Agent 读取到的真实、直接用户消息确认：完整文稿已展示后，用户明确批准当前版本，就在同一任务继续生成干净成片，不再要求终端签名或额外“开始／继续”指令。含修改条件、含糊回复、历史无关批准、Agent自审或模拟用户均不算批准。工程中的对话审计记录仅供追溯，不是加密回执，不能宣称为可信宿主签名。现有签名版 HyperFrames 包装路径仍按[审批设置](docs/approvals.md)和[对话批准边界](docs/conversational-approvals.md)处理，不伪造其回执，也不把干净成片审计记录冒充为那条路径的签名。

默认以**完整文稿审核**推进：通读逐词转写，输出精炼口播全文、删改依据、纠错疑点与完整重映射字幕。试听是可选辅助，不是审核包输出、用户文稿批准或后续制作的前置条件。没有音频感知能力时记录 `hearing=not-tested` 和真实的零试听时长，按全文文字复核与时间线检查继续；不得反复要求用户听完整原片或代理，也不得虚构试听。词语疑点结合已有草稿、授权范围内的ASR结果及用户确认解决，未解决的明确标注。用户只要求文稿审核输出且明确不制作时，在输出完整文稿后停止；普通视频制作任务则在文稿获批后自动交付干净成片。用户只需要文稿时，必须把完整候选口播、简短删改理由和未解决词语直接输出到当前命令行／对话，不为展示另存一份文稿文件，不用文件路径或链接代替正文，不要求用户打开文件；内部审核包、SRT、代理与证据可按工程需要保存，不作为用户的阅读入口。

## 明确授权的模拟用户测试

仅在用户明确要求模拟使用者进行可用性测试、且工作环境提供独立 `draftcut.simulation-run.v1` 清单时启用。读取[隔离交互测试](docs/simulation-testing.md)。真实素材仍只在本机处理；测试清单绑定该素材、run 和项目根目录。不要给真实录音加 `example_only`，也不要使用合成 fixture 身份。

执行者仍从最简请求开始，按本文自行组织工作。向测试者提出普通用户能回答的问题，并在两道门分别停下；测试控制器记录模拟用户自然回复并签发独立模拟回执。回执始终标 `simulated-user`、`owner_approval=false`，不能用于生产导出。没有音频输入时可明确记 `hearing=not-tested`，继续测试交互、剪辑、制图和导出；不得伪称听过。默认只使用视频的原声音轨；仅选用人物画面时才在批准稿件中设置 `include_presenter=true`，人物画面仍使用同一时间线。

测试视频必须使用 `--purpose simulation`，保存到本 run 内的 `TEST-*.mp4`，保留全程测试水印。技术报告、交互日志和完成答复均写明模拟用户/听感未测，不得称作真实 owner 批准或内容质量验收。生产、合成 fixture 和模拟用户测试三种来源分别验证，不互相转换批准。

## 从仓库链接安装

用户只需把仓库链接交给 Agent。安装或环境未知时，先读 [Agent 安装与健康检查](docs/agent-bootstrap.md)：检查并复用已有环境，在安全副本安装缺失依赖，运行本地健康检查并如实报告结果。由 Agent 执行配置，不向用户罗列终端安装命令或多个安装入口。按[配置与能力边界](docs/configuration.md) 区分本地依赖、可选 ASR 凭据、owner 签名及当前通道的真实视听能力；默认自动复用固定用户级 ASR 配置；先读取无密钥状态，只有缺配置且需要云转写时才引导一次安全输入，已有配置不再索取 key。`--env-file` 仅作可选覆盖，不扫描项目或父目录。沿用健康报告的 Python、PATH 和 `DRAFTCUT_CHROME`。系统权限、密钥及素材上传／费用仍须安全处理，不能因用户要求安装就代签审批或自动调用付费 ASR。

## 文稿批准后自动交付，包装另行审核

**口播稿审核 → 自动交付干净成片 → 按需审核视频脚本 → 包装成片**。干净成片不等待导演脚本，不自动进入包装。

1. 读取 [口播精剪](references/00-audio.md)，通读全部逐词转写，结合全文上下文处理无意义口头禅、口误、改口、失败重说、冗余重复及停顿。默认保留最后一次完整自然表达；保留否定、数字、专名、有意重复、强调和思考停顿。机械候选不是自动删除清单。
2. 每个词都有保留／删除决定和理由；改口、重说、移序及 ASR 纠错明确列出依据。字幕只能对应原声实际保留的词，不能总结、补写或靠改字幕伪装音频已编辑。剪点保留完整词级区间，以整数样本映射和字幕边界检查验证；可选试听不构成门槛。
3. 生成明确标为审听用途的代理，完成全文文字语义复核与时间线检查，再生成完整口播稿、前后差异与重映射字幕。在当前命令行／对话直接展示完整精炼口播稿、简短删改理由和疑点，内部保留审核包，并停在第一道门。代理仅供可选核对，不能作为已批准的精炼音频或进入视觉制作。
4. 用户明确批准已展示的完整文稿后，自动按[干净成片](references/04-clean-cut.md)生成同一时间线的原声精剪视频与外置字幕，不再要求终端签名或额外出片指令。画面保留原片构图和比例，不加MG、配乐、标题、滤镜或烧录字幕。音频只拼接原声，不变速、不做TTS。只有明确要求仅交文稿、不制作时才停止。
5. 完成完整解码、音视频流／时长、帧分配、字幕边界、音频波形与必要视觉抽查后，交付 `edited-video.mp4` 与 `final-clean.srt`。这是可独立使用的干净成片，不是试听代理。
6. 用户要求包装时，才在这版干净音视频与字幕时间线上生成完整导演脚本并在对话中展示，取得第二道批准后制作包装。现有签名版HyperFrames实现不能把对话审计记录当签名回执；独立干净交付不依赖这条旧包装入口。

素材、转写、口播稿或文稿复核证据变化使第一道批准及下游失效；导演脚本、计划、素材变化使第二道批准失效。所有入口重新验证内容 hash、项目与修订代次；旧签名包装入口另外验证签名，重试不能复用过期批准。保留旧审核包与产物；改变后创建新版本。

## 旧签名版包装路径的批准来源

干净成片使用上一节的真实对话批准。以下仅描述仍保留的签名版包装工具链，不能反向阻止干净成片交付。

`review_approval.py` 使用用户在 Agent 可写项目以外配置的公钥，验证用户保管的加密私钥签发的回执。Agent 不创建生产身份、不读取口令、不代签、不将 fixture 批准当生产批准。用户在自己的终端审阅完整审核包、确认精确摘要并签名；没有生产信任配置时可完成提案，不能声称批准或越过门禁。见 [审批设置](docs/approvals.md)。签名验证完整性与签发者，不证明听感或语义已正确。

当前工程验证不得新增付费 API 调用。合成示例仅接受仓库规定的合成 PCM 与转写，使用独立测试签名，始终标 example；真实素材不走该路径。旧项目须按 [迁移](docs/audio-first-migration.md) 显式重新审核，旧布尔批准不继承。

## 转写与语义复核

内置 DashScope ASR 会上传音频且可能收费，运行前须有明确上传／费用授权；已有用户授权覆盖当前素材、有效期与预算时直接沿用，不为每个视频反复索取；超范围才补问。key 存在不代表授权；`--allow-cloud-asr` 不是授权来源。已有逐词转写可本地导入，必须核对源素材与内容。完整语义复核默认使用 `text-review`：通读原片与候选口播全部文字，逐词检查删改和字幕映射，并披露未试听。已有同模型代理转写时可用 `same-model-asr` 辅助比较，不自动新增调用，也不要求填满试听时长。用户确认的词语可作为纠错依据；试听只作为可选证据。具体数据与命令见 [口播精剪](references/00-audio.md)。

## 画面创作

逐步解决发布版式、核心创意、可选素材、风格与参考片。画面随论证展开，用 MG、图解、比较、演示解释重点，不只重复字幕。没有人物素材可全屏视觉叙事。参考用于理解表达，不复用未经许可的资产；数字、事实须有来源。

使用锁定 Hyperframes 0.8.30、GSAP 3.14.2，Node >=22，Python 3.10+、FFmpeg 与本机完整 Chrome。主入口 `hyperframes/index.html`，单一批准音频 `assets/narration.wav`；DOM/SVG 字幕图形可编辑。GSAP 暂停、可 seek，注册 `window.__timelines.master`，不使用系统时钟、随机状态或远程字体。初始化只是 scaffold，完成内容创作和真实连续预览后才能 production 导出。固定单 worker；软件编码须明确选择。

本机 `check`/`snapshot` 使用 `scripts/hf.mjs`，由入口自动配置完整 Chrome 与导航预算，见[制作](references/02-build.md)。私有素材的 snapshot 显式关闭外部图片分析。

技术检查、视觉连续观看与可选试听分别记录；未试听标 not-tested，不阻断文稿审核或出片，不宣称听感已验收。保留全链路原声采样映射、完整词、SRT 毫秒边界、视频帧分配和解码报告。最终交付 MP4，可编辑工程和审核证据留在项目目录。其他私有业务不在本 Skill 范围内，不复制其代码、素材或凭据。
