/kallaway-edit
Rushes bruts en entrée, reel vertical fini en sortie (1080×1920, 30 ips, -14 LUFS), dans le style Kallaway. Tout s'exécute sur le Mac de l'utilisateur avec des outils gratuits. La personne qui utilise ceci n'est généralement PAS technique : parlez-lui en français simple, un court message par étape, et ne lui faites jamais toucher de code.
SK = ${CLAUDE_SKILL_DIR}, le dossier de cette compétence (n'écrivez jamais dedans : une mise à jour le remplace).
DATA = $HOME/.claude-video-editor, le dossier propre de l'éditeur, conservé entre les mises à jour :
les paramètres de l'utilisateur (DATA/config.json), le Python de l'éditeur (DATA/venv), les effets sonores (DATA/sfx).
ROOT = le dossier du projet (contient raw/, exports/) : le projectRoot dans DATA/config.json, enregistré par
l'assistant d'installation (étape 0). WORK = ROOT/work/<slug>/ (un dossier par reel ; le slug est court
en kebab-case, ex. opus-tips). Mettez chaque chemin entre guillemets : ils contiennent souvent des espaces.
Exécutez chaque script via l'un de ces deux chemins, exactement comme écrit, afin qu'il trouve les paramètres de l'utilisateur :
PY = VIDEO_EDITOR_DATA="$HOME/.claude-video-editor" "$HOME/.claude-video-editor/venv/bin/python" -I (après l'installation)
SETUP = VIDEO_EDITOR_DATA="$HOME/.claude-video-editor" python3 -I "${CLAUDE_SKILL_DIR}/scripts/setup.py"
Lisez les documents suivants avant de construire : references/style-rules.md (le rendu, sous forme de
chiffres), references/graphics-recipes.md (comment une idée parlée devient un diagramme), references/gotchas.md.
Règles strictes
- Outils gratuits uniquement. ffmpeg, Node 22+, Python, HyperFrames (
npx hyperframes@<pinned>), faster-whisper, suppression d'arrière-plan locale d'HyperFrames, les polices OFL fournies, les effets sonores enregistrés d'HyperFrames media-use (téléchargés à l'installation, jamais intégrés : licence Pixabay) et la musique CC0/CC BY d'Openverse ou de la propre piste de l'utilisateur. Pas d'API payantes, pas de connexion HeyGen, pas de génération de musique, rien de protégé par le droit d'auteur. - Options que l'utilisateur peut donner :
music: on|off(par défaut : le choix enregistré à l'installation),music: <chemin vers sa propre piste>,setup(relancer l'assistant d'installation). - Ne jamais exécuter
npx hyperframes initounpx hyperframes skills(ils installent des compétences dans~/.claude/skills). Chaque appel à HyperFrames :HYPERFRAMES_SKIP_SKILLS=1 HYPERFRAMES_NO_TELEMETRY=1. Toujourssnapshot ... --describe false(sinon les images sont téléchargées vers Gemini). - Ne jamais toucher aux images originales de l'utilisateur. Travaillez à partir de copies dans
raw/. Les fichiers de travail vont dans WORK ; seuls les reels finis vont dansexports/. Ne supprimez jamais les fichiers de l'utilisateur. - Les légendes montrent ce qui a été réellement dit, correctement orthographié (« Claude », « Opus 5.5 »), chiffres pour les nombres.
- Les graphiques ne couvrent jamais le visage ; le texte jamais en dessous de y 1470 ou dans les 100 px de droite en dessous de y 1155.
- Rien n'anime vers l'extérieur. Le rouge
#C41514est la seule accentuation. Un mot en italique serif par titre et par section. - Montrez votre travail : déposez un PNG numéroté dans
WORK/progress/à chaque étape (01-takes-picked.png, ...). - Vérifiez le rendu FINAL avec
qa.py, en pleine taille, avant de dire que c'est terminé. Soyez honnête sur ce qui ne correspond pas.
Le flux de travail
0. Assistant d'installation (première fois uniquement, ~5-10 min)
Lisez DATA/config.json. S'il contient "setupComplete": true et que son dossier projectRoot existe, exécutez
SETUP --check (secondes, n'installe rien) ; sur READY passez à l'étape 1, sur NOT READY corrigez ce qu'il nomme (après
une mise à jour qui nécessite une nouvelle version d'outil, c'est simplement SETUP à nouveau : les dossiers et choix de l'utilisateur sont
conservés). Sinon (première exécution, ou l'utilisateur dit « /kallaway-edit setup ») exécutez l'assistant. Dites-leur
à quelle étape vous êtes en une courte ligne (« Étape 2 sur 5 : vérification de vos outils »).
- Bienvenue. « Bienvenue dans l'éditeur Kallaway ! Je vais vous configurer. Cela prend environ 5 à 10 minutes et ne se produit qu'une seule fois. »
- Sommes-nous dans Claude Code ? Cela nécessite Claude Code (l'application de terminal, l'onglet Code dans l'application de bureau Claude, ou une extension IDE), ouvert dans un dossier local, car cela édite de véritables fichiers vidéo. Si vous pouvez exécuter des commandes shell et lire des fichiers locaux, vous l'êtes. Sinon (un chat ordinaire), dites : « Ouvrez l'application de bureau Claude, cliquez sur Code, choisissez Local, sélectionnez un dossier (ou créez-en un appelé Éditeur vidéo AI), puis tapez /kallaway-edit à nouveau. » Puis arrêtez-vous.
- Vérification des outils.
SETUP --check. Affichez le résultat sous forme d'un petit tableau : outil, trouvé oui/non, à quoi il sert (ffmpeg coupe et mixe le son ; Node.js exécute HyperFrames ; HyperFrames transforme le montage en vidéo ; faster-whisper entend chaque mot ; Python exécute les scripts d'aide ; yt-dlp est facultatif ici, il télécharge des reels à partir de liens, et /new-edit-style en a besoin). Pour tout ce que l'utilisateur doit installer lui-même (ffmpeg, Node.js, Python), donnez la ligne unique avec les noms des correctifs et dites où la coller : dans l'application Terminal (Mac : Commande + Espace, tapez Terminal). Si le mot de passe Mac est demandé, ils le tapent eux-mêmes dans le terminal, jamais dans ce chat. Attendez qu'ils disent que c'est fait, puis vérifiez à nouveau. Les éléments marqués « l'installation complète l'installe » ne nécessitent rien de leur part. - Où vont les choses. Demandez en un seul message, chacun avec une réponse suggérée :
- « Où dois-je créer vos vidéos ? » Suggérez le dossier actuel s'il est vide ou déjà un dossier vidéo
(affichez son chemin complet), sinon
~/Bureau/Éditeur vidéo AI. - « Où vos images arrivent-elles habituellement ? » Suggérez
~/Téléchargements(là où AirDrop met les clips téléphoniques), ou « Je déposerai moi-même les clips dans le dossier raw ». - « Musique de fond sous votre voix : activée ou désactivée ? » Suggérez activée (ils peuvent la changer par vidéo).
Proposez ensuite les dossiers : « Voulez-vous que je configure votre dossier de projet ? Je vais créer raw/ (vos clips),
references/ (vidéos dont vous aimez le style), exports/ (reels finis), work/ (mes fichiers de travail) et
archive/ (anciennes versions). Tout ce qui existe déjà reste intact. » Sur oui :
SETUP --project "<dossier>" --clips-from "<dossier ou omettre>" --music on|off. Il crée uniquement les dossiers manquants et enregistre les réponses dansDATA/config.json.
- « Où dois-je créer vos vidéos ? » Suggérez le dossier actuel s'il est vide ou déjà un dossier vidéo
(affichez son chemin complet), sinon
- Installation. « Installation des outils d'édition gratuits maintenant (une fois, environ 5 minutes : un moteur
de transcription, le rendu vidéo, des effets sonores et un modèle vocal). » Exécutez
SETUPen arrière-plan et relayez ses lignes de progression en mots simples. Il installe uniquement dans DATA (rien de global, rien dans le dossier de compétence, donc les mises à jour ne l'annulent jamais) et marque l'installation comme terminée quand elle se termine. - Terminé. Donnez les 4 conseils de tournage du fichier
references/filming-guide.md(caméra fixe, plan large, pièce sombre avec une lumière chaude sur le visage, répétez une ligne jusqu'à ce qu'elle soit bonne), puis : « Vous êtes prêt. Déposez vos clips dans raw/ (ou dites-moi quels fichiers dans ) et dites /kallaway-edit. » S'ils ont déjà donné des clips, continuez directement à l'étape 1.
À chaque exécution : les clips sont les fichiers que l'utilisateur nomme ; sinon, demandez en proposant les fichiers vidéo les plus récents
dans clipsFrom. Copiez-les dans ROOT/raw/ (ne déplacez ni ne modifiez jamais les originaux). La musique suit le
choix music enregistré sauf si l'utilisateur dit autrement.
1. Trouver chaque prise (~1 min par minute de métrage)
PY "SK/scripts/takes.py" "WORK" "ROOT/raw/clip1.MOV" "ROOT/raw/clip2.MOV" (ajoutez --fast pour un passage plus rapide,
moins précis). Lisez WORK/takes/*.takes.txt : chaque tentative avec son intervalle de temps, les reprises marquées.
Demandez (ou trouvez dans les clips) le script s'il y en a un. Dites : « J'écoute vos clips et je trouve
la meilleure prise de chaque ligne. »
2. Choisir les prises et couper (~1 min)
Écrivez WORK/edl.json (format : SK/template/examples/edl.json) : un segment par ligne, dans l'ordre du script,
généralement la DERNIÈRE prise propre complète. Utilisez {"clip","chunk"} ou {"clip","start","end"} (pour sauter
un bégaiement à l'intérieur d'un chunk ; vérifiez les temps des mots avec transcribe.py --range a-b --model medium.en --no-vad).
Visez 20-30 s ; dépasser un peu (jusqu'à ~38 s) vaut mieux que de briser une promesse faite par l'accroche. Sautez les appels à l'action
sauf demande contraire. Ensuite PY "SK/scripts/assemble.py" "WORK" : cut.mp4 (CFR, serré sur la voix, compressé,
-14 LUFS), segments.json, words.json, words.txt. Lisez words.txt : chaque ligne doit dire ce qui a été voulu.
PY "SK/scripts/qa.py" "WORK" --takes écrit progress/01-takes-picked.png.
Dites : « Voici le montage : . secondes. »
Verrouillez le montage avant de construire les graphiques. Si vous le refaites plus tard : PY "SK/scripts/reindex.py" "WORK" "WORK/.prev/words.json" conserve chaque graphique sur son mot.
3. Découper le locuteur (~3-4 min, exécuté en arrière-plan)
PY "SK/scripts/cutout.py" "WORK" : cutout.webm (correspondance d'image, bords nettoyés) + headtrack.json.
Pendant son exécution, planifiez le montage (étape 4). Examinez ensuite une image composée sur fond noir pour les halos et
enregistrez-la sous progress/02-cutout-check.png.
3b. Musique (sauf si music: off ; ~2-6 min, exécuté en arrière-plan)
PY "SK/scripts/music.py" "WORK" (ou --file "<leur chanson>", ou --off). Il choisit un instrumental gratuit CC0/CC BY
sur Openverse, rejette les voix, et écrit WORK/music-credit.txt. Dites à l'utilisateur ce qu'il a
choisi et, pour CC BY, que la ligne de crédit va dans la légende.
4. Planifier le montage, ligne par ligne
Écrivez WORK/plan.json (format : SK/template/examples/plan.json) :
shots: où chaque disposition commence (0,"line:N"= première image de la ligne N de l'EDL,"w:N"= début du mot N). Stage pour tout ce qui peut être montré ; full pour les lignes de transition/personnelles et la conclusion (16-29 % du temps). Coupe franche également entre les scènes de stage . Première coupe vers ~3,5 s.scenes: quel graphique joue quand (id,from,to,srcen option +varspour monter un fichier de scène plusieurs fois, par ex. un graphique « maison » numéroté récurrent). Une scène peut s'exécuter sous un plan full et revenir (un retour ajoute une nouvelle chose en 0,6 s).punch: recadrages rapprochés nets (x1,19, montée avant) sur une phrase de clôture, au maximum un ou deux.captions:fix(index de mot -> texte correct),emphasis(un mot serif par section),keep_together(paires d'indices de mots, ex. « Numéro » + « 1, »). Utilisez graphics-recipes.md : chaque idée obtient une forme, un titre (gras + un accent serif, l'affirmation sur une boîte rouge), et des battements sur ses mots, quelque chose de nouveau toutes les ~1 s. Dites le plan en une ligne par plan.
5. Construire les scènes (~15-25 min)
Chaque scène est WORK/scenes/<nom>.html, démarré à partir de SK/template/scene-starter.html ou du fichier le plus proche
dans SK/template/examples/ (six scènes réelles). La trousse (template/kit/kw.css, kw.js) donne le
rendu de la scène et les aides au mouvement (KW.title, blurIn, pill, pulse, draw, cam, type, strike,
count, scramble ; at(i) = début du mot i). CHAQUE animation reçoit son signal sonore dans le commentaire
<!--KW:SFX [...] --> de la scène, par ex. {"t": "w:24-0.02", "s": "whoosh"}, en suivant
references/sound-map.md (mouvement de caméra = whoosh, pill = pop, snap/tick = clic, texte tapé = frappe,
grand moment = impact, conclusion = étincelle). Si vous disposez de l'outil Agent et de plus de ~3 scènes,
confiez les scènes à jusqu'à 2 agents en parallèle avec : la liste exacte des mots et des temps de la scène, l'idée, les
références de cette compétence, et build.py ... --project WORK/project-<lettre> pour qu'ils n'entrent jamais en collision.
PY "SK/scripts/build.py" "WORK" écrit WORK/project/ (racine : scène pointillée, fiche visage, couche
pop-out , piste de légende, hôtes de scène, piste SFX, tout généré). Ensuite dans WORK/project :
npx -y hyperframes@<pin> lint (0 erreurs) et snapshot --at <temps> --no-end --describe false -o snaps/x, lisez les PNG, corrigez, répétez. Enregistrez la feuille de chaque scène sous progress/03-scene-.png.
6. Rendu (~1 min) et vérification (~1 min)
PY "SK/scripts/render.py" "WORK" --name draft (rapide), puis
PY "SK/scripts/qa.py" "WORK" "WORK/renders/draft.mp4" et REGARDEZ qa/cuts.png (images avant/après chaque
coupe), qa/beats.png (chaque bloc de légende), qa/report.txt (écarts coupe-parole, sonie).
Vérifiez : le pop-out n'a pas de halo ni de dérive après les coupes ; la carte montre la TÊTE ET LES ÉPAULES (jamais un recadrage
visage) ; aucune légende ni graphique sur le visage ; les légendes correspondent aux mots ; chaque coupe de ligne arrive 0-80 ms
avant la parole ; rien dans les zones interdites d'Instagram. Ensuite
PY "SK/scripts/audiomap.py" "WORK" --out progress/NN-audio-map.png : musique 18-24 dB sous la voix,
effets ~10-16 dB sous son pic local, pas de doubles frappes ; corrigez toute queue signalée avec "db": -3.
Correspondance stylistique : PY "SK/scripts/match/fingerprint.py" score "SK/references/style-spec.json" "WORK/renders/draft.mp4" --out "WORK/progress/NN-style-match.md" mesure le montage de la même manière que les 3
reels de Kallaway ont été mesurés (rythme de coupe, changements visuels par seconde, parts de disposition, position de la carte et des légendes,
taille et rythme des légendes, part de couleur d'accent, sonie, effets sonores stéréo) et dit quoi
corriger pour chaque ÉCHEC. Corrigez ce que le montage contrôle ; un ÉCHEC causé par les images (un selfie serré) va à
l'utilisateur comme note de tournage. Le rapport dans WORK/progress/ est l'enregistrement (SK/references/lock-log.md contient
l'historique mesuré du style ; laissez-le tel quel).
Corrigez et refaites le rendu (une reconstruction + un nouveau rendu prend ~1,5 min).
7. Livrer
PY "SK/scripts/render.py" "WORK" --final -> exports/<slug>-kallaway-vN.mp4 (1080×1920) plus
-720p.mp4 copie pour téléphone. Exécutez qa.py sur l'exportation. Si l'utilisateur a un reel Kallaway personnel enregistré dans
ROOT/references/ (aucun n'est fourni avec cette compétence), ajoutez un côte-à-côte (--ref <ce reel> --ref-at <t> --at <t>)
et enregistrez-le sous progress/NN-side-by-side.png.
Dites : où se trouve le fichier, combien de temps il dure, ce qu'il contient scène par scène, et ce qui ne ressemble toujours pas
à Kallaway (soyez précis et honnête).
Chronométrages (sur un Mac M4 Pro, reel de 35 s à partir de ~8 min de métrage brut)
installation 5 min (première fois) · prises 7 min (modèle moyen ; --fast ~3) · montage 1 min · cut-out 3,5 min ·
musique 2-6 min (en arrière-plan ; Openverse/Freesound peut être lent) · scènes 15-25 min ·
rendu brouillon 50 s · rendu final 70 s · nouveau rendu après une modification ~1,5 min.
Tournage
Donnez references/filming-guide.md à quiconque s'apprête à filmer : plan large fixe (4K horizontal est le
meilleur), pièce sombre avec une lumière clé chaude, haut sombre, fond uni derrière la tête, répétez une ligne
jusqu'à ce qu'elle soit bonne.