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
- 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. - Ne stockez jamais de secrets dans ce paquet ou dans un projet. Stockez les clés ElevenLabs dans
~/.config/cutcraft/.envavec le mode600, 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. - 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. - 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.
- 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%. - 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過程/. - Exportez le texte éditable avec chaque livraison sous-titrée. Livrez
<projet>_逐字稿.mdet<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 句改成……. - Appliquez les corrections de transcription immédiatement. Résolvez les indices demandés, exécutez
helpers/apply_transcript_corrections.pycontre過程/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. - 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.
- 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. - 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
- Exécutez les vérifications de préparation et résolvez uniquement les exigences manquantes.
- Inspectez les noms de fichiers et la description de l'utilisateur ; déduisez un nom de projet et créez l'espace de travail.
- 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écutezanalyze_media.pypour localiser les changements de plan, les silences, les noirs et les intervalles figés. - 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. - 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é.
- Construisez
edl.json, sourcez ou générez les actifs approuvés, et montez sans poser de questions de goût ordinaires. - Construisez les légendes. Pour le chinois, utilisez
build_cn_subtitles.py; pour les autres langues, utilisezrender.py --build-subtitles. Suivez references/subtitles.md. - 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. - Rendez
<成品>/<projet>_final.mp4à partir des sources originales, copiez le SRT final vers<成品>/<projet>.srt, et générez<成品>/<projet>_逐字稿.mdavecexport_transcript.py. - Exécutez
quality_report.py, résolvez chaque erreur, révisez visuellement et auditivement les avertissements, puis marquez le manifeste livré avecproject_state.py. - 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.