dsh-grill-first:DSH 开工前的需求澄清门禁

前言

在 DSH(DeepSeek Harness)里让模型直接动手改代码、跑命令,常见失败并不是「不会做」,而是做完才发现和你要的不是一回事。口头需求往往缺目标、范围、约束或验收标准,模型会按自己的理解补全,事后返工成本高。

社区插件 dsh-grill-first(维护者 InoriMutsumi)把「先问清再开工」做成可配置的流程:新任务先判定是否要澄清,必要时多轮追问,整理成四段清单请你确认,确认后才放行主任务。目录页见 SkillHub,源码与说明在 GitHub(MIT,当前包版本 0.1.1)。

这是什么

dsh-grill-first 是 DSH 插件:在任意新任务开工前插入需求澄清环节,把模糊任务问成可执行、可验收的明确需求;你在对话里确认之后,本次任务才继续。

它与「全靠系统提示里写一句请先提问」不同:插件向系统提示注入中文协议段(约 600 字,可见标记 【开工前提问协议(grill-first)】),并注册 grill_start、grill_confirm 两个工具;在 gateMode: "strict" 下,需求未确认前可拦截写文件、跑命令等变更类操作。一句话能说清的小任务,或消息里带跳过关键词时,不会被打扰。

工作流程

装好后无需额外操作,模型接到新任务时应先调用 grill_start。下面按 README 描述的顺序说明。

  1. 判定:grill_start 根据任务原文判断是否需要澄清,并返回 verdict、focus_hints(该问什么)、memory_context(已知偏好,减少重复问)。
  2. 追问:若任务模糊,按轮提问,默认每轮最多 3 个问题、最多 3 轮,每轮基于上一轮回答继续深挖(具体上限见配置)。
  3. 汇总确认:问清后整理为中文四段清单(目标 / 范围 / 约束 / 验收标准),通过 grill_confirm 请你确认。
  4. 放行或修订:选「确认,按此开工」则本次任务放行,确认内容可写入记忆;选「要改」则按反馈修订后再确认。
  5. 跳过:消息含「直接做」「跳过提问」「不用问」「skip」之一时立刻开工;也可在配置里关闭插件或把 gateMode 设为 off。

严格档位下,未确认前模型无法执行变更类工具,从机制上保证「没问清就不许动手」。默认 gateMode 为 warn(仅日志记录),避免升级后突然卡住既有工作流;需要硬门禁需手动改为 strict。

安装与启用

安装前请先退出正在跑的任务。插件以当前 DSH 进程权限运行,安装前应自行查看仓库源码与 MIT 许可证。

方式一:DSH 插件市场(推荐)

在 DSH 设置 → 插件里搜索 dsh-grill-first 一键安装。

方式二:npm 命令行

dsh plugin --profile <你的 profile 名> add dsh-grill-first

方式三:本地包 / GitHub 仓库

dsh plugin --profile <你的 profile 名> add /绝对路径/dsh-grill-first-0.1.1.tgz
dsh plugin --profile <你的 profile 名> add github:InoriMutsumi/dsh-grill-first

装完即生效:本机实测 live profile 会热加载新插件,一般不需重启;若 profile 为启动式或列表未出现,可完全退出 DSH 后重开。改 包代码 后需重启 DSH;cordis.patch.yml 中的配置改动可热生效。当前运行版本可调用 grill_start,看返回里的 version 字段。

配置项

DSH 设置 → 插件 → dsh-grill-first 提供启用/停用;其余 7 项需编辑 profile 补丁层 cordis.patch.yml(客户端插件页不渲染第三方配置表单)。改完重启 DSH 生效,只写要改的项即可。

配置 类型 默认 说明
enabled 布尔 true 总开关
gateMode off / warn / strict warn 是否拦截未确认时的变更类工具
maxQuestionsPerRound 1-6 3 每轮最多问几个问题
maxRounds 1-10 3 最多追问几轮
intensity gentle / standard / grill standard 追问力度
bypassKeywords 字符串数组 ["直接做","跳过提问","不用问","skip"] 命中即跳过提问
memoryEnabled 布尔 true 是否启用两层记忆

示例补丁:

# <profile 目录>/cordis.patch.yml
- id: dsh-grill-first
  name: dsh-grill-first
  config:
    gateMode: strict          # off | warn | strict
    maxQuestionsPerRound: 3   # 1-6
    maxRounds: 3              # 1-10
    intensity: standard       # gentle | standard | grill
    memoryEnabled: true
    bypassKeywords: [直接做, 跳过提问, 不用问, skip]

两层记忆

只记录你确认过的内容,不记对话原文,也不会把需求清单写成文件。

层 位置 内容
全局层 <profile 目录>/grill-first/global.json(不可写时退化到 ~/.dsh-grill-first/global.json) 通用偏好
项目层 <工作区>/.dsh/grill-first/memory.json 项目背景、任务历史(任务名 + 需求摘要 + 日期)

下次 grill_start 会把上述内容作为 memory_context 返回,避免重复追问。记忆为本地 JSON,无加密;删除对应文件即清空。

适用场景与注意

适合:需求经常口头带过、希望开工前有结构化确认清单的 DSH 用户;需要 strict 门禁防止模型抢先改仓库时。

已知限制(摘自 README):

  • 门禁仅对根 agent 生效;子 agent / 团队成员不拦。委派类工具(如 subagent、workflow、spawn_teammate)在未确认前也会被拦,防止绕过门禁。
  • warn 档位只能记录,无法在拦截同时给模型额外提示(受 tools/pre-execute 事件形态限制)。
  • grill_confirm 优先走 DSH 结构化提问通道;不可用时返回 needs_user_confirmation: true,由模型用内置提问工具兜底。
  • 英文跳过词按词边界匹配(如 skip 不命中 skipList);中文按子串匹配。

宿主侧已验证版本包括 0.2.0-rc.2、0.2.1-rc.2。插件不声明 engines.dsh 或 @deepseek-ai/dsh peer,一般升 DSH 不需改插件代码;peer 仅 @deepseek-ai/schemastery(^3.18.1)。

结尾

dsh-grill-first 把「开工前先刨根问底」做成协议注入、双工具流程与可选 strict 门禁,默认温和、可跳过、可关。需要时把 gateMode 调到 strict,并善用两层记忆减少重复提问。

SkillHub 为社区插件目录,与 DeepSeek / 幻方无官方从属关系;DSH 生态理念是「一切皆插件」,可按需从市场或命令行安装第三方扩展。

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

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

小夜