Communitygithub.com

Agentchengfeng/chengfeng-videocut-skills

给剪好的口播配画面:在录屏上盖 HTML 层(圈重点标注 / 小黑整屏动画 / 推近),层绑字幕屏、由播放器逐帧驱动、直接在预览里看。用户说做分镜、配画面、加动画、圈重点、B-roll、做 storyboard 时使用。不要用于删词剪辑、字幕、物理剪切或成片渲染。

chengfeng-videocut-skills 是什么?

chengfeng-videocut-skills is a Claude Code agent skill that 给剪好的口播配画面:在录屏上盖 HTML 层(圈重点标注 / 小黑整屏动画 / 推近),层绑字幕屏、由播放器逐帧驱动、直接在预览里看。用户说做分镜、配画面、加动画、圈重点、B-roll、做 storyboard 时使用。不要用于删词剪辑、字幕、物理剪切或成片渲染。.

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Agentchengfeng/chengfeng-videocut-skills/tree/HEAD/plugins/chengfeng-videocut/skills/chengfeng-visual

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

Visuals (Storyboarding)

This is one task, not a step in a workflow. Do it whenever the user requests it; you can come back to it after editing the clip.

Only two prerequisites: the ledger and subtitles must already exist (layers are placed by subtitle screen, timing is calculated from the ledger).

Needs   edit-list.json, transcript.json, subtitles.json
Produces   visuals.json + modules/<sequence-name>/index.html

Stop when done. Do not direct the user to the next step.

First, read and execute the Business Skill Phase Contract. For module writing strict rules, see the Module Contract. For judgment rules, see Visual Judgment.

0. Readiness

First, execute the "readiness check" from Check for Updates — whether skills are up to date and the Runtime is compatible; the plugin root is located there (in this document, <pluginRoot> should be substituted with that literal path). Only proceed if the result is "Ready". If the result is "New Session Required" or "Stop", execute its instructions (including the "no custom alternative interface" ban). The Business Skill does not contain its own environment logic.

If the readiness result is runtime.kind=desktop-managed, directly reuse the desktop App's installed stable CLI and the same launchd/windows-task service; do not resolve Electron paths, install additional dependencies, or start a second Runtime.

Commands

node "<pluginRoot>/scripts/ensure-running.cjs" --json
node "<pluginRoot>/scripts/videocut-cli.cjs" visual get   <project> --json
node "<pluginRoot>/scripts/videocut-cli.cjs" visual frame <project> --cues sub-0004,sub-0005 --count 12 --out <dir> --json
node "<pluginRoot>/scripts/videocut-cli.cjs" visual add   <project> --module modules/01-xx/index.html --cues sub-0004,sub-0005 [--zoom x,y,w,h] [--id vis-0001] --json
node "<pluginRoot>/scripts/videocut-cli.cjs" visual remove <project> --id vis-0001 --json

ensure-running must first prove that canonical 5190 belongs to the managed service of the current platform; if it fails, pass through the error and stop. Do not fallback to foreground or a custom port.

Layers are bound to subtitle cues (--cues); the product converts them to word IDs — a layer can never bind to words that no one speaks. If the edit changes, the layers move with it. Do not store seconds.

Four Steps, No Skipping

① Text defines task    Read subtitles.json, segment by semantics, for each segment answer:
                       Tutorial/Demo/Proof, or Concept/Logic/Transition?
② Frame inspection     `visual frame` to extract 8-12 frames, actually look at them.
                       In practice, 2 out of 12 segments had their text prediction overturned by visuals — this step is not a formality
③ Motion window        Compute pixel difference between adjacent frames, find scrolling/switching/interaction moments.
                       Layers only cover stable windows; annotations exit before the motion starts
④ Build layer, place layer    Write module → visual add → verify each layer in preview

Judgment rules for step ②

Visuals exactly match what is being said → Annotate: circle it, follow the word being spoken. Real evidence must not be covered.
Visuals weakly related / blank → Black animation: full-screen white background, styled from the style library.
Visuals are already clear by themselves → Do nothing. This is the most common correct answer (in practice, 4 out of 13 segments require no action).

Output from step ③ is numbers, not feelings

Circle coordinates      Derive from pixel statistics (grayscale scan to find text lines), never by eye — eyeballing previously missed by 50px
Interaction moments     Find sudden changes by per-frame pixel difference (one measured jump from 4 to 335), annotation finishes exiting 0.2s before the jump
Stable window           Scrolling is often present at the beginning (user is searching for content); layer binds to the cue starting at the stable screen

Think before using zoom

Default: no zoom.   960x720 screen recordings become blurry when magnified, the user will notice immediately
If zoom is unavoidable     ≤1.6x, region centered at 62.5% square — composition integrity > reading small text
Text too small to read     Use annotations to guide the eye; if it must be readable, the answer is a high-resolution re-record, not magnification

