前言¶
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。
核心功能¶
啓動加載與熱更新¶
- 插件隨 DSH 掛載,對配置根目錄做一次全量掃描並註冊。
- 默認遞歸監視該目錄;新增、重命名、刪除以及 frontmatter 變更會在下一次目錄刷新時反映到目錄裏。
- 若根目錄尚不存在,插件會持續探測直到目錄出現。
支持的技能形態¶
僅掃描一層結構,兩種形狀:
- 目錄包:
<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 |
是否監視目錄並自動刷新 |
典型用法¶
- 用 cc-switch 或手工在
~/.cc-switch/skills下維護技能(目錄包或單層.md)。 - 安裝本插件並確認 DSH 已啓動;在會話技能目錄中應能看到 cc-switch 來源的技能。
- 在對話中通過 DSH 的
skill工具按名稱加載;修改SKILL.md後再次調用即可讀到最新正文。
無需額外 API:行爲完全由 DSH 內置的 skill 註冊與 skill 工具完成。
適用場景與注意¶
適合:已在 cc-switch 的 skills 目錄投入較多技能包,希望在 DSH web/desktop 會話裏直接複用同一套文件,並依賴文件監視保持目錄與磁盤一致。
注意:
- 插件以當前 DSH 進程的用戶權限讀取本地目錄;安裝前請自行審閱 GitHub 源碼 與 MIT 許可證。
- 僅掃描配置根下一層子目錄或
.md文件;更深層嵌套不會自動註冊。 - 與項目內技能重名時,項目技能優先;若依賴 cc-switch 側名稱,需避免與項目技能衝突或調整
rank(理解 precedence 規則後再改)。