mcpField
C
clean-code-commit

clean-code-commit

github.com/ontoledgy开发35 次安装
代码仓库

关于 clean-code-commit

clean-code-commit 是面向开发者的提交信息技能,可依据项目的 Conventional Commits 规则检查或生成提交信息。它能从差异或变更描述拟定信息,但不审查代码质量,也不运行 Git 命令。

主要功能

  1. 01校验 Conventional Commits 提交信息
  2. 02根据差异或描述生成信息
  3. 03推断类型及可选作用域
  4. 04检查破坏性变更声明
  5. 05检查正文与页脚格式

适用场景

  1. 01提交前检查提交信息
  2. 02根据变更文件起草信息
  3. 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性能改进
ciCI/CD 工作流变更
style格式、空白字符变更——不涉及逻辑变化

规则:

  • 描述:使用祈使语气、小写、不以句号结尾,≤ 72 个字符
  • 类型和 scope:小写
  • 破坏性变更:在类型/scope 后添加 !,或使用 BREAKING CHANGE: 页脚
  • 正文:每行不超过 72 个字符;解释为什么,而不是做了什么
  • 页脚:Co-authored-by:、Fixes #123、BREAKING CHANGE: 标记

模式:validate

检查提交消息,并返回通过/失败结果及具体问题列表。

工作流
  1. 加载 commit_standards.md
  2. 解析提交消息:提取类型、scope、描述、正文、页脚
  3. 检查每条规则:
规则检查内容
类型有效类型必须是定义的类型之一
类型为小写不得使用 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