前言¶
DeepSeek Harness (DSH) 的 skill 采用全局发现与会话注入的机制。由于 SKILL.md 的元数据中并不包含“限定范围”的配置,当某个 skill 对当前项目无用时,无法在内部表达屏蔽,只能依赖外部开关。本插件旨在补上这一层,提供可视化的项目级管理能力。
插件定位¶
dsh-skill-switch 是 DSH(DeepSeek Harness)的项目级 skill 开关 + 全局删除插件。它在会话里增加一个“Skill 开关”标签页,通过一张表列出当前项目的 skill,支持一键开关、删除全部副本、有效/错误判定及详情视图。
核心功能¶
- 项目级屏蔽:通过开关文件控制当前项目的 skill 可见性。
- 一键开关:在面板中快速切换 skill 的显示状态。
- 删除全部副本:将指定 skill 在所有已知根里的副本一次性删除。
- 有效 / 错误判定:分析 skill 是否有效,并指出失效原因。
- 详情视图:查看 skill 在磁盘上的具体位置及副本状态。
安装与启用¶
本插件为 DSH 标准双半体插件,支持通过官方 dsh plugin 命令安装。
dsh plugin --profile desktop add -w github:twenty-3rd/dsh-skill-switch
安装完成后,必须重启 DSH。新增 bundle 会改变 host 侧组合,刷新页面无法生效。重启后,视图标签条里会出现「Skill 开关」。
典型用法¶
- 打开任一会话。
- 点视图标签条里的「Skill 开关」。
- 用行内开关切换。
插件会对每条 skill 进行“有效”判定:
* 有效 = A(在 skill 注册表里) ∧ B(模型可主动调用) ∧ C(用户可显式调用)。
* 若任一条件不成立,会显示“错误”并标明具体原因。
安全边界与限制¶
- 来源限制:本包只支持 GitHub 仓库 / 本地路径,不提供 npm 安装。
- 安全边界:路径全部由服务端扫描推导,客户端只能传名字。每个待删路径都需通过“严格位于所属根之内”的校验。
- 生命周期:面板与
/skill-switch/api/*路由随 fiber dispose 一起消失。
总结¶
dsh-skill-switch 解决了 DSH skill 项目级屏蔽缺失的问题,提供了可视化的开关、删除和诊断能力。它适合需要精细控制 skill 作用范围的开发者。