Skip to content
Back to skills

Commit Diff

ASecurity

对比最近一次 commit 与当前工作区差异,提炼核心变化并生成中文提交文案。适用于用户要求“根据当前改动写提交文案”“对比最近提交生成 commit message”“生成推送文案”,输出固定为 text 代码块,内含一行主题、一个空行、若干以“- ”开头的要点。

  • 12 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 1, 2026
ai-agentsbashgit

Security analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned October 1, 2026

npx -y skills add xcanwin/manyoyo --skill commit-diff --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Commit Diff?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Commit Diff
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/xcanwin-commit-diff/badge)](https://www.skillsdirectory.com/skills/xcanwin-commit-diff)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
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.md3.5 KB
  • agents/openai.yaml299 B
  • scripts/diff_context.sh622 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…