question-details
这个 skill 做什么
这个 skill 用于处理“需求表达模糊、约束不完整、验收标准缺失”的场景。目标不是立即写代码,而是先把需求澄清到可执行、可验证、可回滚,再进入实现。
核心能力:
- 先复述再执行:先准确复述理解,等待用户确认。
- 不清晰就追问:任何关键点不明确,先提问,不盲猜。
- 分步实现与分步校验:每一步落地后都检查是否引入问题。
- 全面检索相关上下文:快速查找相关代码/配置/文档并做 review。
- 证据化决策:遇到不清楚功能时,优先查官方文档(Context7/MCP/官方资料)再实现。
何时使用
当用户请求包含以下特征时触发:
- 目标不明确:如“优化一下”“改好看点”“这个不太对”。
- 范围不明确:不清楚改一个接口、一个模块还是全局。
- 成功标准不明确:没有明确“完成后应该是什么”。
- 约束缺失:未说明兼容性、性能、时限、风险边界。
- 外部依赖不清楚:涉及第三方 SDK/API 版本、参数语义或行为变更。
关键词(用于识别是否触发)
需求不清晰、需求模糊、先确认、先复述、反问、澄清、是否明确、MVP、边界、验收标准、范围、约束、兼容性、风险、回滚、官方文档、Context7、MCP、依据、不要猜
执行协议(必须按顺序)
第 1 步:复述理解(必须)
输出模板:
- 你的目标是:
... - 我理解的范围是:
... - 我将交付:
... - 验收标准将按:
...
如果用户未确认,不进入开发。
第 2 步:澄清问题(有疑点就必须提问)
只问会影响结果的问题,优先级如下:
- 业务目标(为什么改)
- 改动范围(改哪里,不改哪里)
- 成功标准(如何算完成)
- 约束条件(性能/兼容/时间/安全)
- 交付形式(只改代码、是否要测试/文档)
提问规则:
- 一次最多 1-3 个高价值问题,避免“问卷式轰炸”。
- 每个问题给默认选项,方便用户快速确认。
- 若用户未答全,继续追问到“可执行”为止。
第 3 步:相关内容全量定位与 review
在实现前,先定位并阅读:
- 直接相关代码(接口、服务、调用链、类型定义)
- 配置与环境(env、feature flag、路由注册、任务调度)
- 测试与文档(单测、集成测试、README、设计文档)
review 要点:
- 是否存在与需求冲突的旧逻辑。
- 是否有边界条件/空值/权限/并发风险。
- 是否有明显 bug 或不一致行为。
发现问题:若与当前需求直接相关,直接修复;若无关,记录并告知。
第 4 步:证据化澄清(不确定就查官方)
当出现“API 行为不确定、参数语义不确定、版本差异不确定”时:
- 使用 Context7/MCP 或官方文档查询。
- 记录依据(版本、章节、关键结论)。
- 基于依据实现,不凭记忆猜测。
第 5 步:分步实现 + 每步校验
实现规则:
- 拆成可验证的小步骤。
- 每步完成后执行对应检查(类型、lint、测试或最小回归)。
- 若出现问题,先修复再进行下一步。
第 6 步:结果复盘(必须)
最终汇报必须包含:
- 改了什么(文件 + 关键点)
- 为什么这样改(简短依据)
- 验证结果(执行命令、成功/失败、关键输出)
- 风险与后续建议(如有)
需求是否明确:判定清单
满足以下条件才算“需求明确”:
- 有明确目标(要解决什么问题)
- 有明确范围(改哪些,不改哪些)
- 有验收标准(完成判据)
- 有约束条件(性能/兼容/安全/时间)
- 有交付预期(代码、测试、文档、上线要求)
任一缺失即判定为“不明确”,必须继续澄清。
示例
示例 1:模糊需求
用户:
“帮我优化一下这个接口,感觉慢。”
代理应答:
- 复述:你希望提升接口响应速度,并且不改变现有业务语义。
- 提问:
- 目标接口路径是什么?
- 当前可接受的耗时上限是多少?
- 是否允许引入缓存(例如 30 秒)?
- 确认后再实现,并在每一步后验证性能与正确性。
示例 2:功能边界不清
用户:
“把登录相关都修一下。”
代理应答:
- 复述:你希望修复登录链路中的问题。
- 提问:
- 具体是密码登录、验证码登录,还是第三方 OAuth?
- 是报错、性能问题还是权限问题?
- 是否只修后端,前端暂不改?
- 在范围明确前不直接改代码。
示例 3:外部能力不确定
用户:
“这个 SDK 应该支持批量删除吧?你直接接上。”
代理应答:
- 先说明:该能力是否支持尚不明确。
- 查询官方文档(Context7/MCP/官方文档)确认版本与方法签名。
- 给出依据后再实现,避免错误接入。
反模式(禁止)
- 用户需求未确认就开始写代码。
- 关键约束不明时自行脑补。
- 不查依据直接使用不确定 API。
- 一次性大改,不做分步验证。
- 完成后不汇报验证结果与风险。
一句话原则
先澄清到“需求明确”,再执行到“可验证完成”。