---
name: deep-interview
description: 深度访谈式需求收集 (Deep Interview)
---

# 深度访谈式需求收集 (Deep Interview)

> 通过结构化访谈深入挖掘需求，确保规范文档的完整性和准确性

## 触发条件

- 用户请求"深度访谈"、"需求访谈"、"详细了解需求"
- 新功能规划阶段，需求不明确时
- 现有规范需要补充细节时

## 访谈流程

### 阶段 1: 上下文准备

1. 阅读相关的现有文档（SPEC.md、requirements.md、design.md 等）
2. 识别已知信息和信息缺口
3. 准备访谈问题框架

### 阶段 2: 多维度访谈

按以下维度进行深入提问，每个维度 2-3 个问题：

#### 2.1 业务价值维度
- 这个功能解决什么核心问题？
- 目标用户是谁？他们的痛点是什么？
- 成功的衡量标准是什么？

#### 2.2 技术实现维度
- 有哪些技术约束或依赖？
- 是否有现有系统需要集成？
- 性能要求是什么？

#### 2.3 用户体验维度
- 用户的典型使用场景是什么？
- 期望的交互方式是怎样的？
- 有没有参考的产品或设计？

#### 2.4 边界与约束维度
- 哪些是必须有的功能？哪些是可选的？
- 有什么明确不做的事情？
- 时间和资源约束是什么？

#### 2.5 风险与权衡维度
- 最担心的技术风险是什么？
- 如果必须简化，会牺牲什么？
- 有哪些已知的权衡取舍？

### 阶段 3: 信息整合

1. 总结访谈收集的关键信息
2. 识别仍需澄清的问题
3. 与用户确认理解是否正确

### 阶段 4: 规范输出

将访谈结果转化为 Kiro 规范文档：
- `requirements.md` - 用户故事和验收标准
- `design.md` - 技术设计和架构决策
- `tasks.md` - 实现任务清单

## 访谈技巧

### 问题设计原则

1. **开放式问题** - 避免是/否问题
   - ❌ "需要支持多语言吗？"
   - ✅ "在国际化方面有什么考虑？"

2. **场景化问题** - 通过具体场景挖掘需求
   - ❌ "错误处理怎么做？"
   - ✅ "当用户在弱网环境下操作时，你期望系统如何响应？"

3. **追问式问题** - 深入挖掘
   - "能详细说说这个场景吗？"
   - "为什么这个对你很重要？"
   - "有没有遇到过类似的问题？"

4. **权衡式问题** - 明确优先级
   - "如果只能选一个，你会选择 A 还是 B？"
   - "在速度和准确性之间，你更看重哪个？"

### 访谈节奏

- 每轮提问 1-2 个问题，避免信息过载
- 在用户回答后进行总结确认
- 根据回答动态调整后续问题
- 持续访谈直到覆盖所有维度

## 输出模板

访谈完成后，生成以下格式的规范：

```markdown
# 需求规范: [功能名称]

## 背景与目标
[从访谈中提取的业务背景和目标]

## 用户故事
[基于访谈整理的用户故事]

## 验收标准
[从访谈中明确的验收条件]

## 技术约束
[访谈中识别的技术限制]

## 设计决策
[访谈中讨论的权衡和决策]

## 待澄清事项
[仍需进一步确认的问题]
```

## 与 Kiro Spec 工作流集成

深度访谈可以作为 Kiro Spec 工作流的前置步骤：

```
深度访谈 → requirements.md → design.md → tasks.md → 实现
```

在创建新 Spec 时，如果需求不明确，先进行深度访谈再生成规范文档。

## 示例对话

**开始访谈:**
> 我注意到你想实现 [功能名称]。在我们开始详细规划之前，我想更深入地了解一些情况。
> 
> 首先，能告诉我这个功能主要是为了解决什么问题吗？是什么触发了这个需求？

**追问:**
> 你提到了 [用户回答的关键点]，这很有帮助。
> 
> 我想进一步了解：在实际使用中，用户通常会在什么情况下遇到这个问题？能描述一个具体的场景吗？

**权衡确认:**
> 我理解了你的需求。不过我注意到 [A] 和 [B] 之间可能存在一些权衡。
> 
> 如果必须在两者之间做选择，你会更倾向于哪个方向？

**总结确认:**
> 让我总结一下我们讨论的内容：
> 1. [关键点 1]
> 2. [关键点 2]
> 3. [关键点 3]
> 
> 这个理解正确吗？还有什么需要补充的吗？

