dsh-doctor:DeepSeek Harness 的只读诊断工具

插件装了没反应、技能看不见、改了配置没生效,这些问题在 DeepSeek Harness(DSH)开发中很常见。现有的一些诊断手段要么不够具体,要么试图直接修复配置,容易引入副作用。

dsh-doctor 专注于只读诊断。它不修改文件、不改 profile、不动 Loader 树里的任何行,而是直接回答“为什么”——哪个插件行没运行、哪个技能提供方整体失败、patch 里有没有重复 id、HMR 是否配置正确。

插件介绍

名称:dsh-doctor
作者:louisyeaaah
分类:工作流
许可证:MIT

这是一个只读诊断插件,用于排查 DSH 运行时的加载与可见性问题。它通过读取宿主内部结构(ctx.loader、ctx.skills、ctx.hmr 等)采集事实,输出问题清单和每条的下一步操作建议,并提供默认脱敏的 Markdown 卡片,方便直接贴进 issue。

核心能力

插件主要覆盖四个维度的体检:

  1. 插件行状态
    检测哪些插件行未运行、哪些被 disabled,解决“装了插件但工具没出现”的问题。

  2. 技能提供方
    逐个调用提供方的 list() 方法,抓取并展示抛错的原文。技能注册表遇到失败时会跳过该提供方并标记观察不完整,导致模型侧完全看不到诊断信息。dsh-doctor 把这条错误原文摊开。

  3. patch 层冲突
    检测重复的 entry id、同一包多行、声明了但未安装的 bundle,解决“装了但没生效”或行为诡异的问题。

  4. HMR 配置
    检测 HMR 的 watch 源码配置和 node_modules 是否被跳过,解决“改了代码没反应”的问题。

插件会输出一份问题清单,并在每条结论后附带下一步动作。

安装与启用

安装命令如下:

dsh plugin --profile <profile> add github:louisyeaaah/dsh-doctor

安装后,可以通过以下方式使用:

dsh_doctor()                  # 体检:插件行 / 技能提供方 / patch / HMR
dsh_doctor({ card: true })    # 输出可贴进 issue 的 markdown 卡片(默认脱敏)
/dsh-doctor card              # 人也可以直接敲

注意事项与限制

使用前需了解以下几点:

  • 只读保证:不写任何文件、不改 profile、不动 Loader 树里的任何行。唯一的副作用是在页面/引擎里调用各 provider 的 list()(注册表本来也会调)。
  • 依赖宿主结构:依赖 DSH 内部结构(ctx.loader / ctx.skills / ctx.hmr / profileContext)。DSH 升级后可能失效。
  • 范围有限:只回答加载与可见性层面的问题,查不出“插件行为不对”的深层逻辑。
  • 性能影响:技能提供方的 list() 会被真的调用一次。极慢的 provider 会让体检变慢。
  • 生态现状:本仓库没有发布到 npm(名字也被占了),不做投稿。安装走 GitHub 路径或 scripts/install.sh。

价值定位

生态里已有几个同名项目,覆盖了修复、回滚、环境诊断等更全面的功能。如果你需要的是“坏了能救回来”,建议选择那些项目。

本仓库仅做一件事:只读地把“为什么”讲清楚,并输出一张默认脱敏、可以直接贴进 issue 的英文卡片。

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

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

小夜