voice-extraction-workflow

Par elophanto · elophanto

Produire un contrat de voix à partir d'exemples sélectionnés par l'opérateur (Phase 10). Déclenché par des chemins d'exemples, une intention de voix, ou un échec de lint du brouillon.

npx skills add https://github.com/elophanto/elophanto --skill voice-extraction-workflow

Workflow d'extraction de voix

Déclencheurs

  • voice extract / voice contract / voice yaml
  • learn my voice / mimic this voice / write like
  • exemplars / reference posts
  • voice_proposed / voice approve
  • voice lint failed

Procédure : extraire un contrat de voix

  1. Vérifier les exemplars. file_list data/companies/<slug>/exemplars/ récursif. S'attendre à twitter/, email/, etc. avec 2+ fichiers .md par canal. Si vide : indiquer le chemin à l'opérateur, ne pas scraper.
  2. voice_extract(company_id=<slug>, channel=<optional>). Nécessite ≥2 exemplars par canal analysés. Écrit voice_proposed.yaml.
  3. Montrer à l'opérateur : elophanto voice proposed <slug> (ou file_read). Mettre en avant persona / ton / phrases interdites / hooks / limites de longueur.
  4. L'opérateur valide :
    • Approuver → elophanto voice approve <slug> (sauvegarde le voice.yaml existant, valide la proposition).
    • Rejeter → elophanto voice reject <slug> "<reason>" archive avec raison ; le prochain extract la lit.
  5. Les futurs brouillons se lintent automatiquement contre le contrat.

Quand un lint de brouillon échoue

ToolResult nomme les violations d'erreur (ex. voice lint failed: banned phrase 'leverage'; too long: 312 chars (max 240)).

  • Par défaut : réviser le corps en respectant les contraintes. Le LLM le fait naturellement au prochain cycle de planification.
  • Rare : le contrat est obsolète. Informer l'opérateur + demander des exemplars nouveaux.
  • Ne jamais contourner via live tool pour ignorer la porte du brouillon.

Quand aucun voice.yaml n'existe

Le lint est fail-soft (accepte tout). État jour 0. Informer l'opérateur que le contrat est vide + pointer sur le chemin exemplars/. Tant qu'il manque, utiliser par défaut les principes [[b2c-marketing-voice]] (pas de « leverage », objet concret en avant, etc.).

Règles strictes

  • ❌ Ne jamais promouvoir voice_proposed.yamlvoice.yaml toi-même. Opérateur uniquement.
  • ❌ Ne jamais scraper d'URLs pour les exemplars — l'opérateur colle volontairement.
  • ❌ Ne jamais écrire voice.yaml directement via file_write.
  • ❌ Ne jamais linter un brouillon contre la voix d'une autre entreprise — définir d'abord la contextvar.

Vérifier

  • [ ] ≥2 exemplars par canal avant voice_extract
  • [ ] voice_proposed.yaml écrit (pas voice.yaml)
  • [ ] En cas d'échec du lint : corps révisé, pas de live tool appelé

Skills similaires