SuperAPI AI 工具集

commit-msg

编程与开发

查看项目

更新于 10-15 21:11

技能介绍

用途:当用户明确要求生成 commit message、整理提交说明,或提到 commit-msg 时使用本技能。它不负责自动执行 git add 或 git commit,也不代替正式 code review,不生成 release notes 或 changelog。

主要能力:默认先查看已暂存变更;用户明确说 all、全部变更或包含未暂存时,再看整个工作区 diff。先判断改动是否适合放进一个提交,过于混杂时提醒拆分。按改动意图归类为 feat、fix、refactor、style、docs、test 或 chore。输出一条可直接使用的 subject,再给 2-5 条 body 要点,并列出主要变更文件,帮助判断 message 是否过宽。

输出要求:使用 Conventional Commit 风格 <type>: <subject>;subject 简洁聚焦,不堆砌文件名,最长不超过 80 字符;body 使用中文 flat bullets;不加 emoji、AI 声明或 Co-Authored-By;不替用户执行提交命令。

落盘命令:输出 message 后必须额外给出可直接复制执行的 heredoc 命令,让 git 保留 subject 单行加空行加 body 多行 bullet 的结构:git add <文件列表> && git commit -m "$(cat <<'EOF' <type>: <subject>

  • 变更点1
  • 变更点2
  • 变更点3 EOF )"。<<'EOF' 用单引号围栏,避免 $、反引号被 shell 展开。

禁止的反例:git commit -m "feat: x\n- a\n- b",\n 是字面字符串,shell 不会解析为换行;git commit -m "feat: x - a - b",body 被压成单行,丢失 markdown 列表结构;把多个 bullet 用空格拼接进 subject。

自验:落盘后用 git log -1 --pretty=format:'%s%n---%n%b' 检查,subject 必须单行,body 必须保留每行独立的 - bullet。

按需展开:类型选择见 references/commit-types.md,格式约束见 references/message-format.md。