Official agent skill

Issue Triage

by intel in intel/torch-xpu-ops

Shallow, text-only triage of a GitHub issue on pytorch or torch-xpu-ops.

OfficialApache-2.0Auto-check passedAI & LLM Engineering

Install Issue Triage

skills CLI
$ npx skills add intel/torch-xpu-ops --skill issue-triage -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install intel/torch-xpu-ops issue-triage --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/intel/torch-xpu-ops.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/issue-triage .claude/skills/issue-triage && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
issue-triage
GitHub stars
115
Token cost
~2.5k tokens
SKILL.md length
1,206 words
Files
1
Skills in repo
29
Repo updated
First seen
Licence
Apache-2.0

At a glance

Shallow, text-only triage of a GitHub issue on pytorch or torch-xpu-ops.

  • Works in 6 steps: Classify issue_type → Detect reproduction_missing → Estimate scope → …
  • Tasks that involve Issue triage
  • SKILL.md covers Inputs, Shell helpers, Preflight and Step 1: Classify issue_type, plus 6 more sections
  • Calls gh and python

What it does

Issue Triage is an agent skill from intel/torch-xpu-ops, published by the product's own GitHub organization. Shallow, text-only triage of a GitHub issue on pytorch or torch-xpu-ops. Classifies the issue and returns a report (markdown table + JSON) for the caller to act on. Read-only; the skill itself does not comment on or label the issue.

Its SKILL.md is about 2.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in AI & LLM Engineering, covering Issue triage, Deep learning and Markdown. It works with GitHub and PyTorch. The licence is Apache-2.0.

When your agent uses it

  • Tasks that involve Issue triage
  • Tasks that involve Deep learning
  • Tasks that involve Markdown

Example prompts

  • “/issue-triage”

Requirements

  • Python 3

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Classify issue_type
  2. Detect reproduction_missing
  3. Estimate scope
  4. Detect runtime_dependencies
  5. Derive Handling
  6. Return the report

What it can do on your machine

Read from SKILL.md and the folder at commit 0187b3b. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • gh
    • python

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use gh, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Issue Triage loads about 2.5k tokens when it runs. Until then it costs about 61 tokens; SKILL.md has 1,206 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~61
When it runs · the whole SKILL.md, loaded when a task matches
~2.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from intel/torch-xpu-ops at commit 0187b3b, republished under its Apache-2.0 licence (© intel). 1,206 words, ~2,519 tokens.

