Communitygithub.com

CutCraft

Montez et finalisez des vidéos par conversation, incluant l'inspection des rushes, la sélection des prises, les coupes précises, le recadrage, la colorimétrie, les transitions, les effets, la musique sous licence / les effets sonores / les images de coupe, et les sous-titres incrustés ou sidecar (pixel-safe). À utiliser lorsque l'utilisateur demande de 剪片、剪影片、上字幕、加字幕、改逐字稿、合併影片、做短影音、加音效/配樂/特效, ou souhaite un workflow complet inspecter → choisir → monter → réviser → modifier.

Qu'est-ce que CutCraft ?

CutCraft est une compétence pour agent IA spécialisée dans le montage vidéo de bout en bout, conçue pour transformer des rushes bruts et une conversation en une vidéo finale aboutie. Elle est particulièrement adaptée aux interfaces de développement comme Claude Code ou Cursor, offrant un workflow structuré et contraignant. Son utilité principale réside dans l'automatisation des décisions éditoriales complexes tout en préservant un contrôle humain précis, notamment pour la gestion des sous-titres, le choix des prises, et l'application de corrections. La compétence impose des règles strictes comme l'inspection préalable des sources, la création d'un espace de travail dédié, l'affichage visuel des choix de sous-titres avant montage, et une vérification rigoureuse avant livraison. Elle supporte ElevenLabs pour la transcription cloud ou Whisper local pour la confidentialité, et gère les assets sous licence, les effets, la colorimétrie et les transitions via un système de repères (checkpoints) et de fichiers EDL. Le flux de travail est non-négociable et inclut des étapes de vérification d'environnement, de prévisualisation, de montage, de validation et de rapport qualité, assurant une reproductibilité et une traçabilité complètes.

Compatible avec✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/chang416/cutcraft/tree/main/skills/cutcraft

Demander à votre IA préférée

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

Documentation

Que fait CutCraft ?

Transformez des rushes bruts et une conversation en une vidéo finale évidente. Gardez chaque projet dans un espace de travail nommé CutCraft, montrez les choix visuels de sous-titres avant le montage, posez les questions créatives une seule fois, et rendez les corrections de transcription immédiatement réversibles.

