Install any skill in seconds. Free to start, no credit card required.
Get Started Free →中文 commit 与 changelog 配置参考——Conventional Commits 中文适配、commitlint/husky/commitizen 中文模板、conventional-changelog 中文配置。仅在用户显式 /chinese-commit-conventions 时调用,不要根据上下文自动触发。
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 189% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 121% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 176% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 250% | 0% |
| case-14 | ✗→✓ | ▲ Improved | 156% | 0% |
基于 Conventional Commits 1.0.0 规范,针对中文团队的实际使用习惯进行适配。
| 类型 | 说明 | 示例场景 | | ---------- | ---------------------------- | -------------------------- | | feat | 新功能 | 添加用户注册模块 | | fix | 修复缺陷 | 修复登录页白屏问题 | | docs | 文档变更 | 更新 API 接口文档 | | style | 代码格式(不影响逻辑) | 调整缩进、补充分号 | | refactor | 重构(非新功能、非修复) | 拆分过长的服务类 | | perf | 性能优化 | 优化首页列表查询速度 | | test | 测试相关 | 补充用户模块单元测试 | | chore | 构建/工具/依赖变更 | 升级 webpack 到 v5 | | ci | 持续集成配置 | 修改 GitHub Actions 流程 | | revert | 回滚提交 | 回滚 v2.1.0 的登录重构 |
<type>(<scope>): <subject>
<body>
<footer>feat(用户模块): 添加手机号一键登录功能
- 接入运营商一键登录 SDK
- 支持移动、联通、电信三网
- 登录失败自动降级到短信验证码
Closes #128fix(订单): 修复并发下单导致库存超卖的问题
在高并发场景下,原有的库存扣减逻辑存在竞态条件。
改用 Redis 分布式锁 + 数据库乐观锁双重保障。
影响范围:订单服务、库存服务
测试确认:已通过 500 并发压测验证
Closes #256<type>(<scope>): <description>用户模块、订单、支付、基础组件feat(权限): 添加基于 RBAC 的细粒度权限控制
fix(支付): 修复微信支付回调签名验证失败的问题
perf(列表页): 优化大数据量表格的虚拟滚动渲染
refactor(网关): 将单体网关拆分为独立微服务# 以下写法应避免
fix: 修了一个 bug
feat: 更新代码
chore: 改了点东西Body 用于详细说明本次变更的动机、方案和影响。
<改动背景和原因>
技术方案:
- <方案要点 1>
- <方案要点 2>
影响范围:<受影响的模块或服务>当提交包含不兼容变更时,必须在 footer 中标注。
feat(接口): 重构用户信息返回结构
将用户接口返回的扁平结构改为嵌套结构,前端需同步调整字段取值路径。
BREAKING CHANGE: /api/user/info 返回结构变更
- avatar 字段移入 profile 对象
- 移除已废弃的 nickname 字段,统一使用 displayNamefeat(接口)!: 重构用户信息返回结构Closes #128
Refs #129, #130Closes #I5ABC1
相关需求: https://gitee.com/org/repo/issues/I5ABC1关联 Coding 缺陷 #12345
fixed=project-2024/issues/678# footer 中关联多个平台
Closes #128
Jira: PROJ-456
禅道: #789bashnpm install -D conventional-changelog-cli conventional-changelog-conventionalcommits
json{ "scripts": { "changelog": "conventional-changelog -p conventionalcommits -i CHANGELOG.md -s", "changelog:all": "conventional-changelog -p conventionalcommits -i CHANGELOG.md -s -r 0", "release": "standard-version" } }
javascriptmodule.exports = { types: [ { type: 'feat', section: '新功能' }, { type: 'fix', section: '缺陷修复' }, { type: 'perf', section: '性能优化' }, { type: 'refactor', section: '代码重构' }, { type: 'docs', section: '文档更新' }, { type: 'test', section: '测试' }, { type: 'chore', section: '构建/工具', hidden: true }, { type: 'ci', section: '持续集成', hidden: true }, { type: 'style', section: '代码格式', hidden: true } ], commitUrlFormat: '{{host}}/{{owner}}/{{repository}}/commit/{{hash}}', compareUrlFormat: '{{host}}/{{owner}}/{{repository}}/compare/{{previousTag}}...{{currentTag}}' }
bashnpm install -D @commitlint/cli @commitlint/config-conventional
javascriptmodule.exports = { extends: ['@commitlint/config-conventional'], rules: { 'type-enum': [2, 'always', [ 'feat', 'fix', 'docs', 'style', 'refactor', 'perf', 'test', 'chore', 'ci', 'revert' ]], 'type-case': [2, 'always', 'lower-case'], 'type-empty': [2, 'never'], 'subject-empty': [2, 'never'], 'subject-max-length': [2, 'always', 100], // 允许中文字符,关闭 subject-case 限制 'subject-case': [0], // 关闭 header-max-length 或放宽(中文占宽较大) 'header-max-length': [2, 'always', 120], 'body-max-line-length': [1, 'always', 200], 'footer-max-line-length': [1, 'always', 200] }, prompt: { messages: { type: '选择提交类型:', scope: '输入影响范围(可选):', subject: '填写简短描述:', body: '填写详细描述(可选,使用 "|" 换行):', breaking: '列出不兼容变更(可选):', footer: '关联的 Issue(可选,例如 #123):', confirmCommit: '确认提交以上信息?' } } }
bashnpm install -D husky lint-staged npx husky init
bash# .husky/commit-msg npx --no -- commitlint --edit "$1"
bash# .husky/pre-commit npx lint-staged
json{ "lint-staged": { "*.{js,ts,jsx,tsx,vue}": [ "eslint --fix", "prettier --write" ], "*.{css,scss,less}": [ "stylelint --fix", "prettier --write" ], "*.md": [ "prettier --write" ] } }
bashnpm install -D commitizen cz-conventional-changelog # package.json 中添加 { "config": { "commitizen": { "path": "cz-conventional-changelog" } }, "scripts": { "commit": "cz" } }
运行 npm run commit 即可进入交互式提交引导。
.commitlintrc、.husky/ 等配置提交到仓库Q: 中英文混排时空格怎么处理? A: 中文与英文/数字之间加一个空格,如「添加 Redis 缓存」。
Q: scope 用中文还是英文? A: 团队内统一即可。推荐中文(可读性好),但需在 commitlint 中关闭 scope-case 检查。
Q: 多人协作时如何保证规范一致? A: 靠工具而非靠自觉。配置好 husky + commitlint,不符合规范的提交会被拦截。
Other measured skills in the registry, with their headline benchmark lift.