← ClaudeAtlas

pr-descriptionlisted

Analyze git diff and generate structured PR description. Trigger: user says "帮我写 PR 描述"、"提 PR"、"create PR"、"写 pull request".
afine907/skills · ★ 0 · AI & Automation · score 75
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**: - ✅