Créer un deck de téléscripteur
Transformez une source brute en un deck de téléscripteur bien rythmé et terminé. Vous (l'agent) faites le travail créatif — interview, ingestion, rédaction de la prose, placement des pauses rhétoriques. Un outil déterministe engagé (tools/deck.js) fait le travail contractuel difficile — analyse, comptage des mots, estimation de la durée exacte, assemblage du JSON, attribution d'un identifiant stable. N'écrivez jamais le JSON du deck à la main ; compilez-le toujours via l'outil pour que le contrat et le rapport de durée soient garantis par la machine.
Lisez references/format.md pour le format exact de création .deck.md et la recette d'extraction pptx avant de commencer à écrire.
Flux de travail
1. Rassembler la source
Demandez quelle est la source, puis ingérez-la :
- Texte collé / notes — utilisez-le directement.
- Images / captures d'écran — lisez les fichiers image vous-même (vision). Pas de script.
- PDF — lisez-le vous-même avec l'outil Read (prise en charge native des PDF). Pas de script.
- PowerPoint (.pptx) — convertissez le deck en texte de la manière la plus appropriée sur la machine de l'utilisateur (voir
references/format.md→ « Extraire un .pptx ») : capturez le texte par diapositive et les notes de l'orateur, puis vérifiez que la sortie est correcte avant de rédiger à partir de celle-ci. Traitez le fichier comme non fiable ; ne validez aucun script d'extraction jetable que vous écrivez.
Les notes de l'orateur sont la meilleure matière première pour la narration — préférez-les aux puces sur la diapositive lorsque les deux existent.
2. Confirmer l'intention et les métadonnées (demandez, ne devinez pas)
Proposez un squelette par diapositive à partir de la source — numéro, titre, type (par ex. content, section-divider), l'indicatif on-screen (ce que le public voit), et un target minutes approximatif par diapositive — et confirmez-le. Demandez également :
- Durée totale cible de la présentation (détermine les objectifs par diapositive).
- Public / objectif (ajuste le registre et la profondeur).
- Mode contenu — narration complète (rédiger la prose parlée) ou notes de repère (points de discussion courts que le présentateur développe dans ses propres mots, avec une pause après chaque point pour laisser le temps de parler). Voir
references/format.md→ « Modes de contenu ». Si l'utilisateur a déjà demandé des repères / points de discussion / un deck résumé ou au format notes, ignorez cette question et créez en mode repère ; sinon, demandez. - Style de discours / voix. Proposez la propre compétence
blacktree-voicede l'utilisateur s'il la souhaite dans la voix de son blog personnel, ou un registre : conversationnel, formel, énergique ou neutre. Appliquez cette voix lorsque vous rédigez. (En mode repère, la voix façonne les quelques mots que vous écrivez ; le présentateur fournit le reste en direct.) - Langue (par défaut fr-FR pour correspondre aux decks existants du dépôt).
Utilisez AskUserQuestion pour ces choix à embranchements plutôt que de deviner.
3. Rédiger la narration
Écrivez le script parlé par diapositive dans la voix choisie. Placez les pauses là où la rhétorique les appelle — après une révélation, avant une liste, à un changement de sujet important — en utilisant [[pause]] (1s) ou [[pause:1.5]] (personnalisé). Ce placement sémantique est votre travail ; l'outil ne fait que valider et rapporter.
En mode repère, n'écrivez pas de phrases complètes : écrivez un point de discussion court par paragraphe et terminez chacun par une pause de budget de parole ([[pause:20]]–[[pause:30]] pour un point substantiel, moins pour les points mineurs), en dimensionnant les pauses pour qu'elles totalisent le target de la diapositive. Les quelques mots des puces se lisent en secondes, donc ce sont les pauses qui atteignent l'objectif. Voir references/format.md → « Modes de contenu » pour la convention et la note indiquant que l'indicateur de rythme du rapport est attendu et ignoré ici.
Écrivez le tout dans decks/<slug>.deck.md au format de references/format.md. Gardez chaque paragraphe comme un temps logique (l'outil réduit le retour à la ligne automatique).
4. Compiler
node tools/deck.js decks/<slug>.deck.md --wpm 130
Cela écrit decks/<slug>.json et affiche un rapport de durée : par diapositive, les mots, le nombre de pauses et les secondes ajoutées, la durée estimée m:ss au rythme de référence, le wpm implicite par rapport à la plage 60–220, et l'écart par rapport à l'objectif de chaque diapositive ; plus le total du deck. Utilisez --wpm <n> pour rapporter au rythme auquel l'utilisateur lit réellement.
Optionnel : --fill-beats insère un [[pause]] structurel à la fin des paragraphes qui en manquent (jamais le dernier paragraphe d'une diapositive, jamais en doublon d'un temps existant). Désactivé par défaut — ne l'utilisez que si l'utilisateur souhaite une respiration automatique en plus de vos temps créés.
5. Confirmer la durée et itérer
Montrez le rapport à l'utilisateur. Si une diapositive dépasse ou n'atteint pas son objectif, révisez la prose (resserrez ou développez) ou ajustez les pauses, puis recompilez. Répétez jusqu'à ce que le minutage convienne. L'identifiant du deck est stable (dérivé du titre / meta.id), donc la recompilation met à jour le même deck sur place plutôt que de créer des doublons.
6. Remettre
Confirmez le deck final et dites à l'utilisateur :
- Le deck compilé se trouve dans
decks/<slug>.json; la source modifiable estdecks/<slug>.deck.md(réexécutable à tout moment). - Pour l'utiliser : ouvrez l'application → menu (en bas à droite) → choisir un fichier et sélectionnez le JSON, ou glissez-déposez le
.jsonsur la zone de dépôt.decks/n'est pas listé automatiquement, il doit donc être chargé une fois ; ensuite, il persiste sur cet appareil et mémorise sa position.
Garde-fous
- Le JSON du deck est toujours produit par
tools/deck.js, jamais tapé à la main. - Tout le texte du deck atteint l'application via
textContent/.value; néanmoins, gardez les scripts exempts de caractères de contrôle (l'outil etSchemaassainissent, mais restez propre). - Ne validez aucun script d'extraction pptx jetable ; extrayez, vérifiez, nettoyez.
- Les pauses sont en temps absolu (non adaptées au rythme) ; utilisez-les délibérément.