前言¶
DeepSeek Harness(dsh)用 SkillProvider 机制加载技能,目录约定与 Claude Code、Codex、ZCode 并不相同。若你在多套工具里分别维护 SKILL.md 与技能目录,切到 dsh 后往往只能逐个复制并手动同步,既占时间也容易漂移。
社区插件 dsh-skill-compat-plus(维护者 shuxidemosheng,GitHub 仓库 shuxidemosheng/dsh-skill-compat-plus)的做法是:不迁移文件,把上述三家的技能目录作为只读技能来源挂进 dsh。技能留在原路径,模型侧进入 skill 工具的 <available_skills> 按需加载;对标记为 user-invocable 的技能,用户可在 dsh 里用 /名字 调用。目录页见 skillhub.cn(社区目录,与 DeepSeek / 幻方无官方从属关系)。
这是什么¶
一句话:dsh 技能兼容层插件——Mount Claude Code / Codex / ZCode skill directories into DeepSeek Harness as read-only skill providers。
分类为「工作流」。npm 包名 dsh-skill-compat-plus,当前 README 与 package.json 标注版本 0.1.0,许可证 MIT。运行要求:Node ≥ 24,dsh ≥ 0.2.0-rc.2(README badge 与 engines 一致)。
核心功能¶
只读挂载,零迁移¶
技能文件不复制、不改写;卸载插件后恢复原状。插件侧主要做发现、frontmatter 映射与 catalog 更新;技能内容由 dsh 官方 skill 管线加载,README 说明本插件不执行技能内代码。
默认扫描的来源与目录¶
| 来源 | 目录 | 默认 |
|---|---|---|
claude-code |
~/.claude/skills 与 <项目根>/.claude/skills |
开启 |
codex |
~/.codex/skills(旧约定;新官方 ~/.agents/skills 由 dsh 原生扫描) |
开启 |
zcode |
~/.zcode/skills 与 <项目根>/.zcode/skills |
开启 |
extraDirs |
任意额外目录({ path, label?, rank? }) |
空 |
目录不存在时静默跳过;每家来源可单独开关、自定义路径与 rank。
双侧可用与热更新¶
- 用户侧:
user-invocable技能获得 dsh 原生/名字入口(host 端 pre-step 解析)。 - 模型侧:同一批技能进入
<available_skills>,按需自动加载。 - 热更新:chokidar 监听与存在性轮询;
watch默认开启。README 称目录增删改甚至事后新建整个目录,一般无需重启 dsh。
名称与描述兜底¶
dsh 要求 kebab 风格名称与非空描述。插件默认开启 slugifyNames(如 code_review → code-review)与 synthesizeDescription(Claude 缺省 description 时从正文首段合成)。关闭后不合规或缺 description 的技能会被 skip。
优先级¶
dsh 原生技能 rank 更低(更优先),同名时原生恒优先;项目级导入 rank 高于用户级导入。完整 rank 表见仓库 README。同名冲突时插件会输出 duplicate skill name 类诊断,且按「问题集合变化」聚合 warn,避免 catalog 重建时刷屏。
frontmatter 映射(摘要)¶
| 外来字段 | 映射 |
|---|---|
name |
缺省取目录名;不合规则 slug 化(可关) |
description |
缺失则正文首段合成(可关) |
when_to_use / whenToUse |
→ whenToUse |
disable-model-invocation |
→ invocation.modelInvocable: false |
user-invocable |
→ invocation.userInvocable |
Codex agents/openai.yaml 的 policy.allow_implicit_invocation: false |
→ invocation.modelInvocable: false |
allowed-tools / model / hooks 等 |
原样进 metadata(dsh 无对应执行语义,不静默丢弃) |
安装与启用¶
README 推荐 CLI 安装时带版本号,以规避 profile 安装端的 minimumReleaseAge 冷却:
dsh plugin --profile <你的profile> add dsh-skill-compat-plus@0.1.0
桌面端:在插件页搜索 dsh-skill-compat-plus 一键安装,装完重启。文档写明装完后默认三家来源全开,目录不存在自动跳过,无需额外配置即可试用。
其他安装方式(均来自 README):
# git 直装(始终跟踪 main)
dsh plugin --profile <你的profile> add git+https://github.com/shuxidemosheng/dsh-skill-compat-plus.git
本地 tgz:npm pack 后执行 dsh plugin --profile <你的profile> add file:<打包路径>/dsh-skill-compat-plus-0.1.0.tgz。
典型用法¶
- 按上文命令为当前 profile 安装插件并重启 dsh(桌面端)或重新打开会话。
- 确认本机已有任一技能目录(例如
~/.claude/skills);不存在则对应来源自动跳过。 - 在 dsh 中输入
/,应能看到导入技能的补全列表(README 示意:用户级 Claude、Codex 等可一次出现在列表中)。 - 模型对话中,同一批技能出现在 skill 工具的
<available_skills>,由模型按任务按需加载。
若技能过多、持续占用上下文,可在配置里用 sources.*.enabled 或 extraDirs 按需收窄来源(见下节)。
配置(可选)¶
配置写在 cordis.patch.yml 的 entry config 下;profile 层可覆盖,整体为替换语义;未知键 fail-fast。常用键默认值如下:
| 键 | 默认 | 说明 |
|---|---|---|
providerName |
skill-compat-plus |
provider 注册名 |
sources.claude / .codex / .zcode |
true |
boolean 或 { enabled?, project?, root?, rank? } |
extraDirs |
[] |
{ path, label?, rank? }[] |
watch |
true |
热更新 |
watchUsePolling |
false |
网络盘等可开 |
slugifyNames |
true |
关闭后不合规名 skip |
synthesizeDescription |
true |
关闭后缺 description skip |
README 提醒:导入技能会进入每个会话的 <available_skills> 提醒,挂太多会持续占用模型上下文。
已知限制与 FAQ 要点¶
- Claude / ZCode 插件包内部缓存目录不在默认发现范围,可用
extraDirs手动挂载。 - 项目级只扫最近
.git祖先一级(对齐 dsh 官方);不支持 Claude 嵌套<subdir>/.claude/skills、--add-dir、企业托管目录等。 allowed-tools/model/hooks等仅保留在metadata,dsh 侧无执行效果。~/.agents/skills已是 dsh 原生扫描目录,无需本插件桥接。- 修改文件未生效:确认
watch: true;网络盘可设watchUsePolling: true。
适用场景与注意¶
适合:已在 Claude Code、Codex(~/.codex/skills)、ZCode 积累技能,希望在 dsh 中复用同一套文件、避免双份维护的开发者。
注意:插件随当前 dsh 进程权限运行,安装前请自行查看源码与 MIT 许可证;README 提供 Mimosa 审计记录(v0.1.0,findings 0)。社区目录 skillhub.cn 与 GitHub 为事实来源,本文以仓库 README 与 package.json 为准。
结尾¶
dsh-skill-compat-plus 用只读挂载把三家外部技能目录接入 dsh SkillProvider:默认路径开箱、字段映射与 slug 兜底、热更新与原生优先级隔离,适合作为「工作流」类兼容层插件使用。
- 目录页:https://www.skillhub.cn/plugins/shuxidemosheng/dsh-skill-compat-plus
- GitHub:https://github.com/shuxidemosheng/dsh-skill-compat-plus