Communitygithub.com

Agentchengfeng/chengfeng-videocut-skills

Füge aufgenommene Bildschirmvideos mit HTML-Overlays (Markierungen, Animationen, Zooms) versehen, die an Untertitel-Cues gebunden und frame-genau vom Player gesteuert werden. Ideal für Storyboards, B-Roll und visuelle Hervorhebungen.

Was ist chengfeng-videocut-skills?

Dieses Skill dient dazu, einem bereits geschnittenen Voice-over-Video (z. B. Tutorial, Demo) visuelle Overlays hinzuzufügen, ohne die zugrunde liegende Timeline zu verändern. Es arbeitet auf Basis von Untertitel-Cues (subtitles.json) und einem Projekt-Datenmodell (edit-list.json). Der Ablauf ist streng vierstufig: (1) Textanalyse – der Inhalt wird semantisch segmentiert und kategorisiert (Tutorial vs. Konzept); (2) Frame-Extraktion – 8–12 Frames werden aus dem Video gezogen und visuell geprüft, ob das Gesagte im Bild sichtbar ist; (3) Bewegungsanalyse – Pixel-Differenzen zwischen aufeinanderfolgenden Frames identifizieren Scroll- oder UI-Wechsel, damit Overlays nur auf stabilen Bildschirmen eingeblendet werden; (4) Modul-Erstellung – ein HTML-Modul wird geschrieben und per CLI-Befehl (visual add) der Timeline hinzugefügt. Das Skill unterstützt Desktop-Runtime (über launchd/Windows Task) und vermeidet eigenständige Electron- oder Port-Logiken. Es erzwingt keine ständige Bearbeitung – „keine Änderung“ ist ein häufiges, legitimes Ergebnis. Es gibt strenge Regeln gegen Augenmaß-Koordinaten, Sekundenangaben, Platzhaltergrafiken und selbstgezeichnete Icons (nur offizielle Glyphen aus simple-icons sind erlaubt). Das Verhalten wird durch Verträge (business-workflow-contract.md, visual-module-contract.md) geregelt und erfordert vor jedem Durchlauf einen Prüfschritt, ob Skills und Runtime aktuell sind.

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

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Bildschirminhalt (Storyboard)

Dies ist eine einzelne Aufgabe, kein Schritt in einem Workflow. Sie wird immer dann ausgeführt, wenn der Benutzer sie anfordert – auch nachträglich nach einem Schnitt.

Es gibt nur zwei Voraussetzungen: Projekt und Untertitel müssen bereits existieren (Overlays werden an Cues gebunden, die Zeit wird aus dem Projekt berechnet).

Erforderlich: edit-list.json, transcript.json, subtitles.json
Ausgabe:      visuals.json + modules/<Nummer-Name>/index.html

Nach Abschluss wird angehalten und der Benutzer nicht zum nächsten Schritt aufgefordert.

Zunächst wird der phasenbezogene Vertrag des Geschäfts-Skills gelesen und ausgeführt. Die strikten Regeln für Modul-Schreibweisen sind im Modulvertrag festgelegt, die Entscheidungsregeln in Bildentscheidung.

0. Bereitschaft

Zunächst wird der Bereitschaftscheck ausgeführt – ob die Skills auf dem neuesten Stand sind und die Runtime kompatibel ist; der Plugin-Pfad wird dort ebenfalls lokalisiert (alle Befehle in diesem Dokument, die <Plugin-Pfad> enthalten, ersetzen es durch diesen tatsächlichen Pfad). Nur bei „Bereit“ wird fortgefahren; bei „Neue Sitzung erforderlich“ oder „Anhalten“ wird entsprechend der dortigen Anweisung verfahren (einschließlich des Verbots „Keine selbstgebauten Alternativoberflächen“). Das Geschäfts-Skill enthält keine eigene Umgebungslogik.

Falls das Bereitschaftsergebnis runtime.kind=desktop-managed ist, wird die bereits installierte stabile CLI der Desktop-App und derselbe launchd/Windows-Task-Dienst direkt wiederverwendet; es wird kein Electron-Pfad analysiert, keine weiteren Abhängigkeiten installiert und keine zweite Runtime gestartet.

Befehle

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

ensure-running muss zunächst nachweisen, dass Port 5190 zum verwalteten Dienst der aktuellen Plattform gehört; bei Fehlschlag wird der Fehler weitergereicht und abgebrochen, ohne auf einen Vordergrund-Port oder einen selbst gewählten Port zurückzufallen.

Overlays werden an Untertitel-Cues (--cues) gebunden; das Produkt rechnet selbst in Wort-IDs um – Overlays können niemals an Wörter gebunden werden, die niemand spricht, und verschieben sich bei Schnittänderungen automatisch mit. Es werden keine Sekundenangaben gespeichert.

