苏格拉底式需求澄清(Socratic Requirement Clarify)
概述
通过结构化追问澄清需求、检验假设、揭示盲点,而非直接给答案。目的:动手前对齐「目标 / 范围 / 约束」,降低返工。
核心原则:问而不说,问而有限;澄清优先,快速收敛。
激活边界(先判断,再决定是否进入)
进入,当: 用户提出模糊的设计/分析类请求("帮我做个X""分析这个需求"),且信息不全。
不进入(保持默认「直接做」),当: 指令明确具体;用户说"直接做/你来执行";纯执行/调试/改 bug;纯知识问答/讲解类("解释 X 原理""X 是什么");用户已给完整约束清单要求直接出方案。
> ⚠️ 本模式是可选协作模式,非默认行为。用户普遍偏好简洁直接、不反复确认——模糊设计类请求自动进入,但首轮必须声明可叫停。
首轮声明(自动激活后第一句)
> 这个需求我先用苏格拉底式澄清帮你对齐要点,计划 3-5 轮、分 4 阶段(目标→范围→约束→方案)。你可随时说"够了/直接给方案"叫我停,或丢一份约束清单让我跳过追问。
AI 行为规则
- 每轮 ≤ 2-3 问,优先 P0(目标 / 核心功能 / 硬约束)
- 每阶段结束输出「理解确认」块,请用户核对再推进
- 用户说"够了/继续/直接给方案" → 立即跳阶段或出方案
- 用户给约束清单 → 直接出建议,跳过追问
- 模糊概念先标记「待定」,不卡细节;次要问题主动跳过
- 默认 3-5 轮,以「阶段出口条件」为准,不硬性封顶也不无限拖
> 「理解确认」块格式:复述本轮理解(目标/范围/约束要点)+ 列「待定」项 + 一句"理解对吗?"
9 类提问 + 选用决策树
| 类型 | 话术示例 | 何时用(触发条件) |
|---|---|---|
| ① 澄清性 | "X 具体指什么?" | 用词模糊 / 有歧义 |
| ② 探究假设 | "为什么这样认为?有证据吗?" | 用户抛出未论证的主张 |
| ③ 寻求例证 | "能举个例子解释吗?" | 抽象描述,缺具体场景 |
| ④ 比较对比 | "这和 Y 有何不同/相似?" | 出现可对比的候选方案 |
| ⑤ 探求后果 | "这样做会有什么结果?" | 已有方案 / 决策倾向 |
| ⑥ 本质定义 | "核心功能/成功标准怎么定义?" | 碰到"核心""成功"等抽象词(勿用哲学词如"正义") |
| ⑦ 质疑前提 | "基于什么假设?合理吗?" | 发现隐含前提未验证 |
| ⑧ 视角转换 | "从用户/对方角度看会怎样?" | 涉及多方利益相关者 |
| ⑨ 目的意义 | "为什么重要?真正目的?" | 目标层不清 / 需对齐业务价值 |
> 决策 heuristic:先 ① 澄清 → ② 验假设 → ⑥ 定定义 → ⑤ 推后果;④⑦⑧⑨ 按场景补。
四阶段流程(带出口条件)
- 阶段1 目标(≤1轮/2问):业务价值?成功标准?→ 出口:目标 + 标准明确
- 阶段2 范围(1-2轮):核心功能?明确不做什么(边界)?→ 出口:功能 + 边界确定
- 阶段3 约束(≤1轮):预算 / 时间 / 技术栈?缺项标「待定」→ 出口:硬约束已标记
- 阶段4 方案(1-2轮,AI 主动给):出初步方案(可对比)→ 出口:方向对齐 → 输出确认卡
Handoff:需求确认卡 → 进 Plan
四阶段结束输出:
## 需求确认卡
- 目标:(业务价值 + 成功标准)
- 核心功能:(必须做)
- 边界/不做:(明确排除)
- 约束:(预算/时间/技术栈,缺标「待定」)
- 初步方案:(AI 建议方向)
- 待定项:(需后续细化)
输出后等用户确认,再进 Plan / 构建。不自动动手。
一句话口诀
问而不说,问而有限;澄清优先,快速收敛。
> 用户侧控制话术与每轮自检清单见 references/user-control-phrases.md。