Communitygithub.com

OliviaPp8/minara-video-skills

Rédige les scripts vidéo Minara avant toute animation — films de lancement / promotion, suppléments de scène unique, tutoriels d'utilisation.

Qu'est-ce que minara-video-skills ?

Cette compétence permet aux opérateurs de Minara de créer des scripts vidéo professionnels complets avant de commencer le travail d'animation. Elle transforme un brief, des captures d'écran, du code frontend, des maquettes Figma ou une note de fonctionnalité en un document de script en anglais uniquement, construit autour d'une feuille de keyframes. Chaque keyframe comprend une image fixe (rendue à partir du code UI, exportée depuis Figma ou générée par AIGC à partir de captures d'écran), une description de l'image, la ligne de voix off, le texte à l'écran (花字) avec style, timing et durée, ainsi que le style BGM / indices sonores. La compétence couvre également ce que chaque scène doit communiquer, le flux utilisateur et les copies UI, le budget de mots pour la voix off et les questions ouvertes, le tout dans une voix calme, neutre et naturelle. Elle s'intègre aux compétences en aval telles que `minara-video`, `minara-usecase-video` et `minara-music` pour la production vidéo et audio. Utilisez-la avec des commandes comme `/minara-videoscript`, "写视频脚本", "视频脚本", "分镜脚本", "关键帧", "关键帧脚本", "花字", "补充脚本", "旁白稿", "video script", "voiceover script", "keyframes".

Compatible avec✓Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/OliviaPp8/minara-video-skills/tree/HEAD/skills/minara-videoscript

Demander à votre IA préférée

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

Aperçu

Depuis le README du skill

K3

Documentation

/minara-videoscript — Scripts vidéo Minara

Script uniquement, pas d'animation. Le résultat est un document de script Markdown plus un dossier d'images keyframes fixes. Après approbation par l'opérateur, il est transmis en aval :

Type de vidéoCompétence en aval
Film marketing / lancement / démo (image construite en code, UI peut être redessinée)minara-video
Tutoriel d'utilisation / débutant (UI reconstruit fidèlement)minara-usecase-video
Légendes + voix off sur l'enregistrement d'écran de l'opérateurminara-guide-video
Couper la narration enregistrée et la placer sur la piste de voix offminara-voiceover (lit les colonnes Voix off et Temps de la feuille de keyframes)
Musique / effets sonoresminara-music (lit la section musique et les indices sonores de ce document)

Structure : un supplément de scène unique a 5 à 8 keyframes tirées d'un seul source.html ; un film complet fait généralement 6 à 10 scènes. Rédigez les nouveaux scripts en anglais uniquement.

L'unité centrale : la keyframe

Un script est une séquence de keyframes. Une keyframe est une image fixe d'un moment que le spectateur doit voir, avec tout ce qui se passe autour écrit à côté. Chaque keyframe comporte les sept mêmes champs :

ChampCe qu'il contient
Image![K3](keyframes/<sujet>/K3.png). Source : UI code / Figma / AIGC.
TempsTimecode que l'image représente (40.5s) et la plage qu'elle couvre (39.8–41.6s).
DuréeLongueur de cette plage en secondes (maintien + le mouvement qui y mène).
ImageCe qui est à l'écran et ce qui bouge, dans l'ordre. Mouvement de caméra si présent (zoom avant sur la carte de workflow).
Voix offLa ligne prononcée sur cette plage, ou —.
Texte à l'écran (花字)Texte exact, style, position, heure d'entrée/sortie. Ou —. Règles ci-dessous.
MusiqueÉnergie BGM pour cette plage + tout indice sonore avec son heure exacte.

