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 个字符
  • 标题末尾不使用 .,
  • 标题和正文中禁用字符:@ # $ % ^ & * ~
  • 禁用短语:临时记录、TODOFIXME、情绪化措辞
  • 正文行最多 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.yamlallowBuilds。加入后,重新运行同一条安装命令。

使用 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.mdgit 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.0pnpm 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
羽毛球分组比赛记分
小程序二维码

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

小夜