mcpField
C
conventional-commit

conventional-commit

github.com/jkappers开发0197 次安装37 周前更新
代码仓库

关于 conventional-commit

conventional-commit 是用于编写符合 Conventional Commits v1.0.0 的 Git 提交信息的技能。它检查已暂存的更改并确定类型与可选范围,且只提交已暂存的文件。

主要功能

  1. 01检查已暂存差异
  2. 02选择提交类型和范围
  3. 03按规范格式化提交信息
  4. 04支持正文和页脚
  5. 05不暂存文件

适用场景

  1. 01为已暂存更改编写提交信息
  2. 02根据差异确定类型和范围
  3. 03为提交添加背景或破坏性变更说明

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/jkappers/agent-skills --skill conventional-commit

安装后在 Claude Code 中输入/conventional-commit确认已加载。

详细介绍

提交编写

按照 Conventional Commits v1.0.0 创建 git 提交。

使用参数调用时,为 $ARGUMENTS 提交已暂存的更改。

此技能仅适用于 git 提交消息。除非另有明确要求,否则不要将这些规范用于 PR 标题、分支名称、变更日志条目或发行说明。

工作流

  1. 运行 git diff --cached 检查已暂存的更改
  2. 如果没有已暂存的更改,请报告并停止
  3. 分析差异,确定合适的类型、范围和描述
  4. 按照以下规则编写提交消息
  5. 运行 git commit -m "<message>"(多行消息请使用 HEREDOC)
  6. 不要暂存文件。只提交已暂存的内容。

消息结构

<type>[optional scope]: <description>

[optional body]

[optional footer(s)]

类型

类型用途
feat新功能
fix修复错误
docs仅修改文档
style格式、空白字符
refactor既非修复也非功能
perf性能改进
test添加或更新测试
build构建系统或依赖项
ciCI 配置
chore维护任务

范围

范围为可选项。使用时,将其设为受影响的代码库模块、组件或区域。

根据项目结构确定范围。使用目录名称或模块名称,而不是文件名。

示例:feat(auth):、fix(api):、docs(readme):、refactor(db):

如果更改涉及多个方面,或影响项目根目录,则省略范围。

描述

使用祈使语气:“add feature”,而不是“added feature”或“adds feature”。 类型前缀后的首字母使用小写。 省略末尾句点。 限制在 50 个字符以内。

正文

每行限制在 72 个字符以内。说明更改了什么以及原因,而不是如何更改。

正文与描述之间空一行。

使用正文补充仅从差异中无法得知的背景信息:动机、权衡或影响实现方案的限制。

禁止内容

提交消息中不得包含以下内容:

  • AI 署名(“Generated with Claude Code”、AI 的“Co-authored-by”行)
  • 类型前缀或描述中的表情符号
  • 时间估算或日期
  • TODO 项或对未来工作的引用
  • 文件列表(差异中已显示更改内容)
  • 道歉或模棱两可的表达(“try to fix”“hopefully resolves”)

示例

简单示例:

docs: correct spelling of CHANGELOG

带范围:

feat(lang): add Polish language

破坏性更改:

feat!: send email to customer when product ships

BREAKING CHANGE: customers now receive emails by default.

带正文:

fix: prevent duplicate form submissions

Disables submit button after first click and adds
debounce to the handler.

带页脚:

fix: resolve race condition in auth flow

Refs: #123
Reviewed-by: Alice

评论

支持 Markdown