GitHub Issue Triage & Management

SkillDev tools

Use when you have a backlog of unorganized GitHub Issues — bulk-reads, labels, prioritizes, and assigns issues at scale using Copilot's built-in GitHub MCP tools.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the GitHub Issue Triage & Management skill

What this skill tells your AI

The instructions your AI receives, as published by drvoss/everything-copilot-cli in skills/copilot-exclusive/github-issue-triage/SKILL.md and read by ahel’s review.

Why This is Copilot-Exclusive

Copilot CLI has native GitHub Issue tools baked into its MCP server — list_issues, search_issues, issue_read with sub-methods for comments, labels, and sub-issues. These structured tool calls return rich, typed data that Copilot can reason over directly. Claude Code has no built-in GitHub integration and must rely on gh issue list with fragile text parsing.

When to Use

  • Triaging a backlog of open issues across one or more repositories
  • Auto-categorizing issues by content (bug, feature, docs, etc.)
  • Finding duplicate or related issues before filing new ones
  • Building one queue from both issues and external-contributor PRs
  • Linking issues to pull requests for traceability
  • Generating weekly issue reports or burndown summaries

Workflow

1. List Open Issues with Filters

Tool: github-mcp-server-list_issues
  owner: "my-org"
  repo: "my-app"
  state: "OPEN"
  labels: ["bug"]
  orderBy: "UPDATED_AT"
  direction: "DESC"
  perPage: 25

2. Search Across Repositories

Find issues matching a keyword across your entire org:

Tool: github-mcp-server-search_issues
  query: "memory leak is:open"
  owner: "my-org"

3. Read Issue Details and Comments

Tool: github-mcp-server-issue_read
  method: "get"
  owner: "my-org"
  repo: "my-app"
  issue_number: 87

Tool: github-mcp-server-issue_read
  method: "get_comments"
  owner: "my-org"
  repo: "my-app"
  issue_number: 87

4. Check Sub-Issues

For tracking epics and parent/child relationships:

Tool: github-mcp-server-issue_read
  method: "get_sub_issues"
  owner: "my-org"
  repo: "my-app"
  issue_number: 42

5. Get Labels for Classification

Tool: github-mcp-server-issue_read
  method: "get_labels"
  owner: "my-org"
  repo: "my-app"
  issue_number: 87

6. Pull External-Contributor PRs into the Queue

If the inbox includes PRs as well as issues, filter for outside contributors first and then route those PRs through the same triage state model you use for issues.

gh pr list --limit 100 --json number,title,authorAssociation,isDraft,url |
  ConvertFrom-Json |
  Where-Object {
    $_.authorAssociation -in @('CONTRIBUTOR', 'FIRST_TIME_CONTRIBUTOR', 'NONE') -and
    -not $_.isDraft
  }

Treat OWNER, MEMBER, and COLLABORATOR PRs as normal maintainer review unless your project has a stronger triage requirement. If a bare reference such as #42 could point to either a PR or an issue, check the PR first and fall back to the issue only if no PR exists.

When an external PR duplicates existing work, close the loop explicitly: mark it wontfix, link the authoritative issue or PR, and avoid creating a second parallel thread for the same request.

Examples

Weekly Issue Triage Session

"Show me all open issues in my-org/api-service created in the last 7 days, grouped by label. For unlabeled issues, suggest a category based on the title and body."

Copilot calls list_issues with a since filter, reads each issue's labels, groups them, and uses the issue body to suggest labels for uncategorized ones.

Duplicate Detection

"Before I file a bug about 'WebSocket disconnects on idle timeout', check if there's already an issue about this."

Tool: github-mcp-server-search_issues
  query: "WebSocket disconnect idle timeout"
  owner: "my-org"
  repo: "my-app"

Copilot searches, reads the top matches, and tells you whether to file new or comment on an existing issue.

Sprint Planning Report

"List all issues labeled 'sprint-12' in my-org/frontend, show their status, assignee, and whether they have linked PRs."

Copilot lists the issues, checks each for linked PRs via comments and cross-references, and produces a sprint board summary right in the terminal.

Shared Issue + PR Intake

"Show me new outside-contributor PRs and new unlabeled issues from the last week, then tell me which ones need triage first."

Copilot lists issues with the MCP issue tools, pulls in external PRs with gh pr list, then routes the highest-signal items into the same triage queue instead of treating PRs as a separate inbox.

Batch Categorization with SQL Tracking

-- Track triage progress in session database
CREATE TABLE IF NOT EXISTS triage_items (
  issue_number INTEGER, repo TEXT, title TEXT,
  suggested_label TEXT, status TEXT DEFAULT 'pending'
);

Load issues into the session database, then work through them systematically.

Tips

  • Parallel issue reads: Call issue_read on multiple issues simultaneously to build a triage report fast.
  • Use search_issues for cross-repo queries: The search syntax supports org:, repo:, label:, assignee:, milestone:, and date ranges.
  • Combine with session SQL: Store triage results in the session database to track which issues you've reviewed and what actions you took.
  • Sub-issues for epic tracking: Use get_sub_issues to check progress on large features broken into subtasks.
  • Link to PRs: After identifying an issue, ask Copilot to search for PRs that reference it — closing the loop between issues and code changes.
  • Pair with triage for per-item state: Use workflow/triage when one issue or one external PR needs a durable needs-info / ready-for-agent / wontfix decision.

Signals

GitHub stars
46
Forks
11
Last commit
Aug 2026

ahel review

  • S4info
    community integration — published by drvoss, not github

Automated review, not a security audit. Ruleset v1.

Advanced
Catalog kind
skill
Gateway key
github-issue-triage
Source
github.com/drvoss/everything-copilot-cli