Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add zenstory-ai/video-recap-skills --skill video-cutgit clone --depth 1 https://github.com/zenstory-ai/video-recap-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/zenstory-ai/video-recap-skills/video-cut)<a href="https://agentmods.dev/skills/zenstory-ai/video-recap-skills/video-cut"><img src="https://agentmods.dev/badge/skills/zenstory-ai/video-recap-skills/video-cut/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/zenstory-ai/video-recap-skills/video-cut"><img src="https://agentmods.dev/badge/skills/zenstory-ai/video-recap-skills/video-cut.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00104 | $0.03513 |
| Opus 5.5 | $0.00042 | $0.01405 |
| Sonnet 5.5 | $0.00021 | $0.00703 |
| Haiku 4.5 | $0.00010 | $0.00351 |
Grade A, and why
video-cut scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 12d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
This is a copy
100% identical to video-cut — 0 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 131 lines — stays where its author put it; the contents beside it link to each section on GitHub.
1. 定位
本技能只执行 Agent 已经做出的剪辑决定:
- 校验并补全
clip_plan.json,写出带clip_id、原片/输出时间与时长的clip_plan_validated.json。 - 先避开原片硬切附近的闪帧风险,再把边界吸附到可靠句末/自然停顿;声音完整性拥有最终优先级。
- 把每个入点对齐到源视频帧网格、每段时长对齐到整数个输出帧(不足一帧的移动,优先选句界门禁仍判为安全、仍在停顿内的一侧;两侧同样安全时选不跨过原片硬切的一侧,避免闪一帧),句界门禁检查的是对齐后的边界。
- 拼接选定区间,输出恒定帧率的
edited_source.mp4,帧数与clip_plan_validated.json记录的一致。 - 到此停止,由 Agent 按真实输出时间线写
narration.json;本工具不读取旁白,也不做原片→输出映射。
渲染缓存按输入与设置复用。edited_source.mp4.meta.json 记录标准化 clips、渲染设置和每个源文件的 size/mtime_ns;三者与当前一致且 edited_source.mp4 存在非空才复用,任一不同即重渲染。只有 sidecar 而没有媒体文件不复用。
2. 输入契约
work_dir/clip_plan.json 可以是数组,也可以是 {"clips": [...]}:
{"start": 12.0, "end": 28.5, "reason": "b02 | turn | power: A→B | POV=女主 | 保留反应 | 入点=问题落下 | 出点=沉默结束"}
start/end是原片秒数;也接受source_start/source_end或in/out。- 顶层可选
target_duration,例如"10m"。 - 多视频项目的每个片段还必须填写
source_id(不接受id代替),并用--sources-manifest传入来源清单(形状见下)。 speech_boundary_anchors.json与 ASR 时间段由理解阶段提供;Agent 先写大致区间,工具会尝试吸附并把仍在讲话区间内的入/出点作为 blocker 返回。只含语气词或 ASR 杂音的窗口("啊!"、"Hi.")不算讲话区间,只在紧挨真实对白的一侧保留 1 秒保护。只有标点的窗口("……")仍算讲话。
多视频来源清单只接受一种形状,其他形状直接报错并写明期望形状:
{"sources": [{"source_id": "ep1", "source_path": "/media/ep1.mp4", "duration": 1520.0, "source_work_dir": "sources/ep1"}]}
duration 可省略(省略时用 ffprobe 读取);source_work_dir 可省略,填写时相对 --work-dir,用于读取该来源的静音、句末锚点与 ASR。其他键忽略。
3. 剪辑意图契约
Agent 写片段前先确认剪辑意图,并让每个区间映射到 recap_story_plan.json 的一个 beat;工具负责执行与校验。
使用现有自由文本 reason 保存简洁决定:
beat_id | function | change | POV | preferred moment | 入点 reason | 出点 reason
不要因为“事件重要”就保留整段;要保留最能让 change 成立的具体表演、反应、动作或揭示。理解与情绪允许时晚进早出,同时保证台词、动作和技术边界完整。
对不能删去的问答、反应或动作兑现,先核源证据,再在同一 clip_plan.json 登记精确区间:
{
"clips": [{"start": 12, "end": 18}],
"required_evidence": {
"nodes": [
{"id": "refusal", "source": "/media/episode.mp4", "start": 12.25, "end": 14.5, "track": "audio", "content": "对方拒绝请求"},
{"id": "response", "source": "/media/episode.mp4", "start": 15, "end": 17.5, "track": "video", "content": "听到拒绝后的反应与决定"}
],
"before": [["refusal", "response"]]
}
}
What ships with it
13 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- references/shot-review.md 5.4 KB
- scripts/cut_cli.py 11 KB runs code
- scripts/cut_contract.py 13 KB runs code
- scripts/cut_qc.py 2.6 KB runs code
- scripts/cut_render.py 13 KB runs code
- scripts/cut.py 169 B runs code
- scripts/frame_grid.py 11 KB runs code
- scripts/lib.py 4.4 KB runs code
- scripts/media_geometry.py 16 KB runs code
- scripts/narrative_selection.py 8.8 KB runs code
- scripts/sentence_boundaries.py 27 KB runs code
- scripts/sentence_gate.py 8.6 KB runs code
- scripts/shot_review.py 17 KB runs code
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 12d ago Changed 063eef0a661d
- 13d ago Changed · -4 lines b39e754a57be
- 24d ago Changed · +26 lines d4068e941c98
- 1mo ago Changed · -5 lines 9a403ef16ed1
- 1mo ago Changed · +23 lines · -15 tokens per session bec713f29429
- 1mo ago First seen · 91 lines · 119 tokens per session scan A 6ac561990a6e
video-cut is a skill published in the GitHub repository zenstory-ai/video-recap-skills (592 stars, last pushed 7d ago), licensed MIT. It adds 104 tokens to every session and 3,513 once invoked, about $0.0004 per session on Opus 5.5. A static security scan graded it A with 0 findings. It is 100% identical to video-cut, differing in 0 lines, and is treated as a copy.
Other skills, from other repositories
narrator-ai-cli
A command-line client for creating AI-narrated movie and short-drama videos. It can guide a workflow from selecting source material, templates, music, and voices to writing narration and combining the video.
narrator-ai-cli
Create AI-narrated film/drama commentary videos via CLI. Two workflow paths (Original & Adapted narration), 93 movies, 146 BGM tracks, 63 dubbing voices in 11 languages, 90+ narration templates. Use when creating narration videos, film commentary, short drama dubbing, or video production.
recut-editor
A timeline-editing skill for creating new videos or changing parts of an existing timeline in a CapCut-style editor. It can work with media assets and export the result while keeping edits undoable.
recut-worlds
A toolset for modeling worlds and their canvases through properties, relationships, types, and visible elements. It also supports proposing media generation in the context of a world before asking for confirmation.
generation-prompt
A reference guide for writing production-ready prompts for image and video generation models. It covers fixed visual style, typed reference anchors, multi-shot sequences, and agreements between sound and picture.
shot
A filmmaking reference for deciding how to shoot a shot or scene, including framing, camera angle, lens choice, movement, staging, and continuity between shots.