---
name: omd-deep-interview
description: "深度访谈：写代码前用苏格拉底式追问澄清需求——用 ask_user_question 在加权维度上收敛模糊想法。需求模糊或有歧义时使用；触发词：deep-interview / 深度访谈 / 先澄清需求 / 需求访谈。"
---

# oh-my-dsh · Deep Interview 需求澄清

在写任何代码之前，用苏格拉底式追问把模糊想法收敛成可执行的规格。对应 OMC 的 Deep Interview 模式。

## 何时用

- 需求模糊："我想做个任务管理应用"。
- 用户对设计摇摆、想被引导着想清楚。
- 用户说"deep-interview""深度访谈""先澄清""访谈"。
- 不要在有明确规格的任务上做访谈——那是浪费时间。

## 澄清维度（加权）

| 维度 | 要问清的问题 | 权重 |
|------|------------|------|
| 目标 | 最终要解决谁的什么问题？成功长什么样？ | 高 |
| 范围 | 包含什么、**明确不包含**什么（non-goals）？ | 高 |
| 约束 | 技术栈、性能、安全、合规、时间/成本硬约束？ | 高 |
| 验收 | 怎么判断"做完了"？可度量的标准是什么？ | 高 |
| 优先级 | 若只能先做一件，先做什么？哪些可砍？ | 中 |
| 数据 | 数据从哪来？格式、量级、敏感度？ | 中 |
| 风险 | 最可能翻车的地方？边界和失败模式？ | 低 |

## 提问纪律（用 ask_user_question）

- 每轮最多 2–4 个问题，每个问题给 2–4 个候选选项（可多选），并说明每个选项的取舍。
- 问题必须**收敛**：问完一轮，维度就从"未知"变"已知"，别原地打转。
- 只问**你无法通过检查代码库得到**的用户决策；能在仓库里查出来的事实不要拿去问。
- 问题要具体，不要"你想要什么？"这种空泛问法——给候选方向。
- 每个问题带一个稳定 `id`，答案会原样回传。

```js
ask_user_question({ questions: [
  { id: 'scope', header: '范围', question: '第一版要覆盖哪些？',
    options: [
      { label: 'MVP：仅核心闭环', description: '最快验证价值，其余后续迭代' },
      { label: '含协作与权限', description: '复杂度明显上升，工期翻倍' }
    ] },
  { id: 'acceptance', header: '验收', question: '怎么算"做完"？',
    options: [
      { label: '可演示的端到端闭环', description: 'happy path 全通即可' },
      { label: '测试覆盖 + CI 全绿', description: '质量门槛更高' }
    ] }
] })
```

## 流程

1. 先扫一眼仓库/现状（`glob`/`read`/`grep`），把"能查出来的事实"和"必须问用户的决策"分开。
2. 按权重从高到低，每轮问 2–4 个问题。
3. 每轮结束，把已确定的点回写成一份"需求快照"（简短），让用户确认没跑偏。
4. 所有高权重维度都清晰后，输出最终规格：目标 / 范围 / 非目标 / 约束 / 验收标准 / 优先级 / 数据 / 风险。
5. **拿到规格才开始动手**——之前的任何对话都只是澄清，不是开工许可。

## 收尾

最终规格用 `dsh-ui` 的 `keyvalue`/`table` 呈现（见 `omd-hud`），并明确说"以下规格确认后即开始实现"。

## 反模式

- 别一次甩 10 个问题。
- 别问能靠读仓库回答的问题。
- 别把用户"嗯/可以"当成完整需求确认——关键维度没问清就继续问。
