review-pr
作者: microsoft
使用Claude Code代理生成结构化的PR审查评论,并发布到GitHub。无需API密钥——使用Claude Code现有的身份验证。
npx skills add https://github.com/microsoft/agent365-devtools --skill review-prPR Review Skill
Generate and post AI-powered PR review comments to GitHub following engineering best practices.
Usage
/review-pr <pr-number> # Generate review (step 1)
/review-pr <pr-number> --post # Post review to GitHub (step 2)
Examples:
/review-pr 180- Generate review and save to YAML file/review-pr 180 --post- Post the reviewed YAML to GitHub
What this skill does
Step 1: Generate (/review-pr <number>)
- Fetches PR details from GitHub using the gh CLI
- Performs architectural review (NEW!): Questions design decisions, checks for scope creep, validates use cases
- Analyzes changes for security, testing, design patterns, and code quality issues
- Differentiates contexts: CLI code vs GitHub Actions code (different standards)
- Creates actionable feedback: Specific refactoring suggestions based on file names and patterns
- Generates structured review comments in an editable YAML file
- Shows preview of all generated comments
Step 2: Post (/review-pr <number> --post)
- Reads the YAML file you reviewed/edited
- Posts to GitHub: Submits all enabled comments to the PR
- Automatic fallback: If GitHub API posting fails (e.g., Enterprise Managed User restrictions), automatically generates a markdown file with formatted comments for manual copy/paste
Engineering Review Principles
This skill enforces the following principles:
Architectural Review (NEW!)
- Design Decision Validation: Questions "why" before reviewing "how"
- Scope Creep Detection: Flags expansions beyond Agent365 deployment/management
- Use Case Validation: Requires concrete scenarios for new features
- Overlap Detection: Identifies duplication with existing tools (Azure CLI, Portal)
- YAGNI Enforcement: Questions features without documented need
Architecture & Patterns
- .NET architect patterns: Reviews follow .NET best practices
- Azure CLI alignment: Ensures consistency with az cli patterns and conventions
- Cross-platform compatibility: Validates Windows, Linux, and macOS compatibility (for CLI code)
Design Patterns
- KISS (Keep It Simple, Stupid): Prefers simple, straightforward solutions
- DRY (Don't Repeat Yourself): Identifies code duplication
- SOLID principles: Especially Single Responsibility Principle
- YAGNI (You Aren't Gonna Need It): Avoids over-engineering
- One class per file: Enforces clean code organization
Code Quality
- No large files: Flags files over 500 additions
- Function reuse: Encourages reusing functions across commands
- No special characters: Avoids emojis in logs/output (Windows compatibility)
- Self-documenting code: Prefers clear code over excessive comments
- Crisp comments (pr-code-reviewer #30): Flags added comments that run past 1-2 lines, restate the code, or narrate design history — a comment says why in one line; long-form reasoning belongs in the commit/PR.
- Release-note-ready CHANGELOG (pr-code-reviewer #31): Flags
CHANGELOG.mdentries that name internals, explain mechanism, or run multiple sentences — each entry is one crisp consumer-facing sentence (it ships verbatim to nuget.org release notes). - Minimal changes: Makes only necessary changes to solve the problem
Testing Standards
- Framework: xUnit, FluentAssertions, NSubstitute for .NET; pytest/unittest for Python
- Quality over quantity: Focus on critical paths and edge cases
- CLI reliability: CLI code without tests is BLOCKING
- GitHub Actions tests: Strongly recommended (HIGH severity) but not blocking
- Mock external dependencies: Proper mocking patterns
Security
- No hardcoded secrets: Use environment variables or Azure Key Vault
- Credential management: Follow az cli patterns for CLI code; use GitHub Secrets for Actions
Context Awareness
The skill differentiates between:
- CLI code (strict requirements): Cross-platform, reliable, must have tests
- GitHub Actions code (GitHub-specific): Linux-only is acceptable, tests strongly recommended
Review Comments Output
Generated comments are saved to:
C:\Users\<username>\AppData\Local\Temp\pr-reviews\pr-<number>-review.yaml
You can edit this file to:
- Disable comments by setting
enabled: false - Modify comment text
- Adjust severity levels (blocking, high, medium, low, info)
- Add or remove comments
Implementation
The skill uses Claude Code directly for semantic code analysis (inspired by Agent365-dotnet). No separate API key required!
Generate mode (default):
- Claude Code reads
.claude/agents/pr-code-reviewer.mdfor review process guidelines. Read the working-tree (PR) version of this file and of.github/copilot-instructions.mdandCLAUDE.md— not the base-branch copy. When the PR under review adds or changes a review rule (as PR #461 did with rules #30/#31), the new rule must be applied to that same PR in the same run; reading the base copy would skip it. - Claude Code reads
.github/copilot-instructions.mdfor coding standards - Claude Code fetches PR details:
gh pr view <number> --json ... - Claude Code analyzes actual code changes:
gh pr diff <number> - Claude Code performs semantic analysis using its own capabilities
- Claude Code identifies specific issues with line numbers and code references
- Claude Code writes YAML file to
C:\Users\<username>\AppData\Local\Temp\pr-reviews\pr-<number>-review.yaml
Post mode (with --post flag):
- Python script reads the YAML file
- Python script posts comments to GitHub using
gh pr comment - If posting fails (API permissions), automatically generates markdown file for manual copy/paste
Key Advantages:
- ✅ No
ANTHROPIC_API_KEYrequired - uses Claude Code's existing authentication - ✅ Better semantic analysis - Claude Code has full context and conversation history
- ✅ Simpler Python script - only handles posting logic (~240 lines vs ~1500 lines)
- ✅ Easier to maintain and debug
Workflow
-
Generate review:
/review-pr 180- Fetches PR details from GitHub
- Analyzes code and generates review comments
- Saves to YAML file (shows path in output)
-
Review and edit: Open the YAML file
- Review all generated comments
- Edit comment text if needed
- Disable comments by setting
enabled: false - Add your own comments if desired
-
Post to GitHub:
/review-pr 180 --post- Reads the YAML file
- Posts all enabled comments to the PR
- If API posting fails, automatically generates a markdown file for manual copy/paste
Requirements
- GitHub CLI (
gh) installed and authenticated - Python 3.x (only for --post mode)
- PyYAML library:
pip install pyyaml(only for --post mode) - Repository must be a GitHub repository
- GitHub API permissions to post reviews (Enterprise Managed Users may have restrictions)
See Also
- README.md - Detailed documentation
- review-pr.py - Implementation script
来自 microsoft 的更多技能
oss-growth
microsoft
OSS增长黑客角色
official
microsoft-foundry
microsoft
端到端部署、评估和管理Foundry代理:Docker构建、ACR推送、托管/提示代理创建、容器启动、批量评估、持续评估、提示优化工作流、agent.yaml、从追踪中整理数据集。用途:将代理部署到Foundry、托管代理、创建代理、调用代理、评估代理、运行批量评估、持续评估、持续监控、持续评估状态、优化提示、改进提示、提示优化器、优化代理指令、改进代理...
officialdevelopmentdevops
azure-ai
microsoft
用于Azure AI:搜索、语音、OpenAI、文档智能。支持搜索、向量/混合搜索、语音转文字、文字转语音、转录、OCR。适用场景:AI搜索、查询搜索、向量搜索、混合搜索、语义搜索、语音转文字、文字转语音、转录、OCR、文字转语音。
officialdevelopmentapi
azure-deploy
microsoft
对已准备好的应用程序执行Azure部署,这些程序需包含现有的.azure/deployment-plan.md和基础设施文件。当用户要求创建新应用程序时,请勿使用此技能——应改用azure-prepare。此技能运行azd up、azd deploy、terraform apply和az deployment命令,并内置错误恢复机制。需要来自azure-prepare的.azure/deployment-plan.md以及来自azure-validate的已验证状态。适用场景:"运行azd up"、"运行azd deploy"、"执行部署"...
officialdevopsaws
azure-storage
microsoft
Azure存储服务,包括Blob存储、文件共享、队列存储、表存储和Data Lake。解答关于存储访问层(热、冷、冷、归档)的问题,说明各层的使用场景及对比。提供对象存储、SMB文件共享、异步消息传递、NoSQL键值存储和大数据分析。包含生命周期管理。用途:Blob存储、文件共享、队列存储、表存储、Data Lake、上传文件、下载Blob、存储账户、访问层等。
officialdevelopmentdatabase
azure-diagnostics
microsoft
使用AppLens、Azure Monitor、资源健康和安全分类调试Azure生产问题。适用场景:调试生产问题、排查应用服务、应用服务CPU过高、应用服务部署失败、排查容器应用、排查函数、排查AKS、kubectl无法连接、kube-system/CoreDNS故障、Pod挂起、CrashLoop、节点未就绪、升级失败、分析日志、KQL、洞察、镜像拉取失败、冷启动问题、健康探测失败……
officialdevopsdevelopment
azure-prepare
microsoft
为Azure应用准备部署(基础设施Bicep/Terraform、azure.yaml、Dockerfile)。用于创建/现代化或创建+部署;不用于跨云迁移(使用azure-cloud-migrate)。请勿用于:copilot-sdk应用(使用azure-hosted-copilot-sdk)。适用场景:"创建应用"、"构建Web应用"、"创建API"、"创建无服务器HTTP API"、"创建前端"、"创建后端"、"构建服务"、"现代化应用"、"更新应用"、"添加身份验证"、"添加缓存"、"托管在Azure上"、"创建并...
officialdevelopmentdevops
azure-validate
microsoft
部署前对Azure就绪状态进行验证。对配置、基础设施(Bicep或Terraform)、RBAC角色分配、托管标识权限及先决条件进行深度检查,然后再部署。适用场景:验证我的应用、检查部署就绪状态、运行预检、验证配置、检查是否可部署、验证azure.yaml、验证Bicep、部署前测试、排查部署错误、验证Azure Functions、验证函数应用、验证无服务器...
officialdevopstesting