dsh-plugin-forge:人工把關的 DSH 插件創建、驗證與發佈工作臺

前言

給 DeepSeek Harness(DSH)寫插件,代碼本身往往不是最花時間的部分。真正容易出問題的是兩頭:起步時要建目錄、套模板、配依賴;發佈前要跑類型檢查、測試、打包預覽、密鑰掃描,還要確認包能裝進一個乾淨的 DSH profile。這些步驟手工做一遍不難,難的是每次都不漏。

dsh-plugin-forge 把這整條鏈路搬進了 DSH 的聊天工作流,並在關鍵節點上設置了人工確認:模型可以幹活,但不能替你批准階段、建倉庫或發包。下面介紹它的定位、安裝與典型用法。

這是什麼

dsh-plugin-forge 是由 luoyuejun9 維護的一個 DSH 插件,定位一句話可以說清:一個人工把關(human-gated)的插件創建、驗證與發佈工作臺。

基本信息:

  • 版本:0.1.0
  • 許可:MIT
  • 目標 DSH 版本:0.1.0-rc.6
  • 運行環境:DSH Web profile
  • 運行要求:Node >= 22.19

它把「一個插件想法」變成一串可追溯的產出:先生成版本化的規格,再生成安全的項目腳手架,接着跑驗證拿到證據,做一次隔離的 DSH 安裝檢查,最後——只有在人工明確確認之後——才發佈到 GitHub/npm。

DSH 的理念是「一切皆插件」,「怎麼規範、安全地把一個插件做出來併發布出去」本身就是生態裏的真實需求,dsh-plugin-forge 解決的就是這個問題。

核心能力

四個 v0.1 模板

新項目從模板起步,當前提供四種:

  • tool-command
  • skill-wrapper
  • stateful
  • bundle

/forge 命令與 Web Studio 卡片

插件面向 DSH Web profile,貢獻了 /forge 命令,並在聊天裏提供一張可重放的 Plugin Forge 卡片。這張卡片是原生 DSH Conversation Node,狀態基於持久化的 forge/* 會話事件重建,因此重放對話、加載更多聊天曆史之後,階段狀態依然在。

階段推進只認人工確認

整條工作流裏,只有 /forge continue 能把階段往前推。模型可以讀狀態、做校驗、跑檢查、寫入受限的實現文件,但不能批准階段、不能創建倉庫、不能發佈包。發包這一步始終留在人手裏。

安裝與啓用

用官方安裝命令,把插件裝進 Web profile:

dsh plugin --profile web add dsh-plugin-forge@0.1.0

安裝完成後需要重新加載 DSH Web profile,之後 /forge 命令和聊天裏的 Plugin Forge 卡片就可以使用了。

典型用法

下面是從 README 中照搬的完整流程,從環境檢查一直到發佈:

/forge doctor
/forge new dsh-my-plugin --type tool-command --title "My plugin" --description "A focused DSH capability"
/forge continue <forge-id>
/forge run <forge-id>          # scaffold
/forge continue <forge-id>
/forge run <forge-id>          # implementation assistance
/forge continue <forge-id>
/forge run <forge-id>          # verification
/forge continue <forge-id>
/forge release <forge-id> --dry-run
/forge publish <forge-id> --fingerprint <sha256>

按順序拆開看:

  1. /forge doctor 先檢查環境是否就緒。
  2. /forge new 創建新插件項目,指定類型、標題和描述。生成的項目必須是活動 DSH workspace 下的新目錄。
  3. 接下來是 continue 與 run 交替推進:先做 continue 進入下一階段,再做 run,依次用於 scaffold(生成腳手架)、implementation assistance(實現輔助)、verification(驗證)。
  4. 經過上面的步驟,項目完成了腳手架、實現和驗證,用 /forge release <forge-id> --dry-run 預演一次發佈,不真正發包。
  5. 確認無誤後,/forge publish <forge-id> --fingerprint <sha256> 攜帶當前 release fingerprint 正式發佈。

本地開發驗證用這三條命令:

npm install
npm run check
npm pack --dry-run

安全邊界

這個插件對「模型能做什麼」劃得比較細,幾條規則都寫在了文檔裏:

  • 生成的項目必須是活動 DSH workspace 下的新目錄。
  • 模型只能寫 src/、test/、schemas/、docs/ 這幾個目錄;模板、依賴、發佈配置、.git 與憑據都受保護。
  • 新增依賴須通過與一個小型 DSH/TypeScript 白名單的比對。
  • 驗證流程會跑 npm install --ignore-scripts、typecheck、test、build、pack preview、secret scan,以及一次乾淨的 DSH profile 安裝。
  • 發佈需要當前 release fingerprint,項目有任何變更都會使既定的發佈計劃失效。
  • Forge 會調用你已有的 git、gh、npm 會話,但不讀取、也不存儲它們的憑據。

適用場景與注意事項

適合誰:需要反覆開發 DSH 插件、想把從創建到發佈的流程固定成一條可重放工作流的開發者;尤其是希望模型負責執行、但發佈決策留在自己手裏的場景。

幾點注意:

  • 插件以當前 dsh 進程的權限運行,安裝前建議先查看源碼與許可證(MIT,倉庫另有中文文檔 README.zh.md)。
  • 安裝後需要重新加載 DSH Web profile 才能生效。
  • 發佈是人工確認制:--dry-run 不會發包,publish 必須攜帶有效的 fingerprint,項目變更後需要重新走發佈計劃。

結尾

dsh-plugin-forge 的價值不在替你多寫多少代碼,而在把「造插件」這件事裏容易出錯的環節——腳手架、驗證、安裝檢查、發佈——串成一條有人工閘門的流水線。如果你在給 DSH 生態寫插件,值得試一試。

  • 社區目錄頁(社區維護的獨立站點,與 DeepSeek / 幻方無官方從屬關係):https://www.skillhub.cn/plugins/luoyuejun9/dsh-plugin-forge
  • GitHub 倉庫:https://github.com/luoyuejun9/dsh-plugin-forge
羽毛球分组比赛记分
小程序二维码

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

小夜