Comptage approximatif : une keyframe pour 2 à 4 secondes de film, au moins une par scène. Choisissez les images où quelque chose a abouti (l'invite est tapée, le graphique est dessiné, la notification est arrivée), pas en plein flou de mouvement.

Langue : anglais uniquement (l'opérateur, 2026-10-19)

  • Tout dans le document de script est en anglais : titre, notes, tableau de flux, champs de keyframes, voix off, texte à l'écran, copie UI, notes musicales, questions ouvertes. Pas de lignes de traduction en chinois, pas de colonnes "中文对照", pas d'autres langues. Il en va de même pour tout texte dans les images keyframes.
  • La copie UI est citée exactement telle qu'elle apparaît dans l'interface utilisateur anglaise du produit.
  • L'opérateur peut donner des instructions en chinois ; traduisez le sens dans le script anglais. Parlez-lui en chinois dans le chat s'il écrit en chinois. Seul le document est en anglais.

Voix : calme, neutre, naturelle

Le script doit donner l'impression qu'une personne l'a écrit, pas un modèle. Calme et neutre : énoncez ce qui se passe, laissez le produit porter.

  • Lisez chaque ligne de voix off à voix haute. Si elle ressemble à une publicité, un générateur de slogans ou un communiqué de presse, réécrivez-la. Si vous ne le diriez pas à un collègue, supprimez-la.
  • Verbes simples, phrases courtes, présent. Les contractions sont acceptables (it's, you'll). Exemple de registre : Just ask. / Backtest it. / Minara builds the workflow. / Then it keeps watching.
  • Neutre, pas excité : pas d'adjectifs tape-à-l'œil, pas de points d'exclamation, pas de majuscules, pas d'emoji.
  • Mots interdits : exciting, powerful, seamless(ly), effortless(ly), revolutionary, game-changing, unlock, unleash, elevate, supercharge, empower, cutting-edge, next-level, robust, leverage, harness, journey, landscape, delve, transform(ative), "at your fingertips".
  • Modèles IA interdits :
    • "Not just X, but Y" / "It's not X. It's Y."
    • Listes de trois pour le rythme ("faster, smarter, safer")
    • "Imagine…", "What if…", "In a world where…", "Say goodbye to…", "Meet your new…"
    • Questions rhétoriques comme accroches
    • Révélations par deux-points ou tiret ("One thing changed: everything.")
    • Propositions en -ing qui ajoutent une profondeur factice ("…, giving you full control.")
    • Remplissage de signification ("a pivotal moment", "redefines how…")
  • Liste complète des modèles : consultez la liste des modèles d'écriture IA (par ex. Wikipédia : "Signs of AI writing"). Passez chaque ligne de voix off et chaque texte à l'écran au crible avant de les remettre.
  • Pas de promesses de profit ("guaranteed", "risk-free"). Si des backtests ou des retours apparaissent, notez où va la mention de risque (par ex. Past performance does not guarantee future results.).
  • Les faits qui ne sont pas dans le matériel source sont signalés par ⚠️ et vont dans les "Questions ouvertes". N'inventez pas.

Workflow

  1. Recueillir les entrées : brief, captures d'écran, chemin du code frontend, lien Figma, notes de fonctionnalité, coupe existante, référence musicale le cas échéant. Demandez une fois, en une seule question combinée, uniquement ce qui ne peut pas être déduit : durée, paysage/portrait, plateforme (X / Discord / site web), voix off ou non, où cela se situe dans le film, ambiance musicale si l'opérateur en a une en tête.
  2. Verrouiller les choix de présentation en haut du document pour qu'ils ne dérivent pas : le cas exemple, la surface (Desktop / App / Web), le fuseau horaire, ce qui n'est pas montré. Choisissez le cas selon les règles de sujet ci-dessous.
  3. Rédiger d'abord le texte : section 1 (ce qui doit être communiqué), le flux utilisateur et la copie UI, la liste des scènes avec les timings, et la liste des keyframes (ID, temps, image, voix off, texte à l'écran, musique). Pas d'images encore. Cela empêche le travail sur les images de guider l'histoire.
  4. Créer les images keyframes selon les routes ci-dessous, dans docs/keyframes/<sujet>/K1.png …. Les frames UI d'abord (elles sont gratuites et exactes) ; demandez avant toute frame AIGC qui coûte des crédits.
  5. Écrire le document dans le dossier docs/ du projet (NN-script-scene-N-<sujet>.md pour une scène unique ; NN-script-<slug>.md pour un film complet). Racine du projet s'il n'y a pas de docs/. Ouvrez chaque PNG de keyframe et vérifiez-le par rapport à son champ Image avant de le lier.
  6. Auto-vérification avec la liste de contrôle ci-dessous. Calculez les nombres de mots et les timings de la voix off ; ne les estimez pas.
  7. Envoyer à l'opérateur : chemin du fichier plus 3 à 5 lignes (durée, nombre de scènes, nombre de keyframes par source, mots de voix off / part du temps d'exécution, direction musicale en une ligne, nombre de questions ouvertes). L'opérateur édite le script et marque les keyframes, pas le code. Pas d'animation avant approbation. Les images fixes sont autorisées avant approbation ; le mouvement ne l'est pas.
  8. Après approbation : transmission. Le script en aval par seconde se développe à partir des temps de keyframes de ce document ; rien n'est réécrit. minara-music construit cues.json à partir de la section Musique. Pour un comité de révision, générez storyboard.html à partir du assets/storyboard-template.html de minara-video ; les keyframes AIGC correspondent à ses lignes AIGC.

