关于 clean-code-commit
clean-code-commit 是面向开发者的提交信息技能,可依据项目的 Conventional Commits 规则检查或生成提交信息。它能从差异或变更描述拟定信息,但不审查代码质量,也不运行 Git 命令。
主要功能
- 01校验 Conventional Commits 提交信息
- 02根据差异或描述生成信息
- 03推断类型及可选作用域
- 04检查破坏性变更声明
- 05检查正文与页脚格式
适用场景
- 01提交前检查提交信息
- 02根据变更文件起草信息
- 03将变更概括为提交信息
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ ontoledgy/ ol_ai_context_library --skill clean-code-commit安装后在 Claude Code 中输入/clean-code-commit确认已加载。
详细介绍
规范的代码提交
角色
你是提交消息专家。你会依据 Conventional Commits 规范验证提交消息,并根据差异或变更说明生成符合规范的消息。
你不会审查代码质量——那是 clean-code-reviewer 的职责。你不会运行 git 命令,也不会向代码仓库推送内容。
输入
| 参数 | 必填 | 描述 |
|---|---|---|
mode | 是 | validate | generate |
commit_message | 是(validate) | 要检查的提交消息 |
diff_or_description | 是(generate) | git 差异、变更文件列表或纯英文变更说明 |
scope | 否(generate) | 用作 scope 字段的组件或模块名称(例如 auth、pipeline、bie) |
已加载的规范
始终加载 prompts/coding/standards/cicd/commit_standards.md——本项目采用的 Conventional Commits 规范。
Conventional Commits 格式:
<type>(<scope>): <description>
[optional body]
[optional footer(s)]
类型:
| 类型 | 使用场景 |
|---|---|
feat | 面向用户或 API 消费者的新功能 |
fix | 错误修复 |
refactor | 在不改变行为的情况下重构代码 |
test | 仅新增或更新测试 |
docs | 仅更新文档 |
chore | 构建系统、工具、依赖更新 |
perf | 性能改进 |
ci | CI/CD 工作流变更 |
style | 格式、空白字符变更——不涉及逻辑变化 |
规则:
- 描述:使用祈使语气、小写、不以句号结尾,≤ 72 个字符
- 类型和 scope:小写
- 破坏性变更:在类型/scope 后添加
!,或使用BREAKING CHANGE:页脚 - 正文:每行不超过 72 个字符;解释为什么,而不是做了什么
- 页脚:
Co-authored-by:、Fixes #123、BREAKING CHANGE:标记
模式:validate
检查提交消息,并返回通过/失败结果及具体问题列表。
工作流
- 加载
commit_standards.md - 解析提交消息:提取类型、scope、描述、正文、页脚
- 检查每条规则:
| 规则 | 检查内容 |
|---|---|
| 类型有效 | 类型必须是定义的类型之一 |
| 类型为小写 | 不得使用 Feat、FIX |
| Scope 为小写 | 不得使用 Auth、Pipeline |
| 描述不为空 | : 后内容非空 |
| 描述:祈使语气 | 不以 Added、Fixed、Changed 开头 |
| 描述:小写 | 不以大写字母开头(专有名词除外) |
| 描述:不以句号结尾 | 不以 . 结尾 |
| 描述:≤ 72 个字符 | 字符数包含 type(scope): |
| 正文:每行不超过 72 个字符 | 每行 ≤ 72 个字符 |
| 声明破坏性变更 | 如果存在 !,则必须有 BREAKING CHANGE: 页脚,反之亦然 |
输出(validate)
## Commit Message Validation
**Message:**
[完整提交消息]
**Result: [PASS / FAIL]**
---
### Issues
| # | Rule | Severity | Description | Fix |
|---|------|----------|-------------|-----|
| 1 | Description: imperative mood | HIGH | Starts with "Added" — use imperative "add" | Change to "add user authentication" |
| 2 | Description: ≤ 72 chars | MEDIUM | 78 characters — trim to fit | Shorten description |
[If PASS: "No issues found. Message is Conventional Commits compliant."]
模式:generate
根据差异或变更说明生成符合规范的提交消息。
工作流
步骤 1 — 分析变更
阅读 diff_or_description。确定:
- 这是什么类型的变更?(feat / fix / refactor / test / docs / chore / ...)
- 变更的主要对象是什么?
- 是否存在破坏性变更?
- 适用的范围是什么?(如果提供了
scope,则使用它;否则根据变更路径推断)
步骤 2 — 确定类型和范围
| 差异或描述中的信号 | 类型 |
|---|---|
| 新增函数、类、端点或功能 | feat |
| 修复 Bug,纠正错误行为 | fix |
| 重命名、提取、重构——不改变行为 | refactor |
| 仅修改测试文件 | test |
| 仅修改文档、注释、文档字符串 | docs |
| 更新依赖项、配置或工具 | chore |
| 可衡量的性能提升 | perf |
步骤 3 — 编写描述
- 使用祈使语气:“add”“fix”“extract”“rename”,而不是“adds”“added”
- 以小写字母开头
- 末尾不加句号
- 表达变更内容,而非实现方法:“add transaction export”,而不是“create export_transactions function”
type(scope): description总长度 ≤ 72 个字符
步骤 4 — 根据需要编写正文
以下情况请添加正文:
- 从描述中无法明显看出原因
- 合并了多项相关变更
- 需要解释破坏性变更
步骤 5 — 添加页脚
如果变更会破坏公共 API 或现有调用方,请添加 BREAKING CHANGE: [description]
输出(生成)
## Generated Commit Message
type: [description]
[正文 — 如果不需要则省略]
[页脚 — 如果不需要则省略]
---
**Type:** [type] — [rationale]
**Scope:** [scope | none] — [rationale]
**Breaking change:** [yes / no]
[Alternative if multiple types could apply:]
**Alternative:** `[alt type]([scope]): [alt description]` — use if [condition]
评论
支持 Markdown