前言¶
在 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。 - 运行要求包括
dshCLI、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