dsh-model-everything:把设计与代码里的断言建成可执行模型

前言

在 DSH 里做设计评审或重构时,常见做法是通读 diff、让模型「推理一遍」行为是否还在。这类结论往往缺少可复算的出处,前后两次评审也难以对齐。DeepSeek Harness 社区插件 dsh-model-everything(维护者 AmethystLuna)走的是另一条路:把设计或代码里关于行为的断言抽成模型,交给引擎跑一遍,报告带哈希与引用,便于比对和留痕。插件归类为工作流方向,当前 GitHub 星标为 0;它是 DSH 原生插件,以 cordis bundle 形式挂载工具与技能。

这是什么

一句话:建模与自动化审查——核验可验证断言、跑状态机与协议、审 UML、查依赖图与数据迁移、挖掘并发声明并路由到外部检查器,最后用 report_diff 做报告基线比对。

许可证为 MIT(见仓库徽章),运行需要 Node.js >= 20。package.json 中版本为 0.2.0,声明的 DSH 引擎范围为 ^0.1.7-alpha.2 || ^0.1.7-rc.1 || ^0.2.0-rc.1 || ^0.2.1-alpha.1,兼容 profile 包括 headless 与 web。

核心功能

下面按 README 中的能力表归纳;插件比较的是你提供的模型与图,是否忠实于源码,由抽取步骤负责,工具本身不代替读 diff、不改代码、不跑你的测试套件。

域 作用
事实核验 列出可验证断言,逐条对照代码并给出 file:line 出处
行为验证 状态机与协议:结构检查、对抗性探测、预算与时限、before/after 回归;多机组合查死锁与永不发生的会合
图 UML 2.5 各图族渲染、解析与建模审查(含 render↔parse 往返),支持 Mermaid 与 PlantUML
结构 组件/包/类/部署图依赖审计:孤立节点、环、分层违规、缺失必需边等
数据 数据模型与迁移:覆盖、拷贝一致性、回滚对称、前后数据回归
并发 model_interleaving_scan 挖掘线程/锁/async 等声明并路由到 TSan、Helgrind、CBMC、TLA+ 等;声明了 shared 与 accesses 后,model_compose_verify 可判 C3–C5 类组合问题
导出 model_export 生成 UPPAAL / TLA+ / PRISM / SPIN 输入
报告 正文渲染、report_diff 基线比对、哈希规范

主工具包括:uml_render、uml_parse、uml_review、uml_explain_labels、uml_structure_verify、model_verify、model_compose_verify、model_datamodel_verify、model_interleaving_scan、model_export、model_design_review、model_edit、report_diff。读报告时以 verdict(pass / pass_with_findings / fail)为准,不要单独用 ok 当判定;ok 为 false 表示工具未运行,原因在 errorCode。

仓库内还有两个组件:主行 dsh-model-everything(默认开)提供全部工具与技能;dsh-model-everything-gate(默认开)在会话第一个模型步注入约 3.2k 字符的路由提示,可通过配置关闭。

安装与启用

插件声明在仓库根 package.json 的 dsh.bundle 与 cordis.patch.yml。官方安装方式如下(<profile> 换成你的 profile 名):

# 从源码目录安装(开发中)
dsh plugin --profile <profile> add "file:$PWD"
# 从 npm 安装(发布版)
dsh plugin --profile <profile> add dsh-model-everything
# 未全局安装 dsh 时
npx -p @deepseek-ai/dsh dsh plugin --profile <profile> add dsh-model-everything

装完后重启该 profile,用 dsh --profile <profile> --dump-config 确认插件行已出现。卸载通过插件管理器从目标 profile 移除即可。

若要关闭提示词注入组件,可在 profile 的 cordis.patch.yml 中按 row id 覆盖(整段替换,不写 name):

- id: dsh-model-everything-gate
  config:
    enabled: false

enabled 为 live 字段,插件页开关对运行中的 host 即时生效;gateContent 与 extraGuidance 的说明见 README「配置」一节。

典型用法

重构前后行为是否一致

重构可以改实现,行为是否保持交给引擎,而不是通读整份 diff:

  1. 重构前:用 uml_parse 或按 schema 写出 BEFORE 模型。
  2. 完成重构。
  3. 重构后:抽出 AFTER 模型。
  4. 调用 model_verify,传入 beforeModel 与 stateMapping 做行为回归;数据侧用 model_datamodel_verify 的 beforeModel、fieldMapping、migrationMappings。
  5. 用 report_diff 与基线报告比对;新增的 error 级发现可作为不接受本次重构的理由。

状态机与流程图审查

  1. 将 stateDiagram-v2、PlantUML 状态图或 LogicModelV1 交给 uml_parse。
  2. 用 model_verify 查不可达状态、吸收环、被忽略的事件、预算与时限等;把「永远/绝不」写进 invariants 搜反例。
  3. 用 uml_review 审结构缺陷(不可达、死端、分支未穷尽等)。
  4. 报告中的 error 逐条回到源码核对——图对了不等于代码对了。

依赖图与设计自洽

  • 组件/包图:交给 uml_structure_verify,可选带 layers 与 rules 的依赖矩阵;也可传 repoPath 由工具扫描 TypeScript/JavaScript 的相对 import 建图。
  • 设计文档中的分层与边界:model_design_review 只判断设计是否与它自己声明的契约矛盾,不按外部标准打分。

更完整的场景(两台机器会合、迁移两份 schema、并发声明扫描等)见 GitHub README。

适用场景与注意

适合需要在 DSH 会话里把「设计/规格里的说法」变成可跑模型、并留下可比对报告的团队或个人:重构门禁、状态机审查、迁移核对、依赖违规扫描、导出到形式化工具等。

使用前请注意:

  • 插件以当前 dsh 进程权限运行;工具会处理你传入的路径与模型。安装前请自行审阅 源码 与 MIT 许可证。
  • README 写明:运行时只读包内 skills/ 用于注册技能,不读凭据、不联网;导出外部检查器时只写你指定的文件。
  • 并发安全的大半仍依赖你按路由去跑 TSan、TLA+ 等;本插件不替代那些分析。
  • DSH 插件目录 SkillHub 是社区站点,与 DeepSeek / 幻方无官方从属关系;生态上 DSH 奉行「一切皆插件」,本插件是其中一条工作流向的补充。

结尾

dsh-model-everything 把「想清楚」尽量变成「跑一遍」:结论来自引擎运行,带哈希与出处,重构与迭代可以用 report_diff 对齐基线。若要查看简介与分类,可打开目录页 SkillHub · dsh-model-everything;安装、工具表与报告阅读技能见 GitHub 仓库。

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

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

小夜