Queries GitHub with exclusion filters: -label:s/needs-info -label:s/needs-repro -label:area-blazor -label:s/try-latest-version -label:s/move-to-vs-feedback
Returns issues without milestones
Stores results for one-at-a-time presentation
DON'T:
❌ Use github-mcp-server-list_issues directly
❌ Use github-mcp-server-search_issues without the same filters
❌ Try to replicate the logic yourself - use the script!
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 (based on init session output)
---
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", ".NET 10 SR5", ".NET 10 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: Move to Next Issue
After user decision, automatically present the NEXT issue.
Step 6: When Batch is Empty
🚨 CRITICAL: When you run out of issues, AUTOMATICALLY reload more issues.
# Run query again to load next batch
pwsh .github/skills/issue-triage/scripts/query-issues.ps1 -Limit 50 -Skip <current_count> -OutputFormat triage
DO NOT:
❌ Stop and ask "Load more?"
❌ Say "No more issues found"
❌ Use different GitHub queries
DO:
✅ Automatically run query-issues.ps1 again with -Skip parameter
✅ Continue presenting issues one at a time
✅ Only stop when query returns zero issues
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
🚨 CRITICAL: ALWAYS use actual milestone names from init-triage-session.ps1 output. NEVER guess or assume milestone names.
The skill dynamically queries current milestones from dotnet/maui at session initialization. Milestone names change frequently (e.g., SR4, SR5, SR6), so always reference the session output when suggesting milestones.