Install
openclaw skills install tvs-deep-interview深度需求访谈 Skill。通过苏格拉底式单问题追问、拓扑确认、歧义评分和显式审批闸门,把模糊想法整理成可验证规格。适用于用户说深度访谈、先问我、帮我梳理、不要假设、避免做错方向,或需求复杂到直接实现容易返工的场景。必须优先使用当前 Agent 工具自己的提问、选择、确认能力。
openclaw skills install tvs-deep-interview深度需求访谈用于把模糊想法整理成清晰、可验证、可执行的规格。
核心原则:
AI 可以构建很多东西,真正困难的是弄清楚到底该构建什么。
本 Skill 采用“深度访谈 -> 规格结晶 -> 待审批 -> 显式批准后执行”的闸门流程。访谈阶段只澄清需求和生成规格,不能直接修改代码、提交、推送、部署或委派实现。
当出现以下情况时使用:
不适用场景:
如果用户说“别问了,直接做”,但需求仍然模糊,应停止访谈并输出“待审批规格草案/风险说明”,不能直接变更代码。
必须优先使用当前 Agent 环境提供的原生提问工具。不要为了统一格式而放弃工具能力,也不要伪装自己使用了不存在的工具。
适配顺序:
AskQuestion 收集单选、多选、确认类回答;开放文本问题可用普通聊天提问。AskUserQuestion、计划确认、审批按钮或原生交互工具,优先使用这些能力。结构化工具使用规则:
文本提问协议:
DEEP-INTERVIEW QUESTION
轮次:Round {n}
目标组件:{component}
本轮瞄准:{weakest_dimension}
为什么现在问这个:{one_sentence_reason}
当前歧义:{ambiguity_percent}%
问题:
{one_question}
回复格式:
{单选 / 多选 / 文本 / 确认 的明确说明}
rg、ReadFile、SemanticSearch 或 explore 子 Agent。启动时向用户说明:
开始深度需求访谈。我会一次只问一个问题,通过歧义评分判断需求是否足够清晰。
在歧义低于阈值并获得你明确批准前,我不会执行实现。
你的初始想法:{summary}
项目类型:绿地 / 棕地
当前歧义:100%
Round 0 在任何歧义评分前执行一次。目标是锁定用户需求的“形状”,避免后续访谈只围绕描述最多的部分钻深,而漏掉其他独立结果。
Round 0 | 拓扑确认 | 暂不评分
我把这个需求理解为 {N} 个顶层组件:
1. {component}: {one_sentence_description}
2. ...
这个拓扑对吗?需要新增、删除、合并、拆分或暂缓哪个组件吗?
重复执行,直到歧义低于阈值,或用户选择提前退出。
构造问题时使用:
提问策略:
问题类型参考:
| 维度 | 问法 | 示例 |
|---|---|---|
| 目标清晰度 | 到底要发生什么 | “当你说管理任务时,用户第一步具体做什么?” |
| 约束清晰度 | 边界是什么 | “这必须离线可用,还是默认联网?” |
| 成功标准 | 如何证明完成 | “如果我给你看成品,什么结果会让你说这就是我要的?” |
| 上下文清晰度 | 如何接入现有系统 | “我看到现有鉴权在 src/auth/,这次要扩展它还是刻意另建一套?” |
| 本体稳定性 | 核心概念是什么 | “你前面提到工作流、收件箱、计划器,哪个才是核心实体?” |
使用当前环境自己的提问工具。呈现内容必须包含:
Round {n} | 组件:{target_component} | 瞄准:{weakest_dimension} | 歧义:{ambiguity}%
为什么问这个:{reason}
{one_question}
用户回答后,对每个进行中组件分别评分,再汇总整体歧义。
维度分数:0.0 到 1.0。
计算公式:
绿地歧义 = 1 - (目标 * 0.40 + 约束 * 0.30 + 成功标准 * 0.30)
棕地歧义 = 1 - (目标 * 0.35 + 约束 * 0.25 + 成功标准 * 0.25 + 上下文 * 0.15)
评分输出必须包含:
每轮提取关键实体:
从第二轮开始比较上一轮:
如果核心实体持续变化,应优先进入本体式提问,不要继续追功能细节。
每轮回答后向用户报告:
Round {n} 完成
清晰度:
- 目标:{score},缺口:{gap}
- 约束:{score},缺口:{gap}
- 成功标准:{score},缺口:{gap}
- 上下文:{score},缺口:{gap}
当前歧义:{ambiguity}%
拓扑:当前瞄准 {component};进行中 {count};已暂缓 {count}
本体:{entity_count} 个实体;稳定率 {stability_ratio}
下一轮目标:{component} / {dimension},原因:{reason}
挑战模式是提问视角切换,不是另起实现 Agent。
每个模式只使用一次,使用后回到正常苏格拉底式提问。
当歧义低于阈值,或用户选择提前退出/达到硬上限时,生成规格。
不要直接实现。规格状态必须是“待审批”。
规格结构:
# 深度访谈规格:{title}
## 元信息
- 轮次:{round_count}
- 项目类型:绿地 / 棕地
- 最终歧义:{ambiguity}%
- 阈值:{threshold}%
- 状态:通过阈值 / 提前退出 / 达到轮次上限
## 清晰度拆解
| 维度 | 分数 | 权重 | 加权 |
|---|---:|---:|---:|
| 目标 | {score} | {weight} | {weighted} |
| 约束 | {score} | {weight} | {weighted} |
| 成功标准 | {score} | {weight} | {weighted} |
| 上下文 | {score} | {weight} | {weighted} |
## 拓扑
| 组件 | 状态 | 描述 | 覆盖/暂缓说明 |
|---|---|---|---|
| {component} | 进行中/已暂缓 | {description} | {coverage_or_deferral} |
## 目标
{覆盖所有进行中组件的清晰目标陈述}
## 约束
- {constraint}
## 非目标
- {non_goal}
## 验收标准
- [ ] {testable_criterion}
## 已暴露并解决的假设
| 假设 | 如何追问 | 结论 |
|---|---|---|
| {assumption} | {challenge} | {resolution} |
## 技术/项目上下文
{棕地项目写代码证据;绿地项目写技术选择和约束}
## 关键实体
| 实体 | 类型 | 字段 | 关系 |
|---|---|---|---|
| {entity} | {type} | {fields} | {relationships} |
## 本体收敛
说明实体如何在各轮中稳定下来。
## 待确认问题
- {open_question}
## 访谈记录
折叠或摘要列出每轮 Q/A、歧义和关键决定。
如果当前工具允许写文件,并且项目允许保存规划文档,可以写入合适的规格路径;否则直接在对话中输出规格。不要把规格写到随机业务目录。
规格完成后,必须询问用户下一步。优先使用当前工具的原生确认/选择能力。
可选项:
在用户明确选择执行前,禁止:
如果用户批准执行,把规格作为上下文交给当前工具合适的执行流程。不要由深度访谈 Skill 自己直接实现。
瞄准最弱维度:
分数:目标 0.9,约束 0.4,成功标准 0.7
下一问瞄准约束,因为它是最低分:
“你说要支持移动端,这指响应式 Web、PWA,还是原生 App?是否有必须支持的设备或系统版本?”
先读代码再问:
我看到现有鉴权集中在 `src/auth/`,使用 JWT 中间件。这个新能力应该扩展现有鉴权路径,还是需要刻意独立出来?
反方模式:
你提到必须支撑 1 万并发。假设第一版只需要 100 并发,架构会完全不同吗?这个数字是测量结果还是预设假设?
批量提问:
目标用户是谁?技术栈是什么?鉴权怎么做?部署在哪?
为什么坏:四个问题一起问,会得到浅答案,无法准确评分。
问代码已经能回答的问题:
你的项目用什么数据库?
为什么坏:如果当前工具能读代码,应先自己查证。
高歧义直接执行:
歧义还有 45%,但已经问了 5 轮,开始写代码吧。
为什么坏:歧义闸门就是为了防止这种返工。