📝 docs(skills): slim commit-message

This commit is contained in:
csh 2025-12-22 15:12:17 +08:00
parent 2a98e15a1d
commit cc8ad4c59c
1 changed files with 23 additions and 38 deletions

View File

@ -1,63 +1,48 @@
---
name: commit-message
description: "根据 staged diff 自动建议提交信息(:emoji: type(scope): subject并可生成可选 body/footer。Triggers: commit message, 提交信息, 写提交说明, 生成提交信息, 提交 msg, emoji commit, git commit."
description: "基于 staged diff 生成符合 commit_message.md 的提交信息建议(:emoji: type(scope): subject。Triggers: commit message, 提交信息, 写提交说明, 生成提交信息, emoji commit, git commit."
---
# Commit Message提交信息建议器
目标:基于 `git diff --cached`staged diff自动生成 13 条符合 Playbook 规范的提交信息建议:`:emoji: type(scope): subject`(可选 body/footer
目标:基于 `git diff --cached`staged diff生成 13 条提交信息建议:`:emoji: type(scope): subject`(可选 body/footer
权威规范:`docs/common/commit_message.md`type/emoji 对应关系、格式与约定)。
权威规范(单一真源,优先就近路径):
- `docs/common/commit_message.md`
- `docs/standards/playbook/docs/common/commit_message.md`Playbook vendoring 场景)
## When to use
- 用户要“写提交信息 / 生成 commit message / 按规范写提交说明 / emoji commit”
- 已经 `git add` 了一批改动,准备 `git commit`
## Inputs缺失就先问
- 目标变更集staged默认unstaged全部
- scope自动推断默认用户指定
- 是否允许拆分提交:是/否(当 staged 变更明显包含多个逻辑变更时)
## Proceduredefault
1. **获取 staged 变更概览(优先小上下文)**
- 文件清单:`git diff --cached --name-status`
- 统计:`git diff --cached --stat`
- 如需语义:只对关键文件看 diff`git diff --cached -- <path>`
1. **收集 staged 概览(尽量小上下文)**
- `git diff --cached --name-status`
- `git diff --cached --stat`
- 必要时只看关键文件:`git diff --cached -- <path>`
2. **推断 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:`
2. **读取并遵循权威规范**
- 优先读取就近的 `commit_message.md`(见上方路径),以其中的 type/emoji/格式为准。
3. **推断 scope可选**
- 规则:优先用“变更文件的共同父目录/组件名”;避免过长;用 `lower_snake_case`
- 示例:`tsl`、`office_xml`、`scripts`、`docs`、`skills`
- 若无法稳定推断:省略 scope
3. **生成 1 条主建议 + 2 条备选**
- 格式固定:`:emoji: type(scope): subject`scope 可省略)。
- subject 用一句话描述“做了什么”,避免含糊词;尽量 ≤ 72 字符,不加句号。
4. **生成 subject一句话祈使句/现在时)**
- 首字母小写,不加句号,尽量 ≤ 72 字符
- 用词模板:
- `add ...` / `fix ...` / `refactor ...` / `sync ...` / `update ...`
- 避免“调整一下/优化一些”等不明确描述
4. **判断是否建议拆分提交**
- 当 staged 同时包含多个不相关模块/目的时:建议拆分,并给出拆分方式(按目录/功能点/风险)。
5. **可选:生成 body/footer**
- body说明“为什么改、影响什么、验证方式”,每行建议 ≤ 72 字符
- footer任务号或 `BREAKING CHANGE:`(若有)
5. **可选:补充 body/footer如需要**
- body说明 why/impact/verify按规范建议换行
- footer任务号或 `BREAKING CHANGE:`(若有)
6. **输出并确认**
- 输出 1 条主建议 + 2 条备选(不同 type/scope/subject并说明取舍
- 不要自动执行 `git commit`,除非用户明确要求
6. **只给建议,不默认执行 `git commit`**
- 仅当用户明确要求时,才根据选定方案生成最终提交信息。
## Output contract固定输出
- Detected: staged files summary文件数 + 关键路径)
- Detected: staged files summary文件数 + 关键路径 + 是否可能需要拆分
- Proposed:
- Option Arecommended`:emoji: type(scope): subject`
- Option B...
- Option C...
- Optional body/footer如适用
- Notes是否建议拆分提交 + 建议拆分方式
- Notes规范路径命中情况(哪个 `commit_message.md` 被使用)