关于 sdd-clarify
sdd-clarify 是面向软件开发请求的澄清技能,在编写规格或修改代码前识别会影响实现的歧义,并将答案纳入 OpenSpec 提案。它以精简提问衔接 SDD 流程。
主要功能
- 01先查代码和规格中的既定决策
- 02按实现影响筛选未决歧义
- 03批量提出带推荐项的问题
- 04将答案写入 OpenSpec 提案
- 05按变更规模路由至 SDD 流程
适用场景
- 01功能或缺陷请求目标含糊
- 02起草规格前确认范围与边界
- 03大型变更启动前厘清需求
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ alejandro-cedeno-10/ agentic-sdd-kit --skill sdd-clarify安装后在 Claude Code 中输入/sdd-clarify确认已加载。
详细介绍
SDD 澄清——问得准确,一次构建
最省的 token,就是不用花在返工上的 token。含糊的请求未经澄清就直接实现,必然会浪费迭代(实现 → 出错 → 重新实现 → 重新审查)。这项技能会提前消除歧义:通过简短、精准的澄清,将模糊的需求转化为范围明确的 SDD 变更,让实现/审查循环只运行一次。本技能以 GitHub Spec-Kit's /speckit.clarify 和 Matt Pocock 的 grill-me 技能为蓝本(通过访谈达成共识,逐一厘清决策树的各个分支,并为每个问题提供推荐答案),并进行了精简,以节省 token。
何时使用
处理任何功能或 bug 请求时,都应在提出规范或修改代码之前使用。这一步为 /opsx:propose(或工作流的规范阶段)提供真正明确的目标。
澄清流程
- 先以低成本收集上下文。 只阅读了解代码/规范中已经确定事项所需的内容——现有模块、相关规范、约定。不要询问用户仓库已有答案的问题。(快速读取/定位,不要深入钻研。)
- 扫描以下维度的歧义(采用 Spec-Kit 的维度),只保留真正尚未解决且会影响实现方案的问题:
- 功能范围与边界(包含哪些内容/明确排除哪些内容)
- 数据模型/实体/持久化
- 集成与依赖(涉及哪些服务/事件/契约)
- 边缘情况与失败行为(失败时开放?错误?空值/限制?)
- 非功能性要求(延迟预算、安全/授权、幂等性)
- 术语/领域(消除多义词歧义,例如 bill 和 invoice)
- 提问时考虑决策树,但控制 token 用量。 按决策树顺序提问:先问范围,因为它会决定后续问题。将相互独立的问题合并到一次
AskUserQuestion调用中(每题提供 2–4 个可选项,将推荐选项放在首位并标注出来,让用户点击即可回答,无须长篇作答),以减少往返。当某个答案引出确实全新的依赖分支(只有根据该答案才有意义的后续问题)时,再进行一轮简短提问,厘清每个分支,不要猜测。不要将相互依赖的问题合并提问;不要询问代码已经确定的内容或有明显默认值的内容(说明默认值后继续)。如果请求没有歧义,什么都不要问,直接进入第 5 步。整个流程最多约 2 轮——没完没了地追问本身也是浪费。 - 将答案纳入提案。 每个答案都要明确写入 OpenSpec 提案/规范(范围、决策、边缘情况)——以规范为准,而不是聊天记录。
- 转入 SDD 流程:
- 小型/单文件/bug 修复 →
/opsx:propose,然后/opsx:apply。 - 大型/跨领域/聊天界面相关 → 使用已澄清的目标启动 sdd-feature-flow 工作流(运行期间无法向用户提问,因此必须在此处明确需求)。
- 小型/单文件/bug 修复 →
- PR 阶段的审查不属于本技能的职责——应由 pre-pr-greptile 技能负责:变更实现完成并准备创建 PR 时,该技能会运行
greptile review、验证 diff 是否匹配、进行分流处理并把关 PR。澄清 → 规范 → 实现 → greptile review → PR。
防护规则
- 不要过度提问。 问得太多本身就是浪费(浪费用户时间和 token)。最多提出 3–4 个精准问题;需求明确时则一个也不问。将推荐选项放在首位,让用户可以一键选择默认项。
- 绝不编造事实来填补空缺——如果未知信息至关重要,就提问;如果未知信息影响不大,就选择合理的默认值,并写入规范。
- 在此处消除的歧义 MUST 写入 OpenSpec 产物,不得只留在聊天记录中。
- 遵守 SDD 门禁:修改生产源代码仍必须基于此流程产出的有效变更。
评论
支持 Markdown