Couper les erreurs et répétitions (Agent 2 du pipeline)
Deuxième étape du montage automatisé, à exécuter après la coupure des silences. Cet agent supprime les défauts qu’un monteur humain coupe lors d’un second passage : bégaiements (« le le », « je- je- »), répétitions immédiates, faux départs (phrase abandonnée qui redémarre) et reprises (scène réenregistrée — on garde la prise propre, on supprime la ratée).
Décider ce qui constitue une erreur relève du jugement, pas d’une formule — une répétition emphatique (« jamais, jamais ») et un doublement rhétorique (« le premier truc est, est-ce que… ») sont mécaniquement identiques à un bégaiement. Cet agent est donc soumis à révision par défaut : il présente les candidats avec leur contexte complet ; l’agent (et l’utilisateur) décident ; seules les coupes approuvées sont rendues.
Quand utiliser ce skill
- « coupe les erreurs », « supprime les bégaiements / répétitions », « nettoie les bafouilles », « garde la meilleure prise », « coupe les faux départs »
- Comme deuxième étape du workflow de montage principal, sur la sortie de la coupure des silences.
Le flux en trois parties
1. Identifier les candidats (mécanique)
node .claude/skills/cut-mistakes/scripts/find-cut-candidates.mjs \
<silence-transcript.json> --out-dir video-projects/<slug>/assets
L’entrée est normalement le fichier <stem>.silence-transcript.json de l’Agent 1, de sorte que les coupes s’appliquent sur la timeline déjà débarrassée des silences. Écrit :
<stem>.cut-candidates.json— candidats structurés (type, confiance, plagecutproposée, texteremoves/keeps, contexte, recommandation)<stem>.cut-candidates.md— proposition lisible
Types de candidats : stutter (répétition immédiate d’un mot), retake (segment en double ou quasi‑double via similarité Jaccard), false_start (courte phrase abandonnée qui redémarre).
2. Révision (la barrière — 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 intentionnelle / une figure de style et une véritable bafouille ; ne vous fiez donc pas aveuglément à la recommend — lisez removes + context. Fausses alertes courantes : répétition emphatique (« c’est jamais, jamais sans intervention »), copule suivie d’une question (« le truc est, est-ce que… »), é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 je-" }, ... ] }
(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 .claude/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 la décision EDL, un transcript remis à l’heure <stem>.mistakes-transcript.json (pour l’agent motion‑graphics + validate-beat-sync.mjs), un journal des décisions, et — avec --apply — la vidéo coupée (trim + concat avec ffmpeg, A/V synchrone). Retirez --apply pour un essai à blanc.
Vérifier le résultat
Utilisez l’outil de révision partagé pour examiner 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
- Une prise très propre peut donner peu ou pas de coupes réelles — c’est un résultat valide ; ne coupez pas une 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 et faux départs ; pour un audio 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 / cartes superposées).