# Everyday Version Summary

> 读取项目当前提交(HEAD)与最新Git Tag间的提交记录并生成版本日志。当用户要求总结版本更新、生成Release Notes或获取最新更新日志时调用。

- Skill: `libudu/everyday-version-summary` (Agent Skill)
- Install (CLI): `npx skillmds@latest add libudu/everyday-version-summary`
- Raw SKILL.md: https://api.skillmd.com/api/skills/libudu/everyday-version-summary/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: libudu (https://skillmd.com/u/libudu)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/libudu/everyday-version-summary

---


# everyday-version-summary

该 Skill 用于自动读取当前项目最新代码（HEAD）与最近一个 Git Tag 之间的提交记录，并生成一份对最终用户友好的、带有 Emoji 标记的版本更新日志（适用于打 Tag 前生成发版日志的场景）。

## 执行步骤

### 1. 获取 Git Tag 列表

首先，在终端中执行命令获取项目的 Tag 列表，按版本号降序排列：

```bash
git tag --sort=-v:refname
```

- **如果有 Tag**：将获取到的第一条 Tag 记为 `<latest_tag>`。
- **如果没有 Tag**：无需记录 Tag，将直接读取当前所有的提交记录。

### 2. 读取提交记录并输出到控制台

根据获取到的 Tag 情况，执行 `git log` 获取当前代码（HEAD）与最近一次 Tag 之间的提交记录。**必须**包含 `--no-pager` 和 `-n 100` 限制最多读取 100 条（避免本地 Tag 系统错误导致输出巨量 commit message），且格式为 `--pretty=format:"%ad | %s%b%n"`。

- **如果有 Tag**（获取 `<latest_tag>` 到当前 HEAD 的记录）：
  执行命令：
  ```bash
  git --no-pager log <latest_tag>..HEAD -n 100 --pretty=format:"%ad | %s%b%n"
  ```
- **如果没有 Tag**（获取从第一条提交到当前 HEAD 的记录）：
  执行命令：
  ```bash
  git --no-pager log HEAD -n 100 --pretty=format:"%ad | %s%b%n"
  ```

### 3. 分析日志并生成面向用户的版本更新日志

获取到终端中的 `git log` 输出后，仔细分析提交记录，按照以下要求生成最终发给用户的更新日志：

1. **大标题**：
   以 `项目名 + 待发布版本号` 开头，例如：“**\[项目名] 待发布版本 更新日志**”或“**\[项目名] 最新更新日志**”。
2. **内容提炼与过滤**：
   - 仔细阅读每条 commit message，理解其实际变更内容。
   - **剔除无关紧要的改动**：太过于细节和用户无感知的改动（如：重构内部代码、修复拼写错误、修改配置文件、更新依赖版本等）**不需要**包含在更新日志中。
   - **转化短句**：将剩余的有价值内容（如：新功能、重要修复、体验优化等）转化为通俗易懂的短句。
3. **格式排版**：
   - 根据实际提交内容列举多行。
   - 每行必须以一个恰当且相关的 Emoji 开头。

### 4. 返回结果

将最终整理好格式的版本更新日志直接回复给用户。

