Communitygithub.com

zroeschen/Video-Production-Factory

Agent 2 de la pipeline de montage vidéo. Détecte et supprime les erreurs orales — bégaiements, répétitions, faux départs et reprises — d'un enregistrement tête parlante, avec un processus de révision avant validation.

Qu'est-ce que Video-Production-Factory ?

Ce skill est le second agent d'une pipeline de montage vidéo automatisé, conçu pour être exécuté après la suppression des silences (Agent 1). Il identifie et supprime les erreurs de parole typiques qu'un monteur humain corrigerait lors d'un second passage : les bégaiements (répétitions immédiates de mots), les faux départs (phrases abandonnées puis recommencées) et les reprises (lignes ré-enregistrées, en ne gardant que la meilleure prise). Fonctionnant sur une transcription au niveau du mot, l'agent propose chaque coupe avec le contexte complet et une justification, puis attend une validation explicite de l'utilisateur ou de l'agent avant de l'appliquer. Cela évite les faux positifs, comme les répétitions emphatiques ("jamais, jamais") qui ressemblent mécaniquement à un bégaiement. Les coupes approuvées sont finalement rendues via ffmpeg en conservant la synchronisation audio/vidéo. Le skill produit un fichier de candidats structuré (type, niveau de confiance, plage de coupe), un journal des décisions, et un transcript retimé qui sera utilisé par l'agent suivant (motion graphics / tiered cards). Un outil de révision visuelle permet de visionner le résultat avant de passer à l'étape suivante.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/zroeschen/Video-Production-Factory/tree/HEAD/.agents/skills/cut-mistakes

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Supprimer les erreurs et répétitions (Agent 2 de la pipeline)

Deuxième étape du montage automatisé, exécutée après la suppression des silences. Elle supprime ce qu'un monteur humain couperait lors d'un second passage : les bégaiements ("le le", "j- j-"), les répétitions immédiates de mots, les faux départs (une phrase abandonnée puis recommencée) et les reprises (une ligne ré-enregistrée — garder la prise propre, supprimer la ratée).

Décider ce qui constitue une erreur est une question de jugement, pas une formule — une répétition emphatique ("jamais, jamais") et un dédoublement rhétorique ("la première pièce est, est-ce…") sont mécaniquement identiques à un bégaiement. C'est pourquoi cet agent est soumis à révision par défaut : il propose des candidats avec leur contexte complet ; l'agent (et l'utilisateur) décident ; seules les coupes approuvées sont rendues.

Quand l'utiliser

  • "coupe les erreurs", "supprime les bégaiements / répétitions", "nettoie les cafouillages", "garde la meilleure prise", "supprime les faux départs"
  • Comme deuxième étape du workflow de montage principal, sur la sortie de la suppression des silences.

Le flux en trois parties

1. Trouver les candidats (mécanique)

node .agents/skills/cut-mistakes/scripts/find-cut-candidates.mjs \
  <silence-transcript.json> --out-dir video-projects/<slug>/assets

L'entrée est normalement le <stem>.silence-transcript.json de l'Agent 1, de sorte que les coupes atterrissent sur la timeline déjà silencée. Écrit :

  • <stem>.cut-candidates.json — candidats structurés (type, confiance, plage de cut proposée, texte removes/keeps, contexte, recommandation)
  • <stem>.cut-candidates.md — proposition lisible

Types de candidats : stutter (répétition immédiate de mot), retake (segment dupliqué/quasi-dupliqué via similarité Jaccard), false_start (courte phrase abandonnée qui recommence).

2. Révision (le contrôle — OBLIGATOIRE)

Lisez chaque candidat dans son contexte et décidez de le garder ou de le couper. Le détecteur mécanique ne peut pas faire la différence entre une emphase/rhétorique intentionnelle et une vraie erreur, donc ne faites pas aveuglément confiance à recommend — lisez removes + context. Faux positifs courants : répétition emphatique ("c'est jamais, jamais sans filet"), copule suivie d'une question ("la pièce est, est-ce…"), énumération.

Présentez les candidats à l'utilisateur avec une recommandation par élément ; recueillez les approbations. Écrivez les coupes approuvées dans un fichier :

{ "cuts": [ { "start": 100.93, "end": 101.06, "reason": "faux départ j-" }, ... ] }

(start/end en secondes sur la timeline vidéo/transcript d'entrée. Vous pouvez élargir la plage d'un candidat — par exemple pour une reprise, couper du début de la prise ratée jusqu'au redémarrage propre.)

3. Appliquer les coupes approuvées

node .agents/skills/cut-mistakes/scripts/apply-cuts.mjs \
  <silence-transcript.json> --cuts approved-cuts.json \
  --video video-projects/<slug>/assets/edited-silenced.mp4 \
  --output video-projects/<slug>/assets/edited-clean.mp4 --apply

Écrit l'EDL, un transcript retimé <stem>.mistakes-transcript.json (alimente l'agent de motion graphics + validate-beat-sync.mjs), un journal des décisions, et — avec --apply — la vidéo coupée (ffmpeg trim+concat, A/V synchronisés). Supprimez --apply pour un essai à blanc.

Révision du résultat

Utilisez l'outil de révision partagé pour examiner visuellement les coupes et vérifier les limites :

node scripts/build-edl-review.mjs <stem>.mistakes-edl.json \
  --original video-projects/<slug>/assets/edited-silenced.mp4 \
  --edited   video-projects/<slug>/assets/edited-clean.mp4 \
  --output   video-projects/<slug>/assets/mistakes-review.html
npx serve . -p 8080 -n

Remarques

  • Un enregistrement très propre peut donner peu ou pas de vraies coupes — c'est un résultat valide ; ne coupez pas la parole naturelle pour atteindre un quota.
  • Les coupes entre deux mots parlés sont des jonctions dures. Elles sont généralement propres pour les bégaiements/faux départs ; pour un son plus serré, un fondu de 20-30 ms peut être ajouté plus tard.
  • Transmettez le mistakes-transcript.json + la vidéo propre à l'Agent 3 (motion graphics / tiered cards).

Individual skills in this repo

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

Skills associés