---
name: roundtable
description: >
  圆桌讨论——多 Agent 对抗性思考系统。
  输入议题，调度多个具有冲突认知立场的 Agent 进行多轮对抗讨论，
  输出共识、分歧和可执行行动指南。
  支持内置领域专家库、god-skills 人物蒸馏与持久化、场景模板自动匹配。
triggers:
  - "圆桌讨论"
  - "帮我做个决策"
  - "从多个角度分析"
  - "多方评审"
  - "有什么风险"
  - "和 XX、XX 讨论"
commands:
  - name: roundtable
    description: "启动圆桌讨论"
    usage: "/roundtable <议题> [--mode=快速|标准|深度] [--roles=角色1,角色2,...] [--no-interrupt]"
version: 0.1.0
---

# 圆桌讨论（Roundtable）

通过强制多角度对抗性思考，打破单一视角的认知盲区，提升复杂决策的质量。

**核心原则：圆桌的价值不在"圆桌"这个形式，而在"对抗"这个机制。**

---

## 〇、斜杠命令：`/roundtable`

当本 Skill 被安装后，用户可直接输入斜杠命令启动圆桌讨论：

```
/roundtable 要不要辞职去创业
/roundtable 我们该不该用微服务重构 --mode=深度
/roundtable 评估这个AI产品方案 --roles=devil-advocate,ai-product-manager,llm-architect --no-interrupt
```

### 命令格式

```
/roundtable <议题> [--mode=快速|标准|深度] [--roles=角色名列表] [--no-interrupt]
```

| 参数 | 说明 | 默认值 |
|------|------|--------|
| `<议题>` | 要讨论的决策或问题 | 必填 |
| `--mode` | 讨论模式 | 标准 |
| `--roles` | 显式指定参与角色（逗号分隔） | 系统根据议题自动推荐 |
| `--no-interrupt` | 跳过轮次 1 后的检查点，仅保留异常介入与最终报告确认 | 否 |

### 角色名约定

- L1 角色：`devil-advocate`, `optimist`, `data-evidence`, `user-advocate`, `systems-thinker`, `resource-constraint`
- L2 专家：`ai-product-manager`, `llm-architect`, `rag-specialist`, `growth-pm` 等（完整列表见 `references/experts/`）
- L3 蒸馏人物：`elon-musk`, `warren-buffett` 等（需先存在于 `characters/` 或通过 god-skills 蒸馏）

### 命令触发后的流程

1. 解析命令参数
2. 按 `tools/parse-intent.md` 解析议题与角色
3. 进入节点 A：启动确认（用户可调整后再启动）
4. 按 `tools/orchestrate-agents.md` 执行多 Agent 讨论

---

## 一、前置检查：是否值得启动圆桌

在启动前判断议题是否适合：

**不适合（直接分析，不启动圆桌）：**
- 简单事实查询、定义解释
- 单一代码修复、明确 bug
- 紧急时间敏感决策
- 已有明确结论的执行任务

**适合（启动圆桌）：**
- 复杂多维决策（技术选型、产品方向、架构取舍）
- 方案对比与评估
- 风险识别与预判
- 战略/规划类探索

---

## 二、三层角色体系

| 层级 | 作用 | 来源 | 数量 |
|------|------|------|------|
| L1 通用认知立场 | 保证对抗性和多视角 | `references/roles/` | 每场必选 2-3 个 |
| L2 领域专家 | 保证专业深度 | `references/experts/` | 按议题匹配 2-4 个 |
| L3 蒸馏人物 | 个性化、特定真实人物 | `characters/`（god-skills 蒸馏） | 用户指定，0-N 个 |

**高质量圆桌 = 2 个 L1（保对抗）+ 3 个 L2（保深度）**

L1 角色清单见 `references/roles/`，每个角色包含：认知框架、知识域、决策偏好、对抗规则、表达风格。

---

## 三、执行流程

### 步骤 1：意图识别
按 `tools/parse-intent.md` 执行：
- 提取用户显式指定的角色
- 领域识别 → 匹配场景模板（`references/templates/`）
- 加载 L1 必选角色 + L2 推荐专家（含条件触发）
- 识别蒸馏人物请求 → 查 `characters/` 或调用 god-skills
- 确定讨论模式（快速/标准/深度）

