7DGroup 开源 dsh-skill-7d-git-commit 插件
文章目录项目信息功能特性项目结构快速开始通过 dsh CLI 安装在 dsh 会话中安装推荐构建与测试使用方式提交规范与 GitLab 集成使用集成功能说明背景为什么要做提交信息校验设计原理选择 pre-receive 阶段拦截工作原理实践落地参考文章的手动部署方式踩坑部署服务端 hook规则同步观察期巡检与钉钉日报切换硬拦截注意事项许可证作者7DGroup一个 DSHDeepSeek Harness组合层插件包通过ctx.skills注册7d-git-commit技能。在生成任何git commit提交信息前自动按7DGroup 项目提交规范进行校验规避 gitlab 服务端pre-receivehook 拦截。零核心改动——安装即启用移除 bundle 行即卸载。项目信息项目值作者7DGroup版本0.1.0-rc.3运行环境Node ^22.19.0Peer 依赖deepseek-ai/cordis·deepseek-ai/dsh-skill·deepseek-ai/dsh-invariants技能名称7d-git-commitGitLab 兼容性GitLab CE 19.2.0服务端 hooks仓库地址github.com/7dgroup-ai/dsh-skill-7d-git-commit许可证MIT功能特性在git commit执行前进行客户端提交规范预判。支持 9 个固定中文类型标签【新增】、【修复】、【优化】、【调整】、【删除】、【文档】、【测试】、【回滚】、【合并】。校验标题长度、末尾标点、禁用字符/短语、动宾句式等规则。正文格式校验数字序号逐条罗列、每行 ≤70 字符。支持 Merge commit 与紧急发版[skip-check]豁免。内置事实来源references/git-commit-message.md按需加载不撑大提示词。纯组合包挂载不打 DSH 核心补丁。项目结构dsh-skill-7d-git-commit/ ├── src/ │ ├── index.ts # Cordis 插件注册技能提供者 │ └── invariant.ts # 包所有权不变量伴生插件 ├── assets/7d-git-commit/ │ ├── SKILL.md # 技能体校验逻辑 │ └── references/ │ └── git-commit-message.md # 7DGroup 提交规范事实来源 ├── assets/images/ │ └── 7d-git-commit-cover.jpg # README 封面图 ├── tests/ │ └── skill-7d-git-commit.spec.ts ├── cordis.patch.yml # 组合层补丁 ├── tsdown.config.ts # 自包含转译配置 ├── package.json └── README.md / README.zh.md快速开始前置条件dshCLI、Node^22.19.0 || 24.0.0、pnpm 10。通过 dsh CLI 安装dsh plugin--profilewebaddgithub:7dgroup-ai/dsh-skill-7d-git-commit首次 git 安装时pnpm 会拒绝运行构建脚本需要把 pnpm 打印的确切包键写入该 profile 的pnpm-workspace.yaml→allowBuilds然后重新执行命令。如需跳过构建授权可使用预构建 tarball 或发布后的 npm 包dsh plugin--profilewebadd7dgroup/dsh-skill-7d-git-commit在 dsh 会话中安装推荐最直接的方式——在任意 dsh 会话中直接告诉助手它会替你执行安装。使用 GitHub 地址形式npm 包名7dgroup/dsh-skill-7d-git-commit需等发布到 npm 后才能使用安装插件 github:7dgroup-ai/dsh-skill-7d-git-commit助手会在会话内通过 Shell 执行对应的dsh plugin命令。git 安装时会遇到同样的 pnpmallowBuilds门禁助手会打印需要添加进 profile 的 pnpm 设置文件~/.dsh/profiles/name/pnpm-workspace.yaml的确切授权键添加后让助手重试即可完成安装。构建与测试pnpminstallpnpmbuild# tsdowngit 安装时也会以 prepare 钩子运行pnpmtest# vitest使用方式安装后在 dsh 会话中提到任意与提交相关的需求即可触发为当前改动生成一条 commit message。也可以使用斜杠命令显式触发技能/7d-git-commit触发内容示例为当前改动生成一条 commit message。帮我把这次的改动写一条提交信息。检查我的提交信息是否符合 7DGroup 提交规范。修正这条 commit message让它通过规范校验。技能会执行分析改动内容。从 9 类标签中选择最匹配的类型。撰写标题【类型】 动宾短语≤50 字符无末尾标点。复杂改动补充数字序号详情每行 ≤70 字符。按校验清单逐项检查不合规则提示修正。提交规范完整规则见assets/7d-git-commit/references/git-commit-message.md。核心要求标题格式【类型】简短描述标题长度去标签后 ≤50 字符末尾禁止。.,标题/正文禁用字符 # $ % ^ * ~禁用短语待优化、TODO、FIXME、个人情绪等临时备注正文每行 ≤70 字符使用数字序号逐条罗列与 GitLab 集成使用本插件同时提供客户端 DSH skill 与服务端 GitLab hook建议组合使用形成客户端预判 服务端兜底的双层校验。**兼容性说明**服务端集成方案已适配并在GitLab CE 19.2.0上验证通过custom hooks 规则配置。客户端assets/7d-git-commit/SKILL.md在git commit前校验提交信息。服务端docs/gitlab-integration/pre-receive在git push到达仓库前校验并告警/拦截。规范来源assets/7d-git-commit/references/git-commit-message.md客户端与服务端共用同一套规则。集成功能说明背景为什么要做提交信息校验每接收一份新版本代码第一件事往往是查看 git log。如果提交记录杂乱无章、看不出每次提交做了什么对他人 review 和后续维护都很痛苦。规范的提交记录CHANGELOG不仅有助于他人 review 代码也能高效输出 Release Note对版本管理至关重要。因此考虑用 GitLab 服务端 hook 对 git change log 做校验拦截不符合规范的提交。设计原理选择 pre-receive 阶段拦截GitLab 服务端 hook 分为三种对应 push 完成后服务端的处理流程Hook阶段作用pre-receive推送前用户 push 之后刚到 GitLab 服务器内用于拦截用户的推送update更新中提交更新到 GitLab 仓库内post-receive推送后提交到 GitLab 成功之后用于推送通知处理流程示意非 00用户 pushpre-receive推送前拦截结束推送不合规提交被拒绝update提交更新到仓库post-receive推送通知在pre-receive推送前阶段做提交信息校验如果不符合规范脚本直接以非 0 退出该推送便不会进入 GitLab 仓库。工作原理pre-receive从标准输入读取本次推送的信息oldrev newrev refname旧 commit id、新 commit id、分支名再用git log取出提交者、提交日期与提交注释最后用正则校验标题是否以约定前缀开头参考文章示例fix|add|del|update|temp|test|revert|Merge不匹配则输出错误并exit 1拒绝推送。实践落地参考文章的手动部署方式找到仓库物理路径GitLab 自某版本起采用 hash 存储需通过管理员账号获取仓库对应的物理路径形如/srv/gitlab/data/git-data/repositories/hashed/78/5f/785f3ec7...git。创建 custom_hooks在仓库目录下新建custom_hooks目录再创建pre-receive文件shell 脚本。赋予执行权限chmod x pre-receive。本地 push 验证不符合规范的提交会推送失败符合规范则正常推送。本仓库docs/gitlab-integration/是上述方案的工程化实现遍历 stdin 全部 ref而非只读第一行、warn/reject 双模式、规则外置到commit-rules.conf、审计日志与钉钉日报可直接用install-hooks.sh一键部署见下文。踩坑GitLab 不同版本自带的 git 版本不一致相同命令的输出也可能不一致需要特别注意。例如git log --no-merges --date-order -1在不同 git 版本下输出格式存在差异脚本不要依赖未验证的命令输出。参考文章GitLab 服务端 hook 拦截提交到仓库部署服务端 hook将docs/gitlab-integration/目录复制到 GitLab 服务器然后执行# 单仓试点sudobashinstall-hooks.sh--pilotdevops/7dgroup# 试点验证通过后推广全局sudobashinstall-hooks.sh--global规则同步当本仓库中docs/gitlab-integration/commit-rules.conf变更后sudobashscripts/sync-rules.sh--global--dry-runsudobashscripts/sync-rules.sh--global观察期巡检与钉钉日报# 生成 Markdown 日报sudobashscripts/audit-report.sh--markdown# 推送钉钉机器人exportDINGTALK_WEBHOOKhttps://oapi.dingtalk.com/robot/send?access_tokenxxxsudo-Ebashscripts/dingtalk-notify.sh切换硬拦截完成docs/gitlab-integration/switch-to-reject-checklist.md。将部署后的commit-rules.conf中MODE改为reject。下次 push 立即生效。完整部署 SOP 见docs/gitlab-integration/deployment-guide.md。注意事项该提供方只贡献一个固定 skill不提供运行时自定义。prepare构建不附带类型声明dsh Loader 只加载运行时入口。构建只做转译dts: false没有 lint 或类型检查脚本——类型错误只能在编辑器/IDE 中暴露。docs/gitlab-integration/目录文件不进入 DSH 运行时包请按需复制到 GitLab 服务器使用。许可证MIT · Copyright © 2026 7DGroup

