Boucle de révision (version HyperFrames)
Vous ne pouvez pas regarder de vidéo, mais vous pouvez voir des images. Ne signalez jamais une vidéo comme terminée sans avoir examiné la planche contact de la version courante de la sortie.
Adapté du skill
review-loopde whaleyxbt/claude-motion (MIT, voir le fichierLICENSEdans le même dossier). Les commandesnpm run …originales ont été remplacées par les outils HyperFrames du MCP kinocut, ainsi que par le scriptscripts/sheet.pyde ce dossier. Les paragraphes marqués « (nouveau dans cette version) » ne font pas partie du contenu original.
Ci-dessous, SHEET désigne python "<dossier du skill>/scripts/sheet.py" (par exemple ~/.claude/skills/review-loop/scripts/sheet.py). Tous les chemins sont absolus.
Boucle
- Passez d'abord la vérification automatique (nouveau dans cette version) : exécutez
hyperframes checkdans le dossier du projet. Il exécute en une seule passe lint, runtime, débordement de boîtes, mouvement et contraste (les commandesvalidate/inspectofficielles sont dépréciées au profit decheck). Corrigez d'abord les erreurs, puis continuez. Voir le skill officielhyperframes-clipour les détails.- Le dévoilement de masque (mask reveal) en entrée génère toujours une erreur
container_overflow; c'est intentionnel, ajoutezdata-layout-allow-overflowau conteneur du masque. Mais si après stabilisation l'erreurtext_box_overflowpersiste, le conteneur est trop bas et coupe le texte (surtout pour le chinois et les exposants) : augmentez sa hauteur.
- Le dévoilement de masque (mask reveal) en entrée génère toujours une erreur
- Brouillon :
hyperframes_renderavec les paramètresquality: "draft"etoutput_pathdéfini sur<projet>/out/draft.mp4. - Planche contact :
SHEET --video <projet>/out/draft.mp4 --timeline <projet>/timeline.js --out <projet>/out/sheetsCapture une image 0,3 seconde après chaque temps fort (l'animation est stabilisée), les assemble en images 4×2 dansout/sheets/beats-N.png, chaque image étant légendée avec le nom du temps fort et le temps. Chaque image fait 360 px de large par défaut, soit la largeur réelle sur une vidéo mobile. - Ouvrez chaque planche avec l'outil Read et vérifiez point par point la liste de contrôle ci-dessous.
- Agrandissez les zones suspectes :
- Balayage d'une transition :
SHEET --video … --from 3 --to 5 --every 0.2 --name scrub - Vue à un instant précis :
SHEET --video … --at 3.7,3.75,3.8 --name exact - Vue plein écran d'une image :
hyperframes_still,frame= numéro d'image (secondes × fps) - Si vous ne voulez pas ré-exporter la vidéo, utilisez
hyperframes_snapshotavecatpour capturer directement depuis la composition, puis assemblez avecSHEET --images … --labels ….
- Balayage d'une transition :
- Après corrections, retournez à l'étape 0. Ne vous arrêtez que si un cycle complet ne révèle aucun problème.
- Version finale :
hyperframes_renderavecquality: "high"pour produire la vidéo finale, puis exécutez à nouveau l'étape 2 sur cette version, puis effectuez les vérifications audio (voir ci-dessous).
Liste de contrôle
Composition
- Chaque image a un seul point focal. Si deux éléments se disputent l'attention, l'un deux doit attendre.
- Pas de collision ou chevauchement non intentionnel, en particulier pendant les transitions où les éléments entrants et sortants partagent le même espace.
- Zone de sécurité : le contenu important ne doit pas être à moins d'environ 60 px des bords.
- La première image est une vraie image, pas du noir (ce sera la vignette sur les réseaux sociaux).
Texte
- Pas coupé par un masque, un conteneur ou le bord de l'image (sauf intentionnel).
- Réduit à la largeur d'un téléphone (la cellule de la planche), le message clé reste lisible.
- Le texte ne bouge pas lorsqu'il doit être lu.
- (nouveau dans cette version) Chinois : pas de fautes d'orthographe ; tout en caractères traditionnels, pas de caractères simplifiés ; ponctuation pleine chasse ; pas de caractères manquants (carrés ou polices visiblement différentes).
Rythme
- Chaque état à lire est visible assez longtemps (voir section 4 de
motion-design). Si dans les cellules du milieu de la pause le texte bouge encore, la pause est trop courte. - Les scènes se chevauchent, pas de coupure vers un écran vide.
- La sortie est plus rapide que l'entrée.
Cohérence
- Utilisez uniquement les couleurs de la palette
:root; la couleur d'accentuation marque le point important de cette image. - Un même élément a la même apparence dans toutes les scènes où il apparaît.
Audio (uniquement si la vidéo a du son)
- Forme d'onde :
video_audio_waveformvérifie que les pics sonores tombent sur les temps forts de la timelineTL. - Loudness (nouveau dans cette version, remplace l'original
npm run wave) :ffmpeg -hide_banner -nostats -i <vidéo finale> -af ebur128=peak=true -f null -Consultez le résumé final pourIntegrated loudnessetTrue peak. Cible : −14 LUFS ±1, true peak ≤ −1 dBFS. - Pour les voix off en chinois, l'accent et l'émotion doivent être évalués à l'oreille par l'utilisateur, pas par un score (nouveau dans cette version).
Rapport
En fin de tâche, indiquez clairement : ce qui a été vérifié, ce qui a été corrigé, et sur quelle planche les résultats sont visibles. Ne déclarez pas une correction comme effectuée sans avoir ré-exporté et personnellement inspecté le résultat.