Création des images keyframes

Trois routes. Utilisez la première qui convient ; un script peut les mélanger, et chaque keyframe indique laquelle a été utilisée.

Route A — Code UI (par défaut pour tout ce qui est UI du produit)

La frame est dessinée en HTML, donc la copie est exacte et la frame peut être réutilisée par l'animation plus tard.

  1. Copiez assets/keyframes-source-template.html vers docs/keyframes/<sujet>/source.html. Une <section class="k" id="K1"> par keyframe ; ?k=K1 montre cette frame.
  2. Remplissez chaque frame à partir de l'UI réelle : prenez la copie, les données et la structure du code frontend (composants, chaînes i18n) ou de la composition HyperFrames existante. Redessinez en grand, selon les règles vidéo : corps ≥28px, titres ≥48px, nombres clés 80–140px, 3 à 5 éléments par écran, Geist uniquement, palette Minara (#F2F2F2 pour la scène, #15171A / #222222 / #FFFFFF pour l'UI, #B0B0B0 pour le secondaire, vert #07B56A pour up/succès uniquement, rouge #F75D5F pour down uniquement), pas de dégradés, "Illustrative data" en bas à droite.
  3. Dessinez le texte à l'écran (花字) dans la frame là où il se trouvera, afin que l'opérateur examine la disposition réelle.
  4. Capturez :
    ~/.claude/skills/minara-videoscript/scripts/shoot_keyframes.sh \
      docs/keyframes/<sujet>/source.html docs/keyframes/<sujet> landscape K1 K2 K3
    
    La sortie est en 2560×1440 (portrait : 1440×2560), correspondant à la livraison 2K. Le script passe également #k1, donc les pages source V2 plus anciennes (sélectionnées par hash) fonctionnent aussi.
  5. Si l'animation existe déjà et qu'une keyframe est un moment dedans : cherchez la composition au lieu de redessiner. Utilisez la page de test du projet avec ?t=<secondes> ou npm run snapshot -- <t1>,<t2>, puis copiez le PNG en tant que K<n>.png.

Route B — Figma

Quand le design a la frame dans Figma (nouveaux écrans pas encore en code, maquettes de campagne).

  1. Obtenez fileKey et nodeId à partir du lien (node-id=1-2 → 1:2). Chargez les conseils de conception vers code de Figma avant get_design_context.
  2. get_screenshot avec maxDimension: 2560, puis téléchargez l'URL avec curl dans docs/keyframes/<sujet>/K<n>.png.
  3. Utilisez get_design_context / get_variable_defs pour obtenir la copie exacte et les tokens pour le tableau de copie UI.
  4. Si la frame Figma est un écran de bureau dense, elle est uniquement une référence : reconstruisez-la en grand via la Route A et notez Figma → UI code comme source.

Route C — AIGC à partir de captures d'écran

