dsh-grill-first
Verifieddsh-grill-first · v1.0.1 · MIT · Web UI
DSH 插件:开工前刨根问底——把模糊需求问成明确需求,用户确认后才放行主任务
Install
dsh plugin add dsh-grill-first Confirm the layer applied with dsh --profile default --dump-config — see the install guide.
Source
Tags
Creators
Readme
dsh-grill-first
DSH(DeepSeek Harness)插件:先把模糊任务聊清楚,再确认需求并开工。
本文描述 V1(1.0.0)。该版本已发布到 npm 并推送到 GitHub 仓库;自动化回归(173 项)通过,设置页已由用户实际新增偏好确认可用。宿主登录页面无法用自动化浏览器进入,因此批量操作只有客户端逻辑回归,没有完整浏览器截图验收。
使用流程
- 模型把任务原文交给
grill_start,判断目标、范围、约束和验收标准是否足够明确。 - 对模糊任务只追问影响方案的歧义。默认每轮最多 3 问、最多 3 轮,不必凑满;每轮用
mode: continue记录答案摘要和实际问过的维度。 - 信息齐全或达到轮次上限后,停止追问,把需求与尚未验证的假设整理成四段清单,交给
grill_confirm。达到上限仍需确认,不会自动放行。 - 用户选择「确认,按此开工」后放行本次任务;选择「要改」则修订清单并再次确认。
- 明确的小任务、命中跳过词的新任务可直接放行。正在澄清时的咨询或追问不会替代需求确认。
例如「把那个页面优化一下」需要先确定页面、优化范围和完成标准。确认清单可以是:
目标:整理登录页视觉
范围:只改样式,不动结构和文案
约束:沿用现有设计规范
验收标准:主要页面在移动端不错位
[确认,按此开工] [要改]
三个工具
| 工具 | 作用 |
|---|---|
grill_start |
判断是否需要澄清,返回追问方向、轮次、历史答案和 memory_context |
grill_confirm |
展示需求清单;明确确认后放行,并按记忆设置保存历史和偏好 |
grill_research |
需求明确后,用公开技术关键词查询开源候选和来源证据;不安装、不执行候选代码 |
grill_confirm 优先使用宿主结构化提问。通道不可用或抛错时返回 needs_user_confirmation: true,模型应改用内置提问工具展示完整清单,得到用户明确同意后再传 confirmed: true。只有同一会话、相同清单此前实际进入兜底通道才接受该声明;正常服务可用时直接传 true 不会跳过确认卡片。正文超过 6000 字会被拒绝,需要先整理保留全部约束的摘要再确认。
门禁模式
gateMode |
需求未确认时 |
|---|---|
off |
不拦截工具;不等于关闭整个插件 |
warn(默认) |
记录日志,允许工具执行 |
ask |
每次变更类调用都请求宿主审批;审批该次操作不会放行整项任务 |
strict |
拒绝变更类调用,直到需求确认或明确跳过 |
门禁仅作用于根 agent。只读工具允许通过;写文件、命令和委派类工具属于受控操作。ask 返回审批请求不代表用户已批准;后续变更仍需审批,直到 grill_confirm 等合法流程打开任务门禁。
关闭 enabled 可停用澄清、门禁与调研。默认跳过词包括「直接做」「跳过提问」「不用问」「skip」;英文按词边界匹配,中文按子串匹配;紧邻关键词的否定表达(如「不要直接做」「don't skip」)不算跳过指令。判定器是中英文关键词启发式,并非完整的语义理解,复杂否定或引用仍可能误判。
安装
可通过 DSH 插件管理安装选定版本,或使用命令行:
dsh plugin --profile <你的-profile> add dsh-grill-first
# 开发构建:使用实际生成的本地包路径
dsh plugin --profile <你的-profile> add /绝对路径/dsh-grill-first-1.0.0.tgz
以上为安装方式示例,registry 的默认版本不保证是本文的 V1。以安装结果中的应用状态为准;仓库源码修改不等于运行中的安装副本已更新。
配置项
V1 提供独立的 DSH 设置 → 需求澄清 页面,共 10 项配置,保存到当前插件实例。页面依赖宿主的设置、连接和工作区服务;实际部署后仍需检查页面是否加载与保存成功。
| 配置 | 类型 | 默认 | 说明 |
|---|---|---|---|
enabled |
布尔 | true |
总开关 |
gateMode |
off / warn / ask / strict |
warn |
门禁模式,见上表 |
maxQuestionsPerRound |
1–6 | 3 |
每轮问题数上限 |
maxRounds |
1–10 | 3 |
追问轮数上限;达到上限仍需确认清单 |
intensity |
gentle / standard / grill |
standard |
两维 / 三维 / 还要求验收标准的明确度判定 |
bypassKeywords |
字符串数组 | ["直接做","跳过提问","不用问","skip"] |
命中时跳过澄清 |
memoryEnabled |
布尔 | true |
控制澄清流程读取与确认流程写入记忆 |
memoryScope |
project / global |
project |
项目记忆存工作区或全局目录 |
researchMode |
off / auto / always |
auto |
调研关闭 / 适用时查询 / 每次调用均尝试查询 |
researchDepth |
quick / deep |
quick |
调研请求预算与摘录深度 |
页面可编辑全部配置,跳过词每行一个。也可在 profile 的 cordis.patch.yml 中按插件条目配置;只提供需要覆盖的项:
- id: dsh-grill-first
name: dsh-grill-first
config:
gateMode: strict
maxRounds: 3
researchMode: auto
researchDepth: quick
偏好管理
同一设置页支持全局 / 项目偏好的查看、新增、编辑、启停和删除,可编辑文本与标签并查看来源。列表按更新时间从近到久排列,可勾选当前筛选结果批量启用、停用或删除;批量删除需二次确认,中途失败会停止并报告已完成条数。项目范围须选择宿主中已登记的有效工作区。停用偏好不再进入后续摘要;删除前页面会确认。
保存使用 revision 检查并发变更,冲突时重新载入后再编辑;损坏的记忆文件不会被静默覆盖。管理通道仅接受宿主所有者的浏览器,不是模型可调用的偏好写入工具。memoryEnabled: false 停止自动读写,设置页仍可管理已有偏好。
两层记忆
自动流程仅保存用户确认的需求摘要和偏好,不保存原始聊天记录;设置页也可由用户直接管理偏好。不会另外生成需求文档。
| 层 | 实际默认位置 | 内容 |
|---|---|---|
| 全局 | ~/.dsh/grill-first/global.json |
全局偏好 |
| 项目 | <工作区>/.dsh/grill-first/memory.json |
项目偏好、背景和最近 100 条任务历史 |
设置 DSH_GRILL_HOME 可替换全局目录,文件为 <DSH_GRILL_HOME>/global.json。memoryScope: global 将项目记忆改存同一全局目录的 project.json,在项目之间共享;不会改动全局偏好的文件名。路径并非 profile 目录,也没有「不可写则自动换目录」的逻辑。
记忆是未加密的本地 JSON;下次澄清时启用的偏好及项目背景作为 memory_context 返回。写入采用同进程串行与临时文件原子替换,不提供跨进程锁。
调研模式
grill_research 被调用时才执行查询,always 不会自行启动后台调研。off 不联网;auto 要求参数 applicable: true;always 跳过适用性判断。总开关关闭时调研也关闭。
工具只向 GitHub REST API 发送显式的公开关键词,不读取或上传工作区。一次最多比较 3 个候选,核对仓库元数据、README、许可证与发布信息,并返回来源地址、核对时间和失败状态。quick 摘录最多 3000 字、最近 1 个发布;deep 摘录最多 12000 字、最近 3 个发布,并提高有界请求预算。
外部文本仅作资料,不能当作指令。许可证 unknown 表示未核实,所有候选的许可证兼容性均未评估。超时、限流或网络失败会返回降级结果,可继续本地方案;不会自动安装或执行候选代码。
开发与验证
npm install
npm run build
npx vitest run test/tools.test.ts test/e2e.test.ts
npm test
测试从 dist/ 导入,因此修改源码后须先构建。限定两组测试验证工具行为与假宿主中的插件链路,不等同于安装后真实 UI 验证。不要用旧版本的测试总数表示当前覆盖率。
运行环境要求 Node.js 20 或以上,宿主提供 @deepseek-ai/schemastery。V1 还使用宿主连接、设置及工作区服务与客户端设置插槽,兼容性需在目标宿主验证。
许可
MIT,见 LICENSE。