关于 commit
用于按仓库现有约定创建简洁 Git 提交的技能,面向需要规范记录代码变更的开发者。它涵盖提交信息、变更范围与问题编号,并要求提交前扫描暂存内容中的密钥。
主要功能
- 01检测仓库提交信息约定
- 02选择提交类型并撰写信息
- 03检查问题编号与变更范围
- 04提交前扫描暂存内容中的密钥
- 05仅暂存本次相关路径
适用场景
- 01按项目惯例提交代码变更
- 02为提交信息关联问题编号
- 03提交前检查暂存内容是否含密钥
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ tartinerlabs/ skills --skill commit安装后在 Claude Code 中输入/commit确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/go.mdpython.mdswift.mdsystems.mdrules/change-scope.mdcommit-type.mdconvention-detection.mdissue-references.mdmessage-format.md详细介绍
你负责创建简短、易读且符合仓库现有惯例的 Git 提交消息。
仅当 rules/convention-detection.md 达到 Tier 3,且清单与之匹配时,才加载生态系统指南:references/go.md、references/swift.md、references/python.md、references/systems.md。
规则概览
| 规则 | 影响 | 文件 |
|---|---|---|
| 惯例检测 | HIGH | rules/convention-detection.md |
| 消息格式 | HIGH | rules/message-format.md |
| 提交类型选择 | HIGH | rules/commit-type.md |
| 问题引用 | MEDIUM | rules/issue-references.md |
| 变更范围 | MEDIUM | rules/change-scope.md |
提交前安全检查
每次提交前,使用项目的密钥扫描器扫描暂存的变更。默认使用 GitLeaks;如果项目已在使用 TruffleHog,也可以使用它。
- 暂存后运行扫描器,将暂存差异通过管道传入其标准输入模式 — GitLeaks:
git diff --cached | gitleaks stdin --redact --verbose;TruffleHog:git diff --cached | trufflehog stdin --results=verified,unknown --fail(包含unknown,以确保 TruffleHog 无法在线验证的凭据也会阻止提交,与 GitLeaks 的行为一致)。通过管道传入可让git保持为普通命令,因此在隔离工作树的会话中可以接受;gitleaks git和trufflehog git会将git作为操作数传递,因此在此类会话中会被拒绝。 - 如果扫描器报告泄漏,立即停止 — 不要提交。报告发现的问题,并请用户移除密钥(如果密钥曾被推送,还应轮换密钥)。
- 如果未安装密钥扫描器(找不到命令),不要擅自安装。如果项目的提交前钩子会运行扫描器,则提交并让钩子执行扫描。否则,告知用户当前没有可用的扫描器,建议安装一个(例如
brew install gitleaks或同类工具),并在未经扫描前询问用户是否仍要提交。
提交时,绝不要编辑 .husky/、commitlint 或其他项目工具。如果缺少提交前钩子,请报告此情况,并指引用户使用 setup 技能,而不要自行配置。
工作流程
收到提交请求后,只暂存并提交 — 绝不能拉取、暂存到 stash、恢复 stash 或重写项目工具。
- 显示当前
git status并分析所有变更 - 检测仓库的提交惯例(参见
rules/convention-detection.md) - 检查对话上下文中的问题引用(参见
rules/issue-references.md) - 评估变更范围(参见
rules/change-scope.md) - 仅暂存本次变更明确相关的路径 — 绝不要将无关修改一并全部暂存
- 根据分支上下文选择提交类型或开头动词,而不能仅依据暂存的差异(参见
rules/commit-type.md) - 执行上述提交前安全检查
- 按照
rules/message-format.md创建提交消息
如果惯例检测来自 Tier 3 或 Tier 4 — 即来自生态系统默认惯例或普通回退规则,而非强制工具或明确的历史记录 — 请说明采用了哪种惯例以及原因,以便发现可能的错误判断。
评论
支持 Markdown