Vibe Commit 是一个面向智能体辅助编码场景的 Git 提交技能。它的核心主张是:一次提交请求意味着一次干净、范围正确的提交,而不是简单地执行 git add -A && git commit。它要求选择用户可见的变更、排除无关或不安全路径、读取暂存差异、安全传输提交信息,并检查已存储的提交。对于仅命令或仅表示状态的请求,应展示适用的命令序列而不声称其已运行;对于被阻塞的请求,应停在阻塞点。
用途 该技能用于处理用户要求提交、暂存或“保存”智能体辅助编码变更的场景,包括“commit this”“commit please”“コミットして”等模糊请求。它把提交请求视为一次提交执行流程,负责暂存、验证、提交信息传输、trailer 处理和历史安全,但不做源代码编辑。
主要能力
- 发现全部变更:使用 git status --short --branch --untracked-files=all、git status --ignored、git log -1 --oneline、git branch --show-current 等命令查看修改、暂存、未跟踪和忽略的路径。
- 检查意图:通过 git diff --stat、git diff -- <file>、git diff -- <newfile> 等读取实际变更,判断每个路径的性质。
- 分类与选择:把变更路径分为核心交付物(实现及其测试、相关文档/CHANGELOG/spec)与范围外编辑或生成产物;无关关注点拆分为独立提交。
- 有意排除:保留生成文件、临时文件、无主计划/规格、构建产物、无关锁文件、智能体状态目录(.agents/、.claude/、.codex/)和密钥路径不暂存,并说明原因。
- 显式暂存:使用 git add -- <path1> <path2> 按完整名称暂存,避免在脏工作树中使用 git add . / -A / glob;混合范围的文件使用 git add -p。
- 强制复核暂存集:提交前用 git diff --cached --name-only、--stat、完整 diff、--check 确认范围、体积、内容和空白/行尾问题。
- 提交信息与传输:采用 Conventional Commits 的 type(scope): summary 格式,多行正文使用 heredoc 或 git commit -F <file>,trailer 使用 git commit ... --trailer 添加或修复。
- 提交后验证:读取 git show -s --format=%B HEAD 和已提交补丁,确认后续提交和最终树与验证状态一致。
- 可逆恢复:优先使用 git restore --staged、git reset --soft HEAD~1、git commit --amend --no-edit --trailer 等最小破坏性修复。
使用方式 核心工作流为“commit please”到一次干净提交:发现全部变更、检查意图、分类选择、有意排除、显式暂存、复核暂存集、使提交信息与目标差异一致、折叠或新增提交、撰写信息、安全传输、提交后验证、必要时可逆恢复。对于更窄的请求,技能会跳转到相应参考文档,例如暂存与恢复、历史与 trailer、文件选择。
适用场景 适用于智能体辅助编码后的本地提交、暂存检查、拆分提交、撤销提交、修复最近提交、修改提交信息、添加或修复 Co-Authored-By、多提交重写中删除路径等场景。也适用于仅响应式任务、仅命令请求、部分暂存、用户提供 git status/diff/log 片段等更窄的调用。
限制 该技能不做源代码编辑,其声明范围是所执行的提交——该提交的索引、历史和提交信息。它不把提交请求或检查点视为发布、版本变更、标签、stash、超出折叠范围的 squash、破坏性清理、强制添加、跟踪单元外新产物或外部副作用的授权。推送、amend、rebase、移动 HEAD 的 reset、filter-* 重写或脚本化多提交重放需要用户明确授权。不重写共享历史;amend 或 rebase 仅限尚未离开本机的提交。遇到被忽略路径时,除非用户明确要求并在说明忽略原因和风险后,否则不使用 git add -f。