2.9 KiB
2.9 KiB
name: commit-message
description: 根据 staged diff 自动建议提交信息(:emoji: type(scope): subject),并可生成可选 body/footer。Triggers: commit message, 提交信息, 写提交说明, 生成提交信息, 提交 msg, emoji commit, git commit.
Commit Message(提交信息建议器)
目标:基于 git diff --cached(staged diff)自动生成 1–3 条符合 Playbook 规范的提交信息建议::emoji: type(scope): subject(可选 body/footer)。
权威规范:docs/common/commit_message.md(type/emoji 对应关系、格式与约定)。
When to use
- 用户要“写提交信息 / 生成 commit message / 按规范写提交说明 / emoji commit”
- 已经
git add了一批改动,准备git commit
Inputs(缺失就先问)
- 目标变更集:staged(默认)|unstaged|全部
- scope:自动推断(默认)|用户指定
- 是否允许拆分提交:是/否(当 staged 变更明显包含多个逻辑变更时)
Procedure(default)
-
获取 staged 变更概览(优先小上下文)
- 文件清单:
git diff --cached --name-status - 统计:
git diff --cached --stat - 如需语义:只对关键文件看 diff:
git diff --cached -- <path>
- 文件清单:
-
推断 type(给出主建议 + 备选)
- 只改文档/注释:
docs(:memo:) - 只改测试:
test(:white_check_mark:) - 纯格式/排版:
style(:art:) - 不改行为的结构调整:
refactor(:recycle:) - 修 bug:
fix(:bug:) - 新增功能:
feat(:sparkles:) - 配置/脚本/维护性改动:
chore(:wrench:) - 性能:
perf(:rocket:);依赖:deps(:package:);安全:security(:lock:);删除:remove(:wastebasket:)
- 只改文档/注释:
-
推断 scope(可选)
- 规则:优先用“变更文件的共同父目录/组件名”;避免过长;用
lower_snake_case - 示例:
tsl、office_xml、scripts、docs、skills - 若无法稳定推断:省略 scope
- 规则:优先用“变更文件的共同父目录/组件名”;避免过长;用
-
生成 subject(一句话,祈使句/现在时)
- 首字母小写,不加句号,尽量 ≤ 72 字符
- 用词模板:
add .../fix .../refactor .../sync .../update ...- 避免“调整一下/优化一些”等不明确描述
-
可选:生成 body/footer
- body:说明“为什么改、影响什么、验证方式”,每行建议 ≤ 72 字符
- footer:任务号或
BREAKING CHANGE:(若有)
-
输出并确认
- 输出 1 条主建议 + 2 条备选(不同 type/scope/subject),并说明取舍
- 不要自动执行
git commit,除非用户明确要求
Output contract(固定输出)
- Detected: staged files summary(文件数 + 关键路径)
- Proposed:
- Option A(recommended):
:emoji: type(scope): subject - Option B:...
- Option C:...
- Option A(recommended):
- Optional body/footer(如适用)
- Notes:是否建议拆分提交 + 建议拆分方式