Review Loop

Module directories are named with sequence numbers (01-daily-report, 05-anim-task-split). The timeline track shows the directory name; the user reports the number and you modify that layer, leaving others unchanged.

Two layer modification disciplines, each corresponding to a real incident:

When modifying a layer, always check the module   After shortening/extending a layer, the hard-coded relative timings inside the module do not automatically update — the annotation's exit timing may fall after the layer ends, never appearing
Verify by checking pixels   Take a screenshot to check the visual, do not inspect DOM properties. An iframe with "visibility toggle correct" was physically off screen — all properties correct, screen completely empty

What Not To Do

  • Do not skip frame inspection or motion window analysis and go straight to production (both types of errors occurred once: covering real evidence, annotations floating on a scrolling scene)
  • Do not make something for every segment — filling is not the goal; doing nothing is a common answer
  • Do not store seconds, do not guess coordinates, do not add dark overlays on white backgrounds
  • Do not fill with placeholder images when there is no real content
  • Style must be selected from the registry, never invented
  • Brand icons must use official glyphs, not hand-drawn substitutes (X was drawn with two intersecting lines, caught by the user). If not in the local index, fetch a single-color official glyph from simple-icons (black-and-white style works well), save the original SVG into the module directory for reference; the same brand must look identical within a single video

Individual skills in this repo

This repo contains 7 individual skills — each has its own dedicated page.

Agentchengfeng/chengfeng-videocut-skills

剪辑环境的唯一管理者:就绪检查(skills 是否最新 → Runtime 是否配套)、Skills 更新激活、Runtime 安装与体检。用户说检查更新、安装剪辑环境、装播放器、检查剪辑环境、剪辑环境就绪了吗、配置转录凭证时使用;业务 Skill(剪口播/字幕/画面/导出)第 0 步也引用本 Skill 的就绪检查。不用于剪辑、字幕、画面、导出本身或项目数据迁移。

Agentchengfeng/chengfeng-videocut-skills

剪辑中文口播原素材:逐词转录、词典修字出修字表、五轮扫描找口误与重复、汇总表与重复句子表、打开 Studio 让用户复核、复盘沉淀用户偏好与词典。只产出一份已复核的删词账本,不切媒体、不做字幕、不做分镜动画。用户说剪口播、处理口误、生成口播基础素材、继续剪口播,或确认卡回传 action=return_cut_review 时使用。不要用于执行物理剪切、导出剪后视频、单独安装、单独打开工作台或口播分镜成片。

Agentchengfeng/chengfeng-videocut-skills

把剪好的口播烧成一个成片文件:账本切片段、推近、字幕、HTML 画面层,一次全部烧进 mp4。用户说导出、出成片、烧字幕、渲染、导出视频、生成最终文件时使用。不要用于生成删词候选、写字幕、做画面动画。

Agentchengfeng/chengfeng-videocut-skills

整理、脱敏并上报 chengfeng-videocut 的 GitHub Bug。用户说上报 Bug、反馈剪口播问题、提交 GitHub Issue、这个问题告诉开发者,或要求继续提交已预览的 Bug 草稿时使用。不要用于功能建议、普通排错、代码提交或未获用户确认的自动上报。

Agentchengfeng/chengfeng-videocut-skills

给剪好的口播做字幕:直接用已有的逐词稿加账本算出剪后时间(不必导出、不必重新转录)、用词典和作者文稿改写听错的专名、按句子分屏、在 Studio 里逐屏复核。用户说做字幕、加字幕、改字幕、重新分屏、字幕不对时使用。不要用于删词剪辑、物理剪切、分镜动画或成片渲染。

Agentchengfeng/chengfeng-videocut-skills

操作 chengfeng-videocut 剪辑工作台的已有工程,通过 Runtime CLI 查工程与词句位置、添加或替换画面覆盖层、移除画面、删除明确指定的词句或片段、拆分裁剪移动已有片段、调整画布比例并回读核验。用户说插入片段、删掉这句、移除动画、换个画面、调整顺序或管理时间线时使用;先区分画面覆盖与主轨顺延插入,不负责自动判断口误、创作动画、制作字幕、导出或排查安装故障。

Agentchengfeng/chengfeng-videocut-skills

Create Ian Xiaohei-style HTML/SVG motion illustrations for Chinese articles, scripts, storyboard scenes, workflow explanations, concept metaphors, and short video visual aids. Use when the user asks for 小黑 SVG、漫画感 HTML、分层 SVG 动效、把小黑生图做成 HTML/SVG、可编辑矢量动效、口播流程动画、手绘漫画动效、正文配图动画, or wants a Xiaohei illustration style adapted into controllable HTML/SVG/GSAP output instead of raster image generation.

相关技能