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

2.9 KiB
Raw Blame History

name: commit-message description: 根据 staged diff 自动建议提交信息(:emoji: type(scope): subject并可生成可选 body/footer。Triggers: commit message, 提交信息, 写提交说明, 生成提交信息, 提交 msg, emoji commit, git commit.

Commit Message提交信息建议器

目标:基于 git diff --cachedstaged diff自动生成 13 条符合 Playbook 规范的提交信息建议::emoji: type(scope): subject(可选 body/footer

权威规范:docs/common/commit_message.mdtype/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
    • 如需语义:只对关键文件看 diffgit diff --cached -- <path>
  2. 推断 type给出主建议 + 备选)

    • 只改文档/注释:docs:memo:
    • 只改测试:test:white_check_mark:
    • 纯格式/排版:style:art:
    • 不改行为的结构调整:refactor:recycle:
    • 修 bugfix:bug:
    • 新增功能:feat:sparkles:
    • 配置/脚本/维护性改动:chore:wrench:
    • 性能:perf:rocket:);依赖:deps:package:);安全:security:lock:);删除:remove:wastebasket:
  3. 推断 scope可选

    • 规则:优先用“变更文件的共同父目录/组件名”;避免过长;用 lower_snake_case
    • 示例:tsloffice_xmlscriptsdocsskills
    • 若无法稳定推断:省略 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是否建议拆分提交 + 建议拆分方式