1实现原理 · 为什么它能做到
把 HyperFrames 定为中文旁白视频的唯一生产面(不止教学视频),并明令不走旧的 web-video-presentation 路线,除非用户明确要点击驱动的网页演示。
Use HyperFrames as the primary production surface for Chinese narrated videos, not only teaching videos. … Do not use the old Web Video Engineer / `web-video-presentation` implementation path unless the user explicitly asks for a click-driven webpage presentation.
默认视觉与语气:Apple Keynote / macOS 风、口语化,且禁止公式化开场(如 AI 时代,别再…)与对观众露出的内部标签(s03、文件夹名)。
Use Apple Keynote / macOS style unless the user gives a stronger reference … Avoid starting with formulaic lines like "AI 时代,别再...".
先写旁白再动画,且写稿唯一参考是 references/CODE-GARDEN-VOICEOVER.md;开写前先在 DESIGN.md 写一句定位句。
For narration drafting or rewriting, read `references/CODE-GARDEN-VOICEOVER.md` first. … Before writing the script, write a one-sentence **positioning statement** in `DESIGN.md`
单一 sync manifest 作真相源:旁白、字幕、场景起点都从它派生,而不是手维护三份数组。
Keep one sync manifest as the source of truth for narration, subtitles, and scene starts.
TTS 有具体默认值:Doubao/Volcano seed-tts-2.0 + zh_male_liufei_uranus_bigtts + speech_rate=20;Edge TTS 作备选并给男女音色与 +20% 语速建议。
In `/Users/d2/project/web vidio` projects, default to Doubao / Volcano `seed-tts-2.0`, voice `zh_male_liufei_uranus_bigtts`, and `speech_rate=20` unless the user says otherwise. … Recommended Edge TTS defaults for Chinese: voice `zh-CN-YunxiNeural` for a male presenter voice, or `zh-CN-XiaoxiaoNeural` for a female presenter voice; rate `+20%` unless the user requests a slower or faster delivery.
时长必须来自实测音频:有音频文件时禁止用字数、Edge TTS 词边界元数据或旁白文本估算,并要求 ffprobe 复核后回填时长与 cue 时机。
Do not estimate timing from character count, Edge TTS word-boundary metadata, or narration text alone when audio files exist.
字幕规格具体到像素与行数:约 66-72px 中文、强对比或阴影、默认居中底部纯文字(无「旁白」标签、无大底板)、可见字幕保持单行。
Keep visible subtitles to one line. … Use roughly 66-72px Chinese text for burned-in HyperFrames subtitles, strong contrast or shadow, and enough bottom margin to avoid covering the scene focus.
HyperFrames 实现契约照抄生态约定:根元素带 data-duration、audio 用真实 <audio> 元素、在 window.__timelines 注册暂停的 GSAP 时间线、确定性动画、默认柔和交叉淡化转场。
Register a paused GSAP timeline in `window.__timelines` and build deterministic animation.
验证只看真实产物:npm run check(或 hyperframes lint/inspect)、渲染 MP4 后 ffprobe 查真实时长、ffmpeg 抽接触表逐项目视。
ffprobe -v error -show_entries format=duration,size -of json renders/final.mp4
发布草稿有安全阀:可以用真实浏览器准备草稿并核对字段,但在用户确认平台/账号/标题文案/标签/MP4/封面之前不点最终发布。
When using a live browser to upload to social platforms, prepare drafts and verify fields, but do not click the final publish/submit button until the user confirms
2核心能力
3外部依赖
| 类型 | 依赖 |
|---|---|
| cli | HyperFrames CLI(lint / inspect;渲染经项目 npm run render 或 npx hyperframes) |
| cli | ffprobe / ffmpeg(真实时长核对、抽接触表) |
| api | Doubao / Volcano 语音合成(seed-tts-2.0,需凭证;本 skill 未自带客户端,走项目 TTS 脚本) |
| cli | Edge TTS(免豆包 key,但需网络与 edge-tts CLI/Python 包) |
| network | 社交平台网页(用真实浏览器准备发布草稿,需用户确认后才提交) |
| reference | 口播写作参考(随包分发):references/CODE-GARDEN-VOICEOVER.md |
4风险提醒 风险提醒:橙色 · 评估后使用
- 语音合成会把旁白文本送外部服务(Doubao/Volcano 需凭证;Edge TTS 免 key 但需联网) — 未发布的课程稿/客户文案可能受保密约束;使用前应确认提供方与条款,或改用项目内可控的本地 TTS 路径。
- 发布草稿涉及真实账号操作 — 文档允许用真实浏览器准备平台草稿;虽明令提交前必须用户确认,但账号上下文下的任何自动操作都应由使用者监督(本 skill 未提供平台侧防误触机制)。
- 素材检索会把需求关键词发往公开网络并落本地 — 文档要求需要外部影像时去搜索/浏览并保存到本地而非热链;检索内容来源可信度与版权由使用者承担。
- 会指示做 git 提交(仓库写操作) — SKILL.md 末尾要求在 git 仓库内检查 diff、验证并提交相关改动;使用者需知情并确认提交范围。
- 写死了作者本机路径与本机默认音色 — /Users/d2/project/web vidio 与刘飞 2.0 默认属于该生产环境的约定;换环境需替换,否则「默认值」段落不适用(见 second_pass 的 discrepancy 条)。
- 验收仍含人眼环节(七项目视清单) — 空帧/掉落转场/字幕遮挡等靠目视;不做这一步则 lint 通过也不代表成片可用。
5第二遍独立确认
- [ok] 本 skill 是否夹带脚本/凭证读取(档位下限依据) — find 目录只返回 SKILL.md、references/CODE-GARDEN-VOICEOVER.md、agents/openai.yaml;grep 无 process.env / fetch / curl 调用点。所有外部能力都以「指示」形式出现,由项目侧脚本或宿主 CLI 执行。
- [ok] TTS 外部依赖与凭证是否真实存在(橙档依据) — SKILL.md 原文给出 Doubao/Volcano seed-tts-2.0 + zh_male_liufei_uranus_bigtts + speech_rate=20 的项目默认,并写 'Edge TTS does not require the Doubao API key, but it still needs network access and the `edge-tts` CLI or Python package installed.' 即既确认凭证类后端存在,也确认有免 key 备选。
- [ok] 社交平台动作是否越界(是否会自动发布) — 原文 'When using a live browser to upload to social platforms, prepare drafts and verify fields, but do not click the final publish/submit button until the user confirms the exact platform, account, title/copy/tags, MP4, and cover.' 明确把最终提交留给人工确认,属安全阀而非绕过。
- [discrepancy] 文档里写死的本机路径对其他使用者意味着什么 — [判定:私有前提,非缺陷]SKILL.md 写 'In `/Users/d2/project/web vidio` projects, default to Doubao / Volcano `seed-tts-2.0` …'——该默认值绑定作者本机目录;在别处使用需替换为本地路径/项目约定,否则「默认音色语速」这一段不适用(不是安全风险,但是可见的可移植性问题)。
- [ok] 字幕/时长是否真以实测音频为准(避免估算冒充) — SKILL.md 明写 'Do not estimate timing from character count, Edge TTS word-boundary metadata, or narration text alone when audio files exist.' 并要求对每段或最终音频跑 ffprobe、由真实时长重生成 sync-map.js;缺依赖时要求报阻断而不是静默换提供方或换慢速默认值。
- [ok] 仓库级验证/提交指示是否真在文档中(工程侧影响) — SKILL.md 末尾 'If the target is inside a git repository, inspect the diff, run verification, and commit the task-related changes unless there is no change, no repository, or a real blocker.'——即 skill 会指示 agent 做 git 提交;已在 file_writes 与 risks 中标注,供使用者知情。
6结论
4d726d1ecfb6c878…f2c70b812b