edit-video
Edit a raw talking-head video through transcription, silence trimming, mistake review, visual storytelling, motion graphics, and verified HyperFrames rendering. Use for a complete edit; route a single requested operation directly to its specialist skill.
1How It Works & Mechanism
Essentially a "general manager-style" orchestration prompt: contains no scripts, relying on delegating each step to specialized skills to run the entire editing pipeline; single-point requests are routed directly to the corresponding specialist skill.
Use for a complete edit; route a single requested operation directly to its specialist skill.
Step 1 begins with media reconnaissance and source preservation: uses ffprobe to inspect duration/streams/resolution, and either copies the source video into project assets or only references the specified local path.
1. Inspect duration, streams, and source resolution with ffprobe. Copy the source into the project's assets or reference an explicitly provided local path.
Step 2 is the sole entry point for external services, enforcing a strict sequential order: "read cost documentation first → reuse existing transcripts → only then consider invoking services → explain uploads and costs prior to authorization."
2. Read `docs/TOOLS-AND-API-KEYS.md` before service setup. Reuse a matching word transcript. Otherwise use the student's chosen provider; Nate defaults to `node scripts/transcribe-elevenlabs.mjs <source>`. OpenAI Whisper and local Whisper are supported workflow alternatives after transcript normalization. Check available credentials or local dependencies. Explain uploads and costs before any service call whose authorization is still missing.
The editing phase is explicitly split into two hops: first generate an EDL and retimed transcript following ../cut-silences/SKILL.md, then perform review-based blooper/mistake cuts per ../cut-mistakes/SKILL.md.
3. Read `../cut-silences/SKILL.md`. Produce an EDL and a retimed transcript, and render the silence pass when editing is authorized. … 4. Read `../cut-mistakes/SKILL.md`. Inspect candidates in context and preserve intentional emphasis.
The motion graphics phase is likewise delegated: visual arc is handed off to video-storytelling, overlays/rhythm to hyperframes-video-beats, with output requirements to "write a beat sheet + provide one visual idea per beat + intentional callbacks."
5. Read `../video-storytelling/SKILL.md` for the visual arc and `../hyperframes-video-beats/SKILL.md` for overlays. Write a beat sheet with transcript anchors, one visual idea per beat, and deliberate callbacks.
Features two quality gates: first run preflight + HyperFrames lint + transcript sync checker and review in Studio; then, after rendering a draft, sample frames to inspect visuals and listen to cut boundaries.
7. Run preflight and HyperFrames lint from the project, plus the transcript-sync validator for anchored sub-compositions. Review Studio before the draft. … 8. Render a draft, inspect encoded frames and transitions, and listen across cut boundaries.
Delivery consists of a bundle of artifacts rather than a single file: final video path, edit decisions, retimed transcript, composition, and a VERIFY.md outlining "what was checked and what limitations remain."
Deliver the final MP4 path, edit decisions, retimed transcript, composition, and `VERIFY.md` describing what was checked and any remaining limitations.
2Core Capabilities
3External Dependencies
| Kind | Dependency / Endpoint |
|---|---|
| cli | ffprobe(媒体摸底:时长/流/分辨率) |
| api | ElevenLabs Scribe(默认转录服务;经仓库级 helper 上传音频取词级时间戳) |
| api | OpenAI Whisper API(替代云转录;自带 key 与计费) |
| api | Kie.ai(可选生成式 B-roll/图像素材服务,作者自述偏好而非必需) |
| cli | HyperFrames CLI(preflight / lint / preview / render,路径与用法由 ../hyperframes 与 ../hyperframes-cli skill 指路) |
| package | Node.js + 仓库级脚本(transcribe-elevenlabs.mjs、validate-beat-sync.mjs、preflight 系列) |
| network | HyperFrames Studio(本地预览服务器,渲染前人工审看) |
4Recommended Governance & Evidence
- scripts/: Execution of local scripts or commands: 0 scripts within this skill itself (only SKILL.md in the directory, verified via find -type f)
- 网络端点: Declaration of external network access: Runtime: ElevenLabs transcription upload — POSTs audio to api.elevenlabs.io (via repository-level helper; SKILL.md Step 2)
- 本地工作目录: File I/O and artifact output: Project files under video-projects/<slug>/ (source video copies, assets/, BRIEF.md or DESIGN.md, composition
5Second-Pass Verification
- [ok] 目录文件清单(是否真的无脚本) — find .claude/skills/edit-video -type f 仅返回 SKILL.md;无 scripts/、无 agents/、无隐藏文件。
- [ok] 被引用路径是否真实存在 — 仓库内存在 .claude/skills/{cut-silences,cut-mistakes,video-storytelling,hyperframes-video-beats,hyperframes,style-library}/SKILL.md、docs/TOOLS-AND-API-KEYS.md、MOTION_PHILOSOPHY.md、scripts/transcribe-elevenlabs.mjs —— 委派链与文档依赖均非空指。
- [ok] 转录 helper 的凭证与端点(橙档证据) — scripts/transcribe-elevenlabs.mjs 定位到:ELEVENLABS_API_KEY 三别名 env 读取 + .env 兜底、POST https://api.elevenlabs.io/v1/speech-to-text、请求头 xi-api-key、timestamps_granularity=word、ffmpeg 抽 16kHz 单声道 mp3 上传。
- [ok] 「可选服务」是否被误判为主线 — Kie.ai 在 docs 中被标为 Optional,且明确 the kit does not bundle a universal Kie generation script;本 skill 的 SKILL.md 未直接点名 Kie,只写『学生自选 provider』——已按可选路径写入 external_deps 并在 reason 里附条件说明。
- [ok] 自动化边界是否夸大 — SKILL.md 末句 『An automated detector proposes edits; editorial judgment remains necessary.』,与 cut-mistakes 的 review-gate 设计一致,无夸大。
- [ok] 红档特征反查 — 全文无 sandbox 关闭、无 --no-verify/TLS 降级、无 AutomationControlled/反爬绕过、无下载并执行远端代码的指令;渲染与校验均为本地 CLI。
6Verdict & Scenarios
ec3a3991479999f4…