dsh-method:用 schema 与校验器强制结构化执行计划

前言

在 DeepSeek Harness(DSH)里让模型「先想清楚再动手」,常见做法是在系统提示或技能里写一段「请先列计划」。模型可以照做,也可以跳过;换领域、换任务复杂度时,目标澄清、方案比较、约束与可验证的完成标准往往最先被省略,熟悉场景里不明显,不熟悉时容易返工。

dsh-method 是社区维护的工作流类插件(目录分类:工作流),思路是把上述环节变成必填且机器校验,计划结构由 JSON Schema 与独立校验器共同约束,而不是仅靠提示词请求。下文介绍它做什么、如何安装启用,以及计划里必须包含哪些字段。

这是什么

  • 名称:dsh-method(GitHub:LMQ00/dsh-method,维护者 LMQ00)
  • 定位:面向 DSH 的通用做事方法——任何非平凡任务先产出结构化执行计划;计划追求最普遍的可迁移性,而不是某一领域下的最快路径。
  • 版本与许可(来自仓库 package.json):0.1.0,MIT。

插件简介原文:General-purpose method for the DeepSeek Harness: a domain-neutral planning protocol whose plan structure is enforced by schema and validator, not just requested by prose.

核心功能

开启 method 模式与计划落盘

用户通过斜杠命令开关模式。开启后,模型须调用 plan_submit 提交计划;校验通过则写入项目根下的 <项目根>/.method/plan.md,并把渲染后的全文返回给模型,再按计划执行。

计划内容的强制项

下列缺项或不合规则会被拒绝(摘要自 README 表格):

项 规则要点
目标 一句话说清完成后的状态
非目标 至少 1 条明确不做的事
约束 至少 1 条,标注 hard / soft
方案比较 至少 2 个候选,各写优点与代价;选中项须为候选之一
任务 至少 2 个,id 唯一,依赖不得成环
每任务失败原因 至少 1 条
每任务完成判定 须可观察(见下)
验证 覆盖每个任务,或一条 task: "*" 覆盖整体
可逆性 / 置信度 布尔 + high | medium | low

「可观察」判定覆盖命令退出码、文件或产物路径、数值阈值、状态值、他人确认与交付物、状态达成等;仅形容词或空话(如「确认一切正常」「完成」)会被拒绝。README 注明:部分中文口语完成态可能因词表实现被误拒,与同义但更「结构化」的表述结果可能不同,属已知取舍。

两层强制

  1. JSON Schema(provider 侧,execute 之前):形状错误(缺字段、类型错、枚举非法、多余字段等)直接拒绝。Schema 使用标准 JSON Schema(required 为字符串数组),不是 defineTool 的 DSL。
  2. validate.js(execute 内):内容错误(空串、条目不足、判定不可观察、依赖成环、验证未覆盖等)。

状态与会话

sessionProjections 从会话日志折叠,依赖 DSH 已有事件类型(如 command/run、command/done、tool/call、plan_submit、tool/result)。待提交计划以 map 形式按 callId 配对,支持并行工具调用;后一次成功提交覆盖计划并递增 revision。计划路径按工作目录解析,不含 session id,同一项目多会话会共用一份 plan.md。

刻意未做的强制

plan_submit 仅在 method 模式下可用,但插件不阻止模型未提交计划就直接执行写操作;README 说明若要真正拦截写操作需另做 tools.guard 级别设计,当前版本为避免「不开 method 就不能干活」而未实现。

安装与启用

本仓库未发布到 npm,需从源码 clone 后以链接方式安装(命令来自 README):

git clone https://github.com/LMQ00/dsh-method.git ~/Projects/dsh-method
dsh plugin --profile web add link:~/Projects/dsh-method

装完后重启 dsh web。profile 的 node_modules 中应有 dsh-method 软链;若 link: 安装后缺少软链,dsh web 可能打印 cannot resolve profile bundle "dsh-method" 并跳过该 bundle,可按 README 重装一次。

插件以当前 DSH 进程权限运行;安装前请自行查看源码与 MIT 许可证,确认符合你的环境与合规要求。

典型用法

在 DSH Web 会话中:

/method            # 开启,直接说要做的事
/method off        # 关闭

开启后描述任务,模型应通过 plan_submit 提交计划;通过后可在 .method/plan.md 查看落盘内容。首次落盘时插件会在 .method/ 内写入内容为 * 的 .gitignore,使该目录默认不进入版本控制,且不修改项目根 .gitignore。

开发者可在插件目录运行自测(README):

node selftest.mjs

README 称共 68 项自测,覆盖合法计划接受、各类结构/依赖/验证缺陷拒绝、判定可观察性边界、会话投影与渲染等。

适用场景与注意

适合:希望在 DSH 里统一「先计划、后执行」节奏的团队或个人;任务需要明确非目标、约束、多方案比较和可观察验收标准时;愿意接受计划偏「完整」而非「最短」的代价。

注意:

  • 计划校验依赖措辞与词表,非技术或口语化完成表述可能被拒,需按文档中的可观察写法改写。
  • .method/plan.md 按工作目录共享,并行多会话可能互相覆盖。
  • 社区目录 SkillHub 插件页 与 GitHub 仓库由维护者发布;SkillHub 为社区插件目录,与 DeepSeek / 幻方无官方从属关系。安装与运行插件等同信任其源码与当前进程权限。

结尾

dsh-method 把「结构化计划」从提示词约定升级为 schema + 校验器可执行的协议,适合在 DSH「一切皆插件」的生态里作为工作流增强使用。进一步了解可看目录页与仓库文档(docs/插件说明.md、docs/实现逻辑.md)。

  • 目录页:https://www.skillhub.cn/plugins/LMQ00/dsh-method
  • GitHub:https://github.com/LMQ00/dsh-method
羽毛球分组比赛记分
小程序二维码

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

小夜