SuperAPI AI 工具集

git-commit-organizer

编程与开发

查看项目

更新于 10-20 20:39

技能介绍

git-commit-organizer 是一套面向 Git 的分支与提交约定,目标是让同一项工作的所有产物(文档、缺陷报告、工作文件、提交记录)通过统一的 slug 相互关联,便于查找和追溯。

分支与 slug

工作从命名分支开始。若用户没有给出分支名,应先询问。功能建议使用 feat/<slug>,缺陷修复建议使用 fix/<slug>,slug 为简短的 kebab-case 标识。slug 是前缀之后的部分,例如 feat/order-cancel 的 slug 是 order-cancel。该 slug 应在各处复用:规格与计划文档放在 docs/<slug>-spec.md、docs/<slug>-plan.md;缺陷报告放在 .scratchpad/<slug>/bug-report.md;工作文件放在 .scratchpad/<slug>/;工作项使用标签或标记 <slug>。

必须在第一次改动前创建分支,不得在默认分支上提交功能工作。一项工作对应一个分支;计划中的各步骤和变更清单中的各修复是该分支上的提交,而不是各自的分支。

如果环境或用户指定了与功能无关的分支名(例如云会话自动分配的名称),不要重命名,也不要另建分支。应选择一个描述性的 slug,在 progress.md 中以两行分别记录 Branch 和 Slug,并将该 slug 用于所有产物;展示分支名的文档仍显示真实分支名。

提交规则

  • 原子:一次提交只做一件事(一个功能步骤、一个修复、一个重构)。每一部分在通过项目完整检查后立即提交,不要先积攒再拆分,因为事后用 stash 和恢复拆分容易丢失工作。
  • 重构与行为分离:若功能需要重构,先提交重构,保证全部测试通过且行为不变。
  • 完整:提交应包含其测试、受影响的文档(README、AGENTS.md、spec、plan)以及包含决策的 ADR。
  • 通过:每次提交前运行项目完整检查(例如 npm test),并读取其真实退出码。管道到其他命令(例如 | tail)返回的是最后一条命令的退出码。测试失败不得提交。

提交信息格式

采用 Conventional Commits 加 gitmoji:

<type>(<scope>): <gitmoji> <summary in the imperative, lowercase, no period>

可选正文:用一小段说明为何需要该变更。

<attribution trailers required by the environment>

类型与 gitmoji 对应:feat ✨ 新行为;fix 🐛 缺陷修复;fix 🔒️ 安全修复;refactor ♻️ 不改变行为的结构调整;test ✅ 仅测试;docs 📝 仅文档;chore 🔧 🙈 配置、工具、忽略文件;style 💄 UI 与 CSS;feat 🔊 日志;perf ⚡️ 性能;fix、feat ♿️ 无障碍。若 AGENTS.md 或近期历史显示不同约定,应遵循仓库自身约定。

安全事项

未经用户要求,不得推送、创建拉取请求、强推、变基共享历史或删除分支。在 shell(>)或脚本中写文件前必须先读取该文件,因为一条失败的命令可能清空 git 尚未跟踪的文件。脚本批量编辑多个文件(重命名、重新编号、合并)后,提交前先查看 git diff --cached --stat;若某文件丢失全部行,说明脚本有缺陷(例如未读先写)。读取已提交版本的文件应使用 git show HEAD:<path>,而不是 git stash;若必须 stash,在新文件重要时加 --include-untracked,并在之后检查 git status 和 git stash list。结束前运行 git status --short,并解释任何未提交的文件。