7dgroup-ai/dsh-skill-7d-git-commit:在 DSH 會話中校驗 7DGroup commit 規範

前言

在 DSH 會話裏讓智能體生成 git commit 信息時,常見的問題是:內容能寫出來,但不一定符合團隊提交規範。日誌不規範會影響 review、Release Notes 和版本管理。

7dgroup-ai/dsh-skill-7d-git-commit 是一個 DSH 組合層插件包。它在 ctx.skills 上註冊 7d-git-commit 技能,並在生成 git commit 信息前,按 7DGroup 提交規範進行客戶端校驗。

下面介紹它的定位、校驗規則、安裝方式、使用示例,以及當前資料中可確認的 GitLab 集成邊界。

插件定位

  • 倉庫 owner:7dgroup-ai
  • npm 包名:@7dgroup/dsh-skill-7d-git-commit
  • 版本:0.1.0-rc.3
  • 許可證:MIT
  • 類型:DSH bundle 插件,屬於組合層,資料中標明“零核心改動”
  • 啓用方式:安裝 bundle 後,在對應 DSH profile 會話中可用;移除 bundle 即可卸載

它的主要作用是把提交規範檢查前移到 DSH 會話中:在真正執行 git commit 前,先檢查提交信息是否符合 7DGroup 規範。

校驗規則

資料中可確認的校驗點包括:

  • 在 git commit 執行前進行客戶端提交信息校驗
  • 支持 9 個固定中文類型標籤,例如 【新增】、【修復】、【優化】、【文檔】;完整標籤列表以規範文件爲準
  • 校驗標題長度、標點、禁用字符 / 禁用短語和措辭規則
  • 校驗正文格式:編號列表、每行最多 70 字符
  • 對合並提交和緊急 [skip-check] 部署提供豁免
  • 附帶 references/git-commit-message.md 作爲按需加載的規範來源

README 中給出的高層規則如下:

  • 標題格式:【類型】簡短描述
  • 標題長度:標籤後不超過 50 個字符
  • 標題末尾不使用 。、,、.、,
  • 標題和正文中禁用字符:@ # $ % ^ & * ~
  • 禁用短語:臨時記錄、TODO、FIXME、情緒化措辭
  • 正文行最多 70 字符,且只使用編號列表

README 的項目結構將規範文件路徑寫爲:

assets/7d-git-commit/references/git-commit-message.md

安裝與啓用

環境要求

dsh CLI
Node ^22.19.0 || >=24.0.0
pnpm 10+

peerDependencies 爲:

@deepseek-ai/cordis ^4.0.1
@deepseek-ai/dsh-invariants ^0.1.0-rc.5
@deepseek-ai/dsh-skill ^0.1.0-rc.5

包中 dsh.bundle.patch 指向:

./cordis.patch.yml

使用 GitHub 安裝

資料給出的安裝命令是:

dsh plugin --profile web add github:7dgroup-ai/dsh-skill-7d-git-commit

該示例使用 web profile。

首次通過 git 安裝時,pnpm 會拒絕運行 build script,直到你把精確 package key 加入對應 profile 的 pnpm-workspace.yaml 的 allowBuilds。加入後,重新運行同一條安裝命令。

使用 npm 包安裝

資料同時給出 npm 包安裝命令:

dsh plugin --profile web add @7dgroup/dsh-skill-7d-git-commit

資料說明,爲避免 build 授權,可使用預構建 tarball 或已發佈 npm 包。當前資料未說明 GitHub 安裝和 npm 安裝哪個是唯一默認方式。

在 dsh 會話中安裝

資料建議在 dsh 會話中直接要求智能體安裝:

安裝插件 github:7dgroup-ai/dsh-skill-7d-git-commit

資料說明,git 安裝時智能體可能會遇到同一個 pnpm allowBuilds 檢查,並打印需要加入的 key。按提示加入對應 profile 的 pnpm 配置文件後,再讓智能體重試。

資料中給出的會話示例路徑是:

~/.dsh/profiles/<name>/pnpm-workspace.yaml

典型用法

安裝後,在 dsh 會話中提出 commit 相關請求即可。資料給出的示例包括:

  • Generate a commit message for the current changes.
  • Write a commit message for these changes.
  • Check whether my commit message follows the 7DGroup convention.
  • Fix the commit message so it passes the validation rules.

也可以顯式觸發技能:

/7d-git-commit

資料描述的技能步驟如下:

1、分析當前變更。

2、從允許的 9 類標籤中選擇最匹配的類型標籤。

3、生成 subject line,格式爲 【類型】動作 + 對象,標籤後不超過 50 字符,且結尾不加標點。

4、對複雜變更增加編號正文,每行不超過 70 字符。

5、運行校驗清單,拒絕或修復不符合項。

GitLab 集成

資料說明,該插件同時提供客戶端 DSH skill 和服務端 GitLab hook,用於“客戶端預檢 + 服務端強制”。

  • 客戶端:assets/7d-git-commit/SKILL.md 在 git commit 前校驗提交信息
  • 服務端:docs/gitlab-integration/pre-receive 在 push 到達 GitLab 前校驗
  • 共享規則來源:assets/7d-git-commit/references/git-commit-message.md
  • 兼容說明:服務端集成適配並驗證於 GitLab CE 19.2.0 的 server-side hooks

資料中給出的 pre-receive 流程是:從 stdin 讀取 pushed refs,格式爲 oldrev newrev refname,然後使用 git log 提取 author、date、subject,並通過正則檢查 subject 前綴。

需要說明的是,資料中的 pre-receive 正則示例被截斷,完整服務端 hook 規則未確認。使用 GitLab 側規則時,應以倉庫中的實際文件和配置爲準。

適用場景與注意

適合以下使用方式:

  • 希望在 DSH 會話中生成 commit message 前先按固定規範檢查
  • 希望客戶端預檢和服務端 GitLab hook 使用同一份規範來源
  • 希望以 bundle 方式安裝,避免核心改動

注意:

  • DSH 插件會在當前 dsh 進程權限下運行相關動作。安裝前應檢查源碼、許可證和依賴。
  • 本插件許可證爲 MIT。
  • 運行要求包括 dsh CLI、Node ^22.19.0 || >=24.0.0、pnpm 10+,以及上述 peerDependencies。
  • 通過 git 安裝會觸發 pnpm build script 授權檢查;若環境不允許運行 build script,可改用資料給出的 npm 包安裝方式。
  • 資料未提供分類、星標數、目錄頁 URL 等字段;本文不把這些無法確認的信息寫成確定事實。

結尾

7dgroup-ai/dsh-skill-7d-git-commit 的價值在於把 7DGroup commit 規範變成 DSH 會話中的前置檢查,並在需要時配合 GitLab 服務端 hook 使用。

當前已覈實資料未提供目錄頁 URL;GitHub 倉庫爲:

https://github.com/7dgroup-ai/dsh-skill-7d-git-commit
羽毛球分组比赛记分
小程序二维码

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

小夜