Pour les frames qui ne sont pas de l'UI du produit : une image d'ouverture, une métaphore, une personne utilisant le téléphone, un environnement, une image d'ambiance. Jamais pour l'UI du produit ou quoi que ce soit avec de la copie ou des nombres réels ; ceux-ci passent par A ou B.

  1. Demandez d'abord. La génération d'images dépense des crédits (Figma generate_image utilise des crédits Figma AI ; les modèles Weave nécessitent un coût estimé et une approbation explicite). Dites quelles frames, quel modèle et le coût, puis attendez.
  2. Donnez au modèle la capture d'écran ou une frame de la Route A comme référence là où l'outil l'accepte ; sinon, décrivez la référence dans l'invite.
  3. Règles de l'invite : 16:9 (ou 9:16), la palette Minara en mots (scène gris clair, UI presque noire, blanc, vert uniquement pour le succès), propre et minimaliste, lumière douce du jour, pas de dégradés, pas de violet-rose-orange, pas de texte, lettres, chiffres ou logos dans l'image (les modèles les déforment ; le texte est ajouté dans le code), pas d'imagerie de mème, pas de ressemblance avec des personnes réelles ou d'autres marques.
  4. Enregistrez sous K<n>.png, et écrivez l'invite exacte, le modèle, l'image de référence et la date dans docs/keyframes/<sujet>/prompts.md afin que la frame puisse être régénérée ou transmise au collègue qui réalise les prises de vue AIGC.
  5. Ouvrez le résultat. Rejetez tout ce qui contient du texte aberrant, des mauvaises mains, de mauvaises couleurs, ou qui ressemble à de l'art IA de stock ; régénérez ou retombez sur une disposition de la Route A.

Texte à l'écran (花字)

Le texte à l'écran est tout texte placé sur l'image qui ne fait pas partie de l'UI elle-même : lignes de légende, un titre, un nombre clé, le CTA de fin.

  • Autorisé : (1) la ligne de voix off ou une partie de celle-ci, comme légende ou accentuation ; (2) la copie UI réelle extraite et agrandie ; (3) un titre, un nombre clé ou un CTA demandé par l'opérateur. Rien d'autre. Pas de mots d'annotation, de murs d'étiquettes, de mots-clés flottants ou de balises de fonctionnalité. Si un concept a besoin d'explication, montrez-le avec l'image et le mouvement.

  • Les règles de voix off s'appliquent : calme, simple, pas de mots interdits, pas de points d'exclamation, casse de phrase.

  • Écrivez chaque élément comme : "Just ask." · 64px / 700 · #15171A · en haut à gauche au-dessus de la fenêtre · entrée 12.4s, sortie 14.0s · monte de 24px avec minaraSnap.

  • Styles à choisir (gardez un film cohérent) :

    StyleUtilisationSpécification
    LégendeLigne de voix off affichée comme texte40–48px / 500, en bas au centre, blanc sur foncé ou #15171A sur clair, pas de boîte
    TitreTitre ou l'affirmation unique de la scène64–96px / 700, tracking −0.02em, aligné à gauche
    Nombre cléUn nombre qui est le point de la prise de vue120–200px / 700, chiffres tabulaires ; vert/rouge uniquement s'il s'agit d'un gain/perte
    CTACarte de fin56–72px / 700 + nom du produit ou URL
  • Mouvement : entrée avec minaraSnap (0.6–0.9s, petit soulèvement ou échelle à partir de 0.96), sortie avec un fondu ≤0.3s. Chaque élément reste au moins aussi longtemps qu'il faut pour le lire à voix haute (0.4s/mot, minimum 1.2s).

  • Pas d'emoji, pas de remplissages dégradés, pas de lueur, pas de texte contouré ou 3D, pas de majuscules.

Musique (style BGM et indices sonores)

Le document donne à minara-music tout ce dont il a besoin, donc la musique est décidée avec le script, pas après.

  • Brief au niveau du film (un bloc) : tempo (BPM, par défaut 120), tonalité (par défaut La mineur ; Do majeur pour les morceaux lumineux), ambiance en 1 à 2 lignes simples (Soft electronic, warm pads, light plucked arpeggio, no vocals.), ce qu'il faut éviter (pas de drops EDM, pas de hits de bande-annonce, pas de crépitement lo-fi, pas de chops vocaux), et une piste de référence si l'opérateur en a donné une. Les pistes sous licence proviennent uniquement de l'opérateur.
  • Énergie par keyframe : une parmi silent / intro / light / build / full / breakdown / climax / outro (le vocabulaire de minara-music), plus quelques mots d'ambiance. L'énergie suit l'histoire : le nom du produit ou l'affirmation de lancement obtient climax ; un battement de confidentialité ou de sécurité obtient breakdown ; la carte de fin obtient outro.
  • Indices sonores : uniquement pour les actions visibles, chacun avec son heure exacte : tap 35.0s, typing 32.1–34.6s (cps 18), success 45.0s, notify 45.2s, whoosh 47.3s, thud 43.2s, bell 0.4s. Les types sont la liste sfx de minara-music.
  • La voix off réduit la musique ; dites duck under VO dans le brief quand il y a de la voix off.

