Configuration de la voix de contenu
Cette compétence configure Claude pour qu'il écrive dans la voix de votre marque sur les plateformes que vous choisissez. Elle génère un petit fichier CLAUDE.md de référence ainsi qu'un fichier .claude/rules/content-voice-<plateforme>.md par plateforme sélectionnée. Elle ne configure PAS les outils de publication, d'analyse, les pipelines médias ou la planification — cela sort du cadre et est intentionnel.
Contexte de passage : Lisez skills/_shared/consume-handoff.md et exécutez-le avec le bloc de passage (s'il y en a un). L'assistant garantit les variables locales suivantes : detected_language, existing_claude_md, inferred_use_case, repo_signals, graphify_candidate. Utilisez detected_language pour toute prose destinée à l'utilisateur ; le contenu des fichiers générés reste en anglais.
CLAUDE.md existant : Si existing_claude_md: true, NE PAS l'écraser. Ajoutez une nouvelle section délimitée à la fin du fichier :
<!-- onboarding-agent:start setup=content-voice skill=content-voice-setup section=claude-md -->
## Claude Onboarding Agent — Content Voice Setup
...contenu généré...
<!-- onboarding-agent:end -->
Si le bloc délimité existe déjà d'une exécution précédente, ne remplacez que le contenu entre les marqueurs ; laissez le reste intact. Encadrez les entrées générées pour .gitignore dans les marqueurs # onboarding-agent: content-voice — start / — end afin que /upgrade-setup puisse les rafraîchir sans les supprimer.
Fichiers supports
Lisez-les à la demande, à l'étape qui les invoque. Ne lisez pas en amont.
skills/_shared/consume-handoff.md— analyse du passage orchestrateur + repli en ligne (préambule, avant l'étape 1)skills/_shared/offer-superpowers.md— adhésion canonique aux Superpowers (étape 1)
Étape 1 : Installer les dépendances
Lisez skills/_shared/offer-superpowers.md et exécutez-le avec skill_slug: content-voice-setup, mandatory: false, capability_line: "Une bibliothèque de compétences Claude Code gratuite et largement utilisée. La compétence de brainstorming est utile pour explorer des angles avant de choisir une voix pour un contenu donné." L'assistant demande à l'utilisateur, délègue à skills/_shared/installation-protocol.md en cas de réponse positive, et définit superpowers_installed, superpowers_scope, superpowers_method.
Étape 2 : Questions de contexte
Posez-les une à la fois :
-
"Pour quelles plateformes créez-vous du contenu avec une voix éditoriale ? (sélection multiple — lettres séparées par des virgules, au moins une) A) YouTube (vidéo longue / scripts) B) Vidéos courtes (Instagram Reels / TikTok / Shorts) C) Newsletter / blog (écrit long) D) Podcast (audio conversationnel)"
Analysez la réponse en une liste de lettres. Exigez au moins une sélection — reposez la question une fois si l'entrée est vide. Stockez sous
selected_platforms. Convertissez en slugs :- A →
youtube - B →
shortform - C →
newsletter - D →
podcast
- A →
-
"Comment décririez-vous la voix de votre marque ? Soyez aussi précis que possible — plus vous donnez de détails, mieux Claude reproduira votre style. Exemples : 'éducatif mais décontracté, comme expliquer des choses à un ami intelligent', 'leader d'opinion professionnel dans la fintech', 'commentaire technique drôle et irrévérencieux', 'contenu bien-être chaleureux et personnel'"
Stockez la réponse mot pour mot sous
brand_voice. Les fichiers de règles par plateforme l'injectent dans leur en-tête. -
"Qui est votre audience cible ? (par ex. 'développeurs de 25 à 40 ans intéressés par les outils IA', 'propriétaires de petites entreprises sans bagage technique', 'passionnés de fitness cherchant des entraînements rapides')"
Stockez sous
target_audience.
Étape 3 : Émettre les règles vocales par plateforme
Pour chaque slug dans selected_platforms, écrivez un fichier de règles à .claude/rules/content-voice-<slug>.md. Si le fichier existe déjà, ignorez l'écriture et enregistrez Fichier .claude/rules/content-voice-<slug>.md ignoré (existe déjà) — ne PAS écraser les modifications utilisateur.
Chaque fichier de règles est autonome (≤ 40 lignes) et substitue brand_voice et target_audience dans l'en-tête. Utilisez les modèles ci-dessous, en remplaçant [brand_voice] et [target_audience] par les réponses collectées.
content-voice-youtube.md
# Content Voice — YouTube (long-form video)
Voice profile: [brand_voice]
Target audience: [target_audience]
## Format rules
- Every script opens with a hook in the first 30 seconds: promise a concrete payoff the viewer will get by the end.
- Structure: hook → setup (what problem / question) → payoff (the answer, story, or demo) → CTA.
- The CTA names one single action. Do not chain "like, subscribe, comment, join" lists.
- Keep sentences readable aloud — default to ≤ 20 words per spoken line.
## Tone rules
- Match the voice profile above in every draft. If a draft would read as generic AI commentary, rewrite the opening line until it sounds like [brand_voice].
- Address the target audience directly. Assume their baseline knowledge; do not explain what they already know.
## Do not
- Do not write title-bait the intro does not deliver on — the hook must be a truthful setup for the payoff.
content-voice-shortform.md
# Content Voice — Short-form video (Reels / TikTok / Shorts)
Voice profile: [brand_voice]
Target audience: [target_audience]
## Format rules
- Line 1 IS the hook. Scroll-stop happens in the first two seconds.
- One single idea per post. If a second idea matters, it is a separate post.
- End with a question, a CTA, or a concrete takeaway — never trail off.
- Keep total word count tight (≈ 30–60 spoken words for a 30-second cut).
## Tone rules
- Voice profile matches [brand_voice] exactly — short form amplifies voice, so generic tone is the default failure mode.
- Target [target_audience]; do not soften for a broader audience.
## Do not
- Do not bury the hook past line 1. Do not open with a throat-clearing "So, today I want to talk about …".
content-voice-newsletter.md
# Content Voice — Newsletter / blog (written long-form)
Voice profile: [brand_voice]
Target audience: [target_audience]
## Format rules
- Subject line is specific, not clever — name the takeaway or the question the reader gets answered.
- Opener is personal or story-based (1–3 sentences); then one core idea; then a clear takeaway; then a simple CTA.
- Section breaks are allowed but not required — err toward one tight argument over a listicle.
- Close with one sentence the reader could forward to a colleague.
## Tone rules
- Voice profile matches [brand_voice] throughout — no section should sound like a different author wrote it.
- Address [target_audience] by their actual situation, not by role labels.
## Do not
- Do not send an edition without a specific takeaway the reader can act on or remember.
content-voice-podcast.md
# Content Voice — Podcast (conversational audio)
Voice profile: [brand_voice]
Target audience: [target_audience]
## Format rules
- Cold-open with a hook — a scene, a question, or a concrete moment from the episode. Intro music comes after.
- Transitions are spoken, not jump-cut: name the shift ("Let's come back to that in a minute — first, …").
- Prep questions in advance, but leave room for follow-ups; a pre-written script reads as a pre-written script.
- End with the guest's CTA (if any), then a single host CTA.
## Tone rules
- Voice profile [brand_voice] applies to host lines; match guests' energy rather than forcing them into it.
- Keep jargon at [target_audience]'s level; translate on first use.
## Do not
- Do not lecture — stay conversational. If a segment reads as a monologue, cut it or reframe as a question.
Collectez la liste des fichiers effectivement écrits (moins ceux qui ont été ignorés car existants) sous emitted_voice_files pour le résumé de fin.
Étape 4 : Générer les artefacts
CLAUDE.md
# Claude Instructions — Content Voice
## Brand
Platforms: [séparés par des virgules depuis selected_platforms]
Brand voice: [brand_voice]
Target audience: [target_audience]
## Scope
This setup covers voice only — not publishing, analytics, or media pipelines. For longer content workflows, layer additional skills or tools on top.
## Voice rules (per platform)
[Pour chaque slug dans selected_platforms, émettre une puce pointant vers le fichier de règles :]
- YouTube: `.claude/rules/content-voice-youtube.md`
- Short-form video: `.claude/rules/content-voice-shortform.md`
- Newsletter / blog: `.claude/rules/content-voice-newsletter.md`
- Podcast: `.claude/rules/content-voice-podcast.md`
## Guidelines
- Always write in the brand voice defined above — never sound generic or like a typical AI.
- Before drafting, consult the relevant `.claude/rules/content-voice-<platform>.md` file for the target platform.
- When asked for cross-platform adaptations, apply each platform's rule file individually — do not copy-paste between formats.
[Inclure UNIQUEMENT si superpowers_installed est true]
## Superpowers
Superpowers is installed. For ideation sessions and planning content series, use `superpowers:brainstorming` to explore angles before committing to a direction.
.gitignore
# Large media files
*.mp4
*.mov
*.avi
*.psd
*.ai
*.sketch
*.fig
# OS
.DS_Store
Thumbs.db
# Claude local settings
.claude/settings.local.json
Étape 5 : Écrire les métadonnées de mise à niveau
Définissez setup_slug: content-voice, skill_slug: content-voice-setup. Résolvez plugin_version à partir du fichier plugin.json du plugin. Suivez ensuite skills/_shared/write-meta.md pour créer ou fusionner ./.claude/onboarding-meta.json.
Étape 6 : Afficher les sections d'ancrage
Lisez skills/_shared/anchor-mapping.md. Repérez la ligne correspondant à setup_type: content-voice. Pour chaque slug d'ancrage dans cette ligne :
- Appelez
skills/_shared/render-anchor-section.mdavec :setup_type: content-voiceskill_slug: content-voice-setupanchor_slug: <slug>target_file: ./CLAUDE.mdfallback_content: <contenu de repli intégré depuis skills/anchors/SKILL.md pour ce slug>
- Si un fichier
./AGENTS.mda été généré précédemment dans cette compétence, répétez l'appel avectarget_file: ./AGENTS.md.
Ne vous arrêtez pas si un appel à render-anchor-section.md renvoie placeholder. Collectez les slugs rendus / en place pour le résumé de fin.
Pour chaque appel, capturez également render_freshness. Lorsqu'elle est autre que network ou cache (c'est-à-dire fallback ou embedded), enregistrez la paire (anchor_slug, render_freshness) dans anchor_freshness_notes. La ligne Anchor freshness du résumé de fin utilise cette liste.
Étape 7 : Résumé de fin
✓ Configuration de la voix de contenu terminée !
Périmètre : voix de marque + règles de tonalité par plateforme. La publication, l'analyse et les
pipelines médias ne sont PAS couverts — cette compétence est volontairement restreinte.
Fichiers créés :
CLAUDE.md — marque, périmètre, pointeurs vers les règles vocales
.claude/rules/content-voice-<slug>.md — un fichier par plateforme sélectionnée [liste emitted_voice_files ; notez les ignorés comme "(existait déjà — laissé intact)"]
.gitignore — règles pour les fichiers médias volumineux
.claude/onboarding-meta.json — marqueur de configuration pour /upgrade-setup
Compétences externes :
[✓ Superpowers installé via superpowers_method (superpowers_scope)]
[ignoré — installer plus tard avec : /plugin install superpowers@claude-plugins-official]
[⚠ Échec de l'installation de Superpowers — installer manuellement : https://github.com/obra/superpowers]
Fraîcheur des ancres :
[omettre tout le bloc si anchor_freshness_notes est vide ; sinon une ligne par entrée :
Ancre <anchor_slug> servie depuis <render_freshness> — envisagez d'exécuter /anchors pour rafraîchir.]
Prochaines étapes :
Démarrez une nouvelle session Claude et dites : "Rédige un [script YouTube | accroche courte | édition de newsletter | ouverture de podcast] sur [sujet] dans ma voix de marque"
Ou : "Adapte cet article de blog pour Instagram Reels, en suivant mes règles de voix courte"
- Exécutez `/anchors` à tout moment pour rafraîchir les sections dérivées des ancres. Si une section a été rendue comme un espace réservé en mode hors ligne, réexécutez `/anchors` une fois de retour en ligne.