关于 commit-summary
commit-summary 是用于根据实际 Git 差异生成 Conventional Commits 候选信息的技能,面向需要清晰拆分和审查提交的开发者。只有在获批后才会暂存或创建提交。
主要功能
- 01检查暂存与未暂存差异
- 02建议提交类型和作用域
- 03识别混合变更并建议拆分
- 04检查敏感文件与破坏性变更
- 05获批后暂存或创建提交
适用场景
- 01为代码变更拟定 Conventional Commit 信息
- 02将无关改动拆分为独立提交
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ shipshitdev/ skills --skill commit-summary安装后在 Claude Code 中输入/commit-summary确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
plugin.jsonREADME.mdlicenses/LICENSELICENSE-cursor-team-kitLICENSE-superpowersNOTICE.txt详细介绍
提交摘要
根据实际 Git 差异生成准确的 Conventional Commits。
授权范围
只能在用户请求和现有批准范围内操作;加载此技能不会赋予任何新权限。仅报告的请求必须只报告,遵守调用方指定的目标、主机、提供方和成本限制,扩展范围前须先询问,并将这些限制告知委派对象。
约定
输入:
- 仓库根目录
- 已暂存的更改、未暂存的更改,或已批准暂存的路径
- 可选的提交类型、范围和破坏性更改上下文
输出:
- 候选提交消息
- 更改混杂时的逻辑提交分组
- 经批准后创建的提交哈希(如有请求)
创建/修改:
- 仅生成消息模式下不做任何更改
- 经批准后可暂存文件并创建提交
外部副作用:
- 除非后续工作流推送该提交,否则无
需要确认:
- 暂存文件前
- 创建提交前
- 修改或压缩现有提交前
委派给:
- 当提交需要推送并创建 PR 时,委派给
github-pr-publish - 当差异中出现机密或敏感文件时,委派给
git-safety
工作流
-
检查仓库状态:
git status -sb git log --oneline -5 git diff --stat git diff --cached --stat -
确定更改是否已暂存:
- 如果存在已暂存的更改,根据
git diff --staged生成消息。 - 如果没有暂存任何内容,检查未暂存的更改并提出逻辑分组。
- 如果混有无关更改,建议拆分为多个提交。
- 如果存在已暂存的更改,根据
-
防止不安全的提交:
- 不要暂存机密、
.env、凭据、私钥、本地数据库、构建缓存或大型生成产物。 - 如果出现敏感文件,请停止并委派给
git-safety。 - 除非功能或修复所必需,否则不要在功能/修复提交中包含无关的格式改动。
- 不要暂存机密、
-
选择 Conventional Commit 类型:
feat:面向用户的功能或能力fix:错误修复docs:仅文档更改style:仅格式调整,不改变行为refactor:重构代码,不改变行为perf:性能改进test:仅测试build:构建系统、包管理器、依赖项ci:CI/CD 工作流更改chore:不影响用户可见行为的维护工作revert:撤销先前的提交
-
确定范围:
- 优先使用历史记录中已有的包、应用、领域或子系统名称。
- 如果范围过于笼统(
misc、stuff、changes),则省略范围。
-
检测破坏性更改:
- 公共 API 合约更改
- CLI 标志或输出更改
- 需要用户采取操作的数据库/架构迁移
- 移除配置键、环境变量、路由、事件或导出符号
格式为
type(scope)!: summary,并包含BREAKING CHANGE:页脚。 -
生成提交消息:
type(scope): imperative summary Optional body explaining why and any non-obvious implementation detail. Optional footer such as: BREAKING CHANGE: migration required because ... Refs: #123 -
如果用户要求提交,展示完整的确切消息,并在授权范围内继续操作。只有当所选文件或操作超出请求范围时,才需征求批准:
git add <approved-paths> git diff --staged --stat git commit -m "<subject>" -m "<body-or-footer>"
质量标准
- 标题使用祈使语气,且少于 72 个字符。
- 如果仅凭差异不足以说明原因,则在正文中解释原因。
- 消息不得夸大实际行为。
- 每个提交只包含一个逻辑更改。
- 除非仓库惯例要求,否则不要在提交消息中写入验证命令。
注意事项
git add .可能会暂存不需要的文件。 如果.gitignore未排除node_modules、.env*或构建产物,请始终优先使用git add <specific-paths>。提交前,使用git diff --staged --stat进行检查。- Breaking-change 页脚区分大小写。 对于
semantic-release和conventional-changelog等工具,标记必须准确写为BREAKING CHANGE:(包含一个空格且全部大写),才能被识别。BREAKING-CHANGE:并不等同于它。 - 修正提交会改写历史。 切勿修正已推送到共享分支的提交。如果该提交已存在于远程仓库,请改为创建一个新的修复提交。
- Co-authored-by 页脚可能与仓库规范冲突。 有些仓库(包括本项目)明确禁止使用
Co-Authored-By页脚。添加之前,请检查仓库的 Agent 指令文件(AGENTS.md、CLAUDE.md或同类文件)或近期提交历史,了解项目规范。
示例
feat(auth): add password reset flowfix(api): handle null provider responseci(actions): restrict pull request token permissionsrefactor(utils): extract date formatting helperdocs: update GitHub project board workflow
评论
支持 Markdown