short-form-edit
Turn talking-head footage into a finished reel, YouTube Short, or short advertisement with curiosity-led openings, earned payoffs, story-driven cuts, transcript-synced motion graphics, moving B-roll, captions, subtle music, and synchronized sound effects. Use for short-form editing; use edit-video for long-form videos and cut-silences for pause removal alone.
1How It Works & Mechanism
The sole first-priority gate is 'does the first 3 seconds convince the viewer that they must watch until the end?'; visual effects, footage volume, and production polish all rank behind it, and remain mere editorial judgment until audience data is obtained.
The first creative gate is: **"In the first 3 seconds is someone convinced they need to watch until the end?"** … Treat the answer as editorial judgment until audience data exists.
Authorization is a persistent state: a single instruction to 'make the final cut and iterate' authorizes local editing and rendering, requiring additional inquiries only for missing approvals rather than re-asking on every draft; however, publishing or contacting third parties always requires explicit authorization.
User authorization persists. … ask only for missing approval, not again at every draft. Never post the reel or contact anyone without explicit authorization.
Create three markedly different opening drafts using the same raw footage, compare them across topic clarity, curiosity, muted intelligibility, and follow-through intent, and then record the rationale for the final selection.
Build three materially different rough openings using the same truthful source speech. … do not select only the loudest effect.
Open loops are structured: every honest audience question must have an established setup, injection timestamp, reminder or partial answer, resolution timestamp, and the spoken transcript evidence that justifies the resolution.
Create `OPEN-LOOPS.json` with each honest viewer question … then visibly change that state.
Graphics and captions are bound to word-level timestamps: captions and impact events must land within ±2 frames of the word onset, allowing up to 0.15s of intentional visual pre-roll.
Target within 2 frames of word onset for captions and … at most 0.15 seconds of deliberate visual anticipation.
Brand assets must be authentic: redrawing from memory, approximating, or AI-generating another party's logo is prohibited; if verifiable assets cannot be retrieved, substitute them with plain-text brand names.
Never invent, approximate, trace from memory, or generate an existing brand's logo. … use plain brand-name text rather than fabricate a mark.
Run two local validators (plan structure + footage ledger) before delivery, explicitly acknowledging that validators cannot certify taste, motion aesthetics, or auditory appeal.
It reads `assets/plan.json`, `assets/transcript.json`, and `assets/edit-decisions.json`. … never silently skip checks because the schema differs.
Strict mixing specifications apply to audio: normalize voice first, duck the music bed to approximately 14–20 dB below the vocal track before adjusting based on actual tracks, targeting a final output of approximately -16 LUFS and ≤ -1 dBTP.
start the bed roughly 14-20 dB below voice … adapting to source dynamics rather than crushing them.
B-roll accounting and reuse discipline: use the same source scene only once per video (changing crop, speed, or color grade does not count as a new scene), logging entries in the ledger to run validation.
Record source scene identity, file hash, and selected interval in `assets/footage-ledger.json`; run the footage validator below.
2Core Capabilities
3External Dependencies
| Kind | Dependency / Endpoint |
|---|---|
| cli | Node(两个本地校验器) |
| cli | FFmpeg(抽转场条带、抽帧检查编码后的开场与 hero 帧) |
| api | 转写服务(默认 ElevenLabs Scribe,备选 Whisper;凭证与服务成本见 docs/TOOLS-AND-API-KEYS.md) |
| api | 生成式 B-roll / 图像(可选,Kie.ai 或用户自选提供方,需检查账号与额度) |
| cli | HyperFrames CLI(lint / 实时预览 / draft → final 渲染;capture 卡住时允许确定性图形导出 + FFmpeg 合成) |
| package | 兄弟 skill:hyperframes、video-storytelling(构建前必读),以及 edit-video / cut-silences(分工边界) |
4Recommended Governance & Evidence
- scripts/: Local script or command execution: node scripts/validate-plan.mjs video-projects/<slug> (purely local: reads plan/transcript/
- 网络端点: Declared external network access: None (zero URLs, zero fetch within the skill directory itself): transcription and generation are left to external clients or the user's environment
- 本地工作目录: File I/O and artifact outputs: video-projects/<slug>/assets/: plan.json, transcript.json, edit-decisions.json
5Second-Pass Verification
- [ok] 两个自带脚本是否真的不联网、不读凭证(决定档位下限) — validate-plan.mjs 只有 fs/path import 与纯函数导出;validate-footage.mjs 为 fs/path/crypto。全目录 grep 无 process.env、无 fetch/axios、无 http(s):// 调用点(文档中的 URL 仅示例命令与文档引用)。
- [ok] 转写/生成服务是否真由本 skill 声明(橙档依据) — SKILL.md 原文 'Transcribe with the student's chosen provider; ElevenLabs Scribe is Nate's default.' 与 'Kie.ai is Nate's optional provider for generated moving inserts and images.',两处都要求先看 docs/TOOLS-AND-API-KEYS.md 的凭证与成本。即:外发是**流程指示**,不是随包脚本行为——报告中两者分开陈述。
- [discrepancy] 「禁用 Pointer Lock/pointer capture」是安全收紧还是绕过防护 — [判定:判定为收紧,不影响档位]SKILL.md 'Browser automation is headless with Pointer Lock and pointer capture disabled in every context.' 出现在「跑 lint 与看实时预览」段,目的是避免无头环境下指针锁抢占;它是关掉被测页面夺权,而非绕过平台自动化侦测(无 AutomationControlled、无真实键击替身、无 remote-allow-origins)。不构成红档特征。
- [ok] 校验器能否替代「品味/动效/听感」复核 — SKILL.md 明写 'The plan validator catches structural defects but cannot certify taste, motion, or the audio listening pass',并要求另做不看屏的娱乐性复核(ENTERTAINMENT-REVIEW.md)且如实披露缺失的复核模态。脚本与人类判断的分界自洽。
- [unlocatable] 「前 3 秒」这类判断是否有可核的客观阈值 — 门禁条款要求记录观众收益、未解疑问、第 3 秒可见证据与确切回报场景,但「具体到第几帧算成立」没有客观阈值;quality-gates.md 只给失败样例(如 attention grabbed with no reason to continue)。本次只读侦查无法代作者给出可复现判定,故如实标为无法定位为客观标准。
- [ok] SKILL.md 指名的仓库级文档是否真的存在(避免文档断链) — docs/TOOLS-AND-API-KEYS.md、MOTION_PHILOSOPHY.md 与 references/{quality-gates,plan-schema,curiosity-and-entertainment,reference-analysis,premium-motion-and-footage}.md 在仓库内均可定位(非虚构引用)。
6Verdict & Scenarios
aeca951228fc9c2b…