Back to skills
SKILL.md
Commit Diff
ASecurity对比最近一次 commit 与当前工作区差异,提炼核心变化并生成中文提交文案。适用于用户要求“根据当前改动写提交文案”“对比最近提交生成 commit message”“生成推送文案”,输出固定为 text 代码块,内含一行主题、一个空行、若干以“- ”开头的要点。
- 12 stars
- 0 votes
- 0 copies
- 0 views
- Added October 1, 2026
Security analysis
100/100Pro scans all 3 files and shows the line behind each finding
npx -y skills add xcanwin/manyoyo --skill commit-diff --agent claude-codeAre you the author of Commit Diff?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/xcanwin-commit-diff)---
name: commit-diff
description: 对比最近一次 commit 与当前工作区差异,提炼核心变化并生成中文提交文案。适用于用户要求“根据当前改动写提交文案”“对比最近提交生成 commit message”“生成推送文案”,输出固定为 text 代码块,内含一行主题、一个空行、若干以“- ”开头的要点。
---
# 提交文案差异
## 目标
基于 `HEAD` 与当前未提交改动,生成可直接用作 commit message 的中文文案。
读者是使用者而不是作者:写他们能观察到的变化,不写代码是怎么实现的。
## 快速流程
1. 先运行 `.agents/skills/commit-diff/scripts/diff_context.sh` 收集对比上下文。
2. 仅在摘要无法判断核心变化时,再按文件看 `git diff -- <path>`。
3. 合并同类变化,先想清楚"这次最重要的一件事是什么",用它当主题行。
## 输出格式(强约束)
整体包在 ` ```text ` 代码块里,避免被 Markdown 渲染成列表。代码块内结构固定为三段:
```text
主题行
- 要点一
- 要点二
```
- **第一行是主题行**,直接写内容,不要以 `- ` 开头,不要留空行。
git 用第一行当 commit 标题,首行为空会导致第一条要点被顶成标题,
`git log --oneline` 会变成一大段糊在一起的文字。
- **第二行必须是空行**,git 靠它区分标题与正文。
- **第三行起是要点**,每条以 `- `(减号 + 空格)开头,单行表达,不嵌套。
## 主题行
- 动词开头,一句话说清这次最主要的变化,**不超过 50 字**。
- 能一句话概括就概括;确实是多个不相干的改动,用"某某模块若干修复"这类收口。
- 不写范围前缀(`feat:` / `fix:` 之类)——本文案用于发布提交,前缀由人工按需补。
## 要点
- **有几条写几条,最多 5 条**。改动小就写 1-2 条,不要为了凑数拆细或重复。
- 每条只讲一个变化,控制在一行内(约 40 字以内)。
- 写"变成什么样了",必要时带一句"原来是什么样",让人看得出差别。
- 只写 diff 能证明的事实,不补主观猜测,不写收益吹嘴。
## 不要写
- **实现细节**:文件名、函数名、类名、变量名、CSS 类名。
- **空泛动词**:优化、完善、提升体验、增强、改进、加强——除非紧跟具体的可观察变化。
- 测试结果、验证过程、覆盖率。
- 文档国际化同步(如"同步更新中英文文档")。
- 版本号变更、`package-lock.json` 同步等机械改动,除非它直接改变行为。
## 示例
改动:修了聊天页行内代码的显示、输入框高度失控、移动端详情页无法滚动。
正例:
```text
修复 Web 聊天页渲染与移动端布局问题
- 行内代码不再显示成加粗文字加一对反引号,改为浅底色标记
- 输入框粘贴长文不再撑满整屏,超过四成屏高后改为框内滚动
- 移动端详情页卡片被压扁、无法滚动的问题已修复
```
反例(首行为空导致没有标题;混入实现细节;空泛表述;为凑数拆条):
```text
- 优化了 markdown 渲染体验
- 在 markdown-content.tsx 里加了 prose-code:before:content-none
- 调整 Textarea 的 className
- 修改 workspace-panel.tsx
- 完善了移动端适配
```
## 无改动时
主题行写 `无可提交变更`,不输出要点,也不输出空行之后的内容。
## 命令参考
```bash
.agents/skills/commit-diff/scripts/diff_context.sh
git diff --name-only HEAD
git diff --stat HEAD
git diff -- <path>
```
Files in this skill
- SKILL.md
- agents/openai.yaml
- scripts/diff_context.sh
Attribution
Comments
Loading comments…