Download SKILL.mdSave it as .claude/skills/issue-triage/SKILL.md (or your agent's skills folder).
name
issue-triage
description
Shallow, text-only triage of a GitHub issue on pytorch or torch-xpu-ops. Classifies the issue and returns a report (markdown table + JSON) for the caller to act on. Read-only; the skill itself does not comment on or label the issue.

Issue Triage — Shallow Classification & Handling Decision

Text-only triage. Reads the issue title, body, and labels. Does NOT read source code, does NOT run tests, does NOT open PRs, does NOT modify the issue in any way (no comments, no labels, no body edits).

Produces a single report returned to the caller, containing:

  1. A markdown table with the classification fields.
  2. A JSON summary with the same fields as structured data.

The caller (a bot job, an orchestrator skill, or a human) decides what to do with the report: post it as a comment, apply labels, feed it into a larger pipeline, or just read it.

Handling (agent-fixable vs needs-human) is derived from the other signals — see "Step 5" below. Deep root-cause analysis and any override of this decision happens later in a downstream skill (out of scope for this skill).

Inputs

  • A GitHub issue: URL, number, or raw title+body+labels. If given a number or URL, fetch it:

    bash
    gh issue view "$N" --repo "$OWNER/$REPO" --json title,body,labels
  • Read-only. This skill never writes to the repository — no comments, no labels, no file edits. The only side effects are the gh issue view read above and printing the report to stdout.

Shell helpers

Recipes below assume one helper is in scope:

bash
abort() { echo "ABORT: $*" >&2; exit 1; }

Preflight

gh must be authenticated with read access to the target repo:

bash
gh auth status 2>&1 | grep -q "Logged in to github.com" \
  || abort "gh not authenticated; run: gh auth login"

No write scope is required — this skill only reads.

Step 1: Classify issue_type

  • single-bug — a single failure: test failures, runtime errors, assertion errors, incorrect output, crashes. Indicators: error tracebacks, failing test names, RuntimeError, AssertionError, "fails with", ### 🐛 Describe the bug, test logs.

  • batch-bug — a parent issue tracking multiple child failures rather than describing one. Two batch_kinds:

    • skip-list — a "Bug Skip" tracking issue asking whether a list of already-skipped tests should still be skipped. Indicators: Bug Skip in the title/template, agent_test: skip-list label, body is a checklist of test node ids (often with ~~strike-through~~ for entries already resolved), no fresh traceback. Homogeneous — every entry is the same kind of skipped test.
    • heterogeneous — a parent/umbrella issue whose body lists distinct sub-bugs, each with its own reproducer, test node id, or linked child issue reference (owner/repo#N). Indicators: [Umbrella] / [Tracking] in the title, a checklist where each item names a different test/error, a "Tasks" / "Sub-issues" section of #N references.
  • nonbug — feature requests, tasks, performance issues, questions, discussions, enhancement proposals, feature gaps. Indicators: "Enable", "[Task]", "Consider", "Align", "feature gap", "clarification", enhancement label, performance label, no failing tests. A checklist of work items (things to build) is nonbug; a checklist of failing tests / sub-bugs is batch-bug.

Labels are authoritative — if labels say agent_test: skip-list, issue_type = batch-bug with batch_kind = skip-list regardless of body content.

Step 2: Detect reproduction_missing

Report yes when the issue lacks all of:

  • A reproducer command (pytest node id, python -c ..., shell command).
  • A test node id reference (e.g. test_foo.py::TestBar::test_baz).
  • A minimal code snippet that triggers the failure.

Report no when at least one of the above is present.

Batch-bug issues list child test node ids / sub-bug references in their body, so they satisfy the second bullet and report no.

Step 3: Estimate scope

Based on issue text alone (no source reading):

  • pytorch — issue explicitly points at pytorch code (torch/, aten/, torch/_inductor/, torch/_dynamo/), a pytorch PR, or a framework-level regression.
  • torch-xpu-ops — issue explicitly points at torch-xpu-ops code (src/ATen/native/xpu/, XPU kernels, SYCL implementations), or a ported CUDA test failing on XPU due to a kernel gap.
  • both — issue text names changes needed in BOTH repos (e.g. pytorch API addition + XPU implementation of that API).
  • unclear — issue text does not specify. This is the common case for most bug reports; a downstream deep-triage skill will decide after reading source.

Step 4: Detect runtime_dependencies

Scan the issue body, error log, environment section, and labels for explicit mentions of external runtime dependencies. Closed set:

ValueWhat it means
tritonInductor / torch.compile GPU codegen backend.
onednnIntel oneDNN library (matmul, conv, etc.).
onemklIntel oneMKL library (BLAS, LAPACK, sparse).
driverGPU driver, level-zero, compute-runtime, libze_intel_gpu.so.
syclSYCL runtime / DPC++ compiler.
xcclXCCL communication library.

Only report dependencies explicitly named in the issue. Do NOT infer from a stack-trace path alone (e.g. a traceback through torch._inductor does not by itself imply triton — the issue must say so or show a triton-side error).

Empty array [] when none are named.

Show full SKILL.md (508 more words)Show less

Step 5: Derive Handling

Evaluate in order; first match wins:

  1. issue_type is nonbug → needs-human (reason: "not a bug / task issue"). batch-bug does NOT match this rule — a batch of sub-bugs is handled by the orchestrator's fan-out, per-sub-item; do not force it to needs-human here.
  2. reproduction_missing == yes → needs-human (reason: "no reproducer or test-name reference").
  3. runtime_dependencies is non-empty → needs-human (reason: "runtime dependency requires human triage: <list>").
  4. Issue explicitly requires hardware or a non-public model/dataset the agent cannot access → needs-human (reason: names the missing resource).
  5. Otherwise → agent-fixable.

scope=both and scope=unclear do NOT force needs-human — a downstream deep-triage skill decides the final target repo.

Step 6: Return the report

Emit both a markdown block and a JSON block to stdout, in that order, separated by a blank line. The caller reads one, both, or neither.

6a. Markdown block

Assemble this exact structure (values from Steps 1–5). This is what a caller would paste as a comment:

markdown
<!-- agent:triage -->

## Issue Triage

| Field | Value |
|-------|-------|
| Issue type | single-bug / batch-bug (skip-list) / batch-bug (heterogeneous) / non-bug |
| Reproduction missing | yes / no |
| Scope | pytorch / torch-xpu-ops / both / unclear |
| Dependencies | comma-separated list, or (none) |
| Handling | agent-fixable / needs-human |

**Reason:** <one-line, only when handling=needs-human>

*Automated by issue-triage.*

Each Value cell above lists the allowed choices; emit exactly one of them. Never leave a literal | inside a cell — it splits the cell and breaks the rendered table.

Include the <!-- agent:triage --> marker on the first line so a downstream caller can locate its own previous comment (if any) and update it in place. The marker is part of the report; the skill does not consume it.

Omit the **Reason:** line entirely when handling == agent-fixable.

For a batch issue, list the sub-items this run handles under the table, one numbered line each, numbered as in the issue body — and say in one sentence how they group (which sub-item takes the fix, which are re-checked against it):

markdown
4. `test_foo_xpu_float8_e4m3fn` (`TestBarXPU`) -- `pytorch/pytorch#197334`
5. `test_foo_xpu_float8_e5m2` -- `pytorch/pytorch#197336`
6b. JSON block

Immediately after the markdown block (with one blank line between), emit:

json
{
  "issue_type": "single-bug | batch-bug | nonbug",
  "batch_kind": null,
  "reproduction_missing": true | false,
  "scope": "pytorch | torch-xpu-ops | both | unclear",
  "runtime_dependencies": [],
  "handling": "agent-fixable | needs-human",
  "reason": "",
  "suggested_labels": []
}

Field notes:

  • batch_kind is "skip-list" or "heterogeneous" when issue_type == "batch-bug", and null otherwise. The orchestrator routes batch fan-out on it (no re-derivation needed downstream).
  • reproduction_missing is a JSON boolean: true for the yes shown in the table, false for no.
  • runtime_dependencies is an array from the closed set in Step 4; empty [] when none named.
  • reason is required non-empty when handling == needs-human, empty string when handling == agent-fixable.
  • suggested_labels lists the labels a caller might apply to the issue. Advisory only — the skill does not apply them. Populate per the rules below.
  • Do NOT invent values not derived from the issue text.
6c. Suggested labels

suggested_labels is populated as follows:

  • If handling == "needs-human" → include agent:needs-human.
  • Empty array otherwise. A missing reproducer needs no label of its own: the orchestrator reports it as SKIPPED(reproduction_missing) and applies agent:skipped.

Scope and dependency values live in the JSON structure, not as labels.

HARD RULES

  • Never modify the issue. No comments, no labels, no body edits. The caller applies changes based on the report.
  • Never read source or run tests. This skill's contract is text-only shallow triage. Deep source-reading analysis belongs to a separate downstream skill.
  • Emit exactly one markdown block and one JSON block to stdout, in that order. Nothing else. No prose intro, no closing summary. The caller parses stdout; extra text corrupts the parse.

© intel, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/issue-triage of intel/torch-xpu-ops.

Open the folder on GitHubat commit 0187b3b

Compare with similar skills

Issue Triage next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Issue Triage compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Issue Triage this skillintel/torch-xpu-ops115—~2.5kAutomated safety check: PassApache-2.0
Triaging Issuespytorch/pytorch104k—~4.2kAutomated safety check: PassCustom licence
Fix Issuepytorch/pytorch104k—~2.3kAutomated safety check: PassCustom licence
Homepage Generatorwanshuiyin/ARIS-in-AI-Offer574—~4.8kAutomated safety check: NotesMIT
Release Cherry Pick Missing Revertspytorch/test-infra113—~2.6kAutomated safety check: PassCustom licence
Release Create Tracker Issuepytorch/test-infra113—~2.7kAutomated safety check: PassCustom licence

Similar skills

  • Triaging Issues

    pytorch/pytorch

    Triages GitHub issues by routing to oncall teams, applying labels, and closing questions.

    104k GitHub stars~4.2k tokensUpdated today
    AI & LLM EngineeringAuto-check passed
  • Fix Issue

    pytorch/pytorch

    Fix bugs reported in PyTorch GitHub issues by reproducing, root-causing, and implementing a fix in the local working tree.

    104k GitHub stars~2.3k tokensUpdated today
    AI & LLM EngineeringAuto-check passed
  • Homepage Generator

    wanshuiyin/ARIS-in-AI-Offer

    Generate a fact-checked academic personal homepage from a CV, optionally augmented by an existing manual homepage and an assets directory.

    574 GitHub stars~4.8k tokensUpdated yesterday
    AI & LLM EngineeringAuto-check: notes
  • Find reverts that landed on pytorch/pytorch main but are missing from a release branch (release/X.Y) because the reverted commit was already shipped in a release candidate, and open one cherry-pick…

    113 GitHub stars~2.6k tokensUpdated today
    AI & LLM EngineeringAuto-check passed
  • Generate (and optionally open) a PyTorch release tracker / cherry-pick tracking issue from a release announcement, like https://github.com/pytorch/pytorch/issues/180506.

    113 GitHub stars~2.7k tokensUpdated today
    AI & LLM EngineeringAuto-check passed
  • Generate a PyTorch release validation checklist issue by pulling open/closed issues from a GitHub milestone and cherry-picks from a release tracker issue.

    113 GitHub stars~2.2k tokensUpdated today
    AI & LLM EngineeringAuto-check passed

More from intel/torch-xpu-ops

All 29 skills in this repo
  • Intel GPU Device Selection

    intel/torch-xpu-ops

    Official

    Select the Intel GPU device to use when a system has multiple Intel GPU devices.

    115 GitHub stars~508 tokensUpdated yesterday
    Auto-check passed
  • Xpu CI Health Check

    intel/torch-xpu-ops

    Official

    Check PyTorch ciflow/xpu (xpu.yml) on the main branch, collect the failing XPU test cases from the most recent completed run(s), analyze the ROOT CAUSE of each failure with AI, and produce a list…

    115 GitHub stars~1.5k tokensUpdated yesterday
    Auto-check passed
  • At Dispatch V2

    intel/torch-xpu-ops

    Official

    Convert PyTorch ATDISPATCH macros to ATDISPATCHV2 format in ATen C++ code.

    115 GitHub starsUsed in 3 repos~2.2k tokens
    Auto-check passed
  • PR Review

    intel/torch-xpu-ops

    Official

    Review pull requests for XPU operator or backend code. An agent skill from intel/torch-xpu-ops.

    115 GitHub stars~4.2k tokensUpdated yesterday
    Auto-check passed
  • Skill Writer

    intel/torch-xpu-ops

    Official

    Guide users through creating Agent Skills for Claude Code. An agent skill from intel/torch-xpu-ops.

    115 GitHub starsUsed in 3 repos~2.4k tokens
    Auto-check passed
  • Ut Issue Authoring

    intel/torch-xpu-ops

    Official

    Read the evidence a nightly UT run produced, decide which failures share a root cause and which are machine breakage rather than product bugs, and write one issue draft per root cause to drafts.json.

    115 GitHub stars~2k tokensUpdated yesterday
    Auto-check passed

Works with

Questions about Issue Triage

What does Issue Triage do?

Shallow, text-only triage of a GitHub issue on pytorch or torch-xpu-ops. Issue Triage is an agent skill from intel/torch-xpu-ops, published by the product's own GitHub organization. Shallow, text-only triage of a GitHub issue on pytorch or torch-xpu-ops.

When should I use Issue Triage?

Issue Triage fits situations like: tasks that involve Issue triage; tasks that involve Deep learning; tasks that involve Markdown.

How do I install Issue Triage in Claude Code?

Run `npx skills add intel/torch-xpu-ops --skill issue-triage -a claude-code`. Or copy the skill folder (.claude/skills/issue-triage in intel/torch-xpu-ops) into .claude/skills/issue-triage in your project. Claude Code loads it when a task matches its description.

How do I install Issue Triage in Codex?

Run `npx skills add intel/torch-xpu-ops --skill issue-triage -a codex`. Or copy the skill folder (.claude/skills/issue-triage in intel/torch-xpu-ops) into .agents/skills/issue-triage in your project. Codex loads it when a task matches its description.

Can I use Issue Triage in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add intel/torch-xpu-ops --skill issue-triage -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/issue-triage, .gemini/skills/issue-triage, .github/skills/issue-triage and .opencode/skills/issue-triage in your project.

What does Issue Triage need to run?

Going by SKILL.md and its folder, Issue Triage needs the command-line tools its instructions call (gh and python). Our summary lists: Python 3.

Does Issue Triage access the network?

SKILL.md contains no URLs. Its commands use gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Issue Triage safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Issue Triage use?

Issue Triage is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Issue Triage use?

About 2.5k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Issue Triage?

Skills that share tags, products or a category with Issue Triage: Triaging Issues (pytorch/pytorch, 104k stars), Fix Issue (pytorch/pytorch, 104k stars), Homepage Generator (wanshuiyin/ARIS-in-AI-Offer, 574 stars) and Release Cherry Pick Missing Reverts (pytorch/test-infra, 113 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Issue Triage?

intel (a GitHub organization, an official publisher) maintains it in intel/torch-xpu-ops, which has 115 GitHub stars. The repository holds 29 skills in this directory. The repository was last updated on October 6, 2026.

Source: intel/torch-xpu-ops on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.