内容纲要
本规范适用于所有代码仓库(前端、后端、Agent、Workflow、Dataset Pipeline 等)。
目标是提高代码可读性、提升协作效率,并支持自动生成 ChangeLog。
1. Commit Message 结构
所有提交信息必须遵循以下格式:
<type>(scope): <short summary>
<body>
<footer>
仅 type 和 summary 为必填。scope、body、footer 可按需使用。
2. Type(提交类型)
以下类型为代码开发统一规范:
| 类型 | 说明 |
|---|---|
| feat | 新功能、新模块 |
| fix | Bug 修复 |
| refactor | 重构,无功能变化 |
| perf | 性能优化 |
| style | 代码风格修复(无业务逻辑) |
| docs | 文档更新 |
| test | 单测、集成测试 |
| build | 构建系统、依赖版本、工具链相关改动 |
| ci | CI/CD 配置变更 |
| chore | 其他不会影响功能的修改 |
| revert | 回滚某次提交 |
示例:
feat(agent): 新增工具调度器与调用链路收集模块
fix(dataset): 修复 JSONL 样本去重异常
3. Scope(影响范围)
Scope 需明确模块边界,以提升可读性。
代码开发推荐规范:
| 模块 | Scope 名称 |
|---|---|
| 前端(Vue + VueFlow + ElementUI) | ui, workflow-ui, dataset-ui |
| 工作流编排(Flowise / Airflow) | workflow, dag, scheduler |
| Agent 服务(LangGraph、工具链、LLM 调度) | agent, tools, llm, memory |
| 数据集模块(清洗、标注、增强、合成) | dataset, clean, label, augment, synthesis |
| 后端 API(FastAPI / Python) | api, service, vectorstore, upload |
| 向量库(Milvus / Chroma) | vector, index |
| 文档与配置 | docs, config |
示例:
fix(api): 修复文件上传失败的问题
refactor(agent): 优化节点状态机逻辑
4. Summary(标题写法要求)
必须满足:
- 简短明了(不超过 60 字)
- 使用动词短语描述动作
- 不以句号结尾
示例:
feat(workflow): 支持节点依赖检测与可视化高亮
禁止示例:
update code
修改了一堆东西
修复问题
5. Body(内容,可选但推荐)
用于说明为什么做、做了什么、有没有破坏性变更。
建议使用列表格式:
- 修复 token 限制未生效问题
- 增加规范化校验逻辑
- 移除 pipeline 中的重复节点检查
Body 写法示例:
feat(agent): 新增工具调用链跟踪能力
- 新增 trace_id 注入机制
- agent 执行节点均附带可追溯元数据
- 解决 workflow 调试中无法定位错误来源的问题
6. Footer(关联 Issue 或 Breaking Changes)
关联 Issue:
Issue: #123
声明破坏性变更:
BREAKING CHANGE: 删除旧版 dataset pipeline API
7. 常见提交示例
新功能
feat(workflow): 新增可视化 DAG 调试模式
修复 bug
fix(dataset): 修复样本合成时标签错位的问题
重构
refactor(agent): 抽象工具调用接口,支持插件化
性能优化
perf(vector): 优化向量相似度查询速度,提升 30%
文档
docs: 新增 API 使用手册
构建系统
build: 升级依赖到 Python 3.11
8. 统一 Commit 模板(推荐配置)
开发者可执行:
git config --global commit.template .gitmessage
并在项目根目录添加 .gitmessage:
<type>(<scope>): <summary>
<body>
<footer>
9. 自动化校验(Commitlint)
代码开发使用 commitlint 进行自动校验。
项目根目录添加:
commitlint.config.js
module.exports = {
extends: ['@commitlint/config-conventional'],
};
Husky Hook(Node 项目前端或工具链)
npx husky add .husky/commit-msg "npx commitlint --edit $1"
提交不规范将会直接被拦截。
10. 约定与原则总结
- 提交必须可读、可追踪、可搜索
- 提交必须服务于团队协作与长期维护
- 单个 commit 应尽量小而独立
- 一个 commit 仅处理一个主题(Single Responsibility)
- 不提交 WIP(除非在个人分支)
- 合并前必须 squash 零碎 commit