Que fait 100x-segment ?
Une phrase pour le positionner
Prend un texte brut de script voix-off TikTok/UGC (en anglais ou espagnol) et produit trois niveaux de découpage superposés et indépendants : L1 découpage logique (10 modules + 7 archétypes), L2 prédiction de l'intention des plans, L3 marquage des temps de respiration dans le texte. Il s'agit de l'étape « 1 découpage » du système 100x.
Quand déclencher
L'utilisateur dit :
- « découpe-moi ce script » / « comment découper ce texte » / « où respirer ici »
- « segment this script » / « break this voiceover into beats »
- ou donne directement un texte brut de script voix-off en demandant « découpe-le en modules » / « marque les temps de respiration » / « comment le segmenter »
Entrée
Entrée minimale (catégorie A, obligatoire) : source_text — un texte brut de script voix-off. Ce skill n'accepte pas de fichiers vidéo ni de trames vidéo, uniquement du texte (voir workflow.md Phase 1).
Catégorie B (entrée facultative) : aucune — source_text contient déjà tous les signaux nécessaires au découpage, aucun ajout de points de vente, audience ou ton n'est requis avant de commencer (identique à 100x-persona, différent de 100x-search-query, voir workflow.md « description catégorie B »).
Plage linguistique (limite claire v1, pas de dégradation) : language est détecté automatiquement à partir de source_text, accepte uniquement l'anglais ou l'espagnol ; si la détection donne une autre langue ou un mélange anglais-espagnol impossible à déterminer, le skill refuse catégoriquement, sans deviner ni faire à la place.
Production amont optionnelle (catégorie C, absente → ignorée silencieusement, ne bloque pas, ne demande jamais à l'utilisateur d'exécuter un autre skill au préalable) : ce dépôt ne contient actuellement aucun skill produisant des profils de produit ou des sujets de contenu pouvant servir d'amont.
Sortie
Voir schema.json : source_text / language / archetype (7 archétypes A-G, simple ou composite « principal+secondaire » comme "G+E") / segments[] (chaque élément contient segment_id / module [10 énumérations] / raw_text / text_annotated [version avec marquage en ligne ‖ pour respiration forte et · pour respiration faible]) / shots[] (chaque élément contient shot_id / segment_refs[] / shot_purpose [7 énumérations standard]) / meta. Optionnellement, un tableau Markdown lisible peut également être généré.
Contraintes fondamentales (4 axiomes, voir axioms.md)
segments[].moduleverrouillé sur 10 énumérations (11 modules moins Localisation qui traverse tout le texte) +archetypeverrouillé sur 7 archétypes (simple ou composite de deux lettres différentes)- Les marques de respiration sont des annotations en ligne, ajoutées uniquement —
text_annotatedsans‖/·doit correspondre mot pour mot àraw_text, aucun mot supprimé/ajouté/modifié - Les critères de force des respirations sont figés (mots de liaison au début > ponctuation de fin de phrase / tiret > virgule point-virgule, limite par souffle EN 14 mots / ES 16 syllabes obligatoire), déterminés selon une priorité fixe, sans improvisation (limites connues : EN
sopeut être une conjonction de liaison/cause ou un adverbe de degré/emphase (so much/so many) ; la correspondance pure par mot-clé ne les distingue pas, seule l'exclusion deso much/so manyles plus courants est faite, d'autres utilisations emphatiques peuvent encore être faussement classées comme conjonctions de liaison et forcer une respiration forte — ceci est un critère d'échec dur et non un simple avertissement, car le coût d'erreur est plus élevé que la règle suivante ; les mots de remplissage suivis d'une pause, les prix avant les chiffres ne sont pas marqués — ce sont des correspondances heuristiques par mot-clé, non une véritable analyse sémantique, l'ambiguïtélikepréposition/remplissage entraîne un certain taux de faux positifs, seulement un avertissement pas d'échec, voiraxioms.mdaxiome 3 TODO ; le critère de ponctuation de fin de phrase utilise un dictionnaire d'abréviations fixe et non exhaustif (a.m./p.m./Mr.etc.) pour exclure les points d'abréviations courants, ces abréviations spécifiques ont été corrigées sur des corpus anglais réels, mais les abréviations hors dictionnaire peuvent encore être faussement interprétées comme des points de fin de phrase ; de plus, la ponctuation de fin de phrase collée au mot suivant (espace manquant) ne déclenche actuellement le marquage que pour!/?, tandis que.nécessite toujours un espace réel pour éviter les conflits avec les abréviations et les décimales — voiraxioms.mdaxiome 3 TODO) shots[].shot_purposeverrouillé sur 7 énumérations standard, et doit couvrir complètementsegments[](intégrité référentielle + zéro orphelin, limite connue : ce skill ne traite que du texte,shots[]ne prédit que l'intention des plans, sanstime_bucket/visual_description/camera_language/audio_plan— ces champs dépendent des images vidéo réelles, hors scope de ce skill)
Limites d'application : Le squelette 11 modules / 7 archétypes est issu du blueprint des voix-off DR de compléments alimentaires sur TikTok US, son applicabilité à d'autres structures narratives (scénarios narratifs / interviews hors DR) n'a pas été validée.
Processus en trois phases
Voir workflow.md : Phase 1 réception + validation (catégorie A + vérification linguistique, pas de catégorie B, catégorie C ignorée silencieusement) → Phase 2 (2A découpage en paragraphes → 2B prédiction d'intention des plans → 2C annotation des respirations → 2D auto-vérification S1-S8 + rendu) → Phase 3 reprise déclenchée par l'utilisateur (trois niveaux de granularité : L1 découpage paragraphe / L2 intention plan / L3 marques de respiration, correspondant directement aux trois couches de points de découpe).
Garantie d'appel indépendant
Catégorie A (source_text) manquante → question de rejet fixe, pas de supposition, pas d'acceptation de fichier vidéo en remplacement. Langue détectée hors anglais/espagnol → message de rejet fixe, pas de supposition, pas d'acheminement. Catégorie C (production amont) manquante → ignorance silencieuse, ne demande jamais à l'utilisateur d'exécuter d'abord un autre skill.
Mots interdits
« laissez-moi » / « j'espère » / « peut-être » / « probablement » / « possible » / « peut-être que » / « nous allons » ; langage de service client IA (as an AI / I'd be happy to / feel free to) ; ne pas inventer de contenu de module / effet / certification / témoignage absent du script original ; ne pas écrire de dictionnaire fixe de catégories de clients ; text_annotated interdit toute suppression ou modification des mots de raw_text (voir axiome 2).
Routage (recommandé, non obligatoire)
- Script déjà découpé, souhaite associer des personnages/scènes à chaque segment →
100x-persona(pairings[].segment_refpeut référencer lessegments[].segment_idproduits par ce skill) - Souhaite associer des images de plan réelles / mouvements de caméra / audio (nécessite une entrée vidéo) → futur skill de storyboard en dépôt public (si déjà créé)
- Souhaite d'abord chercher des références visuelles / mots-clés →
100x-search-query - Souhaite revenir à l'entrée principale pour un nouveau tri → entrée principale du système 100x (si déjà créé)
Les éléments ci-dessus sont des recommandations « après production selon les besoins », pas des dépendances préalables ; leur absence n'affecte pas le fonctionnement indépendant de ce skill.
Auto-validation en sortie
Exécuter node scripts/validate.js --selftest pour valider. Les contraintes structurelles déclarées dans schema.json (enum / pattern / additionalProperties / minItems / uniqueItems etc.) sont réellement vérifiées par ajv (vérificateur réel JSON Schema draft-07, déclaré comme devDependency dans package.json, exécuter d'abord npm install), pas par une énumération manuelle des champs. L'axiome 2 (comparaison entre champs text_annotated / raw_text), l'axiome 3 (priorité de force des respirations + limite par souffle, nécessite l'analyse du texte en fragments et le raisonnement par fragments) et l'axiome 4 (intégrité référentielle entre shots / segments + zéro orphelin + numérotation séquentielle) sont des critères que le vanilla JSON Schema ne peut pas exprimer structurellement ; ils sont implémentés manuellement dans scripts/validate.js :
npm install # première utilisation, installer ajv
node scripts/validate.js <bundle.json> [bundle2.json ...] # valider la production
node scripts/validate.js --selftest # exécuter les tests de régression intégrés
Sources
Ce skill a été construit pour le cas d'usage « découpage et annotation de respiration de scripts voix-off bruts », incluant la logique des paragraphes (système de 10 modules + 7 archétypes), la prédiction d'intention des plans (7 types standard) et le système de règles de respiration en ligne (axiomes 2/3). Les spécifications de chaque critère et la conception des champs sont détaillées dans sources.md.