git-commitlisted
Install: claude install-skill huangwb8/skills
# Git Commit
## 与 bensz-collect-bugs 的协作约定
- 因本 skill 设计缺陷导致的 bug,先用 `bensz-collect-bugs` 规范记录到 `~/.bensz-skills/bugs/`,不要直接修改用户本地已安装的 skill 源码;若有 workaround,先记 bug,再继续完成任务。
- 只有用户明确要求“report bensz skills bugs”等公开上报时,才用本地 `gh` 上传新增 bug 到 `huangwb8/bensz-bugs`;不要 pull / clone 整个仓库。
仅用 Git 分析改动并自动生成 conventional commit 信息(可选 emoji);必要时建议拆分提交,默认运行本地 Git 钩子(可 --no-verify 跳过),提交后默认自动 push(可 --no-push 跳过)。
## 工作模式
本技能支持两种工作模式:
| 模式 | 触发方式 | 行为特征 |
|------|----------|----------|
| **自动模式** | 默认(无参数) | AI 自主决策所有步骤:自动暂存、自动拆分、直接提交 |
| **审核模式** | `--review` 参数 | 在关键决策点暂停,等待用户确认暂存方式、拆分建议、提交信息 |
**默认使用自动模式**,因为大多数情况下 commit 的顺利提交比内容本身更重要;如不满意可直接回退。
## 触发场景
- 用户要提交代码改动
- 需要生成符合规范的提交信息
- 需要判断是否应该拆分提交
- 需要包含 emoji 的提交信息
## 工作流程
### 1. 仓库/分支校验
- 通过 `git rev-parse --is-inside-work-tree` 判断是否位于 Git 仓库
- **如不在 Git 仓库**:提示 `git init` 初始化仓库后继续
- 读取当前分支/HEAD 状态:
- **如处于 detached HEAD 状态**:提示风险并确认是否继续
- 检测方法:`git rev-parse --symbolic-full-name HEAD` 返回 `HEAD`
- 提示内容:"⚠️ 当前处于 detached HEAD 状态,提交将不属于任何分支。建议先创建分支(`git switch -c <branch-name>`)或切换到现有分支(`git switch <branch-name>`)"
- **如处于 rebase/merge 冲突状态**:给出明确指导
- **检测到 Git 冲突**:当前处于 rebase/merge 冲突状态,请先处理冲突:
1. 查看冲突文件:`git status`
2. 解决冲突(编辑标记为 `<<<<<<<` 的文件)
3. 标记冲突已解决:`git add <冲突文件>`
4. 继续 rebase/merge:`git rebase --continue` 或 `git merge --continue`
5. 完成后重新运行 git-commit
- 或跳过当前提交:`git rebase --skip`
- 或中止 rebase/merge:`git rebase --abort` / `git merge --abort`
### 2. 改动检测
- 用