GitHub Issue Triage Skill
This skill provides comprehensive logic for triaging GitHub issues in the Nx repository.
Team Expertise Mapping
Primary Team Members
- @barbados-clemens - Documentation, lifecycle hooks, developer experience, API docs
- @lourw - Java/Gradle
- @leosvelperez - Angular (primary), TypeScript, testing tools (Jest/Cypress/Playwright), ESLint issues
- @Coly010 - Webpack/Rollup/Rspack configs, Module Federation, Storybook, Vue, bundler optimization, React Native, Nx Release, Publishing, migration utilities, React, Node/NestJS/Express, NextJS, Remix, create-nx-workspace, preset issues
- @AgentEnder - Nx Core (caching/daemon/graph), installation issues, plugin system, devkit, affected calculation
Assignment Logic (Check in Order)
1. Technology Keywords in Title/Body
Look for these keywords and match to assignees:
| Keywords |
Assignee |
Reason |
| "Angular", "ng serve", "@angular" |
@leosvelperez |
Angular specialist |
| "Nest", "NestJS", "@nx/nest" |
@Coly010 |
Backend framework support |
| "Next", "NextJS", "@nx/next" |
@Coly010 |
Framework support |
| "React", "@nx/react" |
@Coly010 |
Framework support |
| "webpack", "rollup", "rspack", "bundler" |
@Coly010 |
Bundler expertise |
| "Module Federation", "MF" |
@Coly010 |
Advanced bundling feature |
| "create-nx-workspace", "preset" |
@Coly010 |
Workspace setup |
| "cache", "daemon", "affected", "nx reset" |
@AgentEnder |
Nx core functionality |
| "plugin", "generator", "executor" |
@AgentEnder |
Plugin system & devkit |
| "docs", "documentation", "lifecycle" |
@barbados-clemens |
Documentation focus |
2. Error Pattern Analysis
Examine error messages and stack traces to identify:
- Compilation/build failures with Angular → @leosvelperez
- Webpack configuration errors → @Coly010
- Installation/dependency issues → @AgentEnder
- Preset/generator failures → Check technology first, fallback to @AgentEnder
3. Scope Assignment
Match scope labels to technology:
- Use
scope: angular for Angular-specific issues
- Use
scope: react for React-specific issues
- Use
scope: node for Node/NestJS/Express issues
- Use
scope: bundlers for webpack/rollup/rspack issues
- Use
scope: core only for caching/daemon/graph issues
- Use
scope: misc for installation/setup issues
- Use
scope: dx for documentation/developer experience issues
Priority Classification Rules
Apply priorities conservatively:
| Priority |
Criteria |
| High |
Blocks many users (workspace creation failures, compilation blockers, security CVEs) |
| Medium |
Standard bugs, configuration issues, generator problems |
| Low |
Documentation improvements, UI enhancements, edge cases |
Validation Steps
Before finalizing assignments:
- Check issue body for actual error messages and stack traces
- Review reproduction steps to identify the root problem area
- Consider scope - does this affect a specific framework or Nx core?
- Verify priority - how many users would be blocked?
- Cross-check - does the technology keyword match the actual problem?
Bulk Operations
Assignment Command Template
# Assign single issue
gh issue edit 12345 --repo nrwl/nx --add-assignee username
# Batch assign to same person
gh issue edit 12345 12346 12347 --repo nrwl/nx --add-assignee username
# Batch assign to different people (sequential)
gh issue edit 12345 12346 --repo nrwl/nx --add-assignee user1
gh issue edit 12347 12348 --repo nrwl/nx --add-assignee user2
Label Command Template
# Apply scope labels
gh issue edit 12345 12346 --repo nrwl/nx --add-label "scope: angular"
# Apply priority labels
gh issue edit 12345 --repo nrwl/nx --add-label "priority: high"
gh issue edit 12346 12347 --repo nrwl/nx --add-label "priority: medium"
Browser Verification (MANDATORY)
After all assignments are complete, open every assigned issue in the browser for manual review.
Command by OS
macOS:
for issue in ISSUE_NUMBERS; do open "https://github.com/nrwl/nx/issues/$issue"; done
Linux:
for issue in ISSUE_NUMBERS; do xdg-open "https://github.com/nrwl/nx/issues/$issue"; done
Windows:
for issue in ISSUE_NUMBERS; do start "https://github.com/nrwl/nx/issues/$issue"; done
Alternative (CLI-based, one at a time):
gh issue view ISSUE_NUMBER --repo nrwl/nx --web
Workflow Best Practices
- Always inspect the full issue - Don't assign based on title alone
- Check comments - Users often provide context in discussions
- Look for duplicate markers - Sometimes issues reference others
- Consider workload - Don't overload one assignee
- Validate assignments - Browser verification is non-negotiable
- Document reasoning - Leave a comment explaining the assignment if complex
Assignment Examples
Example 1: Angular + Build Issue
- Title: "Angular build fails with Module Federation setup"
- Keywords: "Angular", "Module Federation", "build fails"
- Recommendation: @Coly010 (bundler + framework specialist)
- Scope:
scope: bundlers
- Priority:
priority: high (blocks users from building)
Example 2: Installation Problem
- Title: "npm install fails with peer dependency conflict"
- Keywords: "install", "dependency"
- Recommendation: @AgentEnder (installation issues)
- Scope:
scope: misc
- Priority:
priority: high (blocks workspace setup)
Example 3: Documentation Request
- Title: "Add lifecycle hooks documentation"
- Keywords: "docs", "documentation", "lifecycle"
- Recommendation: @barbados-clemens (documentation specialist)
- Scope:
scope: dx
- Priority:
priority: low (enhancement, not blocking)
1---2name: github-issue-triage3description: Analyze GitHub issues for the Nx repository and provide assignment recommendations based on technology stack, team expertise, and priority classification rules.4---56# GitHub Issue Triage Skill78This skill provides comprehensive logic for triaging GitHub issues in the Nx repository.910## Team Expertise Mapping1112### Primary Team Members13- **@barbados-clemens** - Documentation, lifecycle hooks, developer experience, API docs14- **@lourw** - Java/Gradle15- **@leosvelperez** - Angular (primary), TypeScript, testing tools (Jest/Cypress/Playwright), ESLint issues16- **@Coly010** - Webpack/Rollup/Rspack configs, Module Federation, Storybook, Vue, bundler optimization, React Native, Nx Release, Publishing, migration utilities, React, Node/NestJS/Express, NextJS, Remix, create-nx-workspace, preset issues17- **@AgentEnder** - Nx Core (caching/daemon/graph), installation issues, plugin system, devkit, affected calculation1819## Assignment Logic (Check in Order)2021### 1. Technology Keywords in Title/Body2223Look for these keywords and match to assignees:2425| Keywords | Assignee | Reason |26|----------|----------|--------|27| "Angular", "ng serve", "@angular" | @leosvelperez | Angular specialist |28| "Nest", "NestJS", "@nx/nest" | @Coly010 | Backend framework support |29| "Next", "NextJS", "@nx/next" | @Coly010 | Framework support |30| "React", "@nx/react" | @Coly010 | Framework support |31| "webpack", "rollup", "rspack", "bundler" | @Coly010 | Bundler expertise |32| "Module Federation", "MF" | @Coly010 | Advanced bundling feature |33| "create-nx-workspace", "preset" | @Coly010 | Workspace setup |34| "cache", "daemon", "affected", "nx reset" | @AgentEnder | Nx core functionality |35| "plugin", "generator", "executor" | @AgentEnder | Plugin system & devkit |36| "docs", "documentation", "lifecycle" | @barbados-clemens | Documentation focus |3738### 2. Error Pattern Analysis3940Examine error messages and stack traces to identify:4142- **Compilation/build failures with Angular** → @leosvelperez43- **Webpack configuration errors** → @Coly01044- **Installation/dependency issues** → @AgentEnder45- **Preset/generator failures** → Check technology first, fallback to @AgentEnder4647### 3. Scope Assignment4849Match scope labels to technology:5051- Use `scope: angular` for Angular-specific issues52- Use `scope: react` for React-specific issues53- Use `scope: node` for Node/NestJS/Express issues54- Use `scope: bundlers` for webpack/rollup/rspack issues55- Use `scope: core` only for caching/daemon/graph issues56- Use `scope: misc` for installation/setup issues57- Use `scope: dx` for documentation/developer experience issues5859## Priority Classification Rules6061Apply priorities conservatively:6263| Priority | Criteria |64|----------|----------|65| **High** | Blocks many users (workspace creation failures, compilation blockers, security CVEs) |66| **Medium** | Standard bugs, configuration issues, generator problems |67| **Low** | Documentation improvements, UI enhancements, edge cases |6869## Validation Steps7071Before finalizing assignments:72731. **Check issue body** for actual error messages and stack traces742. **Review reproduction steps** to identify the root problem area753. **Consider scope** - does this affect a specific framework or Nx core?764. **Verify priority** - how many users would be blocked?775. **Cross-check** - does the technology keyword match the actual problem?7879## Bulk Operations8081### Assignment Command Template8283```bash84# Assign single issue85gh issue edit 12345 --repo nrwl/nx --add-assignee username8687# Batch assign to same person88gh issue edit 12345 12346 12347 --repo nrwl/nx --add-assignee username8990# Batch assign to different people (sequential)91gh issue edit 12345 12346 --repo nrwl/nx --add-assignee user192gh issue edit 12347 12348 --repo nrwl/nx --add-assignee user293```9495### Label Command Template9697```bash98# Apply scope labels99gh issue edit 12345 12346 --repo nrwl/nx --add-label "scope: angular"100101# Apply priority labels102gh issue edit 12345 --repo nrwl/nx --add-label "priority: high"103gh issue edit 12346 12347 --repo nrwl/nx --add-label "priority: medium"104```105106## Browser Verification (MANDATORY)107108After all assignments are complete, open every assigned issue in the browser for manual review.109110### Command by OS111112**macOS:**113```bash114for issue in ISSUE_NUMBERS; do open "https://github.com/nrwl/nx/issues/$issue"; done115```116117**Linux:**118```bash119for issue in ISSUE_NUMBERS; do xdg-open "https://github.com/nrwl/nx/issues/$issue"; done120```121122**Windows:**123```bash124for issue in ISSUE_NUMBERS; do start "https://github.com/nrwl/nx/issues/$issue"; done125```126127**Alternative (CLI-based, one at a time):**128```bash129gh issue view ISSUE_NUMBER --repo nrwl/nx --web130```131132## Workflow Best Practices1331341. **Always inspect the full issue** - Don't assign based on title alone1352. **Check comments** - Users often provide context in discussions1363. **Look for duplicate markers** - Sometimes issues reference others1374. **Consider workload** - Don't overload one assignee1385. **Validate assignments** - Browser verification is non-negotiable1396. **Document reasoning** - Leave a comment explaining the assignment if complex140141## Assignment Examples142143**Example 1: Angular + Build Issue**144- Title: "Angular build fails with Module Federation setup"145- Keywords: "Angular", "Module Federation", "build fails"146- Recommendation: @Coly010 (bundler + framework specialist)147- Scope: `scope: bundlers`148- Priority: `priority: high` (blocks users from building)149150**Example 2: Installation Problem**151- Title: "npm install fails with peer dependency conflict"152- Keywords: "install", "dependency"153- Recommendation: @AgentEnder (installation issues)154- Scope: `scope: misc`155- Priority: `priority: high` (blocks workspace setup)156157**Example 3: Documentation Request**158- Title: "Add lifecycle hooks documentation"159- Keywords: "docs", "documentation", "lifecycle"160- Recommendation: @barbados-clemens (documentation specialist)161- Scope: `scope: dx`162- Priority: `priority: low` (enhancement, not blocking)