前言¶
DeepSeek Harness (DSH) 的 skill 採用全局發現與會話注入的機制。由於 SKILL.md 的元數據中並不包含“限定範圍”的配置,當某個 skill 對當前項目無用時,無法在內部表達屏蔽,只能依賴外部開關。本插件旨在補上這一層,提供可視化的項目級管理能力。
插件定位¶
dsh-skill-switch 是 DSH(DeepSeek Harness)的項目級 skill 開關 + 全局刪除插件。它在會話裏增加一個“Skill 開關”標籤頁,通過一張表列出當前項目的 skill,支持一鍵開關、刪除全部副本、有效/錯誤判定及詳情視圖。
核心功能¶
- 項目級屏蔽:通過開關文件控制當前項目的 skill 可見性。
- 一鍵開關:在面板中快速切換 skill 的顯示狀態。
- 刪除全部副本:將指定 skill 在所有已知根裏的副本一次性刪除。
- 有效 / 錯誤判定:分析 skill 是否有效,並指出失效原因。
- 詳情視圖:查看 skill 在磁盤上的具體位置及副本狀態。
安裝與啓用¶
本插件爲 DSH 標準雙半體插件,支持通過官方 dsh plugin 命令安裝。
dsh plugin --profile desktop add -w github:twenty-3rd/dsh-skill-switch
安裝完成後,必須重啓 DSH。新增 bundle 會改變 host 側組合,刷新頁面無法生效。重啓後,視圖標籤條裏會出現「Skill 開關」。
典型用法¶
- 打開任一會話。
- 點視圖標籤條裏的「Skill 開關」。
- 用行內開關切換。
插件會對每條 skill 進行“有效”判定:
* 有效 = A(在 skill 註冊表裏) ∧ B(模型可主動調用) ∧ C(用戶可顯式調用)。
* 若任一條件不成立,會顯示“錯誤”並標明具體原因。
安全邊界與限制¶
- 來源限制:本包只支持 GitHub 倉庫 / 本地路徑,不提供 npm 安裝。
- 安全邊界:路徑全部由服務端掃描推導,客戶端只能傳名字。每個待刪路徑都需通過“嚴格位於所屬根之內”的校驗。
- 生命週期:面板與
/skill-switch/api/*路由隨 fiber dispose 一起消失。
總結¶
dsh-skill-switch 解決了 DSH skill 項目級屏蔽缺失的問題,提供了可視化的開關、刪除和診斷能力。它適合需要精細控制 skill 作用範圍的開發者。