圆桌会议
设计哲学
浮浅讨论的根源是没有约束的自由发言。 每个人物都倾向于表演自己最擅长的框架,而不是回应议题的真实困境。本技能的所有机制指向一个目标:让每句话都必须回答具体问题,而不是思想模型展示。
核心原则
- 真实调用:每位参会者通过子代理调用其对应的 perspective skill,子代理之间信息隔离
- 锁定发言:所有发言必须直接回应议题解构中的具体困境/变量/假设
- 对抗优先:结构化要求指出他人盲点;攻击必须带失败条件
- 用户主导:关键歧义点由用户决定方向,可随时插入
- 整合超越立场:最终方案必须超越任何单一参会者的原始立场
第零步:动态人物发现
每次启动时自动扫描,无需手动维护。
ls ~/.claude/skills/ | grep "\-perspective"
对每个返回的目录,读取其 SKILL.md 的 frontmatter(--- 之间的 YAML 头),提取:
name:人物名description:截取前100字
描述字段清洗规则
description 通常混杂多种信息,按优先级提取有用部分:
- 首选:找 "用途:""擅长:""切入角度:" 等关键词后的内容
- 次选:找第一句实质性描述(跳过 "当用户提到…""触发词:" 等元信息)
- 兜底:从 skill 名称推断(如
feynman-perspective→ "费曼视角")
清洗示例:
原始:
"费曼的思维框架。基于40+个一手来源的深度调研…当用户提到「用费曼的视角」…不要在用户只是说「帮我解释」时触发——只在涉及费曼式验证时激活。"提取:"费曼的思维框架。基于40+个一手来源的深度调研。擅长:命名不等于理解、货物崇拜检测、从第一原理验证。"
清洗后的信息构成本次 PERSONA_POOL。读取失败则跳过该人物。
注意:如果扫描后发现人物池为空(没有安装任何 perspective skill),提示用户先安装人物 skill。
第一步:收集议题
开场:
圆桌会议已就绪。当前可用参会者:[PERSONA_POOL 列表]
请告诉我你想讨论的主题或问题。越具体越好。
快速入口:直接指定「参会者+议题」可跳过人物推荐步骤,如「费曼+马斯克+张雪峰:35岁中台经理转AI岗的决策分析」
若议题过于模糊(缺少具体场景或约束),追问一次。用户第二次仍模糊,直接基于已有信息开始,在解构中标注不确定之处。
第二步:议题解构
保证深度的关键步骤。在推荐人物之前完成。
## 议题解构
**原始议题**:[用户原话]
**核心决策**:[转化为明确的 A vs B / 做 vs 不做 / X路径 vs Y路径]
**关键变量**(改变任一则结论可能反转):
1. [变量1]:当前状态 → [已知/未知/假设]
2. [变量2]:当前状态 → [已知/未知/假设]
3. [变量3]:当前状态 → [已知/未知/假设]
**隐含假设**(议题中默认成立但可能不成立的前提):
1. [假设1] → 若不成立会怎样?
2. [假设2] → 若不成立会怎样?
**终局想象**:对了→3年后最佳状态;错了→最坏状态
然后问用户确认,可修正任何一项。
第三步:推荐参会者
从 PERSONA_POOL 推荐 3位(默认,最多4位)。
根据议题解构,推荐:
[人物A] → 攻入「[隐含假设X]」,检验其是否成立
[人物B] → 拆解「[变量Y]」的成本结构,找替代路径
[人物C] → 用[具体领域]的现实数据检验「[假设Z]」
选项:A. 确认 B. 替换/增减 C. 完全自定义
内部选人规则(不输出):
- 至少一位直接攻击隐含假设
- 至少两位思维框架存在结构性冲突
- 每位都与议题关键变量有实质交集
- 3人最聚焦,超过4人会发散
第四步:开场陈述(并行子代理)
用户确认后,同时启动多个子代理。每个子代理:
- 调用 Skill 工具加载对应的 perspective skill
- 读取
~/.claude/skills/roundtable/PROMPTS.md中的「开场轮模板」 - 按模板要求生成发言
开场轮核心要求(详见 PROMPTS.md):
- 1-2句表述核心两难
- 明确表态核心决策(选A/B,或问题本身就错了)
- 直接引用至少一个关键变量或隐含假设
- 指出最危险的隐含假设
- 末尾输出
【摘要】[50字核心论点](用于后续轮次传递,减少上下文膨胀) - 字数:300-400字
收集后排序(不是随机顺序):
- 最先提出核心张力的放第一
- 立场与第一相反的放第二
- 提出新维度(重构问题)的放最后
第五步:讨论焦点 + 决策节点
主代理分析所有开场陈述,输出:
## 讨论焦点
**本轮最值得追究的问题**:[从歧异中提炼,若不回答则无法推进]
**视点对照**:
· [人物A]:[X](因为 [一句话理由])
· [人物B]:[Y](因为 [一句话理由])
矛盾核心:[一句话说清他们在什么问题上不一致]
选项:A. 深入此问题 B. 直接交锋 C. 我来追问 D. 跳到整合
第六步:对抗性交叉讨论(串行)
根据用户选择进入交叉轮。严格串行,每个发言者看到前面所有人的自产摘要(50字),不是完整发言。
每个子代理:
- 调用 Skill 工具加载对应的 perspective skill
- 读取
~/.claude/skills/roundtable/PROMPTS.md中的「交锋轮模板」 - 接收前面所有人的摘要 + 本轮聚焦方向
- 按模板生成发言
交锋轮核心要求(详见 PROMPTS.md):
- 挑战:指出前面某人论据最致命的弱点(具体说明为何导致结论失败)
- 替代:提出修正方案,解释在此场景下为何更好(用什么标准衡量)
- 自我暴露:承认自己方案最大的真实风险
- 末尾输出
【摘要】[50字核心论点] - 字数:250-350字
发言顺序规则:
- 先让立场最弱或最可能被攻的发言
- 论据最强者放最后(需回应所有人的攻击)
- 用户有插入时,注入每个后续发言者的上下文
第七步:第二决策节点(条件触发)
触发条件(需同时满足两个以上才触发,避免过度触发):
- 某人的核心论据被攻击,且该论据是整合方案的关键前提
- 出现了开场时未识别的新关键变量
- 存在两条清晰但互斥的行动路径
## 交锋结果
**被攻击的关键论据**:[人物X] 的 [观点] 被指出 [具体弱点]
**新浮现变量**:[如有]
**两条路径**:
A:[描述](支持者:[谁])
B:[描述](支持者:[谁])
选项:A. 路径A B. 路径B C. 继续辩论 D. 我来表态
若讨论已收敛(分歧已形成、各方立场已修正),跳过此步直接整合。
第八步:最终整合(主代理完成)
整合必须由主代理完成,不调用子代理。 每个 perspective 子代理会偏向自己的框架。
整合前自检(内部执行,不输出)
若 [人物A] 看到这个整合方案,会指出什么问题?
若 [人物B] 看到这个整合方案,会指出什么问题?
若 [人物C] 看到这个整合方案,会指出什么问题?
→ 若三个问题都能答出实质性批评 → 整合足够独立
→ 若某人没有批评 → 整合在偏向此人,需修正
整合输出格式
# 圆桌纪要
**议题**:[TOPIC] | **核心决策**:[CORE_DECISION]
**参会者**:[名单] | **日期**:[TODAY]
---
## 议题解构回顾
[标注哪些变量/假设被验证、哪些被推翻]
## 核心共识(经交锋后依然站得住的判断)
- [共识1](经 [人物X] 和 [人物Y] 交锋验证)
- [共识2]
## 核心分歧
| 分歧点 | 正方 | 理由 | 反方 | 理由 |
|--------|------|------|------|------|
| [分歧1] | [人物] | [一句] | [人物] | [一句] |
## 整合方案
> 不是任何单一参会者的原始立场。
**结论**:[明确行动方向,不是"取决于情况"]
**理由**:吸收了 [A] 关于 [X] 的洞察,纳入 [B] 对 [Y] 的修正,规避 [C] 指出的 [Z] 风险
**具体行动**:
1. 72小时内:[最小可执行行动]
2. 1-2周内:[关键里程碑]
3. 1-3个月:[阶段目标]
**检验标准**:
- 方向正确的信号:[X]
- 需要调整的信号:[Y]
**最大风险 + Plan B**:[最可能失败的原因及应对]
## 精华观点
| 参会者 | 最有价值的洞察(独特的、其他人说不出的) |
|--------|---------------------------------------|
| [人物A] | [一句话] |
| [人物B] | [一句话] |
---
*如需继续:「深入[分歧点]」「让[某人]展开[某观点]」*
用户干预指令
| 用户输入 | 响应动作 | 读取的模板 |
|---|---|---|
我认为… / 我的情况是… | 注入下一轮所有子代理上下文,要求直接回应 | 交锋轮模板(追加用户插入块) |
让[某人]回应[某观点] | 单独调用该参会者子代理 | 单人回应模板 |
加入[某人] | 以「迟到者」角度引入,给完整摘要 | 迟到者模板 |
同意[某人] | 追问具体同意哪点,让其他人针对此做最后一轮 | 交锋轮模板(追加用户插入块) |
跳到整合 | 直接进入第八步 | — |
快速圆桌:[议题] | 跳过第三步确认 | 标准流程 |
补充:… | 更新议题解构对应变量,通知所有参会者 | — |
质量自检(主代理内部执行,不输出)
- 每人发言是否回应了议题解构中的具体变量/假设?跑题者下一轮加纠偏指令
- 是否各说各话(互不引用互不回应)?若是,下一轮强制点名回应
- 讨论是否在推进(新信息/新角度/立场修正)而非轮转(新包装的重复)?
- 整合方案是否通过了「三方批评自检」?
极端情况处理
- 全员一致:指出最未被挑战的隐含假设,引入立场对立者
- 完全发散:强制收束到核心决策,要求每人一句话回答「做还是不做」
- 用户不选择:默认走 A(深入最值得追究的问题),不反复追问
- 子代理调用失败(某 perspective skill 加载失败):跳过该参会者,在输出中标注「[人物名] 因技术原因未能参与」,不影响其他参会者继续
- 子代理发言跑题(未回应具体变量/假设):下一轮提示词开头追加纠偏指令:
「注意:你的上一篇发言未直接引用议题解构中的任何变量或假设。本轮必须引用至少一个。」 - 子代理发言过短(不足100字):视为无效发言,要求重新生成,或在整合阶段降低该人物权重
错误处理与降级策略
人物池为空
未检测到任何 perspective skill。
请安装至少一个参会者:
- 复制本目录 `examples/` 中的示例 persona skill 到 `~/.claude/skills/`
- 或从 https://github.com/sthomenciao/roundtable-personas 获取更多人物
也可以直接说「快速圆桌:[议题]」——我会用内置模拟模式运行。
子代理超时
单个子代理超过 60 秒未返回:
- 终止该子代理
- 在纪要中标注「[人物名] 发言超时,未纳入本次讨论」
- 继续处理其他子代理的结果
用户干预指令识别失败
如果用户输入模糊(如只说「马斯克说得有道理」但没指定哪一点):
- 追问:「你认同马斯克哪一点?是 [摘要A] 还是 [摘要B]?」
- 仅当用户明确后,才触发后续流程
议题完全无法解构
如果经过两轮追问后,议题仍然无法转化为 "A vs B" 的形式:
- 输出当前已知的所有信息
- 以「探索性讨论」模式运行(不追求结论,追求澄清问题本身)
- 最终整合改为「问题澄清报告」而非「行动方案」