Vier Schritte, ohne einen auszulassen

① Text – Aufgabe definieren     subtitles.json lesen, semantisch segmentieren, je Segment beantworten:
                               Tutorial/Demo/Beleg oder Konzept/Logik/Übergang?
② Frames extrahieren & Bild prüfen   visual frame: 8–12 Frames extrahieren, wirklich mit den Augen ansehen.
                               Tatsächlich wurden bei 12 Segmenten 2 Segmente durch das Bild widerlegt – dieser Schritt ist keine Formsache
③ Bewegungsfenster messen     Pixel-Differenz aufeinanderfolgender Frames berechnen, Momente von Scrollen/Wechsel/Bedienung identifizieren.
                               Overlays nur auf stabilen Bildschirmen platzieren, Ausblenden vor Beginn der Bewegung
④ Overlay erstellen & platzieren   Modul schreiben → visual add → in der Vorschau Layer für Layer prüfen

Entscheidungsregeln für Schritt ②

Bild zeigt genau das, was gesagt wird     → Markierung: einkreisen, genau beim genannten Wort. Echte Beweise nicht überdecken
Bild kaum relevant/leer                    → Schwarz-Weiß-Animation: vollflächig weiß, aus dem Stil-Repository
Bild selbst ist klar genug                 → Keine Änderung. Dies ist die häufigste richtige Antwort (tatsächlich 4 von 13 Segmenten unverändert)

Ergebnis von Schritt ③ sind Zahlen, kein Gefühl

Koordinaten der Markierung     Pixelstatistiken (Graustufenscan nach Textzeilen), niemals nach Augenmaß – Augenmaß hatte 50px Abweichung
Interaktionsmoment             Pixel-Differenz Frame für Frame auf Sprünge prüfen (tatsächlich ein Sprung von 4 auf 335), Ausblenden 0,2 s vor dem Sprung
Stabiles Fenster               Zu Beginn oft Scrollen (der Nutzer sucht), Overlay ab dem stabilen Frame anbinden

Zoom vorher genau überlegen

Standardmäßig kein Zoom.    960x720 Bildschirmaufnahmen werden beim Vergrößern unscharf, das fällt sofort auf
Nur wenn unvermeidbar        ≤1,6-fach, Bereich quadratisch zentriert mit 62,5 % Seitenlänge – Bildkomposition wichtiger als winzige Schrift lesen
Schrift zu klein             Markierung reicht zur Führung; wenn lesen nötig, ist die Lösung eine hochauflösende Neuaufnahme, kein Zoom

Review-Zyklus

Modulverzeichnisse werden nummeriert (01-daily-report, 05-anim-task-split), auf der Timeline wird der Verzeichnisname angezeigt, der Benutzer nennt die Nummer, du änderst nur diesen Layer, andere bleiben unberührt.

Zwei Disziplinregeln für Layer-Änderungen, jede basierend auf einem tatsächlichen Vorfall:

Bei Layer-Änderung immer das Modul prüfen     Nach Verkürzung/Verlängerung eines Layers bleiben die im Modul fest codierten relativen Zeitpunkte unverändert –
                                              der Ausblendzeitpunkt einer Markierung kann nach Layer-Ende fallen und erscheint nie.
Abnahme mit Pixel-Bildschirmfoto             Mit Bildschirmfoto prüfen, nicht mit DOM-Eigenschaften. Ein iframe mit korrekter Sichtbarkeitsumschaltung
                                              war physisch nicht im Bild – alle Eigenschaften korrekt, der Bildschirm völlig leer.

Was nicht erlaubt ist

  • Nicht erlaubt: Überspringen von Frame-Extraktion und Bewegungsanalyse (beide Fehler traten auf: echte Beweise überdeckt, Markierung schwebte über Scrollen)
  • Nicht erlaubt: Jedes Segment mit etwas zu versehen – Vollständigkeit ist kein Ziel, keine Änderung ist ein häufiges, legitimes Ergebnis
  • Nicht erlaubt: Speichern von Sekundenangaben, Koordinaten nach Augenmaß, Abdunkeln auf weißem Hintergrund
  • Ohne echten Inhalt keine Platzhaltergrafiken verwenden
  • Stil aus dem Repository wählen, nicht selbst erfinden
  • Markenlogos mit offiziellen Schriftglyphen, keine handgezeichneten Stellvertreter (X wurde mit zwei sich kreuzenden Linien gezeichnet und vom Benutzer erkannt). Falls nicht im lokalen Index vorhanden, einfarbige offizielle Glyphen (Schwarz-Weiß harmoniert) aus simple-icons holen, die Original-SVG in das Modulverzeichnis zur Referenz speichern; im selben Video darf eine Marke nur einheitlich aussehen.

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.

Verwandte Skills