Panel TR(合成焦點團體)
**用途:**在真實受眾之前捕捉問題——不被理解的提案、無法閱讀的小字、前 3 秒無法吸引任何人停留的開場、會讓特定年齡層反感的事物。**它不是:**銷售預測或市場研究。數字是合成回答的統計,絕非「市場百分比」。
版本(EDITION 檔案):Lite = 10 張觀眾卡、單一選項、現成快速報告。
Pro = 30 位觀眾 + 24 位買家卡(10 個區段)、A/B 模式、區段表格與圖表、獨立報告撰寫者。Pro 專用步驟以下標示為 (Pro);Lite 版腳本會禮貌地拒絕它們。
檔案
SKILL.md 此文件
EDITION lite | pro
config.example.yaml 複製 -> config.yaml(路徑、瀏覽器、基準比率);不需要絕對路徑
requirements.txt PyYAML, Pillow, playwright(用於網站模式)
personas/viewers.yaml 觀眾卡(Lite 10 張,Pro 30 張)
personas/buyers.yaml 買家卡(僅 Pro,24 張)
sources/index.yaml + *.md 卡片引用的公開來源摘要(TÜİK、DataReportal、...)
prompts/persona_batch.md 群組 subagent 的指令(panel.py plan 會填入)
prompts/aggregator.md (Pro) 報告撰寫者的指令(panel.py report-prompt 會填入)
scripts/make_stimulus.py 影片/網站/貼文 -> 畫面、截圖、stimulus.md
scripts/panel.py doctor | validate | cite | init-run | plan [--dry-run] | report-prompt (Pro)
scripts/aggregate.py responses/*.json -> 表格、圖表、誠實檢查、快速報告
examples/demo-kafe-reel/ 使用虛構咖啡廳 reels 的端到端範例執行
以下 S = 此技能資料夾(通常為 ~/.claude/skills/panel-tr),PY = python3(建議使用
S/.venv/bin/python)。執行資料夾寫入 config.yaml 中的 runs_dir 下(預設為
~/panel-tr-runs)。
步驟
- 首次安裝 / 遇到問題時:
PY S/scripts/panel.py doctor(檢查依賴、ffmpeg、瀏覽器、版本)。 如果卡片變更:PY S/scripts/panel.py validate應顯示 0 個錯誤。PY S/scripts/panel.py cite V07會將 一張卡片與其引用的來源行並排顯示。 - 執行資料夾:
RUN=$(PY S/scripts/panel.py init-run --slug kafe-reels-v2)→RUN/inputs/範本。 - 撰寫輸入(在
RUN/inputs/中),使用中立土耳其語,根據你自己的檢查:context.txt— 人們在哪裡以及如何看到它(「出現在 Reels 動態中;分享帳號 @x; 有/無描述文字」)。僅在應用程式中會顯示時才寫入分享帳號。絕對不要寫誰做的、目標是什麼或偏好哪個版本。onscreen.txt(影片)— 螢幕上的每個文字,附帶時間範圍,如其在螢幕上顯示的那樣。audio.txt(影片)— 聽到的內容,作為事實:現場聲音或哪個片段、從哪一秒開始、是否有講話/效果, 以及是否與畫面相符。將以「我們的分析 — 你沒聽到」標題顯示給受訪者。caption.txt(貼文/reels)— 將發布的描述文字(如果有的話)。
- 刺激材料(每個選項一個;A/B =
stimulus_A、stimulus_B):
影片:0,0/0,5/…/2,5 秒畫面,之後每秒 + 最後畫面;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 # 或本地 .html 檔案 PY S/scripts/make_stimulus.py post a.jpg,b.jpg,c.jpg RUN/stimulus --caption RUN/inputs/caption.txtsheet_00_ilk3sn.jpg以及每個畫面下方標註時間的 2-3 頁;--transcript在有講話時(如果已安裝 faster-whisper / openai-whisper)添加轉寫。網站:Playwright Firefox(預設)或 WebKit — 桌面 1440×900 與行動 390×844, 首屏與全頁以兩螢幕為切片,以及可見文字。絕不開啟 Chrome / Chromium / Chrome for Testing。 自行開啟頁面並檢查onscreen.txt是否與畫面相符。 - 規劃面板:
規模:快速檢查 10 人(2×5);完整檢查(Pro)30 位觀眾(6×5)和/或 24 位買家(5×~5)。 觀眾選擇根據 Instagram 土耳其年齡分佈加權(config: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)viewer_age_weights,來源 NapoleonCat),每個年齡層至少一人;~20%「非目標」受眾(--out-share);--local İzmir優先選取該城市的人;--ids可手動選擇。每個面板至少保留一位懷疑論者/非目標受訪者。 A/B(Pro):選項顯示為「選項 1/2」;單數群組先看 A,雙數群組先看 B; 金鑰僅存在於plan.json中,不在任何提示中。 如果預設動作問題不合適,可使用--action更改(「看到這個 reels,你這週末會去嗎?」)。 - 運行群組 — 每個群組使用一個全新、獨立的 subagent,全部並行。 在 agent 工具中使用
general-purpose agent,不要用 fork(fork 會帶入我們的上下文和期望)。提示:
"Read
<RUN>/batches/batch_NN.mdand do exactly what it says. Write only the JSON file it names." 每個 subagent 只會看到自己的提示檔案和圖像。然後檢查每個RUN/responses/batch_NN.json檔案是否存在;失敗的群組使用相同提示重新運行一次。 - 統計:
PY S/scripts/aggregate.py RUN --title "…" [--real-people "…"]→RUN/data/panel_data.md、chart_aksiyon.png、chart_ilk3sn.png、all_answers.md與檢查:模式、依據(引用未顯示的畫面 = 受訪者編造了某物)、卡片回音(受訪者重複了自己的卡片)、單聲性(群組內與群組間的詞彙重疊)。Lite 版也會在此處寫入RUN/PANEL_REPORT.md快速報告。 Pro 版還會為每個維度輸出表格和區段圖表(chart_aksiyon_<boyut>.png)以及 A/B 偏好。 - (Pro) 報告:
PY S/scripts/panel.py report-prompt --run RUN --title "…" --real-people "…"→RUN/aggregator_prompt.md。提供給一個全新 subagent("Read … and do it")→RUN/PANEL_REPORT.md(匯總的異議、優先修正、區段評論)。將報告與all_answers.md比對閱讀(引文應真實、數字應未更改)。 - 告訴使用者(土耳其語):3-5 行附數字的結果、前 3 項修正、誠實框語句,以及 3-5 位 應為真實人物的人。面板不應凌駕於使用者或客戶的喜好之上。
規則
- 先有證據。 每張卡片特徵以
[ANAHTAR:Fnn](sources/中的事實行)或[varsayım]結尾。panel.py validate會檢查每個引用。目前約一半的特徵為[varsayım](個性與喜好無公開可測量數據)— 報告會輸出此比例。要添加你自己的研究,請在sources/下撰寫一個含有「Fnn ...」行的 .md 檔案,並將其金鑰添加到sources/index.yaml。 - 卡片中無虛構/行銷理論。 卡片包含關於人物的事實(工作、城市、預算、習慣),而非我們的觀點(例如「前 2 秒很重要」)。否則面板只會反映我們自己的信念。
- 刻意多樣性: 保留懷疑論者、價格敏感者、低科技使用者、鄉村居民、保守派、 以 Facebook 為主的年長者、非目標受訪者。他們的「不」是目標定位資訊。
- 只評估展示的內容。 受訪者看到畫面、截圖、圖片以及我們撰寫的文字/音訊事實。他們沒看影片、沒聽到音訊;每個回答基於 ≥ 2 個畫面;無法評估的內容
進入
goremedigim欄位。音訊始終是「我們的分析」,絕非「我聽到了」。 - 盲測: context/onscreen/audio 檔案中無「製作者」、「我們的版本」或預期答案;A/B 標籤 中立且順序平衡。
- 不禮貌,要校準: 提示包含真實基準比率(config.yaml
calibration;預設為 Click Analytic / Socialinsider 互動率與 Hunter 冷電子郵件回覆率,參見sources/EB_*.md)。 如果你知道你自己帳號的真實比率,請寫入。多數人說「我會 DM」的面板是紅旗,不是成功。 - 獨立上下文: 每群組一個 subagent;群組內每個人依序撰寫,不使用前一個人的句子。如果 aggregate.py 發出單聲性警告,使用較小群組(3)重新運行。
- 腳本統計數字,模型撰寫文字。 報告撰寫者不能編造或重新計算數字。
- 每個報告強制包含誠實框: 合成 ≠ 市場數據;與 3-5 位真實人物驗證(你會在頭 3 秒停下嗎?用一句話說它在講什麼?你接下來會做什麼?)。
- 回答為土耳其語且以人物自己的口吻;引文中保留土耳其語 İ/ı。
- 成本:每群組約 ~6-8 張圖像;10 人執行 ≈ 2 個並行 subagent;30 人執行 ≈ 6 個 subagent + 1 個報告撰寫者。 草稿用快速檢查(10),最終版本用完整面板(Pro, 24-30)。
- 隱私:執行資料夾為本地;不上傳客戶資料到其他地方。分享前清除包含客戶名稱和個人資料的輸入。
輸出資料夾
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:快速報告;Pro:報告撰寫者的報告,快速報告位於 data/quick_report.md)
RUN/aggregator_prompt.md (Pro)