### 步骤 2：推荐确认
向用户展示推荐的角色组合，说明每个角色的立场和作用。
**系统推荐，用户确认。** 用户可以替换、添加、移除角色。

### 步骤 3：多 Agent 编排
按 `tools/orchestrate-agents.md` 和场景模板指定的协议执行：

- **轮次 1 · 独立陈述**：各 Agent 只看议题，互不可见（防锚定）。
  输出格式：核心论点（1 句）+ 论据（2-3 条）+ 置信度（高/中/低）
- **轮次 2 · 交叉质询**：各 Agent 看到所有人的轮次 1 发言。
  每个角色必须挑战至少一个其他角色的核心论点，指出具体漏洞。
  **禁止"同意并补充"式的表演性和谐。**
- **轮次 3 · 立场修正**：回应质询，修正立场（给理由）或坚持立场（给反驳）。

### 步骤 4：输出整合
按 `tools/synthesize-output.md` 生成结构化结果：
1. **共识点**：所有角色同意的结论（高置信度）
2. **分歧点**：标注各方立场 + 理由 + 置信度
3. **行动指南**：具体、可执行、有优先级排序
4. **风险提示**：魔鬼代言人未解决的反对意见

### 步骤 5：归档
讨论记录保存到 `memory/YYYY-MM-DD-{议题简述}.md`，供后续检索复用。

---

## 四、讨论模式

| 模式 | 角色数 | 轮次 | 适用场景 | 触发词 |
|------|--------|------|----------|--------|
| 快速 | 3 | 1 轮 | 简单决策、初步探索 | "简单讨论""快速看看" |
| 标准 | 4-5 | 3 轮 | 中等复杂度决策 | 默认模式 |
| 深度 | 5-7 | 3 轮 + 检索 | 重大决策、战略规划 | "深入分析""战略级" |

---

## 五、人物蒸馏与导入

将真实人物或特定专家类型转化为可参与讨论的标准角色，持久化到 `characters/`。

### 两个合规来源

1. **god-skills 蒸馏（硬前置）**：必须已安装 god-skills，未安装时拒绝执行蒸馏（不提供降级替代），建议用户改用内置 L1/L2 角色完成本次讨论。
2. **外部导入**：导入现成的角色文件，经格式与纯净性校验后登记入 `characters/`，元信息标注 `source: external-import`。

详细流程见 `tools/distill-character.md`。

### 人物纯净性原则

**角色文件只包含"人格"信息（认知框架/知识域/决策偏好/对抗规则/表达风格），禁止写入任何具体任务/议题信息。**

具体任务信息在运行时通过装饰器注入（见下文），永不回写角色文件。
违反纯净性的人物文件会被污染——下次换个议题就串台，必须拒绝或修复。

### 任务装饰器

每场讨论为每个角色动态生成任务装饰器，包含：
- 议题背景（本场议题描述与已知事实）
- 用户上下文（用户提供的个人信息与约束）
- 领域适配（将该角色通用框架映射到本议题领域的引子）
- 本场约束（轮次规则、输出格式、信息隔离状态）

```
角色实例 = 角色文件（人格） + 任务装饰器（任务）
```

装饰器内容只存在于当场 prompt 与讨论归档中，**永不回写角色文件**。
同一人物可跨议题复用，互不污染。详见 `tools/task-decorator.md`。

---

## 六、对抗性保障机制

以下机制防止讨论退化为"同一观点换几种语气"：

1. **角色定义基于认知立场而非身份标签**——不是"你是谁"，而是"你必须怎么想"
2. **冲突目标设计**——每对角色存在天然立场对立（乐观者 vs 魔鬼代言人）
3. **独立首轮**——互不可见，避免锚定效应
4. **强制质询**——每个角色必须挑战至少一个其他角色，不得只表达互补观点
5. **置信度标注**——所有论点必须标注置信度，区分事实与判断
6. **否决权**——特定角色（如魔鬼代言人）在条件下可一票否决，但必须附具体失败场景
