---
name: patch-notes
description: "从 git 历史记录、Sprint 数据和内部更新日志生成面向玩家的补丁说明。将开发者语言转化为清晰、有吸引力的玩家沟通内容。"
argument-hint: "[版本号] [--style brief|detailed|full]"
user-invocable: true
allowed-tools: Read, Glob, Grep, Write, Bash
---

当此技能被调用时：

1. **解析参数**：
   - `version`：要生成补丁说明的发布版本（例如 `1.2.0`）
   - `--style`：输出风格 — `brief`（要点列表）、`detailed`（含上下文）、`full`（含开发者评论）。默认：`detailed`。

2. **从多个来源收集变更数据**：
   - 如果存在，读取内部更新日志 `production/releases/[version]/changelog.md`
   - 运行 `git log` 查看上一个发布标签与当前标签/HEAD 之间的变更
   - 读取 `production/sprints/` 中的 Sprint 回顾以获取上下文
   - 读取 `design/balance/` 中的数值平衡变更文档
   - 如果可用，读取 QA 的 Bug 修复记录

3. **将所有变更分类**为面向玩家的类别：
   - **新内容**：新功能、地图、角色、物品、模式
   - **玩法变更**：数值平衡调整、机制变更、进度变更
   - **体验优化 (Quality of Life)**：UI 改进、便利功能、无障碍
   - **Bug 修复**：按系统分组（战斗、UI、联网等）
   - **性能**：玩家可能注意到的优化改进
   - **已知问题**：透明地告知未解决的问题

4. **将开发者语言翻译为玩家语言**：
   - "重构了伤害计算管线" -> "提升了命中检测的准确性"
   - "修复了背包管理器中的空引用" -> "修复了打开背包时的崩溃问题"
   - "减少了战斗循环中的 GC 分配" -> "改善了战斗性能"
   - 移除不影响玩家的纯内部变更
   - 保留数值平衡变更的具体数字（伤害：50 -> 45）

5. **使用适当的风格生成补丁说明**：

### 简要风格
```markdown
# 补丁 [版本] — [标题]

**新增**
- [功能 1]
- [功能 2]

**变更**
- [数值平衡/机制变更，附变更前 -> 变更后的值]

**修复**
- [Bug 修复 1]
- [Bug 修复 2]

**已知问题**
- [问题 1]
```

### 详细风格
```markdown
# 补丁 [版本] — [标题]
*[日期]*

## 亮点
[1-2 句话总结最令人兴奋的变更]

## 新内容
### [功能名称]
[2-3 句话描述该功能以及玩家应该期待什么]

## 玩法变更
### 数值平衡
| 变更 | 变更前 | 变更后 | 原因 |
| ---- | ---- | ---- | ---- |
| [物品/技能] | [旧值] | [新值] | [简要理由] |

### 机制
- **[变更]**：[变更内容及原因的说明]

## 体验优化
- [改进及上下文]

## Bug 修复
### 战斗
- 修复了 [玩家遇到的问题描述]

### UI
- 修复了 [描述]

### 联网
- 修复了 [描述]

## 性能
- [玩家会注意到的改进]

## 已知问题
- [问题及可用的临时解决方案]
```

### 完整风格
包含详细风格的所有内容，加上：
```markdown
## 开发者寄语
### [主题]
> [开发者对重大变更的洞察 — 为什么这么做、考虑了什么、
> 团队学到了什么。以团队第一人称撰写。]
```

6. **审查输出**，确保：
   - 没有内部术语（用玩家友好的语言替换技术术语）
   - 没有引用内部系统、工单或 Sprint 编号
   - 数值平衡变更包含变更前/后的值
   - Bug 修复描述的是玩家体验，而非技术原因
   - 语气符合游戏的声音风格（根据游戏风格调整正式程度）

7. **保存补丁说明**到 `production/releases/[version]/patch-notes.md`，
   如果需要则创建目录。

8. **向用户输出**：完整的补丁说明、文件路径、按类别的变更计数，以及被排除的内部变更（供审核）。
