dsh-skill-manager-ytxue:在 DSH 設置側欄管理 Skill 池

前言

在 DeepSeek Harness(DSH)裏,Skill 是擴展智能體能力的主要載體。實際開發中,Skill 往往散落在下載目錄、項目倉庫和 ~/.dsh/skills 之間:有的還沒按 DSH 規範寫好 frontmatter,有的想先放進池裏備用,有的需要在系統級與項目級之間切換。純靠手改文件和記路徑,啓用、停用和批量導入都容易出錯。

下面介紹社區插件 dsh-skill-manager-ytxue(維護者 YTxue,分類:工作流)。它在 DSH Web 界面的設置側邊欄提供「Skill 管理」面板,把列表查看、啓用/停用、文件夾批量導入、規範檢查與自動修復集中在一處處理。

這是什麼

dsh-skill-manager-ytxue 是一個 DSH Web 插件(當前版本 0.6.0,MIT 許可證)。插件在設置側邊欄註冊 settings.section 條目(order: 900),面板標題爲「Skill 管理」。

它面向兩類目錄:

  • 啓用目錄 ~/.dsh/skills/:系統級 Skill,DSH 原生掃描(rank 400),導入後立即生效。
  • 池目錄 ~/.dsh/skill-pool/:零掛載存放,之後按需啓用。

面板同時展示項目級 Skill(<項目根>/.dsh/skills<項目根>/.agents/skills),只讀標識,不參與規範檢查。切換 DSH 會話時,面板會按當前工作目錄自動過濾,只顯示對應項目的項目級條目。

核心功能

狀態總覽與標識

面板以雙列表展示啓用目錄與池目錄中的 Skill。每個條目旁有形態標籤:

標籤 形態 說明
bundle skills\<name>\SKILL.md 目錄型,可附帶腳本、模板等資源
flat skills\<name>.md 單文件 Markdown

標籤後還會標註系統級項目級來源。每行顯示 frontmatter 中的 description;名字旁的圓點表示檢查狀態——綠點爲已檢查且內容未變,紅點爲未檢查或內容已變更。

導入 Skill

工具欄支持從本地路徑導入,可選手動輸入或通過內置目錄瀏覽對話框選擇文件夾(從全部盤符起步,支持任意層級)。

導入邏輯會自動識別單條與批量:

  1. 路徑指向單個 Skill(含 SKILL.md 的目錄或 .md 文件)→ 導入 1 個。
  2. 路徑指向包含多個 Skill 的大文件夾 → 逐個導入直接子級,忽略非 Skill 文件。

重名時先 dry-run 預檢,彈窗列出衝突條目,可選擇跳過重名並導入其餘覆蓋重名取消。目標可選複製到啓用目錄(立即生效並自動檢查修復)或複製到池目錄。導入結果逐條顯示成功、跳過或失敗標記;目錄名會自動規整爲 kebab-case。

規範檢查與自動修復

「一鍵檢查」採用狀態驅動策略:只處理紅點條目,綠點自動跳過。檢查依據 ~/.dsh/skill-manager-ytxue.checked.json 中 SKILL.md 內容的 sha1 指紋。

不合規項會自動修復並寫入日誌 ~/.dsh/skill-manager-ytxue.log,包括:

  • 目錄名/文件名非 kebab-case → 規整重命名,同步 frontmatter name
  • name 缺失或與目錄名不一致 → 以目錄名爲準修正
  • description 缺失 → 補充佔位描述
  • 布爾字段駝峯拼寫或非標準值 → 改爲 kebab 或修正/刪除

啓用與停用

在池目錄與啓用目錄之間移動條目,支持 bundle 目錄與 flat 單文件兩種形態。發生衝突或重複時安全報錯,不會靜默覆蓋。

項目級 Skill 展示

默認只顯示當前會話對應項目的項目級 Skill。客戶端訂閱 sessions 服務,切換會話即同步工作目錄;host 向上探測 .git 祖先以確定項目根(與 DSH skill-filesystem 判定一致)。若某項目從未開過會話但仍需展示,可在 $DSH_HOME/settings.yaml 中配置:

skill-manager-ytxue:
  projectRoots:
    - '/path/to/project1'
    - '/path/to/project2'

安裝與啓用

包名說明:npm 上的 dsh-skill-manager(maintainer: gohana)是無關第三方包。本項目包名爲 dsh-skill-manager-ytxue,安裝請以 GitHub 倉庫爲準。

