关于 pull-request-diff-analyzer
Pull Request Diff Analyzer 是分析 Git 差异和 PR 的技能,用于概述变更范围并提取可测试、面向用户的验收标准。它只做分析,不修改代码。
主要功能
- 01识别分支与基准分支上下文
- 02列出变更文件并查看 PR 详情
- 03将变更归类为功能、修复或重构
- 04聚焦分析源代码变更
- 05生成简洁摘要和可测试验收标准
适用场景
- 01为源代码 PR 准备手动测试标准
- 02概述本地分支差异或未提交变更
- 03对仅涉及文档或配置的变更跳过详细标准
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ testomatio/ skills --skill pull-request-diff-analyzer安装后在 Claude Code 中输入/pull-request-diff-analyzer确认已加载。
详细介绍
拉取请求差异分析器
分析 git 差异或 PR,以检测变更类型并提取供人工测试的验收标准。仅进行分析——绝不修改代码。
步骤 1:检测分支上下文和范围
获取当前分支:
git branch --show-current
按以下顺序检测基准分支:
- 从 PR 上下文获取(优先)。如果已知 PR 编号:
gh pr view {PR_NUMBER} --json baseRefName
响应中的 baseRefName 是 PR 的基准分支。
- 如果无法检测到基准分支,请让用户指定。
获取已更改的文件:
git diff {BASE_BRANCH}...HEAD --name-only
仅针对未提交的本地变更:
git diff --name-only
针对具有完整差异视图的 GitHub PR:
gh pr diff {PR_NUMBER}
如果符合以下条件,跳至步骤 3,仅提供简短摘要(不含验收标准):
- 当前分支是
master、main、stable,或baseRefName中检测到的默认分支。 - 没有文件变更。
- 所有变更都属于非源代码更新:
- 文档/需求(
*.md、docs/**) - 测试更新和测试文档(
*.test.md、test-flows/**、tests/e2e) - CI/CD 和基础设施配置(
.github/workflows/**、Jenkinsfile) - lint/格式化工具/工具链配置
- 不影响行为的依赖版本升级
- 文档/需求(
- 应用程序/源代码的行为没有变化。
如果源代码发生变化(src/**、lib/**、app/**,或根目录中的 .ts/.js/.tsx/.jsx/.java/.py/.go/.rb/.php/.cs/.kt/.swift/.rs 等文件),继续执行步骤 2。
步骤 2:分析 PR 上下文和文件
获取 PR 详情:
gh pr view {PR_NUMBER} --json title,body,comments,reviews,issues
提取与测试相关的信息:
- 标题——功能/修复名称、受影响的组件。
- 描述——验收标准、测试场景。
- 评论——测试说明、边界情况、复现步骤。
仅分析源代码文件:
- 目录:
src/**、lib/**、app/**、controllers/**、services/**、models/**、pages/**、components/**、handlers/**、modules/**等。 - 扩展名:
.ts、.js、.tsx、.jsx、.java、.py、.go、.rb、.php、.cs、.kt、.swift、.rs - 跳过配置、依赖、测试、文档、迁移,以及其他与源代码无关的文件。
检测 PR 类型:
- 功能——新增文件、端点、组件、模块。
- 修复——错误修复、补丁、紧急修复(检查提交记录中的“fix”“bug”“hotfix”)。
- 重构——调整代码结构但不改变行为。
可选:scan-automation-project
默认不要运行 scan-automation-project。 仅当额外的项目信息能在编写验收标准前带来明确价值时才运行。
在以下情况下运行:
- PR 引入了新功能或重大功能变更。
- 需要检查是否已有类似的人工测试。
- 用户明确提出要求(如“检查是否重复”“已有的测试有哪些”或类似请求)。
在以下情况下跳过:
- PR 是小型修复或轻微的 UI/组件更新。
- 差异内容已提供足够上下文,可据此自信地编写验收标准。
- 变更仅涉及文档、需求、测试、配置或非源代码更新。
- 项目似乎不包含人工测试。
- 现有测试清单与当前任务无关。
如果该工具不可用:
- 继续执行,不检查现有测试。
- 在验收标准输出中添加以下说明:
未检查人工测试清单——如有需要,请手动确认现有测试。
仅将扫描结果用于:
- 避免重复已有的人工测试用例。
- 了解项目结构、框架和测试组织方式。
- 提高生成的验收标准的相关性和一致性。
步骤 3:提供摘要和验收标准
输出格式:
## PR Diff Summary
**PR Type:** ... (feature | fix | refactor)
**Branch:** ... (branch name, e.g. feature/user-auth)
**Changes:** ... (one sentence describing the overall purpose of this PR)
**Affected Files:**
- ... (bullet list of all affected files in this PR)
**Impacted Areas:**
- ... (1-3 bullets, only real impacted files/areas in the PR)
**Acceptance Criteria:**
- action to perform → expected result
- ...
摘要规则:
- 摘要应简洁且概括性强。
- “Changes”必须是一句话,不得写成段落。
- “Impacted Areas”仅列出有意义的业务或技术影响。
- 省略空白章节,不要写
None或N/A。 - 验收标准必须可测试,且以用户为中心。
- 避免使用“代码清理”“小修小补”或“各种改进”等笼统表述。
- 不要逐行描述实现细节。
评论
支持 Markdown