analyze-pr
分析GitHub/GitLab的Pull Request,拉取代码获取diff,读取PR网页描述,生成综合分析文档。当用户提供PR链接并要求分析、审查或总结PR时使用。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
分析GitHub/GitLab的Pull Request,拉取代码获取diff,读取PR网页描述,生成综合分析文档。当用户提供PR链接并要求分析、审查或总结PR时使用。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Ralph Wiggum 迭代开发循环。三阶段工作流(需求→规划→构建),每阶段有 code review + 测试 gate。 触发词:ralph loop、迭代开发、interview me、plan system、build system。
Rebase from the latest origin/main, squash branch commits, and create or update a GitHub pull request. Use when asked to prepare or create a PR.
Generate an intelligent Conventional Commit message from staged changes. Use when asked to draft or create a commit from the staged diff.
Review a GitHub pull request with risk-based analysis and parallel subagents. Use when asked to review the current branch PR or a specific PR number.
Analyze staged changes and split them into logical Conventional Commits. Use when asked to plan or create multiple cohesive commits.
所有联网操作必须通过此 skill 处理,包括:搜索、网页抓取、登录后操作、网络交互等。 触发场景:用户要求搜索信息、查看网页内容、访问需要登录的网站、操作网页界面、抓取社交媒体内容(小红书、微博、推特等)、读取动态渲染页面、以及任何需要真实浏览器环境的网络任务。
| name | analyze-pr |
| description | 分析GitHub/GitLab的Pull Request,拉取代码获取diff,读取PR网页描述,生成综合分析文档。当用户提供PR链接并要求分析、审查或总结PR时使用。 |
| allowed-tools | Bash(git *), Bash(gh *), Bash(curl *), Read, Write, Grep, Glob, WebFetch |
| argument-hint | <PR URL, e.g. https://github.com/owner/repo/pull/123> |
给定一个 PR URL,在本地仓库中拉取代码变更并读取 PR 描述,生成综合分析文档。PR 对应的仓库就是当前本地仓库。
运行 /analyze-pr <PR_URL>
从 URL 中提取:
支持的格式:
https://github.com/{owner}/{repo}/pull/{number}
https://gitlab.com/{owner}/{repo}/-/merge_requests/{number}
优先使用 gh CLI(处理认证更方便):
# 检查 gh 是否可用
command -v gh >/dev/null 2>&1
# 使用 gh 获取 PR 信息(包括 baseRefName)
gh pr view {number} --repo {owner}/{repo} --json title,body,author,labels,baseRefName,headRefName,additions,deletions,changedFiles,commits,comments,reviews
# 获取 PR diff
gh pr diff {number} --repo {owner}/{repo}
如果 gh 不可用,使用 curl 访问 GitHub API:
curl -s https://api.github.com/repos/{owner}/{repo}/pulls/{number}
从返回数据中获取 base.ref(base 分支名)。
# GitHub
git fetch origin pull/{number}/head:pr-{number}
# GitLab
git fetch origin merge-requests/{number}/head:mr-{number}
不要 checkout PR 分支,只用它作为 ref 进行 diff,避免影响工作区。
使用第二步获取的 baseRefName / base.ref 作为 base 分支(不要硬编码 main):
BASE_BRANCH={baseRefName from step 2}
# 变更文件列表
git diff --name-only origin/$BASE_BRANCH...pr-{number}
# 变更统计
git diff --stat origin/$BASE_BRANCH...pr-{number}
# 完整 diff
git diff origin/$BASE_BRANCH...pr-{number}
# 提交历史
git log --oneline origin/$BASE_BRANCH..pr-{number}
对每个变更文件理解:
按类别分组变更:
创建 markdown 文档:
# PR 分析: {PR Title}
> PR 链接: {url}
> 作者: {author}
> 日期: {date}
> 分支: {base} ← {head}
## 概述
{一段话概述这个 PR 做了什么以及为什么}
## 变更统计
- 变更文件数: {count}
- 新增行数: {additions}
- 删除行数: {deletions}
## 详细变更
### {类别 1: 如 新功能}
#### {文件或组件名}
- **改了什么**: 变更描述
- **为什么改**: 变更原因
- **关键代码变更**: 重要代码修改的简述
### {类别 2: 如 Bug 修复}
...
## 提交历史
| Hash | Message | Author |
|------|---------|--------|
| {hash} | {message} | {author} |
## PR 讨论要点
{PR 评论和评审中的关键要点}
## 影响评估
- **破坏性变更**: {有/无, 详情}
- **受影响的依赖**: {列表}
- **需要关注的区域**: {列表}
## 审查备注
{额外的观察或建议}
将完整 diff 保存到本地文件:
git diff origin/$BASE_BRANCH...pr-{number} > pr-{number}.diff
这个 .diff 文件包含 PR 引入的所有代码变更。
将分析文档保存到当前工作目录:pr-analysis-{number}.md
清理临时分支 ref:
git branch -D pr-{number}
最终输出文件:
pr-{number}.diff — PR 的原始 diff 文件pr-analysis-{number}.md — 结构化分析文档gh CLI,它能自动处理认证