SuperAPI AI 工具集

commit-message

通用与其它

查看项目

更新于 10-15 17:24

技能介绍

用途:生成两类信息,一是对已暂存变更的普通提交信息(Flow A),二是 PR 的 squash 合并信息(Flow B)。核心原则是任何信息进入 git 历史前都先经审查。

主要能力与硬性规则:未经明确同意绝不提交,需在对话中展示完整信息并提问确认,之前对话或会话中的同意不算数;绝不 push,Flow A 在本地提交结束,Flow B 打印信息结束;以本地用户身份提交,不传 --author,不覆盖 user.name/user.email,不追加任何 Co-Authored-By 或生成标记;main、master 及远端默认分支有额外确认;生成信息中不使用 em 或 en 破折号,改用连字符、逗号、冒号或括号;所有提问使用 AskUserQuestion 提供可点击选项,Make changes 可循环修改。

信息生成:先读取 references/commit-message-rules.md 并应用全部规则,短格式为 {type}: {subject},50 字符内、小写、祈使语气,次要变更放可选正文,类型仅限该文件所列。信息依据代码实际内容而非用户口头描述。

Flow A 用法:依次运行 git branch --show-current、git --no-pager diff --cached --stat、git --no-pager diff --cached、git status --porcelain 收集上下文;未暂存时询问要暂存的内容,仅 git add 用户指定项;在受保护分支上先确认;生成并展示信息;确认后以本地身份执行 git commit -m "$(cat <<'MESSAGE\n<subject>\n\n<body>\nMESSAGE\n)",仅主题时可省略正文,随后用 git --no-pager log -1 --pretty=fuller | head -n 12 展示结果。若用户要求修改上一条提交信息,同样循环但用 --amend。

Flow B 用法:受保护分支先确认;用 gh pr view --json number,title,url,state,baseRefName 只读检查 PR 存在且 OPEN,否则停止;用 git --no-pager log main..HEAD --pretty=format:"%s%n%b%n---" 获取提交信息,base 不同则替换,无本地 ref 用 origin/<base>;生成并展示、确认后以纯代码块打印最终信息供粘贴到 GitHub 的 Squash and merge 对话框,不执行 gh 写操作、不提交、不推送。

流程选择:提交当前或已暂存变更或修改某条提交信息用 Flow A;涉及 PR 合并信息、squash 合并或汇总分支用 Flow B;模糊时询问。

限制:不推送、不自动暂存未指定内容、不覆盖作者身份、不使用破折号、不生成收费或平台信息,其他细节暂未提供。