Contrat non-négociable

  1. Exécutez la porte de vérification d'abord. Lors de la première utilisation et après des changements d'environnement, exécutez python3 helpers/check_environment.py. Si une dépendance conditionnelle requise ou demandée est manquante, interrompez le montage, montrez à l'utilisateur l'URL officielle du script et les instructions d'installation exactes, et demandez uniquement l'approbation ou l'identifiant manquant. Lisez references/onboarding.md pour la gestion des clés et les conseils sur la plateforme.
  2. Ne stockez jamais de secrets dans ce paquet ou dans un projet. Stockez les clés ElevenLabs dans ~/.config/cutcraft/.env avec le mode 600, ou utilisez Whisper local afin qu'aucune clé ou transcription ne soit téléchargée. Ne placez jamais une clé dans un argument de commande, un journal, une transcription, une capture d'écran, un dépôt, un cache de plugin ou un dossier de projet.
  3. Créez l'espace de travail avant de générer quoi que ce soit. Déduisez un nom de projet court de la description et des rushes inspectés de l'utilisateur. Ne confirmez que lorsque deux noms sensiblement différents sont plausibles. Exécutez helpers/project_workspace.py --name "<nom>" et utilisez les chemins renvoyés.
  4. Inspectez d'abord, demandez une fois, montez après approbation. Inventoriez et transcrivez les sources, inspectez les visuels représentatifs, créez de vraies images de prévisualisation des sous-titres, puis posez toutes les questions créatives restantes en un seul point de contrôle consolidé. Ne commencez pas à couper avant que l'utilisateur n'ait choisi ou accepté les valeurs par défaut recommandées.
  5. Montrez les choix visuellement. Générez trois images de prévisualisation de sous-titres adaptées au contenu (recommandé, propre/narratif, et audacieux/réseaux sociaux, sauf si les rushes justifient des choix différents). Indiquez la police, la taille, l'emplacement, l'arrière-plan, la langue et le rythme des indices sous chaque image. L'utilisateur peut répondre par un numéro d'option ou des ajustements comme 往下 4% ou 字大 15%.
  6. Gardez le résultat final évident. Placez uniquement les artefacts de livraison dans 成品/. La vidéo principale doit être nommée <projet>_final.mp4. Placez les prévisualisations, clips, transcriptions, EDL, téléchargements, actifs générés et rapports dans 過程/.
  7. Exportez le texte éditable avec chaque livraison sous-titrée. Livrez <projet>_逐字稿.md et <projet>.srt à côté de la vidéo finale. Utilisez des identifiants d'indice et des horodatages stables afin que l'utilisateur puisse dire, par exemple, 第 18 句改成…….
  8. Appliquez les corrections de transcription immédiatement. Résolvez les indices demandés, exécutez helpers/apply_transcript_corrections.py contre 過程/master.srt, re-exécutez la validation, re-rendu la vidéo finale avec le SRT corrigé, régénérez la transcription, et remplacez les artefacts de livraison. Conservez les timings sauf si l'utilisateur signale un problème de synchronisation. Ne re-transcrivez pas les sources médias inchangées.
  9. Pas d'interface de révision. Ne démarrez pas de serveur et ne créez pas de fichiers d'interface utilisateur pour navigateur. Toute révision se fait via des fichiers vidéo/image livrés et des corrections conversationnelles.
  10. Rendez le travail reprenable. Mettez à jour cutcraft.project.json à chaque point de contrôle. Conservez les signatures des sources, l'état d'approbation, les révisions, les chemins finaux et la provenance des actifs. Utilisez des proxies uniquement pour l'inspection ; effectuez toujours le rendu à partir des originaux.
  11. Vérifiez avant la livraison. Exécutez la pré-vérification déterministe et quality_report.py, inspectez la sortie rendue aux limites de coupe et aux moments représentatifs des sous-titres, écoutez le mixage final, et vérifiez la durée/les flux de sortie. Si une coupe a supprimé un bégaiement ou un faux départ, re-transcrivez la section rendue pour prouver sa disparition.

Structure du projet

Racine par défaut : ~/Documents/Codex/CutCraft/ (visible dans le Finder ; conservez la compétence installable elle-même sous ~/.codex).

CutCraft/
└── <projet>/
    ├── cutcraft.project.json
    ├── 成品/
    │   ├── <projet>_final.mp4
    │   ├── <projet>_逐字稿.md
    │   └── <projet>.srt
    └── 過程/
        ├── project.md
        ├── creative_brief.json
        ├── inventory.json
        ├── takes_packed.md
        ├── edl.json
        ├── master.srt
        ├── transcript_corrections.json
        ├── asset_registry.json
        ├── transcripts/
        ├── clips/ and clips_*/
        ├── assets/
        ├── animations/
        ├── proxies/
        ├── downloads/
        └── verify/

Ne dupliquez jamais les sources vidéo de l'utilisateur dans le projet sauf si l'utilisateur le demande. Enregistrez les chemins absolus des sources dans edl.json et laissez les originaux intacts.

Un seul point de contrôle consolidé