相关新闻

从零添加你的第一个游戏:Sunshine 应用管理完整指南

从零添加你的第一个游戏:Sunshine 应用管理完整指南

从零添加你的第一个游戏:Sunshine 应用管理完整指南 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 你打开 Sunshine 的 Web 界面,满怀期待地准备串流昨晚刚…

2026/8/18 10:01:45 阅读更多 →
Java企业AI转型实战:技术栈重构与典型场景落地

Java企业AI转型实战:技术栈重构与典型场景落地

1. Java企业向AI应用开发转型的必然性 当ChatGPT引爆全球AI热潮时,许多Java工程师还在纠结Spring Boot的自动配置原理。直到有一天,公司CTO在全员会议上宣布:"明年所有产品线必须接入AI能力",我才猛然意识到——这个曾经…

2026/8/18 10:01:45 阅读更多 →
每天1小时 vs 10分钟:游戏自动化工具三月七小助手如何重写星穹铁道的夜晚

每天1小时 vs 10分钟:游戏自动化工具三月七小助手如何重写星穹铁道的夜晚

每天1小时 vs 10分钟:游戏自动化工具三月七小助手如何重写星穹铁道的夜晚 【免费下载链接】March7thAssistant 崩坏:星穹铁道全自动 三月七小助手 项目地址: https://gitcode.com/gh_mirrors/ma/March7thAssistant 下班后瘫在沙发上打开《崩坏&am…

