Que fait Analyse de Créateur (Teardown) ?
Chemins : ${CLAUDE_SKILL_DIR} désigne le dossier contenant ce SKILL.md. Sous Windows, utilisez py partout où ces commandes disent python3.
Chaque question pour l'utilisateur va dans la zone de question : appelez l'outil AskUserQuestion (2 à 4 options, la recommandée en premier). Uniquement dans un agent sans cet outil, posez des questions numérotées en texte.
Résultat
creator-teardowns/<handle>/ : teardown.md (l'analyse), teardown.html (la page que l'utilisateur regarde), look.md (ce que Claude lit), style.json (chaque mesure, pour éditer dans ce style), ainsi que les fichiers par vidéo listés dans ${CLAUDE_SKILL_DIR}/references/outputs.md. Un plan d'édition va dans edit-plans/<name>/. Vérification de correspondance d'un montage dans ce style : scripts/match.py (references/outputs.md "Vérification de correspondance").
D'abord : diagnostic
python3 "${CLAUDE_SKILL_DIR}/scripts/fetch.py" doctor
Exécutez-le avant la première analyse dans une session. Prêt. signifie OK. S'il affiche Pas prêt, ou si l'utilisateur demande d'installer ou de configurer la compétence, suivez ${CLAUDE_SKILL_DIR}/references/setup.md. La clé ElevenLabs est facultative. Ne la demandez jamais dans le chat : l'utilisateur la sauvegarde avec setkey dans son propre terminal.
VPY="${CLAUDE_SKILL_DIR}/scripts/run.py" ; python3 "$VPY" ci-dessous (py sur Windows) exécute un script avec le Python de l'environnement virtuel où que AI_EDITOR_HOME le place.
Pipeline
Mode rapide (appelé par le start, setup ou style-edit de ai-editor)
Quand une autre compétence a besoin seulement du style.json, exécutez exactement : Étape 1 list, les commandes de l'Étape 2 avec --top 5 (5 plus 2 témoins et 2 supplémentaires ; liens collés : tous), les quatre de l'Étape 3b, puis les quatre de l'Étape 3c, puis arrêtez-vous. Les parties de l'Étape 0 ne posent de question que si l'appelant ne l'a pas déjà fait. Sautez metrics.py, les passes rédigées de l'Étape 3 et les Étapes 4-6. Environ 3 minutes par créateur sur un Mac 14 cœurs (2-3 min mesurées ; les vidéos supplémentaires ajoutent environ 1 min au pire), deux fois plus sur un portable 8 cœurs. Dites-le d'abord.
Étape 0 : Demander, une fois
Sautez ce que le message répond déjà. Un appel de boîte de question :
- Quels créateurs ? Le nom ou les liens qu'ils ont nommés (Recommandé) / Je vais en coller d'autres. Plusieurs est normal : les gens aiment les sous-titres d'un créateur et le rythme d'un autre. Le style de chaque créateur est un format unique.
- Avec plus d'un créateur : quelle partie de qui ? Pas encore sûr (Recommandé) : redemandez après l'Étape 3b, avec le
look.mdde chaque créateur pour comparer ; ou les sous-titres, le rythme (coupures, zooms, mouvements), le visuel (graphismes, cadrage du visage, cartes), le son.
Étape 1 : Obtenir les vidéos
python3 "${CLAUDE_SKILL_DIR}/scripts/fetch.py" list <handle> --platform tiktok --limit 40 # ou youtube
python3 "${CLAUDE_SKILL_DIR}/scripts/fetch.py" list <name> --urls picks.txt # liens collés, un par ligne
Affiche un tableau classé (vues, x médiane) et écrit videos.json ; * marque 3x la médiane.
Instagram : list <handle> --platform instagram lit les nouvelles Reels avec les vues via la connexion instagram.com de l'utilisateur dans son navigateur (envoyé uniquement à instagram.com). Sans connexion : il se ferme avec 1 code et une phrase ; dites-la, ou mettez 6+ liens de Reels dans picks.txt pour --urls (classés par likes ; dites-le).
Étape 2 : Télécharger et transcrire les gagnantes et un groupe témoin
python3 "$VPY" "${CLAUDE_SKILL_DIR}/scripts/visual.py" download <handle>
python3 "${CLAUDE_SKILL_DIR}/scripts/fetch.py" transcribe <handle>
--top N télécharge et transcrit N plus 2 vidéos témoins (les 2 les plus proches de la médiane ; --control change les 2) plus 2 supplémentaires pour la vérification du format (--spare), toutes de la durée habituelle du créateur quand il y en a assez. Liens collés : tous. La valeur par défaut --top 8 donne 12 vidéos ; --top 5, l'exécution rapide, en donne 9 ; passez-le aux deux commandes. Les deux affichent le nombre d'abord. --ids <id>,<id> sélectionne des vidéos exactes. Les vidéos proches de la médiane sont le groupe témoin : un mouvement qui apparaît dans la vidéo à 500 000 vues et dans celle à 3 000 vues est une habitude du créateur, pas la raison du succès de la première. Gardez-en au moins 2.
Chaque script de mesure travaille sur plusieurs vidéos à la fois (CT_JOBS=1 désactive cela sur un petit portable).
Dites le temps d'abord (téléchargement plus transcription, environ 10 s par vidéo sur un Mac 14 cœurs). Whisper (gratuit, local) est le défaut ; avec une clé ElevenLabs transcribe utilise Scribe, qui garde chaque tic de langage (0,22 $ par heure audio ; donnez l'estimation avant 10+ vidéos).
Si les comptes de tics de langage reposent sur les transcriptions Whisper, dites-le dans l'analyse.
Étape 3 : Mesurer, puis analyser
python3 "${CLAUDE_SKILL_DIR}/scripts/metrics.py" <handle>
Écrit metrics.json (mots par minute par tiers, pauses, tics de langage, longueur des phrases, je/tu/nous, phrases répétées), le tout à partir des horodatages des mots.
Exécutez d'abord l'Étape 3b, pour que les passes sautent les vidéos que format.json a exclues. Ensuite chargez ${CLAUDE_SKILL_DIR}/references/analysis-framework.md et exécutez ses passes. Pour la passe 1, lancez un agent video-analyst par vidéo, tous dans un seul message (ils s'exécutent en même temps) : donnez à chacun le chemin absolu creator-teardowns/<handle>/ et un id. Chacun renvoie une carte de séquences JSON ; fusionnez-les dans les tableaux. Sans outil Agent, lisez vous-même transcripts/<id>.timed.txt, une vidéo à la fois. Ne lisez jamais transcripts/<id>.json ou metrics.json en entier :
- Carte de séquences + minutage. Chaque vidéo divisée en séquences étiquetées avec des secondes et des nombres de mots.
- Profil vocal/vocabulaire. Longueur des phrases, personne, commandes, phrases récurrentes et les mouvements que l'utilisateur ne dirait pas.
- Passe visuelle. Toujours : Étape 3b. C'est ce qui permet à l'utilisateur de monter sa propre vidéo dans ce style.
- Événements de cartes, seulement si la demande couvre les cartes et graphismes du créateur, ou si un plan d'édition est à venir. Écrit
events.jsondans la forme décrite dans${CLAUDE_SKILL_DIR}/references/edit-plan.md.scripts/strip.pynécessite ffmpeg,numpyetpillow.
Ne sautez pas les minutages : "l'accroche arrive à 0:03 et dure 14 mots, les éléments font 8-11 s chacun" est un format que quelqu'un peut filmer ; "accroche, puis liste, puis conclusion" ne l'est pas.
Étape 3b : La passe visuelle (mesurée, pas d'images à lire pour vous)
python3 "$VPY" "${CLAUDE_SKILL_DIR}/scripts/visual.py" measure <handle>
python3 "$VPY" "${CLAUDE_SKILL_DIR}/scripts/look.py" measure <handle>
python3 "$VPY" "${CLAUDE_SKILL_DIR}/scripts/format_check.py" check <handle>
Ensuite, la passe feuille (4 ci-dessous), puis python3 "$VPY" "${CLAUDE_SKILL_DIR}/scripts/lookpass.py" merge <handle>.
Exécutez-les après transcribe (look.py fait correspondre le texte OCR aux paroles prononcées).
visual.py: les coupures et leurs types, longueurs des plans, zooms, panoramiques et tremblements.look.py: OCR 3 images par seconde et visages YuNet : les sous-titres (emplacement, taille, mots, casse, couleurs, poids, entrée), le cadrage du visage, la part des graphismes, la palette, la personnalité des mouvements. Environ 40 s par vidéo.format_check.py: un style est UN format, pas un mélange de tout ce qu'il publie. Il groupe les vidéos par cadre, visage, sous-titres, longueur des plans et durée ; un groupe majoritaire de 3+ est conservé, le reste est déplacé dansvideo/left-out/(format.jsondit pourquoi ;references/look-pass.md). Dites à l'utilisateur sa première ligne quand il y a des différences ("Utilisation de 4 sur 6 : 2 ressemblent à un format différent.") ; si c'est mixte, demandez plus de vidéos d'un type.- La passe feuille : un appel Agent avec
model: "haiku"litsheets/<id>.jpgpour chaque vidéo conservée (une feuille 3 x 3 chacune, créée parvisual.py) et écritvideo/<id>.look-ai.jsonselon l'invite delookpass.py: police, style graphique, transitions, ce qui n'est pas générique. Jamais un nombre. Description exacte dansreferences/look-pass.md.lookpass.py mergeles intègre dans style.json.
Lisez ensuite look.md (moins de 48 lignes). N'ouvrez pas les images ou les feuilles. Chaque champ est dans ${CLAUDE_SKILL_DIR}/references/look-pass.md. Les nombres dans style.json viennent du code ; ne les modifiez jamais à la main. Là où look.md et les mots du modèle diffèrent (dites "mouvement : percutant" mesuré, "fluide" nommé), c'est le mesuré qui l'emporte et l'analyse mentionne les deux.
Pas de moteur OCR (le diagnostic dit facultatif) : captions reste non mesuré et look.md le dit. Installez-le (le diagnostic affiche la ligne) plutôt que de lire les feuilles vous-même.
Étape 3c : La passe profonde et la page
python3 "$VPY" "${CLAUDE_SKILL_DIR}/scripts/graphics.py" measure <handle>
python3 "$VPY" "${CLAUDE_SKILL_DIR}/scripts/sound.py" measure <handle>
python3 "$VPY" "${CLAUDE_SKILL_DIR}/scripts/report.py" build <handle>
Chaque mesure affiche une ligne de résumé et le fichier écrit (--json affiche le bloc complet ; pas nécessaire : look.md a les nombres). Exécutez-les après l'Étape 3b (graphics.py masque l'orateur avec les visages de look.py). Ils ajoutent chaque graphisme (recadré, son type, où il se trouve, comment il entre et sort avec une courbe d'assouplissement GSAP adaptée), les types de coupures et les mouvements de caméra (visual.py), les effets sonores et la musique, les 3 premières secondes de chaque vidéo, les gagnantes par rapport au groupe témoin, et un scan des "tells" IA dans le look du créateur. Champs, méthodes, plafonds et coût : ${CLAUDE_SKILL_DIR}/references/teardown-page.md. Après graphics.py measure, exécutez la passe des types haiku dans cette référence (sinon les types restent la supposition du code), puis sound.py et report.py.
Ensuite, ouvrez creator-teardowns/<handle>/teardown.html pour l'utilisateur (open sur Mac, start sur Windows, xdg-open sur Linux) et proposez de le publier comme artefact. Ne lisez pas la page ou ses images vous-même : look.md a les nombres. Dites à l'utilisateur en deux ou trois lignes ce que les gagnantes font différemment (les lignes Gagnantes : dans look.md, avec n) et tout "tell" IA de niveau BAN dans leur look.
Ensuite, demandez dans la boîte de question (la page montre seulement les preuves ; elle n'a rien à cocher), une question à sélection multiple : "Quelles parties de @ votre montage doit-il copier ?" Options : sous-titres, rythme, types de graphismes, mouvement d'entrée, disposition, son (au plus 4 options par question : divisez en deux questions si nécessaire), chaque option décrite par une ligne mesurée de look.md (ex. "glisse en 0,25 s avec dépassement"). Si un "tell" BAN se trouve dans une partie qu'ils sélectionnent, dites-leur avant qu'ils confirment. Sauvegardez la réponse :
python3 "${CLAUDE_SKILL_DIR}/scripts/editplan.py" blend <handle>-mine --from <handle> \
--take captions,pace,graphics,entrances,layout,sound # seulement les parties choisies
style-edit lit creator-teardowns/<handle>-mine/style.json ; une partie laissée de côté utilise sa valeur par défaut. report.py build et editplan.py blend affichent la compétence du style (skill edit-like-<handle> -> <path>, avec ai-editor installé) : dites son nom à l'utilisateur. Les retours sur ce style modifient cette compétence.
Étape 3d : Plusieurs créateurs (quand l'utilisateur en a nommé plus d'un)
Suivez ${CLAUDE_SKILL_DIR}/references/blend.md : Étapes 1 à 3b par créateur, look.md côte à côte, puis editplan.py blend.
Étape 4 : Rédiger l'analyse
Remplissez ${CLAUDE_SKILL_DIR}/references/teardown-template.md dans creator-teardowns/<handle>/teardown.md. Chaque vidéo reçoit une ligne de statistiques, une transcription textuelle, un tableau de séquences avec minutage, les motifs à garder et les motifs à rejeter.
Étape 5 (facultative) : Transformer en compétence
Demandez si le format mérite d'être conservé. Si oui, suivez ${CLAUDE_SKILL_DIR}/references/skill-handoff.md (la compétence de format, à côté de la propre compétence du style).
Étape 6 (facultative) : Planifier la vidéo de l'utilisateur dans le style du créateur
Quand l'utilisateur transmet sa propre vidéo, suivez ${CLAUDE_SKILL_DIR}/references/edit-plan.md. Cela nécessite le events.json du créateur provenant de la passe visuelle ; cela ne fait pas de rendu.
Si un script s'arrête
| message | action |
|---|---|
diagnostic Pas prêt : ... | suivez references/setup.md pour chaque ligne qu'il liste |
yt-dlp n'a rien retourné / 0 vidéos analysées | lisez l'indice qu'il affiche : mettez à jour yt-dlp (le diagnostic montre comment), ou demandez des liens vidéo individuels et utilisez --urls |
| Le profil Instagram échoue | dites sa phrase : connectez-vous à instagram.com dans Chrome, ou 6+ liens de Reels (Étape 1 "Instagram") |
... Corrigez la clé, puis relancez (transcription) | la clé ElevenLabs est erronée : l'utilisateur la resauvegarde avec setkey dans son propre terminal, ou abandonnez-la et utilisez Whisper |
aucune vidéo dans ... Exécutez download d'abord | exécutez visual.py download <handle> |
téléchargement échec : <ids> (exit 1) | relancez avec les --ids qu'il affiche ; s'ils échouent encore, dites que l'échantillon est plus petit et continuez |
yt-dlp introuvable | exécutez fetch.py doctor et corrigez ce qu'il liste |
| certaines vidéos ne parviennent pas à être transcrites | réessayez avec --ids, puis dites lesquelles ont échoué ; ne comblez jamais le vide |
Règles strictes
- Des chiffres réels ou rien. Chaque affirmation sur ce qui fonctionne cite le nombre de vues à côté. Ne dites jamais qu'une vidéo "est devenue virale" sans le nombre.
- Transcriptions textuelles uniquement. Ne résumez jamais une vidéo qui n'a pas été transcrite.
- La structure est copiée, la voix ne l'est pas. Chaque analyse indique ce qu'il faut rejeter.
- Groupe témoin médian. Au moins deux vidéos de performance moyenne transcrites, sinon l'analyse ne peut pas séparer le format des habitudes du créateur.
- N'inventez jamais une ligne de transcription, une statistique ou une citation pour une carte. Si la transcription a échoué, réessayez avec
--ids, puis dites qu'elle a échoué. - Ne demandez jamais la clé ElevenLabs dans le chat.
- Uniquement des nombres mesurés dans style.json.
paceetzoomviennent devisual.py;captions,face,graphicsetmotiondelook.py; seulement les mots (look,font_match) du modèle. - Lisez look.md, pas les images. Ouvrez une image seulement pour trancher une question que look.md ne peut pas répondre, et dites laquelle. L'utilisateur reçoit teardown.html ; Claude reçoit look.md.
- Gagnantes par rapport au témoin : dites n. Ne qualifiez jamais une différence de prouvée ; "chaque gagnante" signifie seulement qu'il n'y a pas de chevauchement dans cet échantillon.