Inspectez suffisamment de matière pour faire des recommandations, générez les images de comparaison des sous-titres, puis posez toutes les questions applicables ensemble :

  • Objectif, public cible, plateforme, rapport hauteur/largeur, résolution, durée cible, format sensible aux délais.
  • Histoire/ordre, lignes à conserver absolument, matière à couper impérativement, noms/termes que la RAH doit épeler exactement.
  • Rythme, recadrage/recadrage, ambiance colorimétrique, transitions, effets, incrustations, images de coupe, besoins de censure/confidentialité.
  • Sous-titres : incrustés/sidecar/les deux, mode langue ou bilingue, textuel/nettoyé, police, taille, position, arrière-plan, rythme des indices, zones de sécurité UI à l'écran.
  • Audio : nettoyage, volume, musique/effets sonores/voix-off fournis, ou ambiance et intensité souhaitées.
  • Source des actifs : fichiers fournis par l'utilisateur, actifs générés ou bibliothèques libres spécifiques. Si du matériel libre est demandé, proposez les choix appropriés dans references/free-assets.md, demandez à l'utilisateur de choisir, et enregistrez l'élément, le créateur, l'URL, la licence, l'attribution et la somme de contrôle avec asset_registry.py.
  • Confidentialité de la transcription : recommandez Whisper local lorsque la confidentialité est importante ; sinon proposez ElevenLabs pour une diarisation gérée. Expliquez le comportement de téléchargement avant d'envoyer des médias à un fournisseur cloud.
  • Autonomie éditoriale et tout ce qui est explicitement interdit.

Joignez les images de prévisualisation dans ce point de contrôle. Donnez une recommandation par défaut pour chaque choix et incluez 全部用建議值 comme réponse valide. Persistez la réponse dans 過程/creative_brief.json ; ne rouvrez pas les questions réglées en cours de montage.

Flux de travail

  1. Exécutez les vérifications de préparation et résolvez uniquement les exigences manquantes.
  2. Inspectez les noms de fichiers et la description de l'utilisateur ; déduisez un nom de projet et créez l'espace de travail.
  3. Exécutez inventory.py --work-dir <過程> <répertoire_sources>. Pour les sources longues ou 4K, créez des proxies en cache pour l'inspection. Exécutez analyze_media.py pour localiser les changements de plan, les silences, les noirs et les intervalles figés.
  4. Transcrivez dans <過程>/transcripts/ avec le fournisseur cloud/local approuvé, puis emballez les transcriptions. Lisez la transcription emballée, échantillonnez les images du début/milieu/fin et les points de montage ambigus, et notez les risques d'orthographe de la RAH.
  5. Générez trois prévisualisations de style de sous-titres à partir d'images représentatives. Posez le point de contrôle consolidé et sauvegardez le brief approuvé.
  6. Construisez edl.json, sourcez ou générez les actifs approuvés, et montez sans poser de questions de goût ordinaires.
  7. Construisez les légendes. Pour le chinois, utilisez build_cn_subtitles.py ; pour les autres langues, utilisez render.py --build-subtitles. Suivez references/subtitles.md.
  8. Exécutez validate_project.py, générez une prévisualisation évaluable dans 過程/verify/, et auto-révisez. Limitez les boucles de correction/re-rendu à trois avant de signaler un problème tenace.
  9. Rendez <成品>/<projet>_final.mp4 à partir des sources originales, copiez le SRT final vers <成品>/<projet>.srt, et générez <成品>/<projet>_逐字稿.md avec export_transcript.py.
  10. Exécutez quality_report.py, résolvez chaque erreur, révisez visuellement et auditivement les avertissements, puis marquez le manifeste livré avec project_state.py.
  11. Livrez les trois chemins explicites, le rapport de contrôle qualité, un résumé de montage concis et la provenance des actifs. Ne faites jamais chercher final à l'utilisateur parmi les intermédiaires.