2026/8/18 10:01:45 阅读更多 →

最新新闻

QSFP/QSFP-DD/OSFP 通用管理接口规范(CMIS)解读:08 Page 10h I

QSFP/QSFP-DD/OSFP 通用管理接口规范(CMIS)解读:08 Page 10h I

文章目录8.8.0 带 Bank 的 Page 10h(通道控制与数据路径控制)概述8.8.1 数据路径初始化控制 (DPDeinit位)8.8.2 通道特定直接效果控制字段8.8.2.0 概述:什么是“直接效果控制”?8.8.2.1 Tx输出静音功能及其控制8.8.2.2 Rx输出静音…

2026/8/18 13:51:32 阅读更多 →
RAG 中如何设计 Prompt 来有效利用检索到的文档?

RAG 中如何设计 Prompt 来有效利用检索到的文档?

RAG 中如何设计 Prompt 来有效利用检索到的文档? RAG 中如何设计 Prompt 来有效利用检索到的文档? 在 RAG 系统中,Prompt 的设计是连接“检索到的文档”与“最终生成答案”的关键桥梁。即使检索到高度相关的文档,如果 Prompt 未能…

2026/8/18 13:51:32 阅读更多 →
langgrah使用pgsql做会话存储会自己创建表吗

langgrah使用pgsql做会话存储会自己创建表吗

是的,LangGraph 使用 PostgreSQL 做会话存储时,会自己自动创建所需的表。 你不需要手动编写 SQL 建表语句,LangGraph 提供了内置的方法来完成这一步。具体机制如下: ⚙️ 自动建表的核心方法: setup() 在使用 PostgreS…

2026/8/18 13:51:32 阅读更多 →
langchain4j (三)

langchain4j (三)

PromptTemplate提示词模板 Test public void testChatModelQwenChatStructuredPromptTemplete() { String apiKey System.getenv(“aliQwen-key”); OpenAiChatModel model OpenAiChatModel.builder() .baseUrl(“https://dashscope.aliyuncs.com/compatible-mode/v1”) .api…

2026/8/18 13:51:32 阅读更多 →
B站m4s文件打不开?3步无损合并成MP4,免转码转换完整指南

B站m4s文件打不开?3步无损合并成MP4,免转码转换完整指南

B站m4s文件打不开?3步无损合并成MP4,免转码转换完整指南 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter m4s-converter 是…

2026/8/18 13:51:32 阅读更多 →
dockerpull -docker加速镜像

dockerpull -docker加速镜像

20241006更新,亲测可用。 注意:这个方法随时可能会失效。 编辑配置文件,修改镜像源: vi /etc/docker/daemon.json {"registry-mirrors": ["https://do.nark.eu.org","https://dc.j8.work","ht…

2026/8/18 13:50:32 阅读更多 →

日新闻

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF 【免费下载链接】extract-video-ppt extract the ppt in the video 项目地址: https://gitcode.com/gh_mirrors/ex/extract-video-ppt 如果你还停留在"看网课 不停暂停 截图 …

2026/8/18 0:00:57 阅读更多 →
思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查

思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查

思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 你是不是也经历过这种时刻:设计稿里…

2026/8/18 0:00:58 阅读更多 →
华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate

华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate

华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, …

2026/8/18 0:00:59 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/18 9:15:35 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/18 9:06:28 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/18 9:04:56 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/17 18:54:37 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/17 18:55:16 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/17 18:55:55 阅读更多 →