Claude Code Plugins

Community-maintained marketplace

Feedback

issue-triage

@dotnet/maui
23.1k
1

Queries and triages open GitHub issues that need attention. Helps identify issues needing milestones, labels, or investigation.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name issue-triage
description Queries and triages open GitHub issues that need attention. Helps identify issues needing milestones, labels, or investigation.
metadata [object Object]
compatibility Requires GitHub CLI (gh) authenticated with access to dotnet/maui repository.

Issue Triage Skill

This skill helps triage open GitHub issues in the dotnet/maui repository by:

  1. Initializing a session with current milestones and labels
  2. Loading a batch of issues into memory
  3. Presenting issues ONE AT A TIME for triage decisions
  4. Suggesting milestones based on issue characteristics
  5. Tracking progress through a triage session

When to Use

  • "Find issues to triage"
  • "Let's triage issues"
  • "Grab me 10 issues to triage"
  • "Triage Android issues"

Triage Workflow

Step 1: Initialize Session

Start by initializing a session to load current milestones and labels:

pwsh .github/skills/issue-triage/scripts/init-triage-session.ps1

Step 2: Load Issues Into Memory

Load a batch of issues (e.g., 20) but DO NOT display them all. Store them for one-at-a-time presentation:

pwsh .github/skills/issue-triage/scripts/query-issues.ps1 -Limit 100 -OutputFormat triage

Step 3: Present ONE Issue at a Time

IMPORTANT: When user asks to triage, present only ONE issue at a time in this format:

## Issue #XXXXX

**[Title]**

🔗 [URL]

| Field | Value |
|-------|-------|
| **Author** | username (Syncfusion if applicable) |
| **Platform** | platform |
| **Area** | area |
| **Labels** | labels |
| **Linked PR** | PR info with milestone if available |
| **Regression** | Yes/No |
| **Comments** | count |

**Comment Summary** (if any):
- [Author] Comment preview...

**My Suggestion**: `Milestone` - Reason

---

What would you like to do with this issue?

Step 4: Wait for User Decision

Wait for user to say:

  • A milestone name (e.g., "Backlog", "current SR", "Servicing")
  • "yes" to accept suggestion
  • "skip" or "next" to move on without changes
  • Specific instructions (e.g., "next SR and add regression label")

Step 5: Apply Changes and Move to Next

After applying changes, automatically present the NEXT issue.

Script Parameters

query-issues.ps1

Parameter Values Default Description
-Platform android, ios, windows, maccatalyst, all all Filter by platform
-Area Any area label (e.g., collectionview, shell) "" Filter by area
-Limit 1-1000 50 Maximum issues to fetch
-Skip 0+ 0 Skip first N issues (for pagination)
-OutputFormat table, json, markdown, triage table Output format
-RequireAreaLabel switch false Only return issues with area-* labels
-SkipDetails switch false Skip fetching PRs/comments (faster)

Milestone Suggestion Logic

The script dynamically queries current milestones from dotnet/maui and suggests them based on issue characteristics:

Condition Suggested Milestone Reason
Linked PR has milestone PR's milestone "PR already has milestone"
Has i/regression label Current SR milestone (soonest due) "Regression - current SR milestone"
Has open linked PR Servicing milestone (or next SR) "Has open PR"
Default Backlog "No PR, not a regression"

Note: SR milestones are sorted by due date, so the soonest SR is suggested for regressions. Milestone names change monthly, so they are queried dynamically rather than hardcoded.

Applying Triage Decisions

# Set milestone only
gh issue edit ISSUE_NUMBER --repo dotnet/maui --milestone "Backlog"

# Set milestone and add labels  
gh issue edit ISSUE_NUMBER --repo dotnet/maui --milestone "MILESTONE_NAME" --add-label "i/regression"

# Set milestone on both issue AND linked PR
gh issue edit ISSUE_NUMBER --repo dotnet/maui --milestone "MILESTONE_NAME"
gh pr edit PR_NUMBER --repo dotnet/maui --milestone "MILESTONE_NAME"

Common Milestone Types

Milestone Type Use When
Current SR (e.g., SR3) Regressions, critical bugs with PRs ready
Next SR (e.g., SR4) Important bugs, regressions being investigated
Servicing General fixes with PRs, non-urgent improvements
Backlog No PR, not a regression, nice-to-have fixes

Note: Use init-triage-session.ps1 to see current milestone names.

Label Quick Reference

Regression Labels:

  • i/regression - Confirmed regression
  • regressed-in-10.0.0 - Specific version

Priority Labels:

  • p/0 - Critical
  • p/1 - High
  • p/2 - Medium
  • p/3 - Low

iOS 26 / macOS 26:

  • version/iOS-26 - iOS 26 specific issue

Session Tracking (Optional)

# Record triaged issue
pwsh .github/skills/issue-triage/scripts/record-triage.ps1 -IssueNumber 33272 -Milestone "Backlog"

# View session stats
cat CustomAgentLogsTmp/Triage/triage-*.json | jq '.Stats'