Persian Motion Director
Direction de motion design professionnel avec une typographie persane/farsi et de droite à gauche correcte, en Remotion ou en code web simple : une méthode anti-diaporama (une seule caméra, des...
- Quoi
- Direction de motion design professionnel avec une typographie persane/farsi et de droite à gauche correcte, en Remotion ou en code web simple : une méthode anti-diaporama (une seule caméra, des...
- Coût
- Gratuit
- Prérequis
- Avant de commencer : lis ce prompt d'installation au complet, dis-moi en quelques lignes ce que ce skill fait et ce que son installation implique, et attends mon feu vert avant de faire quoi que ce soit d'autre.
- Installation
- Copiez le prompt d’installation ci-dessous dans votre Muse — votre agent fait le reste.
Direction de motion design professionnel avec une typographie persane/farsi et de droite à gauche correcte, en Remotion ou en code web simple : une méthode anti-diaporama (une seule caméra, des objets qui traversent les scènes, la musique d'abord et des coupes calées sur le rythme), huit techniques prêtes avec des croquis vivants, un outillage HarfBuzz pour animer le persan lettre par lettre et point par point, l'étirement kashida au lieu de l'espacement des lettres, et une liste de vérification et un linter de correction du persan.
Version :
Installation
Copiez le dossier d’installation ci-dessous, puis collez-le dans Muse📌 Version épinglée : commit 5499640Le prompt d'installation ci-dessous inclut déjà les étapes de vérification : votre agent suit la checklist communautaire avant d'installer tout ce qui contient du code exécutable. Vous en voulez plus ?
Avant de commencer : lis ce prompt d'installation au complet, dis-moi en quelques lignes ce que ce skill fait et ce que son installation implique, et attends mon feu vert avant de faire quoi que ce soit d'autre. Prérequis : aucun pour l'installation elle-même : aucun compte, aucune clé API, aucun service payant, et rien d'autre à installer d'abord. L'installation est une simple copie du dossier du dépôt ; aucun de son code n'est exécuté pendant l'installation. L'utilisation du skill ensuite a ses propres besoins d'outils optionnels, divulgués à l'étape 2 ci-dessous : Node.js et npm pour le projet d'exemple Remotion (ses dépendances s'installent avec npm install, à l'usage seulement, dans ta propre copie du projet), et des paquets Python pour deux scripts d'aide (uharfbuzz et fonttools pour scripts/shape_persian.py, numpy pour assets/music/compose_shur_pulse.py). Aucun d'eux n'est installé pendant cette installation. Installe-moi « persian-motion-director ». C'est un skill de direction en motion design pour les pièces qui contiennent du persan/farsi ou un autre texte en écriture arabe, de droite à gauche : une méthode anti-diaporama (une seule caméra, des objets qui traversent les scènes, la musique d'abord et des coupes calées sur le rythme), huit techniques prêtes avec des croquis vivants, un outillage HarfBuzz pour animer le persan lettre par lettre et point par point, l'étirement kashida au lieu de l'espacement des lettres, et une liste de vérification et un linter de correction du persan. Dépôt : https://github.com/atmirrr/persian-motion-director (le skill est tout le dossier du dépôt au commit épinglé : SKILL.md à la racine, plus references/, scripts/ et assets/) Version épinglée : installe le code au commit 5499640d2dfe5bedd73a8d3f1529847707be7e20 exactement. Ne substitue pas une version plus récente. Si ce commit est inaccessible, arrête-toi et dis-le-moi. 1. Clone https://github.com/atmirrr/persian-motion-director dans un dossier temporaire, place-toi au commit 5499640d2dfe5bedd73a8d3f1529847707be7e20, et copie tout le dossier du dépôt de ce checkout (à l'exclusion du dossier .git). Compare ensuite chaque fichier du dossier aux empreintes enregistrées pour cette fiche le 2026-10-19 : [FINGERPRINTS] - .gitignore: SHA-256 6fa8690a2b7fac09aed650d505d5eb2fb74a68f980b8bbcf9fc73b624c30fba6 - LICENSE: SHA-256 05178fffefdde59fdf06409e45fa7ba8d32429a1c6f37a1a2a0d0d133fcb00b5 - README.md: SHA-256 0a6c76c9587db201329f4bc1836f7581782ba71c8197fcc694a5389c0c3adbae - SKILL.md: SHA-256 80f5ef8d0bb2c67fd3b3880435a5e4bfd1332be781c02d5256e67808b1a73782 - assets/music/compose_shur_pulse.py: SHA-256 60378f57d4bdaeb084efbeeddefabc7c7e0f516930d1886223954c294bfb1154 - assets/remotion/package.json: SHA-256 f185e2b4b8680facee30219821d7dbda91b17ca62f0650b513173457bba2239f - assets/remotion/public/fonts/OFL.txt: SHA-256 17e355067c8284f47743a1ee3b1ef7ff684ff0601eda357f9353b10b3016ab31 - assets/remotion/public/fonts/Vazirmatn-VF.woff2: SHA-256 4e3fa217d38fdafc1fea4414ceb58ca5e662cf0ab5fa735a8c8c20e8b42cad92 - assets/remotion/public/music/beats.json: SHA-256 6b165c62964e64d1609714a1ab5c3e57ccdd3b0effa33ec94435398ffaa8d9af - assets/remotion/public/music/shur-pulse.mp3: SHA-256 9fcc923b0dae4ab0219ca327e7506e6855e420848f94f8968f5999cf357bea59 - assets/remotion/public/music/whooshes.mp3: SHA-256 42c2104e663de2cbf261128eb30b4003db720edefcde5d5556b19c002ebec64e - assets/remotion/remotion.config.ts: SHA-256 b1fc04c9d06adec7fbf57d2e77ddd76e1f80089f1e42d7f3429d6d646c8370f8 - assets/remotion/render-clips.mjs: SHA-256 da1f09269691c07108866dffd2cf0730fa341b565f57479f6686557565a27741 - assets/remotion/render-stills.mjs: SHA-256 a8202b26cc4870f3d993ace7bbf0ee1881bae4248cc443b08971883e063b338b - assets/remotion/src/Clip.tsx: SHA-256 3c480a937662bb018ca2ef3e3b8a2e9b1e0fd96206190a532aeb9bcb82810f13 - assets/remotion/src/Root.tsx: SHA-256 b1d7d1521342ff96db48c67e48b2651f0cdb70d1b9adfae99dd20d37f1df8349 - assets/remotion/src/SketchPlayer.tsx: SHA-256 aa11b4576a944a6bb28e4a88fbd90b76286bc9d4dcf1ee8db07a7549599fea3d - assets/remotion/src/fonts.ts: SHA-256 29ed16a31da072fad99bf31906442fcf44e1b65733f4accd08ad2f8152b13008 - assets/remotion/src/index.ts: SHA-256 5462d3268136731ce43bfd7c5072ea1ba48b51fec94fa30076f5044f4b39e4a2 - assets/remotion/src/intro/Intro.tsx: SHA-256 9bdf8384410aa494ad4c57cda3abd7ba97563612c8f3effa4e0e65b8f86167ee - assets/remotion/src/intro/TitleOutline.tsx: SHA-256 be30f303ef0e8dc85ba026f3dda3e74586d2ea5ecb8fc1a6056175e86b53190e - assets/remotion/src/intro/glyphs-intro.js: SHA-256 057feda3d8db6b2d9621d1fd4f59c69e981aa77fe41902f7e91461f7070a8923 - assets/remotion/src/intro/kit.tsx: SHA-256 f7cc44f5b92722aa244d3d8be0de8c7c17bd942a874fb4e40b78584bb162067a - assets/remotion/src/intro/lines.tsv: SHA-256 5956f471937d33ada001adb9d8aea42a5a63a9c46293926f6e90a0b6d2e5af6f - assets/remotion/tsconfig.json: SHA-256 f3ff4950cb65149d7df8f1ac1a6ccdd3a9d45fd1b0f266acb5b3d10d2cda3296 - assets/sketches/engine.js: SHA-256 46287d9e297fab750e0d656c55fd7a36270ac0f8de1691f8954decefb8a619af - assets/sketches/fonts/OFL.txt: SHA-256 17e355067c8284f47743a1ee3b1ef7ff684ff0601eda357f9353b10b3016ab31 - assets/sketches/fonts/Vazirmatn-VF.ttf: SHA-256 696249a2c74b39ffdef55de4df2809c5b639d3ff80d618d8160a095d2fd49dca - assets/sketches/fonts/Vazirmatn-VF.woff2: SHA-256 4e3fa217d38fdafc1fea4414ceb58ca5e662cf0ab5fa735a8c8c20e8b42cad92 - assets/sketches/gallery.html: SHA-256 39f9e8120ed1d4c352b33ae930b8d902f50e4fc30da3566ed989a6d1c5a77498 - assets/sketches/gallery.js: SHA-256 0b33f57a992dddd5321a2da73056dac892bce932011dc5f35e6fa34c5c5cd0b2 - assets/sketches/glyphs.js: SHA-256 1c9724e7eb8de8ab1d8b5868ccda1e5375426741f7cf3ca0fe1a849935a7e139 - assets/sketches/lines.tsv: SHA-256 9d2ca0729fe6f3bcc9e5d803ae3357ba45aeb56ac437db8ae397a829383b6ba7 - assets/sketches/sketches.css: SHA-256 ba4755b4f6f5a9bbe971a3db06b1c8ec4f298cf75d60ce0d673f4e8b277c02e1 - assets/sketches/sketches.js: SHA-256 d1984953ca1012428a6c98cf1dba53ec5ea7a9f3e54e738d1e226f9f73eba153 - media/01-oner.gif: SHA-256 87e1df7b90898507387f50dd66756463f2c86bce3cd966c74b049bb344ac39b0 - media/02-match.gif: SHA-256 fa9e2992995830608402f086c8d374a06abd6d1b2ff0a2f058b2c8dd9684b262 - media/03-ui.gif: SHA-256 8364a304e7f9b6602f57d482f732f974763e50a8eb6cd98fa8bc2f0f30b9ef0f - media/04-beat.gif: SHA-256 ff5bd8252d9fe26ab2467ddabcbf4b0718cb6fe3c9c166f23d45df0274e126ce - media/05-boil.gif: SHA-256 d7ea2e62dbb5d983d9d7d6125f3dd435e3e9e3ad1426dbbd8a60ec434069c232 - media/06-cutout.gif: SHA-256 969e15f5dca70bb7107805fedb34a88ec71abaad9d5a631391c361e29d762a33 - media/07-nuqta.gif: SHA-256 290b007a4bf0f4ce6e63fa77f2d510776b6c30677dab8d3650a4b23cd7ca55ba - media/08-kashida.gif: SHA-256 69cf01894a5ea4ade2d925b4ddde51a19314024377b006ec7ef035bd2d5a98f9 - references/anti-slideshow.md: SHA-256 f36307fa6780e739ac0878cf5fb98fe27558c013e884b9eb4d443ac634aaa53a - references/persian-copy.md: SHA-256 faf2fb18df8c63479ba1dce2b4873e96b9a0705f703dca227128c4c30a7b1792 - references/persian-typography.md: SHA-256 41d283cd923d48a830413f2a50620d1f6c4866eb5bf92058d2dd248e20ac8212 - references/sources.md: SHA-256 40a53793174f19a948d8f0b0645a42999d7dbb2aa4f7a80dac59a97937a763e1 - references/techniques/01-one-camera.md: SHA-256 6e9d92398bd96fd560f446c5119d435ea553365e2426ecea2051a0f013b07dd5 - references/techniques/02-one-shape.md: SHA-256 9a1458bf932d39935e69bc2ef4b3e26700ea9cf17c165861070c31cb196271d5 - references/techniques/03-real-ui.md: SHA-256 cf60978effe9f8836fd1138694cf24807738f168fdb3be842b54e8e129d3e319 - references/techniques/04-beat-cut.md: SHA-256 3bee6645a1cca1346432e4c8ab5ba985383865dd7b8bd68f1406becaa986f93c - references/techniques/05-line-boil.md: SHA-256 c1222a0d677e2c7db1403c0488dde5f9443e8d7e3dca5667522e40987fcc897e - references/techniques/06-paper-cutout.md: SHA-256 7943c340ee7861ddc9d18d9b8e2a7155d286a25412bfcd4d158dee53dc641645 - references/techniques/07-nuqta-dots.md: SHA-256 dc87d7c5c15cb5b60b70f72021605e2f97c5368192d95d639b5c3b2330ab3c7a - references/techniques/08-kashida.md: SHA-256 a2d200c49afee38105146e09402f14ac311a7a90d283303577c05cf1e0c1fc9b - references/workflow.md: SHA-256 0618286e0fb2a15e710b6d52ab20a7ed74adfe21c0dc47b6afdde5d3927d59b3 - scripts/lint_persian.py: SHA-256 ca150f668dd606e2781b554cb01849da58b1bbf717b7f66d30a7433169c57e43 - scripts/package.json: SHA-256 3ca9d4afd21425087cf31893b8f9f63c81b0b8408db5e343ca76e5f8aa26ab9a - scripts/shape_persian.py: SHA-256 6bc6d67126ae092e70b0cf3b4d895507758a3ce1f1940c4118726cffe55ffed8 - scripts/split_fa.js: SHA-256 ac113e1502a9b0874384b591955202cfcb82126c7d9205fe525309f4807264f4 Si un fichier ne correspond pas, il a changé depuis la préparation de la fiche : ne l'installe pas encore, dis-moi ce que tu as trouvé et laisse-moi décider. 2. Lis SKILL.md au complet, et parcours le reste du skill (references/, scripts/, assets/) assez pour me dire en mots simples : ce que le skill fait quand on l'utilise, à quels services il se connecte, s'il lit ou envoie des informations personnelles ou des clés, et tout ce qui semble inhabituel. Arrête-toi sur tout signal d'alerte et dis-le-moi avant d'aller plus loin. Confirme ces points à partir des fichiers : - Le périmètre fonctionnel du skill compte 49 fichiers : SKILL.md à la racine (9 380 octets), 13 fichiers sous references/ (le workflow, les guides anti-diaporama et de typographie et de rédaction persanes, les sources, et un fichier pour chacune des huit techniques), 4 fichiers sous scripts/ (lint_persian.py, shape_persian.py, split_fa.js, package.json), et 31 fichiers sous assets/ (le moteur de croquis et la galerie, le projet d'exemple Remotion, les polices, la musique livrée et son compositeur Python). Le clone copie aussi 11 autres fichiers qui ne font pas partie de la fonction du skill : README.md, LICENSE, .gitignore et les huit GIF de démonstration sous media/ que le README affiche. - Il y a bien du code dans ce skill, et rien de lui ne roule pendant l'installation : les scripts sont des outils de texte locaux (lint_persian.py est en bibliothèque standard Python pure et ne fait que vérifier la copie persane et le code ; shape_persian.py forme le persan avec HarfBuzz localement et écrit des contours SVG/JSON ; split_fa.js divise les mots persans localement ; compose_shur_pulse.py génère localement une piste WAV et un beats.json avec numpy), les croquis sont du JavaScript simple qui dessine dans une page de navigateur ou dans Remotion, et les scripts de rendu Remotion (render-clips.mjs, render-stills.mjs) assemblent et rendent des fichiers MP4/PNG localement. L'étape d'installation est une copie seulement : ne lance ni npm, ni npx, ni pip, ni python, ni node dans le cadre de cette installation. - Rien n'est envoyé nulle part pendant l'installation elle-même ; le seul téléchargement à l'installation est le dépôt depuis GitHub au commit épinglé. Aucun fichier ne nomme un compte, une clé API, un service de télémétrie ou une API distante, et aucun code du dépôt ne fait d'appel réseau (aucun fetch, aucun requests, aucun webhook). - À l'usage, tout roule localement sur du matériel que je fournis, avec ces téléchargements divulgués avant qu'ils arrivent, et seulement quand je choisis la route qui en a besoin : rouler les exemples Remotion veut dire npm install dans ma copie de assets/remotion/ (package.json épingle remotion et @remotion/cli, @remotion/bundler et @remotion/renderer 4.0.530, react et react-dom 19.1.1, avec typescript et @types/react en dépendances de développement), ce qui télécharge ces paquets depuis le registre npm au premier usage, et npx remotion peut servir à ouvrir le studio ou à rendre ; scripts/shape_persian.py demande pip install uharfbuzz fonttools (depuis PyPI) et assets/music/compose_shur_pulse.py demande numpy ; voir les croquis veut dire servir assets/sketches/ avec un serveur statique local (par exemple python3 -m http.server) et ouvrir la galerie sur localhost, ce qui est un serveur local, pas un envoi sortant. Les références citent leurs sources comme des liens ordinaires (publications x.com, w3.org, unicode.org, chromestatus.com, remotion.dev, et la licence de police SIL à scripts.sil.org) : rien ne les ouvre à moins que je choisisse de le faire. - Les fichiers de police Vazirmatn sous assets/ sont sous licence distincte, la SIL Open Font License 1.1 (OFL.txt dans chaque dossier de polices) ; le reste du code est MIT. La musique MP3 livrée sous assets/remotion/public/music/ est générée par assets/music/compose_shur_pulse.py et déclarée libre d'utilisation. - Le périmètre est la direction et la construction de pièces de motion (films promo et de lancement, typographie cinétique, explications animées, clips sociaux, génériques) dont le texte est persan/farsi ou RTL, et la correction de pièces qui ont l'air d'un diaporama ou dont le persan a l'air brisé. La boucle du directeur dans SKILL.md : lire le brief, montrer 6 à 10 directions de techniques et me laisser choisir avant de construire, verrouiller d'abord la musique et sa carte de mesures, écrire la liste de plans sur la grille de rythmes, rendre des images de style pour mon oui, construire en Remotion ou en code web simple, puis passer scripts/lint_persian.py sur toute la copie et revoir les images fixes avant le rendu. 3. Quand je dis « yes, install », installe-le comme skill : copie tout le dossier du dépôt (sans .git) dans le répertoire des skills de l'agent, dans un dossier nommé « persian-motion-director », en gardant toute sa structure (SKILL.md, references/, scripts/, assets/, et les autres fichiers copiés). La route amont, un simple clone git de https://github.com/atmirrr/persian-motion-director dans ~/.claude/skills/persian-motion-director, installe le même dossier ; l'une ou l'autre route convient tant que le checkout est au commit épinglé et que chaque fichier correspond à son empreinte. 4. Vérifie sans appels réseau : frontmatter valide, tous les fichiers en place, empreintes revérifiées sur la copie installée. 5. Indique ce qui a été installé, où, et ce qu'il me reste à faire moi-même (par exemple : installer les outils d'usage moi-même, seulement si et quand je les veux — Node.js/npm et npm install pour les exemples Remotion, uharfbuzz et fonttools pour le script de formation, numpy pour le compositeur de musique — et fournir moi-même le brief, la copie et la musique ; utiliser le skill est une étape séparée qui ne commence que quand je le demande, et les téléchargements à l'usage divulgués ci-dessus arrivent seulement à ce moment-là, sur des routes que je choisis). GitHub est optionnel : si j'ai un compte GitHub ou la CLI gh, tu peux l'utiliser ; sinon l'accès public suffit. Ne jamais l'exiger sauf s'il figure dans les prérequis ci-dessus. Règles : ne touche à rien en dehors du dossier temporaire et de la cible d'installation. Si quelque chose semble anormal, arrête-toi et demande-moi.
Enregistré dans vos installs récentes. Retrouvez-le à tout moment sur /connect.
Questions
Comment installer une création ?
Chaque fiche produit contient un prompt d’installation à copier-coller. Collez-le dans votre Muse et il installe la création pour vous — sans configuration manuelle.
Où va mon argent ?
Directement au vendeur. Skill Harbor ne traite jamais les paiements : le paiement se fait sur la page du vendeur, généralement via Stripe.
Que signifie le ✓ à côté du nom d’un créateur ?
Il signifie que nous avons confirmé l’identité de la personne derrière la fiche. Il ne dit rien sur le code lui-même — vérifiez toujours une création avant de l’installer.