Saltar al contenido principal
X

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-mode

README

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
键默认说明
softRounds5软节奏线,超过后提示模型回看待办表,不截断
maxRounds12硬顶,到了强制收尾并注明缺口
domainauto领域预设:web-app / miniapp / bot / script / api / auto
specPath.dsh/clarify/spec.md确认后 spec 的落盘位置(相对工作目录)
hiddenToolswrite, edit, bash, subagent, subagent_fork, workflow模式内被摘掉的工具
customDimensions[]追加到维度清单的条目
customRules''追加到协议末尾的自由规则,优先级最高
standbyHinttrue模式外是否注入一行提示

自定义

这个插件的行为基本由两个 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