真相血清 是做什么的?
与其猜测买家会提出哪些顾虑,不如直接询问一百个模拟买家——每个都是一个扮演特定买家角色的子代理,这些角色源自你的目标客户。你是主持人。你永远不为买家做回答。
用途:发现潜在顾虑、细分市场、措辞优化以及需要向真实用户提出的问题。 非用途:需求预测。语言模型倾向于“赞同”,因此高购买率只是最佳情况,而非预测;它可以推翻一个计划,但绝不可能验证一个计划。
请先阅读 ${CLAUDE_SKILL_DIR}/../receipts/rules.md。
用户在 /truth-serum 后输入的内容:$ARGUMENTS
工具
所有记录工作通过本技能文件夹中的 panel.py 完成:
python3 "${CLAUDE_SKILL_DIR}/panel.py" <command>
下文中的 PANEL 即指上述命令。如果路径未展开,请使用 Claude Code 为此技能打印的基础目录。状态数据保存在 founder/panel/ 中。
步骤1:目标客户
写入 founder/customer.json(形状:参考本文件夹中的 customer.example.json):
business和target:用一句具体的话描述客户是谁。segments:2 到 4 个细分群体,每个群体包含share和income范围 [low, high]。behaviours:4 到 8 种购买行为,每种行为包含share和how描述(如:每日常客、寻找优惠、阅读每一条评论、忠实于某一竞争对手……)。objections:这类买家真正会有的 4 到 8 个顾虑。habits(可选):使买家形象更具体的日常情境描述。
将其建立在真实信息之上。使用用户对其客户的了解;如果 /ground-truth 已运行,则参考 founder/competitors.md 中的投诉内容。如果用户拥有真实的客户数据(founder/evidence/calls/ 中的通话记录、评价、调查回复),优先使用这些数据而非你的猜测,并明确指出哪些部分是猜测。
如果目标客户是少数企业用户(几百家公司,而非大众市场),请明确说明:五个真实电话调研比这个模拟座谈会更有价值,并优先提供 /receipts 及其通话指南。仅当需要打磨问题时才运行模拟。用几句话向用户展示客户画像,并在进行交易前允许用户修正——错误的客户画像会使整个模拟失效。
步骤2:推销方案
写入 founder/pitch.md:买家实际会看到的内容。产品、价格、获取渠道、限时优惠。三到六行简洁描述,无夸张表述,所有内容必须是企业能够实现的。每个买家看到的都是完全相同的内容。
步骤3:分配并运行
PANEL init --customer founder/customer.json --pitch founder/pitch.md --n 100
PANEL prompts
init 负责分配角色卡片(相同种子,相同卡片;种子会被记录)。prompts 为每个买家撰写简报,并按每批10人分组列出。对于每一批,通过Agent工具(在旧版Claude Code中称为Task)发送一条消息,为批次中的每个买家调用一次:
subagent_type:general-purposedescription:panel <id>prompt:Read <brief path> and follow it exactly. It is your whole brief.
等待整批完成后再进行下一批。Claude Code 默认每次运行约10个工具调用,因此100个买家需要10个批次。最后一批完成后:
PANEL check # 列出缺失或异常的回答
PANEL prompts # 仅重写失败买家的简报;再次运行它们
PANEL tally
如果某个买家在其回复中直接打印了JSON而不是写入文件(这种情况可能发生),请使用 PANEL save <id> 并从stdin传入回复内容;save 会拒绝任何格式不正确的答案。连续失败两次的买家将被排除并计入结果中。你绝不可亲自为买家撰写答案。
在运行100个买家之前,告知用户这是100次子代理调用,并建议使用 --quick(20个买家)进行初步查看。子代理会将各自的文件写入 founder/panel/answers/;在默认权限模式下,每个文件需要单独批准,因此建议在运行过程中使用接受编辑模式(Shift+Tab)。
步骤4:向用户汇报结果
PANEL tally 会生成 founder/panel/results.md 和 results.json。向用户呈现以下内容:
- 残酷真相:买家放弃的最强原因,用一句话概括;同时提醒购买率是模拟结果,只是一个上限。
- 标题:“40 购买 · 60 放弃(模拟)”以及购买率。
- 谁买谁不买:差异最大的细分市场和购买行为行。
- 为什么放弃:前三名原因,每个原因附带一条买家原话。
- 能改变拒绝的因素:最常被提到的答案。
- 一句话建议:在花钱之前需要改变什么,以及哪个技能可以实现(定价、优惠、营销)。
- 走向真实用户:将前三名顾虑转化为真实通话中要提出的问题,风格参照
${CLAUDE_SKILL_DIR}/../receipts/conversations.md(关注对方的过去,而非你的想法)。这才是模拟座谈会的真正价值所在。
然后将结果记录为 SIMULATED:
python3 "${CLAUDE_SKILL_DIR}/../receipts/ledger.py" add --kind demand --status SIMULATED --use PRIVATE --by truth-serum --claim "模拟座谈会购买率(种子 <S>)" --number "<购买数> 个 / <回答数> 个"
坦诚的局限,只说一次
这些都是模拟买家。它们擅长发现你未曾想到的顾虑、细分市场和措辞,但在预测真实转化率方面能力有限:语言模型倾向于“赞同”,因此请将购买率视为上限。在做出任何重大决策之前,务必通过真实用户进行验证(等待列表、预售、试点项目、带有定价的落地页)。绝不要将模拟座谈会称为“验证”、“市场调研”或“真实客户”,也不要在推销、广告、产品演示或资助申请中将模拟买家当作真实客户引用。
每位买家收到的简报
panel.py 将卡片填入固定模板(参见脚本中的 BRIEF):买家信息(姓名、年龄、细分市场、收入、购买行为、习惯、脑海中浮现的顾虑)、逐字呈现的推销方案、要求其不认同且不捏造事实的指令,以及要写入的确切JSON格式:是否购买、首月购买次数、拒绝代码、用买家自己的话表述的理由、主要顾虑、什么能改变其想法、以及四个价格敏感度回答(太便宜、划算、变贵、太贵)。绝对不单独编辑任何一个买家的简报。
输出
founder/customer.json、founder/pitch.md、founder/panel/(卡片、简报、回答、结果)。
下一步:/litmus 读取价格敏感度回答,/dealbreaker 和 /signal 读取顾虑信息。