Back to list
dotnet

issue-triage

by dotnet

.NET MAUI is the .NET Multi-platform App UI, a framework for building native device applications spanning mobile, tablet, and desktop.

23,153🍴 1,906📅 Jan 23, 2026

Use Cases

Efficient Code Generation

Auto-generate boilerplate code to reduce development time.

🔍

Code Review Assistance

Analyze PR changes and suggest improvements.

🔧

Refactoring Suggestions

Suggest refactoring options to improve code quality.

🧪

Test Code Generation

Auto-generate unit tests and E2E tests.

FAQ

SKILL.md


name: issue-triage description: Queries and triages open GitHub issues that need attention. Helps identify issues needing milestones, labels, or investigation. metadata: author: dotnet-maui version: "2.1" 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

ParameterValuesDefaultDescription
-Platformandroid, ios, windows, maccatalyst, allallFilter by platform
-AreaAny area label (e.g., collectionview, shell)""Filter by area
-Limit1-100050Maximum issues to fetch
-Skip0+0Skip first N issues (for pagination)
-OutputFormattable, json, markdown, triagetableOutput format
-RequireAreaLabelswitchfalseOnly return issues with area-* labels
-SkipDetailsswitchfalseSkip fetching PRs/comments (faster)

Milestone Suggestion Logic

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

ConditionSuggested MilestoneReason
Linked PR has milestonePR's milestone"PR already has milestone"
Has i/regression labelCurrent SR milestone (soonest due)"Regression - current SR milestone"
Has open linked PRServicing milestone (or next SR)"Has open PR"
DefaultBacklog"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 TypeUse When
Current SR (e.g., SR3)Regressions, critical bugs with PRs ready
Next SR (e.g., SR4)Important bugs, regressions being investigated
ServicingGeneral fixes with PRs, non-urgent improvements
BacklogNo 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'

Score

Total Score

90/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

+10
説明文

100文字以上の説明がある

+10
人気

GitHub Stars 1000以上

+15
最近の活動

1ヶ月以内に更新

+10
フォーク

10回以上フォークされている

+5
Issue管理

オープンIssueが50未満

0/5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

+5

Reviews

💬

Reviews coming soon