SuperAPI AI 工具集

commit

编程与开发

查看项目

更新于 10-16 05:36

技能介绍

用途

该技能用于提交已经暂存(git add)的文件,并生成结构良好、符合 Conventional Commits 格式的提交信息,确保提交信息的质量与规范性。它明确不用于暂存操作本身——如需暂存并提交全部改动,文档建议使用 /commit-all。

主要能力

  • 检查暂存内容:运行 git status 与 git diff --cached --stat,展示将要提交的内容;若无暂存文件,则提示用户先暂存或改用 /commit-all。
  • 分析变更:运行 git diff --cached 理解改动,识别变更类型,必要时对多个文件的相关改动进行分组,并留意破坏性变更或重要迁移。
  • 判定提交类型:支持 feat、fix、docs、style、refactor、test、chore、perf、ci、build、revert 等常见类型。
  • 生成提交信息:主题行不超过 72 字符,格式为 <type>: <短描述>;正文为可选但建议在重要变更时提供,说明改了什么与为什么,使用现在时,按 72 字符换行,可引用 #123 形式的 issue/PR,破坏性变更以 BREAKING CHANGE: 前缀标注。
  • 执行提交:使用 git commit -m 配合 heredoc 提交。
  • 验证结果:提交后运行 git log -1 展示该提交,运行 git status 确认工作区干净;若提交因 pre-commit 钩子等失败,帮助修复问题并创建新的提交(不执行 amend)。
  • 推送到远端:提交成功后尝试 git push。

合并冲突协议

当 git push 因远端已分叉而被拒绝时,技能要求按顺序执行以下步骤:

  1. 始终合并、绝不 rebase:使用 git pull --no-rebase;若全局配置了 pull.rebase = true,则以 git -c pull.rebase=false pull 覆盖。理由为 rebase 会重写提交历史,而 merge 保留双方完整历史并可审计。
  2. 自动合并成功(无冲突)时:用 git diff HEAD~1 HEAD 与 git log --oneline -5 验证没有意外丢失内容,然后推送。
  3. 出现冲突时先理解再动手:用 git log --oneline HEAD...MERGE_HEAD、git diff --diff-filter=U 查看双方改动,可用 git checkout --conflict=diff3 <file> 获取三方基础版本;要阅读整个冲突区域,区分句法冲突与语义冲突。
  4. 分类每个冲突:新增型(双方各自新增独立内容,解决方式为都保留,按逻辑排序);并行编辑(双方因不同原因修改同一处代码,融合双方意图);语义冲突(两个特性在逻辑上互斥,需停止并向用户说明双方行为,请用户决定优先级或组合方式);删除/修改冲突(一方删除、一方修改,需停止并询问保留删除、恢复修改版本还是其他处理);重复/被取代(一方的改动是另一方的子集或被替代,保留更完整的版本,但丢弃前须显式验证并在合并提交信息中说明)。
  5. 黄金规则:绝不静默丢弃代码。不得在未经用户对具体文件明确确认的情况下用 git checkout --ours 或 --theirs 直接选边;存疑时保留双方,冗余代码远比静默丢失行为安全。解析前检查表要求:HEAD 中的每个函数/特性仍存在;MERGE_HEAD 中的每个函数/特性仍存在(或有用户确认的移除);无残留冲突标记(<<<<<<<、=======、>>>>>>>);合并结果语法有效。解决全部冲突后运行语法检查,如 TypeScript 项目运行 npx tsc --noEmit,或项目自身的 lint/typecheck 命令。
  6. 提交前复查完整合并差异:用 git diff 与 git diff --cached 确认双方改动完整、无遗漏,然后 git add <已解决文件> 并 git commit,接受 git 自动生成的合并提交信息,不要重写。
  7. 推送:git push。

提交信息规范

主题行:使用祈使语气(add 而非 added);类型后首字母不大写;结尾不加句号;不超过 72 字符;具体而简洁。正文:与主题行之间空一行;解释改了什么与为什么(而非如何实现);按 72 字符换行;多项改动用项目符号;以 #123 引用 issue;显著标注破坏性变更。文档给出了正面与负面示例,反面示例包括“Added some stuff”“Updated files”。

使用方式与提示

技能通过用户调用触发,流程为检查暂存文件、分析变更、确定提交类型、生成提交信息、执行提交、验证、推送。文档提示:描述要详细而简洁;每次提交只包含一个逻辑变更;遵循 Conventional Commits 便于生成变更日志;引用 issue 以提供上下文;解释为什么;提交前检查 API 密钥、密码等凭据不要提交。

限制与注意事项

该技能只提交已暂存的文件,不负责暂存;若提交因钩子失败,应修复问题后创建新的提交,除非用户明确要求否则不得 amend;除非用户或项目明确要求,不要添加 agent 共同作者尾注。该技能的合并冲突协议针对 AI 代理常见的静默代码丢失问题,强调在解决语义冲突、删除/修改冲突时必须停下来向用户确认。

暂未提供的信息

该技能的具体安装方式、依赖要求、支持的平台或运行环境、收费与价格信息,以及所属仓库的更多背景,资料中暂未提供。