---
name: cm
description: 分批分类按规范提交
disable-model-invocation: true
argument-hint: "[可选：限定文件或范围]"
---

把当前改动分批分类提交：

- 优先按上下文里已有的任务列表分组：这次会话如果已经按任务分了批，就照任务边界切 commit。但任务边界不等于 commit 边界——一个 commit 仍然只做一件事，任务里夹带的无关改动要拆出去，diff 里任务列表之外的零散改动也要捡进来，以实际 `git diff` 为准，任务列表只是分组线索。
- 没有任务列表时，先 `git status` + `git diff` 看清全部改动，按逻辑主题分组：一个 commit 只做一件事，无关改动不混在一起；改动跨多个不相关主题就拆成多个 commit。
- 个人项目默认直接提交到当前分支；只有改动大或有风险、主分支受保护、或多人协作时，才先开分支。
- 每条 commit message 按我全局 `~/.claude/CLAUDE.md` 里的 commit 规范写——那里有完整格式要求，照它执行，这里不重复。
- 提交前把分组方案 + 每条 message 列给我看一眼。
- 未经我明确同意不要 push。

带参数时只提交指定的那部分，其余不动。
