dsh-git-conventions:爲 DeepSeek Harness 配置 Git 提交、推送與 PR 規範

前言

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。

羽毛球分组比赛记分
小程序二维码

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

小夜