# dsh-cc-switch-skills [English](README.md) | 中文 [![Listed on dsh-plugin.org](https://dsh-plugin.org/badges/listed.svg)](https://dsh-plugin.org/plugins/artorias-zj/dsh-cc-switch-skills) DeepSeek Harness(DSH)插件:**启动 DSH 时自动加载 `C:\Users\<当前用户>\.cc-switch\skills` 目录里的所有 skill**,并监视该目录的增删改(无需重启)。 `~/.cc-switch/skills` 是 cc-switch(Claude Code 配置切换工具)保存 skill 的目录,每个 skill 是一个含 `SKILL.md` 的目录包。本插件把这些 skill 接入 DSH 的 `ctx.skills` 注册表,使其出现在会话的 skill 目录中,可通过 `skill` 工具按需加载。 ## 功能 - **启动即加载**:插件行随 DSH 启动自动挂载,扫描一次目录并注册全部 skill。 - **两种 skill 形态**:目录包 `/SKILL.md` 与平铺文件 `.md`(只识别一层,不递归嵌套)。 - **YAML frontmatter 解析**(与 DSH 官方 `@deepseek-ai/dsh-skill-filesystem` 一致): - `name`(kebab-case)、`description`(必填); - 可选 `whenToUse`、`metadata`、`disable-model-invocation`、`user-invocable`; - `disable-model-invocation: true` → 模型不可自动调用;`user-invocable: false` → 不出现在面向用户的命令中。 - **正文按需加载**:目录只含元数据;每次调用 `skill` 都重读当前文件,编辑 `SKILL.md` 正文即时生效。 - **资源根**:`resourceBase` 指向 skill 所在目录,模型可按该目录解析 `scripts/`、`references/`、`assets/` 等资源。 - **热更新**:监视根目录(递归),新增 / 改名 / 删除 / 修改 frontmatter 在下一次目录刷新时生效;根目录暂不存在时会定时探测直至出现。 - **优先级**:注册 rank 为 300,与官方 `custom` skill 目录同级——项目级 skill(`<项目>/.dsh/skills`、`<项目>/.agents/skills`)重名时优先,用户级(`~/.dsh/skills`、`~/.agents/skills`)次之。 ## 安装 **方式一:命令行一键安装(推荐)** ```powershell dsh plugin --profile web add github:artorias-zj/dsh-cc-switch-skills ``` (桌面端把 `--profile web` 换成 `--profile desktop`;已发布 npm 后可简写为 `dsh plugin --profile web add dsh-cc-switch-skills`。) **方式二:DSH 内安装**:先把仓库克隆到本地(`git clone https://github.com/artorias-zj/dsh-cc-switch-skills.git` 后在目录内执行 `pnpm install`),再在 DSH 对话中让 agent 执行 `plugin_manager` 的 `install_bundle` 指向克隆目录,或在 Web 侧边栏「插件」页安装本地路径。 **方式三:手动安装**:把本包加入 profile 依赖并选中组合包——在 `~/.dsh/profiles//package.json` 的 `dependencies` 中加入 `"dsh-cc-switch-skills": "link:<克隆目录>"`,在 `dsh.profile.bundles` 列表末尾加入 `"dsh-cc-switch-skills"`,然后在 profile 目录执行 `pnpm install`。 > 注意:本地安装(方式二 / 三)以 `link:` 方式引用目录,请保留克隆目录(含 `node_modules`)不要移动或删除。 安装完成后(在线 profile 立即生效,否则重启 DSH),skill 即出现在会话目录中。 ## 配置 通过 `cordis.patch.yml` 中插入行的 `config` 字段配置(均为可选): | 字段 | 默认值 | 含义 | |---|---|---| | `dir` | `\.cc-switch\skills` | 扫描根目录;支持 `~/` 前缀;也可用环境变量 `DSH_CC_SWITCH_SKILLS_DIR` 覆盖 | | `providerName` | `cc-switch` | 注册到 `ctx.skills` 的提供方名称(不得为保留名 `runtime`) | | `rank` | `300` | 与其他提供方重名时的优先级,越小越优先 | | `watch` | `true` | 是否监视目录变化并自动刷新 | ## 与官方提供方的差异 为了达成“加载**所有** skill”,frontmatter 不完整时比官方更宽容: - 缺少 `name`(或名称不是合法 kebab-case)→ 回退到目录名 / 文件名并告警; - 缺少 `description` → 回退到正文首个非空行摘要(截断 160 字符)并告警。 仍然跳过并告警的情况:YAML frontmatter 无效、缺少 frontmatter、调用策略布尔值非法(如 `user-invocable: maybe`)、名称回退后仍不合法。以上告警输出到 DSH 日志(`hub.log`)。 ## 插件信息 | 项 | 值 | |---|---| | 一句话价值 | 启动 DSH 即自动加载 `~/.cc-switch\skills` 里的全部 skill(含 scripts/references 资源根),增删改免重启 | | 能力分类 | 技能与智能体 | | 安装命令 | `dsh plugin --profile web add github:artorias-zj/dsh-cc-switch-skills` | | 支持 profile | web / desktop | | 兼容与运行要求 | DeepSeek Harness 0.2.x(`ctx.skills` 服务);Node.js ^22.15 或 >=24;Windows / macOS / Linux | | 权限与外部服务 | 仅读取本地 `~/.cc-switch\skills` 目录;无外部服务、无遥测、不修改 skill 文件 | | 许可证 | MIT | ## 卸载 在 DSH 插件页移除,或用 `plugin_manager` 的 `remove_bundle`(目标 `dsh-cc-switch-skills`)。 ## 许可 MIT