playbook/codex/skills/commit-message/SKILL.md

64 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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自动生成 13 条符合 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 变更明显包含多个逻辑变更时)
## Proceduredefault
1. **获取 staged 变更概览(优先小上下文)**
- 文件清单:`git diff --cached --name-status`
- 统计:`git diff --cached --stat`
- 如需语义:只对关键文件看 diff`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:`
3. **推断 scope可选**
- 规则:优先用“变更文件的共同父目录/组件名”;避免过长;用 `lower_snake_case`
- 示例:`tsl`、`office_xml`、`scripts`、`docs`、`skills`
- 若无法稳定推断:省略 scope
4. **生成 subject一句话祈使句/现在时)**
- 首字母小写,不加句号,尽量 ≤ 72 字符
- 用词模板:
- `add ...` / `fix ...` / `refactor ...` / `sync ...` / `update ...`
- 避免“调整一下/优化一些”等不明确描述
5. **可选:生成 body/footer**
- body说明“为什么改、影响什么、验证方式”每行建议 ≤ 72 字符
- footer任务号或 `BREAKING CHANGE:`(若有)
6. **输出并确认**
- 输出 1 条主建议 + 2 条备选(不同 type/scope/subject并说明取舍
- 不要自动执行 `git commit`,除非用户明确要求
## Output contract固定输出
- Detected: staged files summary文件数 + 关键路径)
- Proposed:
- Option Arecommended`:emoji: type(scope): subject`
- Option B...
- Option C...
- Optional body/footer如适用
- Notes是否建议拆分提交 + 建议拆分方式