剪口播
Von einem Video zu einem von Menschen überprüften Löschprotokoll (Cuts + EDL) – ohne die Mediendateien anzufassen. Sieben Schritte in einer Linie:
0 Bereitschaft Überprüfung auf Aktualisierungen (dieses Skill hat keine eigene Umgebungslogik)
1 Projektanlage Echtes Video → Cloud-Wort-für-Wort-Transkription → Produktprojekt anlegen → Dienst starten → Status zurücklesen
2 Wortkorrektur Wörter mithilfe des Wörterbuchs korrigieren (ein allgemeines + ein benutzerspezifisches) → Korrekturtabelle ausgeben
3 Wortlöschung Präferenzen und Regeln lesen → fünf Durchgänge, jeder sucht nur eine Kategorie, zeichnet nur Zeilen auf
4 Zusammenfassung Löschzusammenfassung + Tabelle mit wiederholten Sätzen → gemäß der Tabelle selbstständig prüfen
5 Prüfung Vollständige Übermittlung → beide Tabellen dem Benutzer vorlegen → Studio zur persönlichen Überprüfung öffnen
6 Rückblick und Übergabe Vorschlag mit endgültiger Version vergleichen → drei Ordner archivieren → vier Dinge berichten
Kein Medienkontakt: Das Ändern des Protokolls dauert zig Millisekunden, das Schneiden einer Datei ist unwiderruflich. Bis zum Ende dieses Skills befindet sich keine neue Videodatei auf der Festplatte. Das Skill trifft semantische Entscheidungen und orchestriert den Ablauf; die Produkt-Runtime ist der alleinige Schreiber von Projekten, Cuts und Studio-Status.
Der Benutzer spricht nur an drei Stellen: Bei der Auswahl „Weitermachen“ oder „Neustart“ für dasselbe Quellprojekt (nur wenn bereits geschnitten wurde), bei der Studio-Überprüfung und bei der Bestätigung des Abschlusses. Sonst immer einseitige Berichterstattung, ohne auf eine Antwort zu warten. Das Abschlusskriterium jedes Schritts ist sein Ausgabeprodukt: Keine Tabelle erstellt = nicht abgeschlossen.
Zunächst die Phasenvereinbarung des Geschäftsskills lesen und ausführen. Die Zuordnung der Schritte dieses Dokuments zur Vereinbarung: 1=preflight+Product state readback, 5=proposal+Product CAS, Prüfung=project-level review binding. Die drei Phasen nach der Vereinbarung (Bestätigung, Ausführung, Abnahme) gehören zum Export-Skill.
Die Entstehungsgeschichte der einzelnen Regeln befindet sich im Unfallbuch – die Regeln stehen hier, die Geschichten dort.
0. Bereitschaft
Zunächst die Bereitschaftsprüfung von „check-updates“ ausführen – ob die Skills
aktuell sind, ob die Runtime kompatibel ist; das Plugin-Wurzelverzeichnis wird dort auch lokalisiert (die <plugin-root>-Befehle in diesem Dokument werden mit diesem literalen Pfad ersetzt). Nur wenn „bereit“ zurückgegeben wird, fortfahren; „neue Sitzung erforderlich“ oder „stopp“ werden gemäß seiner Anweisung ausgeführt
(einschließlich des Verbots „keine selbst erstellte alternative Oberfläche“).
Falls das Bereitschaftsergebnis runtime.kind=desktop-managed ist, teilt es sich denselben stabilen Einstiegspunkt und
launchd/windows-task-Dienst mit der CLI-Installation; direkt fortfahren; nicht nach Electron-Installationsverzeichnissen suchen, Bun / FFmpeg separat installieren oder eine zweite Runtime starten.
1. Projektanlage: Echtes Eingangsmaterial → Transkription → Produktprojekt anlegen
Was wird getan: Die lokalen echten Videos des Benutzers und die Cloud-Wort-für-Wort-Transkription dem Produkt übergeben, atomar ein Projekt anlegen, Dienst starten, Status zurücklesen.
# Nach der Cloud-Wort-für-Wort-Transkription (erzeugt Transkriptionskandidaten im Aufgabenverzeichnis):
node "<plugin-root>/scripts/videocut-cli.cjs" project create "<projektverzeichnis>" --video "<videodatei im aufgabenverzeichnis>" --transcript "<wort-für-wort-transkript im aufgabenverzeichnis>" --json
node "<plugin-root>/scripts/ensure-running.cjs" --json # Produkt deklarativ den Hintergrunddienst (5190) sicherstellen
node "<plugin-root>/scripts/videocut-cli.cjs" workflow get "<projektverzeichnis>" --json # Product state readback
node "<plugin-root>/scripts/videocut-cli.cjs" cuts get "<projektverzeichnis>" --json
Regeln:
- Nur echte Sprachaufnahme-Videos oder existierende echte Projekte akzeptieren, die der Benutzer angibt; ohne echte Medien anhalten, keine Beispiele oder Platzhalter verwenden
- Für die Transkription nur die von der aktuellen Umgebung genehmigte Cloud-ASR verwenden; Rückfall auf lokale ASR verboten; wenn keine Cloud-ASR verfügbar ist,
missing_cloud_transcription_adaptermelden, kein Studio öffnen, kein Transkript fälschen --video/--transcriptmüssen echte Dateien im Aufgabenverzeichnis sein; das Seitenverhältnis nicht übergeben – das Produkt leitet es automatisch aus der tatsächlichen Videogröße ab (Runtime 0.4.4+). Nur wenn der Benutzer explizit ein spezielles Seitenverhältnis anfordert,--aspect-ratio W:Hhinzufügen- Bei einem bereits standardisierten Projekt zuerst
inspectzur Bestätigung und Wiederverwendung, nicht doppeltprojectIderstellen; wenn dasselbe Video bereits geschnitten wurde, den Benutzer fragen: Weitermachen oder Neustart (einer der drei Sprechpunkte).project prepareist ein idempotenter Compiler, nur zur Wiederherstellung nach Unterbrechungen oder explizitem Aktualisieren; bei Unterbrechung einfach erneut ausführen project createist der einzige Einstiegspunkt: nicht über Asset-Bibliothek, Upload-Sitzung oder zusätzliches Skill; das Skill darf nicht zuerstproject.jsonschreiben- Der Dienst muss nach Bestätigung von
healthy=true,runtimeMode=launchd(macOS) oderruntimeMode=windows-task(Windows), Versionskompatibilität und kanonischer 5190-URL durch das Skript fortfahren; bei Fehler strukturierten Fehler weiterleiten und anhalten, kein Rückfall auf foreground, Portwechsel oder Töten unbekannter Prozesse - Die beiden Readbacks müssen auf dieselbe
projectIdverweisen und die drei Revisionen workflow stage, Project / Cuts / EditList speichern; bei Fehlen oder Inkonsistenz anhalten
2. Wortkorrektur: Die Zeichen korrigieren, Korrekturtabelle ausgeben
Was wird getan: Vor allen Löschungsentscheidungen mit dem Wörterbuch die falsch transkribierten Zeichen korrigieren – wenn die Zeichen nicht stimmen, sind alle nachfolgenden Entscheidungen falsch; falsch gehörte Zeichen sind keine überflüssigen Wörter, die Löschung kann sie nicht korrigieren.
node "<plugin-root>/scripts/videocut-cli.cjs" transcript dictionary "<projektverzeichnis>" --dictionary "<plugin-root>/references/ai-term-dictionary.md" --json
Mit deinem Dateiwerkzeug prüfen, ob $HOME/.chengfeng-videocut/dictionary.md existiert; wenn ja, noch einmal ausführen
(Übergangslösung: CLI akzeptiert derzeit nur eine einzelne Datei, zweimal ausführen; es kann nur ergänzen, nicht die vorherige Durchlauf rückgängig machen – vollständige Benutzerprioritätszusammenführung mit mehreren Wörterbüchern nach CLI-Veröffentlichung):
node "<plugin-root>/scripts/videocut-cli.cjs" transcript dictionary "<projektverzeichnis>" --dictionary "$HOME/.chengfeng-videocut/dictionary.md" --json
Ausgabeprodukt: Korrekturtabelle – die applied-Liste beider Aufrufe zu einer kleinen Tabelle zusammenführen (ursprüngliches Zeichen → geändert zu → Kontext), dem Benutzer melden. Nach der Korrektur muss diese Tabelle angesehen werden – das Wörterbuch kann ohne Kontext auch falsch korrigieren; wenn etwas nicht stimmt, das Wörterbuch korrigieren, nicht an anderer Stelle patchen.
Nur wenn das Wörterbuch nicht hilft und der Autor ein Manuskript hat, einmalige Kontextanpassung:
node "<plugin-root>/scripts/videocut-cli.cjs" transcript align "<projektverzeichnis>" --script "<sprachaufnahme-manuskript>" --json # Nur melden, nicht ändern
node "<plugin-root>/scripts/videocut-cli.cjs" transcript correct "<projektverzeichnis>" --file "<korrekturdatei>" --json
Regeln:
- Nur Zeichen ändern, nicht Zeit, Wortanzahl, wordId – das Produkt vergleicht Wort für Wort die Zeitstempel, bei Änderung direkt ablehnen
- Nur die Schreibweise ändern, nicht die Bedeutung – tatsächlich falsch Gesagtes und Wiederholtes gehört zu Satzabbrüchen und wird von der Löschung behandelt
- Wenn das Wörterbuch nicht hilft und das Manuskript nicht bestätigen kann, nicht raten: Melden und dem Benutzer zum Auffüllen des Wörterbuchs überlassen. Einen erfundenen Namen einzufügen ist schlimmer als einen falsch gehörten Namen zu lassen
- Chinesische Umgangssprache originalgetreu erhalten: Wenn „Cha“ oder „Großes Modell“ gesagt wurde, ist es das Gesagte
- Das Wörterbuch ist ein Tor, das jede Transkription passieren muss (dieselbe Audioaufnahme zweimal transkribiert liefert unterschiedliche Ergebnisse, siehe Unfallbuch)
Manuskript nach Satzzeichen segmentieren: Jedes Wort in der Transkription trägt Satzzeichen, das Manuskript ein Komma ein Absatz, ein Satz eine Zeile; Untertitel teilen dieselben Satzzeichen, beide Seiten gleiche Abschnittsgrenzen. Alte Projekte vor 2026-07-28 haben keine Satzzeichen, führe node "<plugin-root>/scripts/videocut-cli.cjs" transcript regroup "<projektverzeichnis>" --json aus, um Absätze neu zuzuschneiden (Wort-für-Wort-Prüfung von id/Zeit/Text unverändert, sicher für bereits geschnittene Projekte); für echte Satzzeichen muss neu transkribiert werden – in alten Transkriptionen existieren Satzzeichen nicht.
3. Wortlöschung: Fünf Durchgänge, jeder sucht nur eine Kategorie
Was wird getan: Material lesen, dann die vollständige Abspielreihenfolge fünfmal lesen, jedes Mal nur mit einem Kriterium. Ein Kriterium pro Lesedurchgang liefert weit bessere Urteilsqualität als sechs gleichzeitig; jeder Durchgang ist klein und überprüfbar.
Zunächst Material lesen:
node "<plugin-root>/scripts/videocut-cli.cjs" transcript playback "<projektverzeichnis>" --json
Dann mit deinem Dateiwerkzeug $HOME/.chengfeng-videocut/cut-preferences.md lesen (Benutzerpräferenzen, was er gesagt hat, zählt; wenn die Datei nicht existiert, ist es ein neuer Benutzer, überspringen).
Kriterien in Semantische Löschregeln (Prinzipien + Präzedenzfälle). Lehrmaterialpriorität: Benutzerpräferenz > Benutzerpräzedenzfall > Allgemeiner Präzedenzfall.
Durchgang 1 Wiederholung Satzübergreifende Wiederholung, Satzinterne Wiederholung (objektivste: zweimal gleich)
Durchgang 2 Satzabbruch und Neuformulierung Halb gesagt abgebrochen, neu formuliert
Durchgang 3 Versprecher und Korrektur Falsche Zahlen, Eigennamen, Wörter, danach korrekt wiederholt
Durchgang 4 Englische Stockung Wortanfang / Buchstabe / Silbenwiederholung
Durchgang 5 Füllwörter und Modewörter Subjektivste, nach Dichte und Toleranz der Benutzerpräferenz
Jeder Durchgang hat eine feste Aktion: Nach der Kategorie dieses Durchgangs Präzedenzfälle prüfen → eine Fundstelle als eine Zeile notieren (wordIds + Typ + Risiko) → keine anderen Typen entscheiden. Bei späteren Durchgängen bereits markierte Wörter direkt überspringen, Konflikte in der Zusammenfassung lösen.
Regeln:
- Urteil nur basierend auf der Abspielreihenfolge von
transcript playback, nicht selbst austranscript.jsonzusammensetzen – „zweimal gesagt“ erkennt man durch nebeneinander im Abspiel; selbst zusammensetzen kann Sprungnummern als fehlenden Inhalt interpretieren und fälschlich ablehnen (siehe Unfallbuch) - Löschung hat nur zwei Zustände: „gelöscht / nicht gelöscht“; KI-Grund bildet keinen dritten Zustand „Löschung empfohlen“
- Bei Versprechern, Wiederholungen, Satzabbrüchen standardmäßig das Vordere löschen und das Hintere behalten; bei langen Sätzen, ganzen Sätzen, abzweigenden Neuformulierungen zwingend hohes Risiko überprüfen
- Normale Pausen werden nicht vom Skill berechnet: Zusammenführen benachbarter Stille und
natural-pause-v2werden deterministisch vom Produkt ausgeführt
4. Zusammenfassung: Zwei Tabellen, erst handeln wenn sie da sind
Was wird getan: Die Zeilen der fünf Durchgänge zu zwei Tabellen zusammenführen – das ist das Ausgabeprodukt dieses Schritts und das, was dem Benutzer gezeigt wird.
Löschzusammenfassungstabelle (einzelne Löschungsentscheidungen):
| # | Zeit | Typ | Gelöscht | Verbleibend gelesen als | Risiko | Grundlage |
|---|-------|--------|----------------------|----------------------|-----|----------|
| 1 | 00:12 | Wiederholung | diese Funktion nun | diese Funktion ist eigentlich | Niedrig | Präzedenzfall R2 |
| 2 | 02:31 | Neuformulierung | zum Beispiel ließ ich ihn verfolgen | zum Beispiel ließ ich Grok verfolgen | Hoch | Präzedenzfall R5 |
Tabelle mit wiederholten Sätzen (mehrfach gesagte Sätze – aus der Worttabelle ist nicht erkennbar, „wie oft aufgenommen, welche Version behalten“, genau das wollen Benutzer am meisten überprüfen):
| Satz (Anfang) | Wie oft gesagt | Welche Version behalten | Welche Versionen gelöscht | Risiko |
|-----------------|--------|---------------|------------|-----------------|
| Weil heute etwas… | 3 | 3. Version 00:08 | Version 1, 2 | Niedrig – drei Versionen im Wesentlichen identisch |
| Die meisten Agenten können suchen… | 2 | 2. Version 04:40 | Version 1 | Hoch – zwei Versionen weichen ab, genau hinhören |
Dann selbst lesen: Den gesamten Text nach der Löschung gemäß der Tabelle in Abspielreihenfolge einmal durchlesen, unlesbare Zeilen rückgängig machen. Das ist die Definition der Überprüfung: Die KI sieht es sich selbst noch einmal an, nicht, um den Benutzer zu fragen; Unsicher = nicht aufführen (zwei Zustände).
5. Prüfung: Studio erst bei manueller Prüfung öffnen
Was wird getan: Vollständige Kandidatenübermittlung, beide Tabellen dem Benutzer vorlegen, dann die Produktprüfungsseite öffnen, damit der Benutzer selbst überprüfen kann.
node "<plugin-root>/scripts/videocut-cli.cjs" cuts get "<projektverzeichnis>" --json # Cuts eigene Revision holen
node "<plugin-root>/scripts/videocut-cli.cjs" cuts set "<projektverzeichnis>" --file "<vorschlagsdatei>" --expected-revision "<aktuelle Cuts-Revision>" --json
Kandidaten verweisen nur auf stabile wordIds:
{
"schemaVersion": 1,
"cutWordIds": ["word-12", "word-13"],
"reasons": [
{ "wordIds": ["word-12", "word-13"], "kind": "repeat", "risk": "low" }
]
}
Übermittlungsregeln:
- Der Kandidat ist das vollständige Urteil dieses Durchgangs, kein Inkrement –
cuts setist eine Ersetzungssemantik; die Übergabe eines Inkrements würde die semantischen Löschungen des vorherigen Durchgangs stillschweigend verwerfen (siehe Unfallbuch); bei der Kandidatenübermittlung das Lesen oder manuelle Zusammenführen voninitialization.baselineCutWordIdsverboten (das Produkt fügt automatisch die Pausengrundlinie ein) reasons-Daten speichern, wahrheitsgemäß schreiben; das Produkt entfernt Teile, die nicht gelöschte Wörter erwähnen- Nicht direkt
cut-selection.json,project.jsonoder Ereignisprotokolle schreiben cuts get.data.revisionist die Revision von Cuts,workflow get.data.revisionist die des Projekts, nicht mischen- Nach erfolgreicher Übermittlung zwingend
noLongerCutansehen (Anzahl der diesmal nicht mehr gelöschten Wörter): nicht Null und nicht absichtlicher Rückzug = inkrementelle Übermittlung, zurückgehen und vollständig neu übermitteln; auch"unknown"muss gesehen werden - Anschließend sofort erneut
workflow get+cuts getausführen, umcut_review_readyund die drei Revisionen zu bestätigen; bei Inkonsistenz sofort anhalten, niemals direkt JSON schreiben oder automatisch überschreiben - Nach der Übermittlung
<vorschlagsdatei>im Aufgabenverzeichnis belassen – Schritt 6 Rückblick benötigt sie (reasons werden nach Benutzerbearbeitung vom Produkt gekürzt, nachträgliche Rückverfolgung aus dem Protokoll unzuverlässig)
Dann zuerst die Tabellen vorlegen, dann die Seite öffnen: Die beiden Tabellen an den Benutzer senden, damit er mit den Tabellen das Studio zur Überprüfung aufrufen kann.
node "<plugin-root>/scripts/ensure-running.cjs" --json # Vor dem Öffnen erneut idempotent ensure
node "<plugin-root>/scripts/videocut-cli.cjs" open "<projektverzeichnis>" --json # Produkt-Projekt-URL holen
node "<plugin-root>/scripts/ensure-studio.cjs" --url "<produkt-projekt-url>" --view koubo --json # Capability Gate: Bestätigen, dass 5190 die koubo-Ansicht registriert hat
Regeln:
- Nur wenn das Gate
ok=truezurückgibt, den Codex-Eingebauten-Browser mitstudio.urlöffnen, dann die automatische Fortsetzung anhalten und auf Benutzer wählen, Wiederherstellen, Speichern - Vor dem Öffnen die
productUrlmit#project/<projectId>und dieprojectIddes Readbacks streng abgleichen undstage=cut_review_readymit den drei Revisionen binden –ok=truevom Gate beweist nur die Produktseitenfähigkeit, kann die projektbezogene Bindung nicht ersetzen; bei Inkonsistenz erneut Readback durchführen studio_capability_missing: Anhalten und auf Versionsinkompatibilität hinweisen,$chengfeng-report-bugvorschlagen; verboten, allein aufgrund von?view=kouboin der URL das Vorhandensein der neuen Oberfläche anzunehmen; kein Rückfall auf das alte Aufgabenpanel- Das Öffnen der Arbeitsumgebung nicht als ersten Schritt der Aufgabe betrachten; nicht auf alte
review.html, 8898/8899 zugreifen; nicht das Studio-DOM steuern oder Medienelemente direkt ändern; keine unabhängigen Audiospuren oder Platzhalter-Untertitelspuren erstellen
6. Rückblick und Übergabe: Die vom Benutzer korrigierte Arbeit darf nicht weggeworfen werden
Nach Abschluss der Benutzerüberprüfung zuerst Readback durchführen:
node "<plugin-root>/scripts/videocut-cli.cjs" workflow get "<projektverzeichnis>" --json
node "<plugin-root>/scripts/videocut-cli.cjs" cuts get "<projektverzeichnis>" --json
Rückblick (Übergangslösung, wird nach Veröffentlichung des Produktbefehls cuts diff ersetzt): Die in Schritt 5 gespeicherte <vorschlagsdatei> mit der endgültigen Version des cutWordIds aus dem Readback vergleichen –
- Vom Benutzer wiederhergestellte (im Vorschlag enthalten, in der endgültigen Version nicht) = KI hat falsch gelöscht. Anhand der selbst geschriebenen reason im Vorschlag fragen: Bei welcher Kategorie lag der Fehler?
- Vom Benutzer zusätzlich gelöschte (in der endgültigen Version enthalten, nicht im Vorschlag und nicht in
initialization.baselineCutWordIdsder Pausengrundlinie) = KI hat etwas übersehen. Fragen: Zu welchem Typ gehört das, warum wurde es nicht erkannt? (Die Grundlinie wird hier nur zum Herausfiltern von Pausenwörtern verwendet, es bleibt verboten, sie in die Übermittlung aufzunehmen.)
Drei Ordner archivieren:
- Geschmacksunterschiede →
~/.chengfeng-videocut/cut-preferences.mdanhängen (vom Agenten verwaltetes Markdown, nur den eigenen Abschnitt anhängen und umschreiben; wenn die Datei nicht existiert, erstellen) - Eigennamensfehler →
~/.chengfeng-videocut/dictionary.mdanhängen (zweispaltige Tabelle, vor dem Anhängen auf Duplikate prüfen) - Regellücken → Im Präferenzdatei-Abschnitt „zu aktualisierende Präzedenzfälle“ einen Vermerk notieren; beim dritten Auftreten derselben Art dem Benutzer melden und vorschlagen, in allgemeine Präzedenzfälle zu übernehmen (erst nach menschlicher Prüfung das Skills-Repository ändern)
- Auch bei null Abweichung: In der Präferenzdatei eine Zeile für das Projekt mit „vollständig übernommen“ notieren
Vier Dinge berichten: Wie viele Wörter gelöscht, wie viele Sekunden eingespart wurden; aktuelle Stage (sollte cut_review_ready sein); drei Revisionen Projekt / Cuts / EDL; Rückblickzusammenfassung (N Vorschläge, X übernommen, Y wiederhergestellt, Z zusätzlich gelöscht, eine Zusammenfassung des Hauptunterschieds). Dann dem Benutzer mitteilen, dass der nächste Schritt der Export ist.
Keine Bestätigungskarte, kein Schneiden ausführen – die Bestätigungskarte für das physische Schneiden gehört zum Export-Skill, diese Karte muss die Revision einfrieren, die zum Zeitpunkt der Bestätigung durch den Benutzer gültig ist.
return_cut_review: Zuerst erneut node "<plugin-root>/scripts/ensure-running.cjs" --json, dann dasselbe Studio zur weiteren Überprüfung zurückgeben; keinen Rückblick auslösen, Rückblick nur bei der endgültigen Übergabe einmal durchführen.
Berichtsstufen: Produkt-Strukturierte Revision sind API/readback PASS; echte Browser-Frame-Prüfung erst ist visual frame PASS; Solange niemand wirklich zuhört, immer human listening UNVERIFIED, nicht mit Wiedergabe, DOM, Screenshots oder Medienerkennung ersetzen.
Wiederherstellung und Fehler
revision_conflict: Status erneut lesen, die Bearbeitung des Benutzers erklären, nicht automatisch überschreibenruntime_unhealthy: Nicht erneut installierenservice_identity_mismatch/service_port_conflict: Anhalten, nicht auf foreground zurückfallen, keinen Port wechseln, keine unbekannten Prozesse töten- Seite geschlossen, aber Dienst läuft noch: Workflow lesen und ab aktuellem Status fortsetzen, kein neues Projekt erstellen
- Bei keinem Fehler darf „Protokoll geschrieben“ als „bereits geschnitten“ ausgegeben werden – bis zu diesem Abschnitt wurden keine Mediendateien erzeugt
Anmerkung: Dieses Skill akzeptiert lokale echte Videos und Cloud-Wort-für-Wort-Transkriptionen zur direkten Eingabe in das Produkt; dies ist die Anforderung der Vorabprüfung in der Vereinbarung; die tatsächliche Existenz beider ist die Grundlage aller Urteile.