前言¶
在 DeepSeek Harness(DSH)裏做代碼審查或改動的跟進時,模型需要知道「改了哪些文件、增刪多少行、hunk 長什麼樣」。常見做法是整段粘貼 git diff,體積大、噪聲多,還容易把未跟蹤文件或無關上下文一併塞進去。下面介紹社區插件 dsh-diff-context(維護者 lengrufeng2008,分類:工作流):它在本機讀取 Git 差異,輸出結構化、有邊界的 diff 摘要,且不調用模型、不發起網絡請求。
這是什麼¶
dsh-diff-context 的定位是:Read-only compact git diff context —— 文件列表、增刪行數、hunk 文本,只讀、緊湊。倉庫地址:GitHub;社區目錄頁:SkillHub。SkillHub 與 DeepSeek / 幻方無官方從屬關係,DSH 生態採用「一切皆插件」的思路,插件在獨立站點收錄。
許可證爲 MIT(README Provenance);package.json 中版本 0.1.0,要求 Node.js >= 20。
核心功能¶
插件自述爲小型獨立 diff 讀取器,能力以 README 爲準:
- 工作區或暫存區 diff:通過 CLI 指定路徑,可選
--json或--staged。 - 在 DSH 內調用:通過技能/指令使用
diff_context針對當前倉庫(見下文典型用法)。 - 邊界明確(Limits):
- 不包含未跟蹤文件(No untracked files)
- 不做語義或風險分析(No semantic/risk analysis)
- 不執行測試(No test execution)
- hunk 文本有長度上限;輸出不是審查結論或批准(Bounded hunk text; not a review approval)
安裝與啓用¶
目錄頁「發送給 DeepSeek Harness 安裝」區塊提供可複製話術,核心是向 DSH 說明安裝插件 lengrufeng2008/dsh-diff-context(頁面以 請安裝 DSH 插件 lengrufeng2008/dsh-diff-context 開頭)。複製時以 SkillHub 插件頁 當前全文爲準。
安裝前建議自行查看 GitHub 源碼與 LICENSE,並知悉:插件以當前 DSH 進程的權限運行,會讀取本機 Git 倉庫狀態。
package.json 中 dsh.bundle.patch 指向 ./plugin/cordis.patch.yml,由 DSH 插件打包機制集成;勿憑插件名自行拼接未在文檔出現的 shell 安裝命令。
典型用法¶
命令行(倉庫根目錄或指定路徑)¶
README 中的可復現示例:
node bin/dsh-diff-context.mjs . --json
node bin/dsh-diff-context.mjs . --staged
第一行對工作區 diff 輸出 JSON;第二行鍼對已暫存變更(--staged)。
在 DSH 會話中¶
Use diff_context on this repository.
經過上面的步驟,Harness 會走插件提供的只讀 diff 上下文,而不是讓你手動複製整段 git diff。
適用場景與注意¶
適合:需要在 Agent 工作流裏快速注入「改了什麼」的事實層上下文;本地審查、變更說明、與 DSH 技能鏈配合時,希望 diff 格式統一、體積受控。
不適合:依賴未跟蹤文件清單、自動化風險打分、或跑測試再決定是否合併的場景 —— 這些均在 Limits 中明確排除。
維護者倉庫提供測試入口:
npm test
(對應 node --test test/*.test.mjs。)
結尾¶
dsh-diff-context 把 Git diff 收成 DSH 可用的只讀上下文:文件、增刪、hunk,無模型、無網絡。若你在工作流裏反覆手工貼 diff,可以按目錄頁指引安裝後在會話裏使用 diff_context。
- 目錄頁:https://www.skillhub.cn/plugins/lengrufeng2008/dsh-diff-context
- GitHub:https://github.com/lengrufeng2008/dsh-diff-context