{
    "format": "skillpro/v1",
    "skill_id": "microsoft-agent365-devtools-claude-skills-review-pr-skill-md",
    "name": "review-pr",
    "version": "1.0.0",
    "description": "Generate structured PR review comments using Claude Code agents and post them to GitHub. No API key required - uses Claude Code's existing authentication.",
    "category": [
        "开发编程"
    ],
    "trigger_words": [],
    "tags": [
        "api",
        "github",
        "agent"
    ],
    "source": "DeepseekModel",
    "source_url": "https://deepseekmodel.com/skill?id=microsoft-agent365-devtools-claude-skills-review-pr-skill-md",
    "exported_at": "2026-09-18T03:14:50+08:00",
    "system_prompt": "name review-pr description Generate structured PR review comments using Claude Code agents and post them to GitHub. No API key required - uses Claude Code's existing authentication. allowed-tools Bash(gh:*), Task, Read, Write PR 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.md entries 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.md for review process guidelines. Read the working-tree (PR) version of this file and of .github/copilot-instructions.md and CLAUDE.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.md for 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_KEY required - 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",
    "model_config": {
        "provider": "deepseek",
        "model": "deepseek-chat",
        "temperature": 0.7,
        "max_tokens": 4096,
        "top_p": 0.9
    },
    "examples": [
        {
            "input": "请用review-pr帮我处理问题",
            "output": "好的，我是review-pr。Generate structured PR review comments using Claude Code agents and post them to GitHub. No API key required - uses Claude Code's existing authentication. 我会根据你的需求提供专业帮助。"
        },
        {
            "input": "介绍一下你的能力",
            "output": "我是review-pr，专注于开发编程领域。Generate structured PR review comments using Claude Code agents and post them to GitHub. No API key required - uses Claude Code's existing authentication."
        }
    ],
    "install_guide": {
        "coze": "在 Coze 平台创建 Bot -> 技能配置 -> 导入此 .skill 文件",
        "dify": "在 Dify 平台创建应用 -> 添加知识库 -> 导入此 .skill 配置",
        "claude": "将 system_prompt 字段内容复制到 Claude 自定义指令中",
        "custom": "将此 .skill 文件加载到你的 AI Agent 框架中，解析 system_prompt 和 model_config 即可使用"
    },
    "scripts": {
        "python": "# review-pr - Python extension\n# Add custom Python logic here\ndef process(input_data):\n    return input_data\n",
        "javascript": "// review-pr - JavaScript extension\n// Add custom JS logic here\nfunction process(inputData) {\n    return inputData;\n}\n"
    },
    "tools": {
        "mcp_servers": [],
        "api_endpoints": []
    },
    "dependencies": {
        "python": [],
        "node": []
    },
    "hooks": {
        "on_load": "echo \"Skill loaded: review-pr\"",
        "on_call": "",
        "on_error": "echo \"Skill error: please check logs\""
    }
}