前言¶
DeepSeek Harness(DSH)的插件生態強調「一切皆插件」。在 DSH 中執行 Git 相關命令時,提交信息格式、強推方式和 PR 標題 / 描述完整性都需要人工約定。dsh-git-conventions 用於把這類約定做成可配置的檢查規則,覆蓋 git commit、git push 與 gh pr create。下面介紹它的定位、功能、安裝方式和典型用法。
這是什麼¶
dsh-git-conventions 是 DeepSeek Harness 的靜態插件,運行於 Host + Client 雙端。它提供可配置的 Git 提交 / 推送 / 拉取請求規範。規則文本由用戶在設置頁配置,經宿主 settings 持久化到 settings.yaml;插件的攔截邏輯不硬編碼任何規則。
倉庫地址:https://github.com/CN-WenYu/dsh-git-conventions。許可證爲 MIT。
核心功能¶
提交信息校驗¶
插件會對 git commit -m 的內聯消息做 Conventional Commits 結構檢查。消息不合規時拒絕執行,並回顯不合規點與當前規則。
它只處理 -m / --message 內聯消息。由於守衛同步執行,無法讀取 -F / --file 指向的文件內容,因此文件消息不會被攔截。
推送安全¶
當 git push 使用裸 --force 或 -f 時,插件會提示改用 --force-with-lease。該提醒在 useForceWithLease=true 時生效。
PR 完整性¶
當 gh pr create 缺少 --title 或 --body 時,插件會拒絕執行,並給出補齊提示。由於 tools/execute 管道不提供參數改寫,這裏的實現是校驗,而不是自動注入缺失的標題或描述。
規則與開關¶
規則文本來自設置頁配置。規則文本留空或清空時,會回退到當前語言默認規則,校驗仍生效。
設置頁與攔截消息支持簡體中文 / 英文,跟隨宿主語言偏好。關閉「強制攔截」後,守衛不再介入,全部命令放行;對應配置項爲 enforce=false。
安裝與啓用¶
先做安裝,再做配置,最後用命令驗證:
1、確認目標 profile 爲 web。
2、按包名安裝:
dsh plugin --profile web add dsh-git-conventions
3、在 DSH 設置頁配置規則文本、enforce 與 useForceWithLease。
經過上面的步驟後,插件會按當前配置攔截或放行相關命令。
典型用法¶
正常放行¶
以下示例符合規則時正常執行:
git commit -m "feat(agent): 新增 git 提交規範攔截"
git commit -m "fix(commit): 修正 subject 校驗的空消息邊界"
git push --force-with-lease
gh pr create --title "feat: 支持 scope 校驗" --body "動機與背景 / 主要改動 / 測試與驗證 / 影響範圍"
被攔截¶
以下提交信息會因不滿足 Conventional Commits 形狀檢查而拒絕:
git commit -m "新增提交規範攔截"
git commit -m "feat: 新增提交規範攔截。"
第一條缺少 <type>(<scope>): <subject> 前綴;第二條 subject 以句號結尾。
以下推送命令在 useForceWithLease=true 時會收到改用 --force-with-lease 的提醒:
git push --force
git push -f
以下 PR 命令會因缺少標題或描述被拒絕:
gh pr create --title "feat: 新增校驗"
gh pr create --body "缺少標題"
適用場景與注意¶
dsh-git-conventions 適合需要在 DSH 中約束 Git 工作流的開發者:提交信息需要遵循 Conventional Commits 形狀、減少裸 --force 誤用、PR 創建時至少包含標題和描述。
使用前注意:
- 插件會介入當前 DSH 進程中的命令檢查,且以當前 dsh 進程權限運行;安裝前應檢查源碼與許可證。
- 它只檢查
-m/--message內聯消息,不讀取-F/--file文件內容。 enforce=false時全部命令放行。- 規則文本留空或清空時回退當前語言默認規則,校驗仍生效。
gh pr create的校驗不會改寫參數,只會在缺少--title/--body時拒絕並提示補齊。- 按 npm 包名安裝時,不需要額外補
schemastery依賴鏈接;以工作區路徑安裝時需要補該依賴鏈接。
結尾¶
dsh-git-conventions 將 Git 提交、推送和 PR 規範從人工約定變成設置頁可配置的檢查規則。規則文本由用戶維護,插件只負責按當前配置做結構檢查和攔截提示。
社區目錄是獨立站點,不等同於官方應用商店;GitHub 倉庫見:https://github.com/CN-WenYu/dsh-git-conventions。