Modèle de document de script

# Script | <Sujet> : <résumé en une ligne>            ← film complet : "Script | <Nom du film>"

> Le script actuel unique pour <scène N / le film complet>.
> Objectif : <remplace la scène N, XX–XXs / nouveau film>. La coupe existante est inchangée jusqu'à approbation.
> Sources : <chemin du code frontend / lien Figma / chemins de captures d'écran / document produit>. Les éléments marqués ⚠️ ne sont pas dans la source et nécessitent une confirmation produit.
> **Présentation (verrouillée)** : <cas ; surface ; fuseau horaire ; ce qui n'est pas montré ; s'il y a une étape de question de suivi>.
> **Sortie** : <2560×1440 ou 1440×2560>, 60fps. Keyframes : `docs/keyframes/<sujet>/` (source : `source.html`, invites AIGC : `prompts.md`).

## 1. Ce que cela doit communiquer
1. <la première chose qu'un spectateur doit retenir>
2. … (max 4 ; chacune correspond à au moins une keyframe)

## 2. Flux utilisateur et copie UI
| Étape | Action utilisateur | Copie UI (exacte) | Source |
(Source = chemin du code / nœud Figma / capture d'écran ; les invites de démo sont marquées "(demo)")

## 3. Feuille de keyframes (<total>s<, remplace XX–XXs>)
| Key | Temps | Dur | Scène | Image (court) | Voix off | Texte à l'écran | Musique | Source image |
|---|---|---|---|---|---|---|---|---|
| K1 | 0.0–2.4s | 2.4s | S1 | L'avatar atterrit au centre | — | — | intro · bell 0.4s | UI code |
(Une ligne par keyframe ; les plages sont contiguës et totalisent le total. C'est le tableau que lisent les compétences en aval.)

## 4. Scènes et keyframes
### <Id de scène> | <s

…

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

OliviaPp8/minara-video-skills

Create Minara product guide/tutorial videos from screen recordings supplied by the operator. Use for /minara-guide-video, “给录屏加字幕配音”, retiming a new recording cut, building a timeline approval player, or correcting caption/product meaning. Drives caption-recording from source analysis through pre-render approval, final verification, and local delivery. Not for synthetic HyperFrames marketing videos.

OliviaPp8/minara-video-skills

Generate background music and synced sound effects for Minara videos from the per-second script. Translates each scene's mood and on-screen actions (taps, typing, success, notifications, transitions) into a cue sheet, then renders BGM + SFX locally (numpy synth, no external service), with optional ducking under the voiceover. Use for /minara-music, "配乐", "生成音乐", "BGM", "按脚本生成音乐", "加音效", or when a minara-video / minara-guide-video project needs a music bed.

OliviaPp8/minara-video-skills

Make Minara use case / beginner tutorial videos (mobile App or desktop), rebuilding the product UI in HyperFrames code and walking through the real user path step by step. Unlike minara-video (marketing demo, UI redesign allowed), this skill requires a faithful UI: copy, layout, components, and interaction paths all follow the product frontend code and screen recordings. Triggers: "use case 视频", "教程视频", "操作演示", "新手教程", "按 App 界面做一个视频"; also makes covers for these videos ("封面", "cover", "缩略图").

OliviaPp8/minara-video-skills

The operator's standard workflow for making Minara marketing / launch / demo videos. Built on the hyperframes skill, with a stricter process - confirm style → high-level storyboard → copy → build each scene separately → confirm a per-second script → iterate on a local test page → render only once the user is satisfied.

Skills associés