commitlisted
Install: claude install-skill xhqing/CapabilityManagerAgent
# Auto Git Commit & Push
当用户输入 `commit` 时,把**当前暂存区已有的内容**提交到本地仓库并推送到远程(**依次执行 `git commit` → `git push`**,不执行 `git add`,只提交用户已自行 `git add` 到暂存区的内容),**推送完成后再补齐项目标配**(README/LICENSE/CHANGELOG/VERSION/About/Sponsors,含版权人/署名引用名字归一为 All Contributors)。敏感内容扫描、cache 文件/目录检测是 `git commit` 之前的两项检测(均针对暂存区已有内容,任一命中即终止);版本号一致性检测(项目根有 `VERSION` 文件才查)及其余项目标配检测全部放在 `git push` 之后,不阻塞提交流程。
## 核心定位:先提交推送,再补标配
- **触发与终止规则(2026-07-15 用户立,最高优先级;2026-09-06 增补 main 分支感知,2026-09-07 修订为 main 直推)**:
- **触发判定**:只由**用户当前这条消息**含 `/commit` 且**意图确为「现在执行提交」**才触发——**不看历史消息**(历史里有 `/commit` 不触发、不续跑);**当前消息即便字面含 `/commit` 也要先理解意图**,若是在讨论 / 举例 / 引用 `/commit` 或意图非提交(如「这条含 /commit 但不是要 commit」),**不触发**。不自发、不续跑、不自动进入。
- **main 分支直接提交并推送(2026-09-07 用户修订:main 不设分支保护、不限制直接 push——2026-09-06 的「main 仅本地提交」模式废止)**:当前在 `main`(或 `master`)分支 → 走正常完整流程:commit 前两项检测(敏感扫描 + cache 检测)与 `git commit` 照常执行,`git push` 直推远程 main——普通文件处理修改(文档、版本号 bump、配置等杂事)与 main 对齐场景走这条通道,不经 PR。详见执行流程第 0 步。
- **命中即彻底终止**:流程中一旦命中敏感内容扫描或 cache 检测,**立即终止本次 `/commit`**(不 `commit` / `push`),**不存在「暂停 → 等用户处理 → 从断点继续」**;要再次提交,用户须**重新输入 `/commit`** 从头走完整流程。(版本号一致性检测不阻塞提交,已移至 push 后第 9k 步处理。)
- 本 skill **依次执行 `git commit`、`git push`**:提交暂存区已有的内容到本地仓库,再推送到远程(**不执行 `git add`**,提交内容以用户自行 `git add` 到暂存区的为准)。
- **两步用 `&&` 串联成一条命令一次性跑完(2026-07-17 用户立;2026-08-01 修订:去除 git add,改为只提交暂存区)**:`git commit` + `git push` 两步**优先用 `&&` 组合成一个 Bash 命令**一次执行,不拆成多次 Bash 调用、不中途停下来向用户列命令确认——用户输入 `/commit` 即明确授权当次 commit+push(全局 `~/.claude/CLAUDE.md`「Git 写操作必须先征得同意」段的例外已写明