方式 A:git clone + dsh plugin 命令(推薦)

git clone https://github.com/YTxue/dsh-skill-manager-ytxue.git
dsh plugin --profile web add /path/to/dsh-skill-manager-ytxue

隨後在 $DSH_HOME/profiles/web/cordis.patch.yml 追加掛載條目,重啓 DSH 生效。

方式 B:git clone + 手動掛載

git clone https://github.com/YTxue/dsh-skill-manager-ytxue.git
  1. 將目錄放入 $DSH_HOME/profiles/web/node_modules/dsh-skill-manager-ytxue/
  2. $DSH_HOME/profiles/web/cordis.patch.yml 追加:
- insert:
    - id: skill-manager-ytxue
      name: 'dsh-skill-manager-ytxue'
  1. 驗證配置樹:
dsh --profile web --dump-config

輸出中應出現 skill-manager-ytxue 條目。

  1. 重啓 DSH,打開設置 → Skill 管理

也可使用遠程地址安裝(不經過 npm 同名包):

dsh plugin --profile web add git+https://github.com/YTxue/dsh-skill-manager-ytxue

要求 Node.js >= 20。

典型用法

從本機文件夾批量導入

  1. 打開 DSH Web 界面,進入設置 → Skill 管理
  2. 在導入區域點擊文件夾圖標或手動輸入路徑,指向包含多個 Skill 的目錄。
  3. 若出現重名預檢彈窗,按需選擇跳過、覆蓋或取消。
  4. 選擇目標爲啓用目錄或池目錄,確認導入。
  5. 點擊「一鍵檢查」,處理紅點條目的規範問題。

在池與啓用目錄間切換

在列表中找到目標 Skill,使用啓用/停用操作在 skill-poolskills 之間移動。bundle 與 flat 條目均按整體移動。

通過 HTTP API 調用

插件在 loopback 提供同源 API,可供腳本或自動化集成:

方法 路徑 說明
GET /api/skill-manager-ytxue/state 雙目錄狀態快照
POST /api/skill-manager-ytxue/check 檢查未檢查項並修復
POST /api/skill-manager-ytxue/enable body {name}
POST /api/skill-manager-ytxue/disable body {name}
GET /api/skill-manager-ytxue/list-dir 目錄瀏覽,?path= 缺省爲主目錄
POST /api/skill-manager-ytxue/import body {source, target?, conflict?, dryRun?}

運行單元測試

倉庫提供 core 層測試(51 項):

node test/core-test.mjs

適用場景與注意

適合誰

  • 需要在 DSH 中集中管理大量 Skill、頻繁在池與啓用目錄間切換的開發者。
  • 從外部倉庫或本地文件夾批量導入 Skill,並希望導入前處理重名衝突。
  • 希望一鍵按 DSH 規範檢查 frontmatter、目錄命名和布爾字段,減少手改成本。

注意事項

  • 插件以當前 DSH 進程權限運行,會讀寫 ~/.dsh/skills/~/.dsh/skill-pool/ 及檢查狀態文件。安裝前應閱讀源碼並確認 MIT 許可證。
  • 作者實測環境爲 Windows(PowerShell 5.1 + Node 20+);macOS / Linux 可按 README 安裝,遇問題可在 GitHub 提 Issue。
  • 若曾用 dsh plugin add 安裝後刪除目錄,啓動可能報 cannot resolve profile bundle "dsh-skill-manager-ytxue",需運行 dsh plugin --profile web remove dsh-skill-manager-ytxue 或手動清理 package.json 中的 bundles 條目。
  • 面板僅請求本機 /api/skill-manager-ytxue/*,無外部網絡請求;host 端爲零第三方依賴。

結尾

dsh-skill-manager-ytxue 把 Skill 的列表、導入、啓停和規範修復收進 DSH 設置側欄,用狀態驅動的檢查減少重複勞動,用重名預檢降低批量導入風險。若你正在維護較多 Skill 或需要規整不規範的 frontmatter,可以按上文步驟安裝試用。

  • SkillHub 目錄頁:https://www.skillhub.cn/plugins/YTxue/dsh-skill-manager-ytxue
  • GitHub 倉庫:https://github.com/YTxue/dsh-skill-manager-ytxue
羽毛球分组比赛记分
小程序二维码

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

小夜