前言¶
在 DeepSeek Harness(DSH)里让 Agent 写代码,常见翻车点往往不是模型能力,而是需求没说全:边界、失败处理、谁能用、删了要不要找回——这些往往在实现中途才想起来,导致返工。口头嘱咐「先别写,多问几句」很难稳定生效,因为写文件、跑命令的工具仍在 Agent 可见列表里。
dsh-clarify-mode(维护者 xiaofeng-bm)是 DSH 生态里的工作流类插件:通过 /clarify 进入需求澄清模式,在恢复写文件能力之前,用多轮结构化问答把目标、不做项和验收标准收拢成一份 spec。下文介绍它的机制、安装方式与典型用法。DSH 社区插件目录见 SkillHub 条目,与 DeepSeek / 幻方无官方从属关系;插件以当前 DSH 进程权限运行,安装前请自行查看 GitHub 源码 与 MIT 许可证。
这是什么¶
插件在 Harness 里增加一种只问不写的会话阶段:用户描述想做之事,Agent 一次一问(带「为什么问」和默认选项),必要时解释术语且不重复计轮;P0 盲区覆盖且能写出可判真假的验收标准后出具需求确认卡,用户确认后将 spec 写入 .dsh/clarify/spec.md,再解锁 write / edit / bash 等工具。
当前 package 版本为 0.1.0,要求 dsh 版本 >=0.2.0-rc.2。
核心机制¶
只问不写(硬约束)¶
澄清模式开启后,write、edit、bash、subagent 等从模型可见工具表移除,不是靠提示词约束,而是 Agent 根本看不见这些工具。README 注明模式内 subagent 亦被禁用,避免通过子 Agent 绕开限制。
会解释、不占轮次¶
用户对题目中的名词有疑问时,Agent 用不超过 3 行说明并给一个场景例子,然后用同一题 id 重问,不消耗提问轮次。若同一题解释两次仍不明白,会换更易理解的问法,而不是第三次长篇解释。
问清为止,有软顶与硬顶¶
开问前,模型从盲区清单中筛 3–8 条本次必须问清的项并标 P0/P1。P0 全部覆盖且验收标准能写出至少 3 条可验证项即可提前收工;否则继续问,最多 12 轮硬顶强制收尾(可通过配置调整,见下文)。收工时给出目标、明确不做的、验收标准;用户确认后落盘 spec 并恢复工具。
默认可通过 cordis.patch.yml 配置 softRounds: 5、maxRounds: 12:softRounds 为软节奏线,超过后提示回看待办表但不截断;maxRounds 为硬顶。
安装与启用¶
插件市场:在 DSH 设置 → 插件市场 中搜索「澄清」。
手工安装(README 原文命令,web profile 示例):
dsh plugin --profile web add dsh-clarify-mode
安装目录位于 ~/.dsh/profiles/<profile>/node_modules/dsh-clarify-mode/。行为主要由包内的 policy.md、dimensions.md 决定,修改后下一轮生效,无需重启进程。
典型用法¶
进入模式并说明需求:
/clarify 进入模式,然后说你的需求
/clarify 我想做个记账小程序 进入模式并直接开始
/clarify off 退出,恢复写文件能力
Web 界面下,模式开启时输入框左侧会出现 澄清 · 已问 N ✕ 标签,点击可退出。每张问题卡提供「够了,直接开始」,可不等问完即叫停。
确认需求卡选「确认,开始做」后,README 示例输出为:spec.md 已写入 .dsh/clarify/spec.md,澄清模式退出,工具恢复,随后进入实现阶段。演示对话(记账小程序、是否多人使用、软删除、导出等)见 项目 README。
配置与自定义¶
在 profile 的 cordis.patch.yml 中可补丁配置,例如:
- id: clarify-mode
name: "dsh-clarify-mode"
config:
softRounds: 5
maxRounds: 12
README 配置表摘要:
| 键 | 默认 | 说明 |
|---|---|---|
softRounds |
5 |
软节奏线 |
maxRounds |
12 |
硬顶轮次 |
domain |
auto |
领域预设:web-app / miniapp / bot / script / api / auto |
specPath |
.dsh/clarify/spec.md |
确认后 spec 路径 |
hiddenTools |
write, edit, bash, subagent, ... |
模式内隐藏的工具列表 |
customDimensions |
[] |
追加访谈维度 |
customRules |
'' |
追加协议规则 |
standbyHint |
true |
模式外是否注入提示 |
policy.md 控制访谈协议;dimensions.md 为领域盲区清单,增删行即可改变提问范围。
适用场景与注意¶
适合:vibe coding 或 spec-driven 流程中,希望在改仓库前先固化验收标准;团队习惯把「不做什么」写清楚的场景。
注意:
- 澄清状态标签仅 Web 客户端注入;TUI / headless 下主要依赖
/clarify命令。 - 需求卡「确认」不计入轮次;选「再问几个问题」会使预算加 2。
- 轮次按问题
id(q1…qN)计数,同一题重问沿用同一 id,不重复计数。 - 插件与本地代码、Shell 同级权限,安装前请审阅源码与许可证。
结尾¶
dsh-clarify-mode 把「先澄清再实现」做成 Harness 内的硬约束工作流:问清 P0、出验收清单、确认后写 spec,再放开写文件。目录页:SkillHub — dsh-clarify-mode;源码与完整演示:github.com/xiaofeng-bm/dsh-clarify-mode。