Exactitude de production

  • Appliquez les sous-titres en dernier, après chaque incrustation et recadrage.
  • Dérivez les candidats à la coupe des limites de mots et du silence ; ne coupez jamais à l'intérieur d'un mot. Utilisez un padding de 30 à 200 ms adapté au rythme.
  • Appliquez de courts fondus audio aux limites des segments pour éviter les clics.
  • Normalisez le canevas, la fréquence d'images, le format des pixels, l'espace colorimétrique, le taux d'échantillonnage et la disposition des canaux avant de joindre les clips.
  • Mettez en cache les transcriptions et les proxies par chemin source, taille et heure de modification ; ré-exécutez uniquement lorsque cette signature change.
  • Calculez les horodatages des sous-titres sur la timeline de sortie, et non sur la timeline source.
  • Garantissez des indices pixel-safe sur une seule ligne lorsque la ligne unique est approuvée ; validez par rapport à la police et au canevas réels.
  • Utilisez uniquement des actifs fournis, générés, du domaine public ou compatibles avec la licence. Enregistrez le titre, le créateur, l'URL source, la licence, la date de téléchargement et l'attribution requise.
  • Mixez le dialogue en premier. Abaissez la musique sous la parole et écoutez ; la normalisation du volume ne peut pas sauver un mauvais mixage.
  • Gardez l'agent principal comme propriétaire du brief créatif, de l'EDL, du timing des légendes, de la timeline finale, du mixage et du contrôle qualité. Parallélisez uniquement les travaux à entrée immuable qui écrivent des chemins uniques.

Lisez references/editorial-craft.md lorsque le projet nécessite une sélection multi-prises, des transitions, un étalonnage, une animation, des rampes de vitesse ou un montage piloté par la musique. Lisez references/edl.md avant d'écrire ou d'étendre l'EDL.

Aides

  • check_environment.py — dépendance conditionnelle/requise et préparation des identifiants avec URL d'installation officielles.
  • project_workspace.py — crée ou réutilise le projet nommé 成品/ + 過程/.
  • project_state.py — enregistre atomiquement les points de contrôle reprenables, approbations, révisions et chemins de sortie.
  • inventory.py — sonde les formats sources et les risques de normalisation.
  • analyze_media.py — détecte les changements de plan, les silences, les images noires et les images figées.
  • create_proxy.py — proxies d'inspection légers en cache mappés à des originaux immuables.
  • transcribe.py, transcribe_batch.py — transcription au niveau du mot en cache ElevenLabs ou Whisper local.
  • pack_transcripts.py — vue de montage compacte au niveau de la phrase.
  • timeline_view.py — bande de film, forme d'onde, mots et inspection des points de coupe.
  • subtitle_style_preview.py — prévisualisation exacte du style/placement libass sur des images réelles.
  • build_cn_subtitles.py — construction d'indices tenant compte de la largeur des pixels en chinois.
  • render.py — normalise, coupe, assemble, incruste, mixe, puis sous-titre en dernier.
  • validate_project.py — vérifications rapides d'échec de l'EDL, des actifs, du timing et des légendes.
  • asset_registry.py — registre verrouillé en échec de licence d'actifs, d'attribution et de somme de contrôle.
  • quality_report.py — rapport final de flux, durée, noir/figé/silence et preuves de contrôle qualité.
  • build_cut_report.py — résumé de coupe catégorisé.
  • apply_transcript_corrections.py — corrections d'indices/texte verrouillées en échec avec journal d'audit et sauvegarde.
  • export_transcript.py — transcription lisible et adressable par indice pour la livraison.
  • cleanup_session.py — nettoyage optionnel uniquement après que l'utilisateur a explicitement demandé de supprimer les fichiers de processus ; n'interprétez jamais 完成 comme une suppression.

Résolvez chaque aide et référence par rapport au répertoire contenant ce SKILL.md.

Comportement de révision

Considérez la transcription livrée par l'utilisateur comme la source de vérité du texte après qu'il l'ait corrigée. Pour les corrections de texte uniquement, conservez le timing des indices et les décisions de montage, corrigez le SRT, validez et re-rendu. Pour les rapports de synchronisation, inspectez la fenêtre rendue affectée et ajustez uniquement les limites de ces indices. Pour les modifications éditoriales, mettez à jour l'EDL et le rapport de coupe, puis exécutez l'intégralité du chemin de rendu/QC affecté.

Ajoutez chaque session à 過程/project.md avec la stratégie, les décisions approuvées, la provenance des actifs, les révisions, les preuves de contrôle qualité et les problèmes en suspens. Conservez 過程/ par défaut afin que les révisions futures restent peu coûteuses et traçables.

Skills associés