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 規則後再改)。

鏈接

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

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

小夜