pr-descriptionlisted
Install: claude install-skill afine907/skills
# PR Description — Pull Request 描述生成 Agent
git diff + branch context → 结构化 PR 描述 → 可选通过 gh CLI 创建 PR。
## Goal
分析 git diff 和分支上下文,自动生成结构化的 Pull Request 描述。
## Trigger
- User says "帮我写 PR 描述"、"提 PR"、"create PR"
- User has pushed a branch and wants a PR description
- User provides a git diff and wants it summarized
## 工作流程
```
获取 diff → 分析变更 → 生成结构化描述 → 输出/创建 PR
```
## Step 1: 获取变更信息
```bash
# 获取当前分支名
git rev-parse --abbrev-ref HEAD
# 获取与目标分支的 diff(自动检测 main/master)
git diff origin/main...HEAD --stat
git diff origin/main...HEAD
# 如果 main 不存在则用 master
git diff origin/master...HEAD --stat
git diff origin/master...HEAD
# 获取近期提交信息
git log origin/main...HEAD --oneline
```
**如果参数中提供了特定分支**:用指定分支替代自动检测。
**如果不在 git 仓库或没有远程分支**:提示用户提供 diff 文本。
## Step 2: 分析变更
按以下维度分析:
### 变更分类
| 类型 | 特征 |
|------|------|
| 新功能 | 新增文件、新模块、新 API |
| Bug 修复 | 修复边界条件、异常处理、逻辑修正 |
| 重构 | 重命名、提取函数、调整结构 |
| 依赖更新 | package.json、requirements.txt 等 |
| 配置变更 | 配置文件、环境变量 |
| 文档/测试 | .md 文件、测试用例 |
### 变更影响分析
- **影响范围**:修改了哪些模块、API 接口是否变化
- **破坏性变更**:是否改接口签名、删字段、改配置格式
- **数据变更**:是否涉及数据库 schema、缓存 key 等
## Step 3: 生成 PR 描述
按以下模板输出:
```markdown
## Summary
<用 2-3 句话概括 PR 目的和变更要点>
## Changes
### <模块/功能 1>
- <具体变更,每点一行>
- ...
### <模块/功能 2>
- <具体变更>
- ...
## Breaking Changes
<如果有破坏性变更,列出迁移说明;如果没有则写 "None">
## Test Plan
- [ ] <验证步骤 1>
- [ ] <验证步骤 2>
- [ ] 现有测试通过:`<测试命令>`
```
### 编写规则
**DO**:
- ✅