mcpField
A
ask-questions-if-underspecified

ask-questions-if-underspecified

github.com/moizibnyousafAgent 工作流1.2k377 次安装6 周前更新
代码仓库

关于 ask-questions-if-underspecified

面向编码 Agent 的需求澄清技能,用于在开始实施前识别关键缺失信息并提出少量问题。它强调明确目标、范围、约束和验收标准,避免基于猜测开展工作。

主要功能

  1. 01识别请求中的未明确事项
  2. 02优先提出必要的澄清问题
  3. 03提供选项和推荐默认值
  4. 04收到答复前暂停实施
  5. 05确认需求后复述工作目标

适用场景

  1. 01开始修改代码前确认范围
  2. 02澄清验收标准和边界情况
  3. 03确认运行环境与兼容性约束
  4. 04讨论数据迁移的风险与回滚

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/moizibnyousaf/ai-agent-skills --skill ask-questions-if-underspecified

安装后在 Claude Code 中输入/ask-questions-if-underspecified确认已加载。

详细介绍

信息不足时先提问

目标

提出避免错误工作的最少量澄清问题;在必须回答的问题得到答复前,不要开始实施(除非用户明确同意按已说明的假设继续)。

工作流程

1) 判断请求是否信息不足

如果在探索如何开展工作后,以下部分有任何一项或多项尚不明确,则将请求视为信息不足:

  • 明确目标(哪些内容应更改,哪些应保持不变)
  • 明确“完成”的标准(验收标准、示例、边界情况)
  • 明确范围(涉及和不涉及哪些文件、组件、用户)
  • 明确约束(兼容性、性能、风格、依赖项、时间)
  • 确认环境(语言/运行时版本、操作系统、构建/测试运行器)
  • 澄清安全性/可逆性(数据迁移、发布、回滚、风险)

如果存在多种合理解释,则假定请求信息不足。

2) 先询问必须明确的问题(数量尽量少)

首轮提出 1-5 个问题。优先选择能排除整类工作方向的问题。

让问题易于回答:

  • 便于快速浏览(简短、编号;避免大段文字)
  • 尽可能提供选项
  • 适当时建议合理的默认值(清楚标注为默认/推荐选项;在列表中将推荐选项加粗,或在代码块中列出选项时,在代码块正上方单独加粗标注“推荐”,并在代码块内标明默认选项)
  • 提供快速回复方式(例如,回复 defaults 即接受所有推荐/默认选项)
  • 适当时提供轻松的“不确定”选项(例如,“不确定——使用默认值”)
  • 如果能减少回答负担,则将“必须了解”和“可选了解”分开
  • 设计选项,便于用户简洁作答(例如,1b 2a 3c);用简单明了的语言复述所选选项以确认
3) 开始前暂停

在收到必须明确问题的答复前:

  • 不要运行命令、编辑文件,也不要制定依赖未知信息的详细计划
  • 仅当不会让工作方向先入为主时,才可进行明确标注的低风险探索(例如,查看代码库结构、读取相关配置文件)

如果用户明确要求不等答复直接继续:

  • 用简短编号列表说明你的假设
  • 请用户确认;只有在用户确认或更正后才继续
4) 确认理解后再继续

收到答复后,用 1-3 句话重述要求(包括关键约束和成功标准),然后开始工作。

问题模板

  • “开始前,我需要确认:(1)……;(2)……;(3)……。如果你对(2)没有要求,我会默认……。”
  • “你希望采用哪种方案?A) …… B) …… C) ……(选一项)”
  • “你认为满足什么条件才算‘完成’?例如:……”
  • “有哪些约束需要遵守(版本、性能、风格、依赖项)?如果没有,我会采用项目现有的默认设置。”
  • 使用带字母选项的编号问题,并明确说明回复格式
1) Scope?
a) Minimal change (default)
b) Refactor while touching the area
c) Not sure - use default
2) Compatibility target?
a) Current project defaults (default)
b) Also support older versions: <specify>
c) Not sure - use default

Reply with: defaults (or 1a 2a)

反面模式

  • 不要询问可以通过快速、低风险地查看资料解答的问题(例如配置、现有惯例、文档)。
  • 如果简洁的多选题或是/否问题能更快消除歧义,就不要提出开放式问题。

最初由 @thsottiaux 创建

评论

支持 Markdown