用途:在 Git 仓库中规范化地创建提交。技能从不可变的准备证据中撰写语义化提交信息(Conventional Prefix 或自然语言格式),而由 ai-commit 负责确定性的准备、提交、索引协调与推送机制。
主要能力:
- 解析参数 $ARGUMENTS。ai-commit 按仓库配置选择信息格式;--natural 或 --conventional 仅作一次性显式覆盖。
- --all 捕获全部工作区与索引变更(有风险,可能包含其他 agent 的工作);--staged 精确捕获当前索引,与 --all 冲突。
- --push 请求提交后推送;--close <issue_numbers> 追加 Closes #N 尾注;--finding <finding_ids> 追加 Finding-ID 尾注。
- 在 Conventional 格式下,位置类型关键字覆盖推断类型;在自然语言格式下,位置动词或类别关键字覆盖推断动词。
使用方式: 所有命令在目标仓库 cwd 下运行,不要额外包裹 git status、git log 或 git diff。准备命令: ai-commit prepare [--all | --staged] [--natural | --conventional] --diff full [--exclude-baseline '<path>=<oid>']... [-- <session-modified-paths>...] 准备会打印事务 ID,需保留。提交命令: ai-commit commit <transaction-id> -m '<subject>' [-m '<body>'] [-m '<trailers>'] [--push] 事务幂等,中断或重试后可复用同一事务 ID,切勿用直接 Git 命令暂存或提交,也不要删除索引锁。
适用场景:需要结构化、语义化提交记录的仓库工作流,尤其是多 agent 协作、需关联 issue 与 finding 的场景。
限制:超长单文件 diff 会被截断并标记 DIFF_TRUNCATED;添加 --no-verify 或 --no-gpg-sign 前需先读 references/failure-recovery.md。其余细节(如 push-only 分支处理)以原文为准。