SuperAPI AI 工具集

commit

编程与开发

查看项目

更新于 10-23 16:18

技能介绍

用途

该技能用于指导智能体在多人或多会话并行操作同一 Git 仓库时,安全地提交本次会话中自己完成的工作。它的核心原则是:只提交你本次会话创建、编辑或删除的文件,其他并行会话的改动不属于你,不应被提交。

主要能力

  • 识别本次会话涉及的文件,包括创建、编辑、删除的文件。
  • 将 .claude/agent-memory/ 下的改动视为本次会话的一部分,无论实际由谁写入,因为这是具有记忆的智能体的笔记,而非并行会话的进行中工作。
  • 通过 git status --porcelain 检查工作区,排除不属于本次会话的改动。
  • 对混合了他人改动的文件,支持只暂存自己的部分:在无交互终端时,可将自己的改动写入补丁文件,删除他人改动后使用 git apply --cached 暂存。
  • 使用 git commit --only 按路径提交,避免他人已暂存的改动被一并提交。
  • 对新建文件,先 git add -- <new-path> 再纳入 --only 列表,因为 --only 会静默跳过未跟踪路径。
  • 提交信息遵循 Conventional Commits 规范,支持 feat、fix、refactor、docs、test、chore、perf、build、ci 等类型。
  • 提交后报告提交主题、短 SHA 以及有意跳过的文件及原因。

使用方式

  1. 列出本次会话涉及的所有文件。若没有改动,说明并停止。
  2. 运行 git status --porcelain 检查工作区,忽略不在列表中的文件。
  3. 对每个文件运行 git diff -- <path>(如已暂存也运行 git diff --cached),若包含非本次会话的改动,则排除该文件;若文件混合了双方改动,只暂存自己的部分。
  4. 使用 git commit --only -m "<subject>" -- <path> <path> … 提交,选项放在 -- 之前。新建文件需先 git add -- <new-path>。
  5. 提交信息格式:type(scope): summary,祈使语气、小写、无句号、72 字符以内。仅在原因不明显时添加简短正文。不添加署名或共同作者尾注。
  6. 报告一行:提交主题、短 SHA、有意跳过的文件及原因。除非被要求,否则不推送。

适用场景

  • 多个智能体会话同时在同一仓库中工作。
  • 需要确保每个会话只提交自己的改动,避免污染他人工作。
  • 需要遵循 Conventional Commits 规范的提交信息。

限制与保护规则

  • 始终提交到当前分支,不切换、创建或建议分支,即使当前分支是 main/master。禁止 git checkout、git switch、git branch。
  • 一个会话的工作对应一个提交。不修改、变基或触碰已有历史。
  • 若改动确实是两个不相关的事情,可做两个提交,但仍只包含自己的文件。
  • 禁止 git stash、git checkout --、git reset,因为并行会话未提交的工作一旦丢弃将无法恢复。
  • 若需要文件的修改前基线,可复制文件并用 git show HEAD:<path> > <path> 恢复,运行所需操作后再还原副本。
  • 不主动推送。