| name | issue-triage-report |
|---|---|
| description | Generate comprehensive GitHub Feature Area Status reports for the Windows App SDK repository. Use when asked to create triage reports, identify high-priority issues, analyze feature area health, find issues needing attention, or generate status dashboards. Triggers on requests involving issue triage, area status, priority analysis, bug tracking reports, or engineering team focus areas. |
| license | Complete terms in LICENSE.txt |
This skill generates comprehensive GitHub Feature Area Status reports that help engineering teams identify high-priority issues, track triage status, and highlight items needing immediate attention.
Primary triggers — Generate a report when:
-
Engineering triage meetings — Create status reports showing open issues, needs-triage counts, and highlighted issues per feature area.
-
Priority analysis requests — Identify which issues should get engineering focus based on multi-factor scoring (reactions, age, severity, blockers).
-
Feature area health checks — Assess the health of specific areas by analyzing issue distribution, triage backlog, and proposal counts.
-
Dashboard generation — Produce markdown tables or formatted reports for team communication channels.
Anti-patterns — Do NOT use this skill when:
- Looking for a specific issue by number (use GitHub search directly)
- Creating or editing issues (use GitHub MCP tools)
- Analyzing code changes or PRs (use PR management tools)
- GitHub CLI (
gh) installed and authenticated - PowerShell 5.1+ (Windows) or PowerShell Core (cross-platform)
- Access to the target GitHub repository (microsoft/WindowsAppSDK)
- Area contacts configuration (see below)
The area contacts file maps feature areas to team members. This file is required for contact lookups and is stored in your local .user/ folder (not committed to the repository).
-
Create the directory structure:
mkdir -p .user/issue-triage-report
-
Copy the template and customize:
cp .github/skills/issue-triage-report/references/area-contacts.json .user/issue-triage-report/area-contacts.json
-
Edit
.user/issue-triage-report/area-contacts.jsonwith your team's actual contacts:{ "areaContacts": { "area-FeatureName": { "contact": "Contact Name", "notes": "Optional notes" } }, "specialAreas": { "triageOnly": ["area-TriageOnlyExample"], "crossFunctional": { "area-CrossTeam": "org/related-repo" } }, "lastUpdated": "YYYY-MM" }
Note: The
.user/folder is gitignored, so your team contacts remain private.
Generate the full feature area status report with highlight scoring.
Location: ./scripts/Generate-FeatureAreaReport.ps1
./scripts/Generate-FeatureAreaReport.ps1 [-Repo <owner/repo>] [-OutputFormat <markdown|csv|json>] [-HighlightCount <n>]| Parameter | Required | Default | Description |
|---|---|---|---|
-Repo |
No | microsoft/WindowsAppSDK |
Repository in owner/repo format |
-OutputFormat |
No | markdown |
Output format: markdown, csv, or json |
-HighlightCount |
No | 3 |
Max highlighted issues per area |
-IncludeClosed |
No | $false |
Include recently closed issues count |
Example:
./scripts/Generate-FeatureAreaReport.ps1 -OutputFormat markdown -HighlightCount 3Calculate the highlight score for a specific issue to determine priority.
Location: ./scripts/Get-HighlightScore.ps1
./scripts/Get-HighlightScore.ps1 -IssueNumber <number> [-Repo <owner/repo>] [-Verbose]| Parameter | Required | Default | Description |
|---|---|---|---|
-IssueNumber |
Yes | - | GitHub issue number to analyze |
-Repo |
No | microsoft/WindowsAppSDK |
Repository in owner/repo format |
-Verbose |
No | $false |
Show detailed scoring breakdown |
Example:
./scripts/Get-HighlightScore.ps1 -IssueNumber 4651 -VerboseRetrieve or update the area-to-contact mapping configuration.
Location: ./scripts/Get-AreaContacts.ps1
./scripts/Get-AreaContacts.ps1 [-Area <area-name>] [-Update]| Parameter | Required | Default | Description |
|---|---|---|---|
-Area |
No | - | Specific area to look up (returns all if omitted) |
-Update |
No | $false |
Interactively update contact mapping |
-
Ensure GitHub CLI is authenticated:
gh auth status
-
Generate the report:
./scripts/Generate-FeatureAreaReport.ps1 -OutputFormat markdown -HighlightCount 3
-
Review highlighted issues and their scores
-
Copy output to team communication channel (Teams, email, wiki)
-
Get area-specific issues:
gh issue list --repo microsoft/WindowsAppSDK --label "area-Notification" --state open --json number,title,labels,reactionGroups,createdAt,comments
-
Check individual issue scores:
./scripts/Get-HighlightScore.ps1 -IssueNumber 2894 -Verbose
-
Review scoring factors and prioritize accordingly
-
View current contacts:
./scripts/Get-AreaContacts.ps1
-
Update specific area contact:
./scripts/Get-AreaContacts.ps1 -Area "area-Notification" -Update
Issues are scored (0-100) based on multiple factors. See scoring-algorithm.md for complete details.
Each score includes a confidence value [confidence:XX] indicating data reliability (grep-friendly format).
| Factor | Weight | Description |
|---|---|---|
| Reactions | 30 | Total reactions (👍, ❤️, 🚀, etc.) indicate community interest |
| Age | 30 | Older untriaged issues get higher priority |
| Comments | 30 | Active discussion indicates importance |
| Severity | 10 | Labels like bug, regression, crash, P0-P3 increase score |
| Tier | Labels | Score |
|---|---|---|
| Critical | regression, crash, hang, data-loss, security, P0 |
100% |
| High | bug, P1 |
80% |
| Medium | performance, feature proposal, P2 |
50% |
| Low | documentation, enhancement, P3 |
20% |
The report adds reason labels to highlighted issues:
| Label | Meaning |
|---|---|
🌟 Popular |
High reaction count (≥5 reactions) |
⏰ Aging |
Open > 90 days without triage |
🐛 Regression |
Marked as regression or recent breakage |
🚧 Blocker |
Blocking other issues or teams |
📈 Trending |
High comment activity (≥10 comments) |
| Feature Area | Area Contact | Open | Triage | Proposals | Closed | Highlights |
|--------------|--------------|------|--------|-----------|--------|------------|
| area-Notification | Contact Name | 34 | 8 | 11 | 0 | 🌟 [#2894](link) [confidence:85], ⏰ [#3001](link) [confidence:72] |
| area-Widgets | Contact Name | 21 | 10 | 4 | 0 | 📈 [#3958](link) [confidence:68] || Indicator | Meaning |
|---|---|
0️⃣🐛🥳 |
Zero bugs — celebrate! |
🆕 |
New area (no historical data) |
- |
Data not applicable or unavailable |
Contact mappings are stored in area-contacts.json. Update this file when team assignments change.
{
"areaContacts": {
"area-FeatureName": { "contact": "Contact Name", "notes": "Optional notes" }
}
}Modify scoring weights in ./scripts/ScoringConfig.json:
{
"weights": {
"reactions": 30,
"age": 30,
"comments": 30,
"severity": 10,
"blockers": 0
},
"thresholds": {
"aging_days": 90,
"trending_comments": 10,
"trending_days": 14,
"popular_reactions": 5
},
"severityLabels": {
"critical": ["regression", "crash", "hang", "data-loss", "security", "P0"],
"high": ["bug", "P1"],
"medium": ["performance", "feature proposal", "feature-proposal", "P2"],
"low": ["documentation", "enhancement", "P3"]
}
}| Symptom | Solution |
|---|---|
gh: command not found |
Install GitHub CLI: winget install GitHub.cli |
authentication required |
Run gh auth login and follow prompts |
| Rate limit exceeded | Wait or use --limit to reduce API calls |
| Missing area label | Issue may use non-standard label; check label list |
| Contact not found | Update area-contacts.md |
# List all area labels (uses Get-RepositoryLabels.ps1 as the single source of truth)
./.github/skills/triage-meeting-prep/scripts/Get-RepositoryLabels.ps1 -Filter "area-*" -OutputFormat table
# Get issue details with reactions
gh issue view 4651 --repo microsoft/WindowsAppSDK --json number,title,labels,reactionGroups,createdAt,comments,author
# List issues needing triage
gh issue list --repo microsoft/WindowsAppSDK --label "needs-triage" --state open --json number,title,labels
# Export all open issues to JSON
gh issue list --repo microsoft/WindowsAppSDK --state open --limit 1000 --json number,title,labels,reactionGroups,createdAt,comments,author- Scoring Algorithm Details — Complete scoring methodology
- Area Contacts — Feature area ownership mapping
- Report Template — Customizable output template