- Início
- Plugins
- Fluxos e automação
- dsh-clarify-mode
dsh-clarify-mode
xiaofeng-bm/dsh-clarify-mode
Adds a clarify mode: the agent loses its file-writing tools and can only ask questions until the required dimensions are covered, then writes a spec with acceptance criteria before implementing.
Instalar
dsh plugin --profile web add github:xiaofeng-bm/dsh-clarify-modeREADME
dsh-clarify-mode
给 DeepSeek Harness 加一个需求澄清模式:动手之前,先问清楚。
/clarify 之后,Agent 暂时失去写文件的能力,只能提问。一次一问,每个问题都带一句「为什么问」和一个默认值。问到需求覆盖完整为止(硬顶 12 轮兜底),然后给你一张验收清单,你点了确认才解锁写文件,同时把 spec 落盘。
它解决什么
AI 写代码跑偏,多数时候不是模型不行,是需求没说清。而需求没说清,往往不是因为表达能力——是不知道有些东西存在:删了要不要能找回、除了你还有谁能用、失败了怎么办、手机上要不要用。
这些维度一旦事后才想起来,就是重写。这个模式把它们提前摆到你面前,让你做选择题,而不是做简答题。
它做三件事
1. 只问不写 —— 硬约束
模式开启后,write / edit / bash / subagent 从模型可见的工具表里被移除。不是"提示它别写",是它根本看不见这些工具。
2. 会解释 —— 不占轮次
中途遇到不懂的名词,直接问。Agent 用不超过 3 行的解释加一个你场景里的例子回答,然后把同一道题重新问一遍——不消耗提问次数。
如果同一道题解释两次你还不懂,它会换掉这道题("要不要做软删除"→"删错的文件你还想找回来吗"),而不是再解释第三遍。
3. 问清为止,不看轮次
开问之前,模型先从盲区清单里筛出 3–8 条「这次必须问清楚」的,标上 P0/P1。P0 全部覆盖 + 验收标准写得出 3 条能判真假的,才允许收工——满足就提前收,3 轮也行;不满足就继续问,到 12 轮硬顶强制收尾。
收工时给的不是代码,是一张卡:目标 / 明确不做的 / 验收标准。你点确认,spec 写入 .dsh/clarify/spec.md,工具恢复,开始实现。
安装
从插件市场:设置 → 插件市场,搜「澄清」。
手工安装:
dsh plugin --profile web add dsh-clarify-mode
使用
/clarify 进入模式,然后说你的需求
/clarify 我想做个记账小程序 进入模式并直接开始
/clarify off 退出,恢复写文件能力
模式开启期间,输入框左边会出现一个 澄清 · 已问 2 ✕ 的标签,点击即可退出。
不想等问完?每张问题卡上都有「够了,直接开始」,随时叫停。
演示
你:
/clarify 我想做个记账的小程序
Agent:好,进入澄清模式。我先问最影响结构的一件事。
我目前理解的是:一个手机上用的记账工具,你随手记一笔,能看这个月花了多少。
两种做法的差别在这:
- 只给自己用 —— 一台手机,数据存本地,不用登录,明天就能用
- 给别人也用 —— 要账号、要服务器,还得考虑别人看不到你的账
┌─ 澄清 1 ─────────────────────────────┐ │ 这个东西只有你自己用吗? │ │ 为什么问:这决定了要不要做账号系统。等有数据了再加, │ │ 所有接口都得重写。 │ │ │ │ ① 只有我自己用(推荐) 数据存本地,不用登录 │ │ ② 我和家人一起用 要账号,数据分开放 │ │ ③ 你来定,按常见做法 │ └────────────────────────────────────────────────┘
你:② 但等等,什么叫"数据分开放"?
Agent:就是每个人登录后只看到自己的账,看不到对方的。比如你和你老婆各记各的,月底可以合起来看。
回到刚才的问题:这个东西只有你自己用吗?
┌─ 澄清 1(同一个问题,不重复计数)──────────┐ │ ① 只有我自己用(推荐) │ │ ② 我和家人一起用 │ │ ③ 你来定,按常见做法 │ └────────────────────────────────────────────────┘
你:②
…(第 2–5 轮,依次问:删了能不能找回、要不要按类别统计、能不能导出、什么时候提醒)
Agent:问完了,我理解成这样——对吗?
┌─ 需求确认 ────────────────────────────────┐ │ 目标:手机网页版记账,你和家人各记各的,月底能合看 │ │ 不做的:不做预算提醒、不做多设备同步 │ │ 验收标准: │ │ 1. 能记一笔:金额、类别、日期、备注 │ │ 2. 能按月看总额和分类占比 │ │ 3. 删掉的账 30 天内能恢复 │ │ 4. 能导出 CSV(日期,金额,类别,备注) │ │ │ │ ① 确认,开始做(推荐) ② 要改,我说哪里 ③ 再问几个 │ └────────────────────────────────────────────────┘
你:①
Agent:
spec.md已写入.dsh/clarify/spec.md,澄清模式已退出,工具恢复。开始实现。
配置
写在 profile 的 cordis.patch.yml:
- id: clarify-mode
name: "dsh-clarify-mode"
config:
softRounds: 5
maxRounds: 12
| 键 | 默认 | 说明 |
|---|---|---|
softRounds | 5 | 软节奏线,超过后提示模型回看待办表,不截断 |
maxRounds | 12 | 硬顶,到了强制收尾并注明缺口 |
domain | auto | 领域预设:web-app / miniapp / bot / script / api / auto |
specPath | .dsh/clarify/spec.md | 确认后 spec 的落盘位置(相对工作目录) |
hiddenTools | write, edit, bash, subagent, subagent_fork, workflow | 模式内被摘掉的工具 |
customDimensions | [] | 追加到维度清单的条目 |
customRules | '' | 追加到协议末尾的自由规则,优先级最高 |
standbyHint | true | 模式外是否注入一行提示 |
自定义
这个插件的行为基本由两个 markdown 文件决定,改完下一轮就生效,不用重启:
| 文件 | 改它做什么 |
|---|---|
policy.md | 整套访谈协议:怎么问、问几轮、什么时候解释、需求卡长什么样 |
dimensions.md | 领域盲区清单。加一行就多一个维度,删一行就少问一类问题 |
包安装目录在 ~/.dsh/profiles/<profile>/node_modules/dsh-clarify-mode/。
已知限制
- 客户端标签只出现在 Web 界面;TUI / headless 下只有
/clarify命令本身 - 模式内
subagent也被禁用 —— 否则可以派个子 agent 绕过去写文件 - 需求卡的"确认"不计入轮次;选「再问几个问题」会让预算 +2
- 轮次靠提问的
id(q1…qN)计,重问同一题沿用同一 id,所以不会重复计数
License
MIT
Plugins relacionados
webnovel-writer
lingfengqaq/webnovel-writer
loopx (dsh-loopx-plugin)
loopx-project/loopx
ouroboros (dsh-plugin)
q00/ouroboros
loopx (dsh-loopx-plugin)
huangruiteng/loopx