dsh-clarify-mode:动手前先问清楚需求

前言

在 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。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