dsh-cc-switch-skills:把 cc-switch 技能目录挂进 DSH 会话

前言

DeepSeek Harness(DSH)里,技能通过 ctx.skills 注册,会话里用 skill 工具加载。若你同时在用 cc-switch 管理技能,技能文件通常落在用户目录下的 ~/.cc-switch/skills(Windows 为 C:\Users\<当前用户>\.cc-switch\skills),每个技能多为带 SKILL.md 的目录包。手动把同一批文件再拷一份到 DSH 的 custom 根目录,或逐个维护两套路径,既重复又容易不同步。

下面介绍社区插件 dsh-cc-switch-skills(维护者 artorias-zj):DSH 启动时扫描该目录并注册全部技能,目录增删改后自动刷新,无需重启 DSH。

这是什么

dsh-cc-switch-skills 是一条 DSH 插件(Cordis bundle),在挂载时扫描 cc-switch 的技能根目录,把发现的技能写入 DSH 的 ctx.skills,出现在会话技能目录中,并可通过 skill 工具调用。插件只读本地 ~/.cc-switch/skills,不访问外网、不上报遥测,也不修改磁盘上的技能文件。

当前 package 版本为 1.0.1,许可证 MIT。SkillHub 分类为「工作流」;仓库 README 中 Plugin Info 归类为 Skills & Agents。

核心功能

启动加载与热更新

  1. 插件随 DSH 挂载,对配置根目录做一次全量扫描并注册。
  2. 默认递归监视该目录;新增、重命名、删除以及 frontmatter 变更会在下一次目录刷新时反映到目录里。
  3. 若根目录尚不存在,插件会持续探测直到目录出现。

支持的技能形态

仅扫描一层结构,两种形状:

  • 目录包:<name>/SKILL.md
  • 平铺文件:<name>.md

YAML frontmatter

解析规则与官方 @deepseek-ai/dsh-skill-filesystem 对齐:

  • 必填语义:name(kebab-case)、description
  • 可选:whenToUse、metadata、disable-model-invocation、user-invocable
  • disable-model-invocation: true 时技能不出现在模型侧目录;user-invocable: false 时不出现在面向用户的命令里

相对官方 provider,为尽量「加载全部技能」,不完整 frontmatter 容忍度更高:

  • 缺少或非 kebab-case 的 name → 回退为目录名/文件名,并写警告日志
  • 缺少 description → 回退为正文首行非空内容(截断至 160 字符),并写警告日志

仍会跳过并警告:无效 YAML、缺少 frontmatter、无效的 invocation 布尔值、回退后仍无效的名称。警告输出到 DSH 日志(hub.log)。

懒加载正文与资源路径

目录项只携带元数据;每次 skill 调用会重新读取当前文件,因此直接改 SKILL.md 即可生效,无需重启。resourceBase 指向技能目录,便于模型解析 scripts/、references/、assets/ 等相对路径。

命名冲突优先级

默认 rank 为 300,与官方 custom 技能根同级:项目级技能优先,用户级 cc-switch 来源在重名时靠后。

安装与启用

推荐一行 CLI(web profile):

dsh plugin --profile web add github:artorias-zj/dsh-cc-switch-skills

桌面环境将 --profile web 换成 --profile desktop。README 说明:未来发布到 npm 后,命令可能变为 dsh plugin --profile web add dsh-cc-switch-skills。

安装完成后,live profile 立即生效;否则需重启 DSH,技能应出现在会话目录中。

环境要求(来自仓库 Plugin Info):DeepSeek Harness 0.2.x(需 ctx.skills 服务);Node.js ^22.15 或 >=24;支持 Windows / macOS / Linux。

卸载:在 DSH 插件页移除,或通过 plugin_manager 的 remove_bundle 卸载 bundle 名 dsh-cc-switch-skills。

可选配置

在 cordis.patch.yml 中插入的插件行上可设置 config:

字段 默认值 含义
dir <homedir>\.cc-switch\skills 扫描根;支持 ~/ 前缀;也可用环境变量 DSH_CC_SWITCH_SKILLS_DIR 覆盖
providerName cc-switch 注册到 ctx.skills 的 provider 名(不可为保留名 runtime)
rank 300 与其他 provider 重名时的 precedence,数值越小越优先
watch true 是否监视目录并自动刷新

典型用法

  1. 用 cc-switch 或手工在 ~/.cc-switch/skills 下维护技能(目录包或单层 .md)。
  2. 安装本插件并确认 DSH 已启动;在会话技能目录中应能看到 cc-switch 来源的技能。
  3. 在对话中通过 DSH 的 skill 工具按名称加载;修改 SKILL.md 后再次调用即可读到最新正文。

无需额外 API:行为完全由 DSH 内置的 skill 注册与 skill 工具完成。

适用场景与注意

适合:已在 cc-switch 的 skills 目录投入较多技能包,希望在 DSH web/desktop 会话里直接复用同一套文件,并依赖文件监视保持目录与磁盘一致。

注意:

  • 插件以当前 DSH 进程的用户权限读取本地目录;安装前请自行审阅 GitHub 源码 与 MIT 许可证。
  • 仅扫描配置根下一层子目录或 .md 文件;更深层嵌套不会自动注册。
  • 与项目内技能重名时,项目技能优先;若依赖 cc-switch 侧名称,需避免与项目技能冲突或调整 rank(理解 precedence 规则后再改)。

链接

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

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

小夜