Skip to content
Development
Skill

/triaging-issues

Triages GitHub issues by routing to oncall teams, applying labels, and closing questions. Use when processing new PyTorch issues or when asked to triage an issue.

From plugin
pytorch
102k16 skills
Install
$ npx -y skills add pytorch/pytorch --skill triaging-issues --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/triaging-issues

Context preview

The summary Claude sees to decide when to auto-load this skill.

Triages GitHub issues by routing to oncall teams, applying labels, and closing questions. Use when processing new PyTorch issues or when asked to triage an issue.

SKILL.md

triaging-issues.SKILL.md
name: triaging-issues
description: Triages GitHub issues by routing to oncall teams, applying labels, and closing questions. Use when processing new PyTorch issues or when asked to triage an issue.
hooks:
  PreToolUse:
    - matcher: "mcp__github__issue_write|mcp__github__update_issue|mcp__github__add_issue_comment|mcp__github__transfer_issue"
      hooks:
        - type: command
          command: "python3 \"$CLAUDE_PROJECT_DIR\"/.claude/skills/triaging-issues/scripts/validate_issue_target.py"
    - matcher: "mcp__github__issue_write|mcp__github__update_issue"
      hooks:
        - type: command
          command: "python3 \"$CLAUDE_PROJECT_DIR\"/.claude/skills/triaging-issues/scripts/validate_labels.py"
  PostToolUse:
    - matcher: "mcp__github__issue_write|mcp__github__update_issue|mcp__github__add_issue_comment|mcp__github__transfer_issue"
      hooks:
        - type: command
          command: "python3 \"$CLAUDE_PROJECT_DIR\"/.claude/skills/triaging-issues/scripts/add_bot_triaged.py"

PyTorch Issue Triage Skill

This skill helps triage GitHub issues by routing issues, applying labels, and leaving first-line responses.

Contents

  • [MCP Tools Available](#mcp-tools-available)
  • [Labels You Must NEVER Add](#labels-you-must-never-add)
  • [Issue Triage Steps](#issue-triage-for-each-issue)
  • Step 0: Already Routed — SKIP
  • Step 1: Question vs Bug/Feature
  • Step 1.5: Needs Reproduction — External Files
  • Step 2: Transfer
  • Step 2.5: PT2 Issues — Special Handling
  • Step 3: Redirect to Secondary Oncall
  • Step 4: Label the Issue
  • Step 5: High Priority — REQUIRES HUMAN REVIEW
  • Step 6: bot-triaged (automatic)
  • Step 7: Mark Triaged
  • [V1 Constraints](#v1-constraints)

**Labels reference:** See [labels.json](labels.json) for the full catalog of labels suitable for triage. **ONLY apply labels that exist in this file.** Do not invent or guess label names. This file excludes CI triggers, test configs, release notes, deprecated labels, and labels requiring human decision.

**PT2 triage guide:** See [pt2-triage-rubric.md](pt2-triage-rubric.md) for detailed labeling guidance when triaging PT2/torch.compile issues.

**Response templates:** See [templates.json](templates.json) for standard response messages.

---

MCP Tools Available

Use these GitHub MCP tools for triage:

| Tool | Purpose | |------|---------| | `mcp__github__issue_read` | Get issue details, comments, and existing labels | | `mcp__github__issue_write` | Apply labels or close issues | | `mcp__github__add_issue_comment` | Add comment (only for redirecting questions) | | `mcp__github__search_issues` | Find similar issues for context |

---

Labels You Must NEVER Add

| Prefix/Category | Reason | |-----------------|--------| | Labels not in `labels.json` | Only apply labels that exist in the allowlist | | `ciflow/*` | CI job triggers for PRs only | | `test-config/*` | Test suite selectors for PRs only | | `release notes: *` | Auto-assigned for release notes | | `ci-*`, `ci:*` | CI infrastructure controls | | `sev*` | Severity labels require human decision | | `merge blocking` | Requires human decision | | `actionable`, `needs design`, `needs reproduction`, `needs research` | Reserved for human reviewers after they have reviewed the issue | | Any label containing "deprecated" | Obsolete | | `oncall: releng` | Not a triage redirect target. Use `module: ci` instead |

**If blocked:** When a label is blocked by the hook, add ONLY `triage review` and stop. A human will handle it.

These rules are enforced by a PreToolUse hook that validates all labels against `labels.json`.

Never Override Human Labels

If a human has already applied labels (especially `ci: sev`, severity labels, or priority labels), do NOT remove or replace them. Your job is to supplement, not override.

---

Issue Triage (for each issue)

0) Already Routed — SKIP

**If an issue already has ANY `oncall:` label, SKIP IT entirely.** Do not:

  • Add any labels
  • Add `triaged`
  • Leave comments
  • Do any triage work

That issue belongs to the sub-oncall team. They own their queue.

1) Question vs Bug/Feature

  • If it is a question (not a bug report or feature request): close and use the `redirect_to_forum` template from `templates.json`.
  • If unclear whether it is a bug/feature vs a question: request additional information using the `request_more_info` template and stop.

1.5) External Files

Check if the issue body contains links to external files that users would need to download to reproduce.

**Patterns to detect:**

  • File attachments: `.zip`, `.pt`, `.pth`, `.pkl`, `.safetensors`, `.onnx`, `.bin` files
  • External storage: Google Drive, Dropbox, OneDrive, Mega, WeTransfer links
  • Model hubs: Hugging Face Hub links to model files

**Action:** 1. **Edit the issue body** to remove/redact the download links

  • Replace with: `[Link removed - external file downloads are not permitted for security reasons]`

2. Use the `request_self_contained_reproduction` template from `templates.json` 3. Do NOT add `triaged` — wait for the user to provide a reproducible example

1.55) Missing Reproduction — Other Cases

Request a self-contained reproduction and stop when:

  • The user reports a hardware-specific issue (e.g., specific GPU model) without a self-contained repro script
  • The user references a specific model/checkpoint/dataset that is not publicly runnable in a few lines
  • The issue describes version-upgrade breakage but only provides a high-level description without a minimal script
  • The repro depends on a specific training setup, distributed environment, or non-trivial infrastructure

1.6) Edge Cases & Numerical Accuracy

If the issue involves extremal values or numerical precision differences:

**Patterns to detect:**

  • Values near `torch.finfo(dtype).max` or `torch.finfo(dtype).min`
  • NaN/Inf appearing in outputs from valid (but extreme) inputs
  • Differences between CPU and GPU results
  • Precision differences between dt
Read more
Ships withpytorch

Tensors and Dynamic neural networks in Python with strong GPU acceleration

Get the whole plugin

Other skills on pytorch.