---
name: git-commit-specification
description: 编写 BK-CI Git 提交信息和整理提交边界时使用，例如选择 commit type、撰写 commit message、判断是否拆分提交和准备 PR 前自检。当用户要提交代码而不是讨论实现细节时优先使用。
---

# Git 提交规范

## 适用场景

- 编写 commit message
- 判断本次改动应归类为 `feat`、`fix`、`refactor` 等哪一类
- 整理提交边界，避免一个提交塞入多类无关改动
- 提交前做最基本的自检

## 不适用场景

- 讨论具体业务实现方案
- 修改 Git 历史或做高风险 Git 操作
- 只是创建分支，但不涉及提交规范本身

## 快速指导

1. 这个 skill 关注的是“提交如何表达改动意图”，不是 Git 命令大全。
2. commit message 优先表达改动性质和目的，常见类型包括：
   - `feat`：新增能力
   - `fix`：修复问题
   - `refactor`：重构但不改外部行为
   - `perf`：性能优化
   - `test`：测试补充或调整
   - `docs`：文档变更
   - `chore`：构建、配置、工具链维护
3. 提交信息格式保持简洁稳定，例如：`feat: 添加流水线模板功能 #1234`
4. 一个提交只表达一类主要意图；如果混入多个独立目的，优先拆分提交。
5. 提交前先做最小自检：改动范围是否聚焦、是否包含敏感信息、是否通过必要验证。
6. 高风险历史整理操作不应作为默认建议写进主 skill；如确有需要，应按具体场景单独判断。

## 高信号规则

- commit message 的核心是让评审者快速理解“这次改动为什么存在”
- 类型选择要服务于改动意图，不要机械套用
- 提交边界清楚，比 message 写得花更重要
- Issue 编号、范围标记等信息应服从团队约定，但不要盖过主语义

## 关键陷阱

- 一个提交同时混入功能、重构、修复和格式化
- message 只写“update”或“fix bug”这类低信息描述
- 把交互式、破坏性或高风险 Git 操作当成默认规范

## 延伸阅读

- 如需准备 PR，可在当前改动基础上补充评审上下文和验证结果
- 如需处理高风险 Git 历史整理，按具体仓库流程单独判断，不在本 skill 中默认展开
