关于 conventional-commit
conventional-commit 是用于编写符合 Conventional Commits v1.0.0 的 Git 提交信息的技能。它检查已暂存的更改并确定类型与可选范围,且只提交已暂存的文件。
主要功能
- 01检查已暂存差异
- 02选择提交类型和范围
- 03按规范格式化提交信息
- 04支持正文和页脚
- 05不暂存文件
适用场景
- 01为已暂存更改编写提交信息
- 02根据差异确定类型和范围
- 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 标题、分支名称、变更日志条目或发行说明。
工作流
- 运行
git diff --cached检查已暂存的更改 - 如果没有已暂存的更改,请报告并停止
- 分析差异,确定合适的类型、范围和描述
- 按照以下规则编写提交消息
- 运行
git commit -m "<message>"(多行消息请使用 HEREDOC) - 不要暂存文件。只提交已暂存的内容。
消息结构
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
类型
| 类型 | 用途 |
|---|---|
feat | 新功能 |
fix | 修复错误 |
docs | 仅修改文档 |
style | 格式、空白字符 |
refactor | 既非修复也非功能 |
perf | 性能改进 |
test | 添加或更新测试 |
build | 构建系统或依赖项 |
ci | CI 配置 |
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