dsh-skill-doctor:在 DSH 里给技能与插件做体检

前言

在 DeepSeek Harness(DSH)里维护技能时,常见问题往往不是报错,而是静默失效:技能没加载、被同名覆盖、frontmatter 里的 description 超过可见上限被截断、正文引用的文件不存在——表面上只是「模型不用这个技能」。排查需要对照 dsh 的加载规则、运行时 fiber 阶段和模型实际读到的简介原文,手工做很费时间。

dsh-skill-doctor(npm 包名同名,维护者 shuxidemosheng)面向上述场景:在 dsh 内扫描技能与插件配置,输出可读报告和可执行的改法,并提供斜杠命令、面板与独立 CLI,分类上属于工作流类插件。它不替代技能市场,也不做安全扫描,只回答「在 dsh 里能不能正常工作、模型到底看到了什么」。

这是什么

一句话:dsh 的技能与插件体检——告诉模型看到了什么、插件是否真正跑起来、下一步该改哪里。

核心功能

技能侧

  • 模型可见内容原样展示:简介超长时,不只提示「太长」,而是贴出截断后模型能读到的原文,便于核对触发词是否还在可见段内。
  • 结论 → 证据 → 处方:报告先给能不能用,再列摘要表、模型看到的简介、被切掉的部分与影响大小,每条问题附带修复档位(可自动修 / 一条命令 / 需人工改)。
  • 改写工单:对 description 被截断的技能,可生成带字数预算与触发词骨架的工单;用户确认后通过工具参数写入(setDescription 或 fix: true),不自动代写文案。
  • 复诊对比:默认保存上次体检结果,再次运行可对比「修好了哪些、新出现哪些」。
  • 按根因聚合:同类问题(例如同一前缀的一批技能)合并展示,减少重复改模板。
  • 动态使用统计:面板「使用统计」按技能被读入上下文的次数排行(存本机 localStorage),辅助发现「模型从来不用」的技能。

插件侧

  • 磁盘 + 运行时:读 profile 的 package.json 与各插件 cordis.patch.yml,检查重复安装、条目互抢、启用与包是否一致、是否改动技能链路等(规则 ID 如 PL001–PL006 等,见 README)。
  • fiber 探测:在桌面 profile 下尝试读 pluginInventory 的 fiber 阶段;failed 的插件会被点名;探测不到时明确写「没查到」,不等同于没问题。
  • 会诊:技能报告出现「0 个技能」等情况时,与插件层 patch(谁改了哪个条目、哪个键)交叉对照。

客户端与命令

  • 输入框上方活动面板:展示本次会话中模型读入了哪些技能、调用了哪些工具;点开可看最近约 20 条调用流。
  • 六条斜杠命令(菜单中文,输入框为 ASCII token,本地执行、不经过模型):/doctor、/scope <目录>、/rewrite <技能名>、/followup、/why <技能名>、/clash。
  • 四个工具(供模型或会话内自然语言触发):skill_doctor、skill_lint、skill_explain、plugin_doctor。

命令行

包内提供 dsh-skill-lint(lib/cli.js),README 说明可在 CI 中运行,支持 --json 与退出码,且不依赖 dsh 运行时。

报告中的简介长度阈值(如 500 字)随 dsh 版本校准;版本不一致时,报告会提示阈值可能已过期。

安装与启用

安装命令以 README 为准:

dsh plugin --profile <你的profile> add dsh-skill-doctor

默认安装最新版;锁定版本可在名称后加 @,例如 @0.13.2(README 示例版本)。

装完后需要完全退出并重开 dsh,客户端注入的代码仅在启动时加载。装好后可直接在会话里说「帮我体检一下技能」,或使用斜杠命令,无需单独记工具名。

典型用法

斜杠命令(最快)

输入框输入 /,选择中文菜单项(对应上表的 token),补上路径或技能名后回车,结果以纯文本出现在会话流中。例如全体检:

/doctor

只查某目录:

/scope D://skills

完整处方报告仍可在会话中说「体检技能」,由模型调用 skill_doctor,与斜杠路径共用同一套扫描逻辑。

自然语言场景(README 示例)

怀疑某个技能没生效:

解释一下 nature-citation 为什么可能没被模型用上

怀疑插件未启动或冲突:

查一下 desktop profile 的插件有没有冲突

查看当前会话模型在做什么:看输入框上方面板,或展开活动列表。

工具参数示例

单技能体检:

{ "name": "nature-citation" }

省略 name 为全体检。只查指定目录用 roots;追加目录查同名遮蔽用 extraRoots(语义不同,见 README)。

插件体检:

{ "profile": "desktop" }

按规则 ID 排查(CI / 技术口径):

{ "rules": ["SD003", "SD004"], "format": "json" }

适用场景与注意

适合谁:在 DSH 里维护较多技能或插件、需要确认「模型能否选中技能」「插件是否 failed」「patch 是否改坏技能目录」的开发者。

做不到什么(README「它做不到什么」章节):不做技能分发与安全审计;不能替 dsh 修改核心加载策略;headless 下插件运行时 fiber 一节会降级;面板只能看到当前窗口内最近的调用,更早记录不在浮层里。

权限与安全:插件以当前 dsh 进程权限读取 profile、技能目录与配置;安装前请自行查看 仓库源码 与 MIT 许可证。SkillHub 等为社区目录,与 DeepSeek / 幻方无官方从属关系。

DSH 生态强调「一切皆插件」;dsh-skill-doctor 是其中专门做诊断与工作流入口的一类工具,GitHub 上可见 star 数量会随社区变化,以页面为准。

结尾

技能与插件的问题在 dsh 里往往安静失败;dsh-skill-doctor 把可见简介、截断触发词、插件 fiber 状态与 patch 冲突收成报告和斜杠入口,并支持复诊与 CI lint。需要安装说明与规则细节时,以 README 为准。

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

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

小夜