--- name: find-reviewable-pr description: Finds open PRs in the dotnet/maui and dotnet/docs-maui repositories that are good candidates for review, prioritizing by milestone, priority labels, partner/community status. metadata: author: dotnet-maui version: "2.1" compatibility: Requires GitHub CLI (gh) authenticated with access to dotnet/maui and dotnet/docs-maui repositories. --- # Find Reviewable PR This skill searches the dotnet/maui and dotnet/docs-maui repositories for open pull requests that are good candidates for review, prioritized by importance. ## When to Use - "Find a PR to review" - "Find PRs that need review" - "Show me milestoned PRs" - "Find partner PRs to review" - "What community PRs are open?" - "Find docs-maui PRs to review" ## Priority Categories (in order) 1. **Priority (P/0)** - Critical priority PRs that need immediate attention 2. **Milestoned** - PRs assigned to current milestone(s), sorted by lowest SR number first (e.g., SR5 before SR6), then Servicing 3. **Partner** - PRs from Syncfusion and other partners 4. **Community** - External contributions needing review 5. **Recent Waiting for Review** - PRs created in last 2 weeks that need review (minimum 5) 6. **docs-maui Waiting for Review** - Documentation PRs needing review (minimum 5) ## Quick Start ```bash # Find all reviewable PRs (shows top from each category including docs-maui) pwsh .github/skills/find-reviewable-pr/scripts/query-reviewable-prs.ps1 # Find only milestoned PRs pwsh .github/skills/find-reviewable-pr/scripts/query-reviewable-prs.ps1 -Category milestoned # Find only docs-maui PRs waiting for review pwsh .github/skills/find-reviewable-pr/scripts/query-reviewable-prs.ps1 -Category docs-maui # Find recent PRs waiting for review pwsh .github/skills/find-reviewable-pr/scripts/query-reviewable-prs.ps1 -Category recent # Find Android PRs only pwsh .github/skills/find-reviewable-pr/scripts/query-reviewable-prs.ps1 -Platform android # Limit results per category pwsh .github/skills/find-reviewable-pr/scripts/query-reviewable-prs.ps1 -Limit 5 # Adjust docs-maui limit (default is 5, minimum enforced) pwsh .github/skills/find-reviewable-pr/scripts/query-reviewable-prs.ps1 -DocsLimit 10 ``` ## Script Parameters | Parameter | Values | Default | Description | |-----------|--------|---------|-------------| | `-Category` | milestoned, priority, recent, partner, community, docs-maui, all | all | Filter by category | | `-Platform` | android, ios, windows, maccatalyst, all | all | Filter by platform | | `-Limit` | 1-100 | 10 | Max PRs per category (maui repo) | | `-RecentLimit` | 1-100 | 5 | Max recent PRs waiting for review from maui repo (minimum 5 enforced) | | `-DocsLimit` | 1-100 | 5 | Max PRs for docs-maui waiting for review (minimum 5 enforced) | | `-ExcludeAuthors` | string[] | (none) | Exclude PRs from specific authors (e.g., `-ExcludeAuthors PureWeen,rmarinho`) | | `-IncludeAuthors` | string[] | (none) | Only include PRs from specific authors | | `-OutputFormat` | review, table, json | review | Output format | ## Workflow for Reviewing PRs ### Step 1: Find PRs to Review **CRITICAL**: You MUST use the PowerShell script below. Do NOT attempt to query GitHub directly with `gh` commands or `jq` if the script fails. The script contains important prioritization logic (SR3 before SR4, P/0 first, etc.) that cannot be replicated with ad-hoc queries. ```bash pwsh .github/skills/find-reviewable-pr/scripts/query-reviewable-prs.ps1 -Limit 5 ``` **If the script fails** (e.g., HTTP 502, network error, authentication issue): 1. **STOP** - Do not attempt fallback queries 2. **Report the error** to the user 3. **Suggest retry** - Ask user to try again in a few minutes (GitHub API may be temporarily unavailable) **Why no fallbacks?** Ad-hoc queries bypass the milestone prioritization logic and will return incorrectly ordered results (e.g., later SR milestones before earlier ones). ### Step 2: Check for Warnings **IMPORTANT**: If the script output contains a warning about missing `read:project` scope, you MUST include this warning at the TOP of your response to the user: ``` ⚠️ **Note**: Your GitHub token is missing the `read:project` scope. Project board data is not available. To enable: `gh auth refresh -s read:project` ``` ### Step 3: Present Results from ALL Categories **CRITICAL**: When presenting PR results, you MUST include PRs from ALL categories returned by the script: 1. 🔴 **Priority (P/0)** - Always include if present 2. 📅 **Milestoned** - Always include if present 3. 🤝 **Partner** - Always include if present 4. ✨ **Community** - Always include if present 5. 🕐 **Recent** - Always include if present 6. 📖 **docs-maui** - Always include if present **DO NOT** omit any category. Each category table should include columns for: PR, Title, Author, Platform/Repo, Status, Age, Updated. ### Step 4: Present ONE PR at a Time for Review When user asks to review, present only ONE PR in this format: ```markdown ## PR #XXXXX **[Title]** 🔗 [URL] | Field | Value | |-------|-------| | **Author** | username | | **Platform** | platform | | **Complexity** | Easy/Medium/Complex | | **Milestone** | milestone or (none) | | **Age** | X days | | **Files** | X (+additions/-deletions) | | **Labels** | labels | | **Category** | priority/milestoned/partner/community/recent | Would you like me to review this PR? ``` ### Step 5: Invoke PR Reviewer When user confirms, use the **pr** agent: - "Review PR #XXXXX" ## Complexity Levels | Complexity | Criteria | |------------|----------| | **Easy** | ≤5 files, ≤200 additions | | **Medium** | 6-15 files, or 200-500 additions | | **Complex** | >15 files, or >500 additions | ## Tips - **P/0 PRs** should be reviewed first - they're blocking releases - **Milestoned PRs** have deadlines and should be prioritized - **Partner PRs** often have business priority - **Community PRs** may need more guidance and thorough review - **Recent PRs** - quick turnaround keeps contributors engaged