前言¶
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