# Eval Debate

> 测试 use-self 替身会议的辩论质量。给定 persona + 3 个决策场景，运行完整三阶段辩论并按 5 个维度评分，输出质量报告。

- Skill: `yikuaibanzi/eval-debate` (Agent Skill)
- Install (CLI): `npx skillmds add yikuaibanzi/eval-debate`
- Raw SKILL.md: https://api.skillmd.com/api/skills/yikuaibanzi/eval-debate/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: YIKUAIBANZI (https://skillmd.com/u/yikuaibanzi)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/yikuaibanzi/eval-debate

---


# /eval-debate — 替身会议辩论质量评测

你的任务是对 use-self 替身会议的输出质量做一次系统性评测，**全程在当前对话中完成，不需要调用任何外部 API**。

---

## Step 0：加载测试资源

1. 读取测试用例文件：`evals/test_cases/debate_quality_cases.yaml`
2. 根据 `persona_name` 字段，读取对应 persona：
   `personas/self/{persona_name}/persona.json`
3. 提取 decision-card 关键内容：
   - L0 底线（bottom_line）
   - L2 语言风格（language_style + signature_phrases）
   - L3 决策参数（8 个维度的分值）
   - L4 价值观与盲区（blind_spots + emotional_triggers）

```
正在加载 {persona_name} 的 persona 和测试用例...
共 {N} 个决策场景待测试。
```

---

## Step 1：逐场景运行辩论

对每个测试用例，执行完整三阶段流程：

### Phase 1：并行独立分析（3 个变体）

基于 decision-card 中的 L3 参数，生成 3 个变体并各自独立分析：

**变体设置（固定，评测用）：**
- 🔵 **稳健的你**：risk_appetite -3，action_bias -2，loss_aversion +2
- 🟢 **果断的你**：risk_appetite +3，action_bias +3，information_need -2
- 🔴 **长线的你**：time_horizon +4，loss_aversion -2，action_bias +1

每个变体按 `use-self/prompts/phase1_independent.md` 的格式输出：
- 【我的判断】：明确表态，不能含糊
- 【为什么】：≤3 个具体理由
- 【我最担心的是】：具体情境
- 【我最期待的是】：具体情境
- 【我想问自己】：一个核心问题

**信息隔离**：每个变体只能看到自己的参数偏移，不知道其他变体说了什么。

### Phase 2：质询

将 Phase 1 的所有输出 + persona 的 L4 盲区交给质询视角，按 `use-self/prompts/phase2_challenge.md` 执行：
- 对每个变体找出最尖锐的质疑（隐含假设/幻觉/回避）
- 识别跨变体矛盾
- 用 L4 盲区做最后一问

### Phase 3：综合

按 `use-self/prompts/phase3_synthesis.md` 生成综合报告，使用用户的 L2 语言风格。

---

## Step 2：评分

每个场景跑完后，立刻按 5 个维度评分（每项 0-20 分）：

| 维度 | 评分标准 |
|------|----------|
| **变体区分度** | Phase 1 的 3 个变体立场是否有实质性差异？都说"两边各有道理"= 0 分；立场明确对立且理由具体 = 满分 |
| **质询深度** | Phase 2 是否指出了具体假设和盲区？"你没考虑到..." = 低分；"你说的 X 假设了 Y，但 Y 不成立，因为 Z" = 高分 |
| **参数一致性** | 各变体的发言是否与偏移后的参数一致？稳健变体的发言是否明显更保守？ |
| **综合覆盖度** | Phase 3 是否有代价清单？是否提出了具体的待搞清楚的问题？还是只是 Phase 1 的复述？ |
| **用户语言风格** | 所有输出语气是否符合 persona 的 L2？出现"综上所述"、"建议您"等顾问句式扣分 |

**参照测试用例的 expected_variant_stances 和 evaluation_criteria 给分。**

---

## Step 3：输出报告

所有场景跑完后，输出评测报告：

```
===================================
替身会议辩论质量评测报告 — {persona_name}
===================================

## 逐场景结果

### [d01] {场景标题}

**Phase 1 摘要：**
- 🔵 稳健的你：{判断一句话}
- 🟢 果断的你：{判断一句话}
- 🔴 长线的你：{判断一句话}

**Phase 2 质询摘要：**
{最有价值的一条质疑}

**Phase 3 综合摘要：**
{代价清单里最关键的一条}

**评分：{total}/100**
  ✅/⚠️ 变体区分度：{score}/20 — {说明}
  ✅/⚠️ 质询深度：{score}/20 — {说明}
  ✅/⚠️ 参数一致性：{score}/20 — {说明}
  ✅/⚠️ 综合覆盖度：{score}/20 — {说明}
  ✅/⚠️ 用户语言风格：{score}/20 — {说明}

### [d02] ...
### [d03] ...

---

## 汇总

平均分：{avg}/100

各维度平均：
  变体区分度    {avg}/20
  质询深度      {avg}/20
  参数一致性    {avg}/20
  综合覆盖度    {avg}/20
  用户语言风格  {avg}/20

## 主要问题
{失分最多的维度 + 具体表现}

## 建议
{针对失分维度的改进方向，指向哪个 prompt 文件或 persona 层级需要调整}
```

---

## Step 4：保存结果（可选）

```
要把这次结果存入 evals/results/ 吗？（y/n）
```

如果确认，写入 `evals/results/debate_{YYYYMMDD}.md`。

---

## 注意

- **全程不需要 API Key**：辩论和评分都是你自己执行的
- **评分要诚实**：变体之间如果其实没有真正的立场差异，变体区分度就应该给低分
- **辩论内容要认真**：不是为了评分才走形式，Phase 1/2/3 每个阶段都要认真执行
- **用例是基于阿然的**，如果用户指定了其他 persona，根据那个 persona 的 L3 基础值计算偏移后的参数

