关于 caveman-commit
caveman-commit 是一个用于生成 Conventional Commits 提交信息的 skill。它输出简短、精确的提交信息,强调说明原因而非重复代码改动,适合希望保持提交历史简洁的开发者。
主要功能
- 01Conventional Commits 格式的主题行
- 02主题行建议 50 字符以内,上限 72
- 03仅在需要时添加正文,说明原因与破坏性变更
- 04破坏性变更与安全修复必须附带正文
- 05输出可直接粘贴的代码块
适用场景
- 01为新增接口生成简洁的提交信息
- 02为破坏性 API 变更编写迁移说明
- 03为回滚的提交补充背景说明
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ juliusbrussee/ caveman --skill caveman-commit安装后在 Claude Code 中输入/caveman-commit确认已加载。
附带文件README.md
详细介绍
提交信息要简练、准确。遵循 Conventional Commits 格式。不要废话。重点说明为什么,而非做了什么。
规则
主题行:
<type>(<scope>): <imperative summary>,<scope>可选- 类型:
feat、fix、refactor、perf、docs、test、chore、build、ci、style、revert - 使用祈使语气:"add"、"fix"、"remove",而非 "added"、"adds"、"adding"
- 尽量不超过 50 个字符,硬性上限为 72 个字符
- 结尾不加句号
- 冒号后的大小写与项目约定保持一致
正文(仅在需要时):
- 主题已足够清晰时,完全省略正文
- 仅在以下情况添加正文:不明显的原因、破坏性变更、迁移说明、关联的 issue
- 在 72 个字符处换行
- 列表符号使用
-,而非* - 在末尾引用 issue/PR:
Closes #42、Refs #17
绝不应包含的内容:
- "This commit does X"、"I"、"we"、"now"、"currently",diff 已说明做了什么
- "As requested by...",请改用 Co-authored-by 尾注
- "Generated with Claude Code" 或任何 AI 署名,除非用户自身规则要求
Assisted-by/AI 署名尾注,此时应将其作为尾注添加 - Emoji(除非项目约定要求)
- 当 scope 已体现文件名时,重复文件名
示例
Diff:新增用户资料接口,正文说明原因
- ❌ "feat: add a new endpoint to get user profile information from the database"
- ✅
feat(api): add GET /users/:id/profile Mobile client needs profile data without the full user payload to reduce LTE bandwidth on cold-launch screens. Closes #128
Diff:破坏性 API 变更
- ✅
feat(api)!: rename /v1/orders to /v1/checkout BREAKING CHANGE: clients on /v1/orders must migrate to /v1/checkout before 2026-06-01. Old route returns 410 after that date.
Auto-Clarity
以下情况始终包含正文:破坏性变更、安全修复、数据迁移,以及撤销先前提交的变更。切勿将这些压缩为仅主题行,未来的调试者需要上下文。
边界
仅生成提交信息。不运行 git commit,不暂存文件,不执行 amend。以可直接粘贴的代码块形式输出提交信息。"stop caveman-commit" 或 "normal mode":恢复为详细的提交信息风格。
评论
支持 Markdown