Communitygithub.com

redirhan/panel-tr-lite

Panel TR — Groupe de discussion synthétique, ancré sur des preuves, en turc. Testez vos réels, sites, publications ou offres auprès de profils d'utilisateurs turcs avant de les publier.

Qu'est-ce que panel-tr-lite ?

Panel TR (synthétique focus group) est un outil conçu pour les spécialistes du marketing, les créateurs de contenu et les développeurs travaillant avec le public turc. Il simule les réactions de panels d'utilisateurs turcs segmentés par âge (18-24 à 55+), localisation (métropole, Anatolie, village), usage d'Instagram (intensif/léger), y compris les sceptiques et les personnes peu technophiles. En version Pro, il ajoute des profils de décideurs marketing et propriétaires d'entreprise. L'outil évalue des stimuli (images clés pour les réels, captures d'écran Firefox/WebKit pour les sites, images pour les publications) et fournit des retours en turc : arrêt dans les 3 premières secondes, compréhension du message, fiabilité (1-5), intention d'action (DM, achat, suivi), prix perçu, objection principale et correction concrète unique. Chaque panel s'exécute dans des sous-agents séparés, le comptage est fait par script, et le rapport se termine par une case d'honnêteté obligatoire. Utilisez-le comme dernière vérification avant publication, pour les tests A/B (Pro) et sur des commandes comme 'panel', 'focus group', 'test', 'montre à différents groupes d'âge', 'synthetic focus group'. Il est basé sur l'évidence : chaque caractéristique de personne est sourcée ou explicitement marquée comme hypothèse. L'outil assure une diversité délibérée (sceptiques, réfractaires à la technologie, ruraux) et un test en aveugle (sans biais de l'utilisateur).

Compatible avec✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/redirhan/panel-tr-lite/tree/main

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Panel TR (synthetic focus group)

À quoi ça sert : détecter les problèmes avant un vrai public — une offre mal comprise, des petits caractères illisibles, une ouverture qui n'accroche pas dans les 3 premières secondes, un élément qui repousse une certaine tranche d'âge. Ce que ce n'est pas : une prévision de ventes ou une étude de marché. Les chiffres sont un décompte de réponses synthétiques, jamais un « % du marché ».

Versions (fichier EDITION) : Lite = 10 fiches spectateur, une seule option, rapport rapide prêt à l'emploi. Pro = 30 spectateurs + 24 fiches acheteur (10 segments), mode A/B, tableaux et graphiques par segment, rédacteur de rapport séparé. Les étapes spécifiques à la Pro sont marquées (Pro) ci-dessous ; en Lite, le script les refuse poliment.

Fichiers

