| name | commit-diff |
| description | 对比最近一次 commit 与当前工作区差异,提炼核心功能变化并生成中文 commit 文案。适用于用户要求“根据当前改动写提交文案”“对比最近提交生成 commit message”,且需要固定输出格式(整体使用 text 代码块、代码块首行空内容、第二行起每段以前缀“- + 空格”开头)的场景。 |
提交文案差异
目标
- 基于
HEAD 与当前未提交改动生成可直接使用的提交文案。
- 只提炼核心功能变化,不放大无关噪音改动。
快速流程
- 先运行
scripts/diff_context.sh(相对本技能目录)收集对比上下文。
- 仅在摘要无法判断核心变化时,再按文件查看
git diff -- <path>。
- 合并同类变化,输出精炼文案。
输出格式(强约束)
- 整体输出必须包裹在
```text 代码块内,避免被 Markdown 渲染成列表。
- 代码块内第一行必须是空行(不要输出任何可见字符,包括空格、
-、标点)。
- 代码块内第二行开始,每段都必须以
- 开头(- + 空格)。
- 每段单行表达,不使用嵌套列表。
- 默认中文输出,保持简洁、可执行。
- 推荐输出 3-5 段,最多 5 段;改动很小时可少于 3 段。
写作规则
- 先写核心功能变化,再写修复、兼容或验证信息。
- 优先描述较大且可感知的更新,忽略细碎或机械性改动。
- 合并同类改动:同一主题只写 1 条,避免“参数变更/链路透传/文档更新”分散重复描述。
- 使用动词开头,例如:
新增、重构、修复、统一、补充、验证。
- 只写 diff 能证明的事实,不补充主观猜测。
- 版本号变更、
package-lock.json 同步等小改动默认不写,除非直接影响行为。
- 不写测试结果信息。
- 不写文档国际化同步信息(如“同步更新中英文文档”)。
- 若无可提交改动,仍保留首行空内容,然后输出:
- 无可提交变更。
命令参考
scripts/diff_context.sh
git diff --name-only HEAD
git diff --stat HEAD
git diff -- <path>