前言¶
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。