SKILL.md                    ce fichier
EDITION                     lite | pro
config.example.yaml         copier -> config.yaml (chemins, navigateur, taux de base) ; chemin absolu non requis
requirements.txt            PyYAML, Pillow, playwright (pour le mode site)
personas/viewers.yaml       fiches spectateur (Lite 10, Pro 30)
personas/buyers.yaml        fiches acheteur (Pro uniquement, 24)
sources/index.yaml + *.md   résumés de sources publiques citées par les fiches (TÜİK, DataReportal, …)
prompts/persona_batch.md    instruction d'un sous-agent de groupe (plan rempli par panel.py)
prompts/aggregator.md       (Pro) instruction du rédacteur de rapport (rempli par panel.py report-prompt)
scripts/make_stimulus.py    vidéo/site/publication -> images clés, captures d'écran, stimulus.md
scripts/panel.py            doctor | validate | cite | init-run | plan [--dry-run] | report-prompt (Pro)
scripts/aggregate.py        responses/*.json -> tableaux, graphiques, contrôles d'honnêteté, rapport rapide
examples/demo-kafe-reel/    exemple de bout en bout avec un reel de café fictif

Ci-dessous, S = dossier de cette compétence (généralement ~/.claude/skills/panel-tr), PY = python3 (de préférence S/.venv/bin/python). Les dossiers d'exécution sont écrits dans le runs_dir du config.yaml (par défaut ~/panel-tr-runs).

Étapes

  1. Lors de la première installation / en cas de problème : PY S/scripts/panel.py doctor (dépendances, ffmpeg, navigateur, version). Si les fiches ont changé : PY S/scripts/panel.py validate doit renvoyer 0 erreur. PY S/scripts/panel.py cite V07 affiche une fiche avec les lignes de source qu'elle cite.
  2. Dossier d'exécution : RUN=$(PY S/scripts/panel.py init-run --slug kafe-reels-v2) → modèles dans RUN/inputs/.
  3. Rédiger les entrées (dans RUN/inputs/), en turc neutre, d'après ta propre analyse :
    • context.txt — où et comment la personne voit ce contenu ("Il apparaît dans le flux Reels ; le compte qui partage est @x ; il y a / il n'y a pas de texte de description"). N'écris le compte partageur que s'il est visible dans l'application. N'écris jamais qui a fait quoi, quel est l'objectif ou quelle version est préférée.
    • onscreen.txt (vidéo) — tout texte à l'écran, avec intervalle de temps, tel qu'il apparaît à l'écran.
    • audio.txt (vidéo) — ce qui est entendu, factuellement : son live ou quel morceau, à quelle seconde, y a-t-il de la parole/des effets, cohérent avec l'image ? Présenté aux personnes sous le titre « NOTRE ANALYSE — tu n'as pas entendu cela ».
    • caption.txt (publication/reel) — le texte de description qui sera publié, s'il y en a un.
  4. Stimulus (un par option ; A/B = stimulus_A, stimulus_B) :
    PY S/scripts/make_stimulus.py video IN.mp4 RUN/stimulus --onscreen RUN/inputs/onscreen.txt --audio RUN/inputs/audio.txt [--caption RUN/inputs/caption.txt] [--transcript]
    PY S/scripts/make_stimulus.py site https://ornek.com RUN/stimulus        # ou un fichier .html local
    PY S/scripts/make_stimulus.py post a.jpg,b.jpg,c.jpg RUN/stimulus --caption RUN/inputs/caption.txt
    
    Vidéo : images clés à 0,0 / 0,5 / … / 2,5 s, puis une par seconde + dernière image ; sheet_00_ilk3sn.jpg et pages 2-3 numérotées avec le temps sous chaque image ; --transcript ajoute le texte si parole (si faster-whisper / openai-whisper installé). Site : Playwright Firefox (par défaut) ou WebKit — bureau 1440×900 et mobile 390×844, première page + page entière par tranches de deux écrans, plus le texte visible. Chrome / Chromium / Chrome for Testing n'est jamais ouvert. Ouvre les pages toi-même et vérifie que onscreen.txt correspond aux images.
  5. Planifier le panel :
    PY S/scripts/panel.py plan --run RUN --panel viewer --n 10 --batches 2 --stimulus RUN/stimulus --context-file RUN/inputs/context.txt [--action "…"] [--seed 7] [--dry-run]
    PY S/scripts/panel.py plan --run RUN --panel viewer --n 30 --batches 6 …                                   (Pro)
    PY S/scripts/panel.py plan --run RUN --panel buyer --n 24 --batches 5 --segments kafe_restoran,emlak,… …   (Pro)
    PY S/scripts/panel.py plan … --stimulus-a RUN/stimulus_A --stimulus-b RUN/stimulus_B                     (Pro, A/B)
    
    Tailles : contrôle rapide 10 personnes (2×5) ; contrôle complet (Pro) 30 spectateurs (6×5) et/ou 24 acheteurs (5×~5). La sélection des spectateurs est pondérée selon la répartition par âge d'Instagram Turquie (config : viewer_age_weights, source NapoleonCat), au moins une personne par tranche d'âge ; ~20% de personnes « hors cible » (--out-share) ; --local İzmir favorise les personnes de cette ville ; --ids pour une sélection manuelle. Chaque panel garde au moins un sceptique/hors cible. A/B (Pro) : les options sont présentées comme « Option 1/2 » ; les groupes impairs voient A en premier, les groupes pairs voient B en premier ; la clé n'est que dans plan.json, jamais dans une instruction. Si la question d'action par défaut ne convient pas, utilise --action pour la modifier ("En voyant ce reel, irais-tu ce week-end ?").
  6. Exécuter les groupes — un sous-agent frais et séparé par groupe, tous en parallèle. Utilise un agent à usage général dans l'outil agent, pas un fork (le fork apporterait notre contexte et nos attentes). Instruction : "Read <RUN>/batches/batch_NN.md and do exactly what it says. Write only the JSON file it names." Chaque sous-agent ne voit que son propre fichier d'instruction et les images. Ensuite, vérifie que chaque fichier RUN/responses/batch_NN.json existe ; relance le groupe échoué une fois avec la même instruction.
  7. Compter : PY S/scripts/aggregate.py RUN --title "…" [--real-people "…"] → RUN/data/panel_data.md, chart_aksiyon.png, chart_ilk3sn.png, all_answers.md et contrôles : schéma, référence (citation d'une image non montrée = la personne a inventé), écho de fiche (la personne a répété sa propre fiche), univocité (chevauchement de mots intra-groupe vs inter-groupes). Lite écrit ici le rapport rapide RUN/PANEL_REPORT.md. Pro écrit en plus un tableau et des graphiques par segment (chart_aksiyon_<segment>.png) et la préférence A/B.
  8. (Pro) Rapport : PY S/scripts/panel.py report-prompt --run RUN --title "…" --real-people "…" → RUN/aggregator_prompt.md. Donne-le à un nouveau sous-agent ("Read … and do it") → RUN/PANEL_REPORT.md (objections agrégées, correctifs prioritaires, commentaire par segment). Compare le rapport avec all_answers.md (les citations doivent être réelles, les chiffres inchangés).
  9. Dire à l'utilisateur (en turc) : résultat en 3-5 lignes avec chiffres, les 3 premiers correctifs, une phrase de la case d'honnêteté et 3-5 vraies personnes à interroger. Le panel ne remplace pas le goût de l'utilisateur ou du client.

Règles

  • D'abord la preuve. Chaque caractéristique de fiche se termine par [CLÉ:Fnn] (une ligne de fait dans sources/) ou [hypothèse]. panel.py validate vérifie chaque référence. Aujourd'hui, environ la moitié des caractéristiques sont [hypothèse] (pas de donnée publique mesurée pour la personnalité et les goûts) — le rapport affiche ce ratio. Pour ajouter votre propre recherche, écrivez un fichier .md avec des lignes "Fnn …" dans sources/ et ajoutez sa clé à sources/index.yaml.
  • Pas de théorie marketing/fiction dans les fiches. Les fiches portent des faits sur la personne (métier, ville, budget, habitude), pas nos opinions (comme « les 2 premières secondes sont importantes »). Sinon, le panel ne ferait que nous renvoyer nos propres croyances.
  • Diversité délibérée : sceptiques, sensibles au prix, peu technophiles, ruraux, conservateurs, personnes âgées à dominante Facebook, personnes hors cible. Leur « non » est une information de ciblage.
  • Évaluer seulement ce qui est montré. Les personnes voient les images clés, les captures d'écran, les visuels et les faits textes/sons que nous avons écrits. Ils n'ont pas regardé la vidéo, n'ont pas entendu le son ; chaque réponse repose sur ≥ 2 images ; ce qu'ils ne peuvent pas évaluer va dans le champ goremedigim. Le son est toujours « notre analyse », jamais « j'ai entendu ».
  • Test en aveugle : les fichiers context/onscreen/audio ne contiennent pas qui a fait, « notre version » ni la réponse attendue ; les étiquettes A/B sont neutres et l'ordre est équilibré.
  • Pas poli, calibré : l'instruction porte un vrai taux de base (calibration dans config.yaml ; les valeurs par défaut sont les taux d'engagement Click Analytic / Socialinsider et le taux de réponse aux e-mails froids Hunter, voir sources/EB_*.md). Si vous connaissez le vrai taux de votre compte, écrivez-le. Un panel où la majorité dit « J'enverrais un DM » est un drapeau rouge, pas un succès.
  • Contextes indépendants : un sous-agent par groupe ; dans un groupe, chaque personne est écrite à tour de rôle, sans utiliser les phrases de la personne précédente. Si aggregate.py émet un avertissement d'univocité, relance avec des groupes plus petits (3).
  • Le script compte les chiffres, le modèle écrit les mots. Le rédacteur de rapport ne peut pas inventer de chiffres, ni les recalculer.
  • Case d'honnêteté obligatoire dans chaque rapport : synthétique ≠ données de marché ; vérifier avec 3-5 vraies personnes (t'arrêterais-tu dans les 3 premières secondes ? qu'est-ce que ça raconte en une phrase ? qu'aurais-tu fait ensuite ?).
  • Les réponses sont en turc et dans la bouche de la personne ; les citations conservent le turc İ/ı.
  • Coût : ~6-8 images par groupe ; une exécution de 10 personnes ≈ 2 sous-agents en parallèle ; 30 personnes ≈ 6 sous-agents + 1 rédacteur de rapport. Pour les brouillons : contrôle rapide (10), pour la version finale : panel complet (Pro, 24-30).
  • Confidentialité : les dossiers d'exécution sont locaux ; ne télécharge pas le matériel client ailleurs. Avant de partager, nettoie les entrées contenant des noms de clients et des données personnelles.

Dossier de sortie

RUN/inputs/{context,onscreen,audio,caption}.txt
RUN/stimulus[_A|_B]/{stimulus.md,stimulus.json,sheet_*.jpg,frames/|shots/|post/}
RUN/plan.json  RUN/batches/batch_NN.md  RUN/responses/batch_NN.json
RUN/data/{panel_data.md,panel_data.json,all_answers.md,chart_*.png}
RUN/PANEL_REPORT.md            (Lite : rapport rapide ; Pro : rapport du rédacteur, rapport rapide dans data/quick_report.md)
RUN/aggregator_prompt.md       (Pro)

Skills associés