用途:当用户说“commit my changes”“commit this”“create a commit”“git commit”“save my work”或提到提交代码时,该技能会分析未提交改动并创建组织良好的提交,采用 conventional commit 格式。
主要能力与流程:
- 发现改动:调用时注入仓库状态与 diff 统计;若不在 git 仓库、无改动、处于 merge/rebase/cherry-pick/revert 中途或 detached HEAD,则报告并停止。
- 暂存文件:运行 git add -A,并排除 scratch.、temp.、debug.、playground.、*.log、dist/、build/、target/、node_modules/、pycache/ 等生成或临时文件;检测到后用 git reset HEAD <file> 取消暂存,并询问是否加入 .gitignore。
- 分析提交边界:按目的而非目录分组,同一目标一个提交,不同目标分开提交;可独立回滚的改动分开;fix 与其测试分属 fix: 和 test: 提交。处理重命名时需同时暂存新旧路径。
- 校验:暂存后运行 python3 ${CLAUDE_PLUGIN_ROOT}/skills/commit/scripts/validate.py . --output json;退出码 0 通过,1 失败并报告错误后停止,2 表示跳过校验。
- 创建提交:查看 git log --no-merges --oneline -10 了解风格,使用 <type>(<scope>): <description>,类型包括 feat、fix、docs、refactor、test、chore、perf;主题小写、无句号、祈使语气、不超过 72 字符;不加 Co-authored-by 或 AI 署名,不用 emoji。若因 pre-commit hook 失败,提交未落地,应重新暂存并重试同一命令,不要用 --amend 或 --no-verify。
- 推送:仅当用户提到 push 或参数含 push 时运行 git push;失败则报告并停止,不重试、不强推。
输出:每个提交一行(哈希 + 消息);若排除了临时文件,在下方以项目符号列出。
限制:资料未提供该技能的收费、价格、平台或效果信息。