Triaging IssuesCAUTION
Tensors and Dynamic neural networks in Python with strong GPU acceleration
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
Summary
This is a skill for auto-triaging issues. This is the human side of things :) There are 4 pieces to this skill;
SKILL.mdthis is the main description of what to do/ directions to follow. If you notice a weird anti pattern in triaging
this is the file you should update. The basic workflow is that there is a static list of labels in labels.json that the agent will read w/ their descriptions in order to make decisions. NOTE This is static and if new labels are added to pytorch/pytorch we should bump this list w/ their description. I made this static because the full set of labels is too big/quite stale. And I wanted to add more color to certain descriptions. The mechanics for actually interacting w/ gh issues is through the official mcp server. For V1, we always apply bot-triaged whenever any triage action is taken; you can filter those decisions here: https://fburl.com/pt-bot-triaged
templates.json: This is basically where we want to put canned responses. It includesredirect_to_forum(for usage questions) and
request_more_info (when classification is unclear). There are likely others we should add here as we notice more patterns.
- There are hooks in
/scripts: a target pre-hook (validate_issue_target.py) that blocks mutations outside the repository and issue selected by the workflow, a label pre-hook (validate_labels.py) that filters out labels we never want the bot to add, and a post-hook (add_bot_triaged.py) that automatically appliesbot-triagedafter any issue mutation. - The gh action uses a two-stage workflow to support issues opened by OSS users:
- Stage 1 (
.github/workflows/claude-issue-triage.yml): Triggers onissues: opened, captures the issue number, and uploads it as an artifact. This stage has no protected environment, so OSS actors can run it. - Stage 2 (
.github/workflows/claude-issue-triage-run.yml): Triggers onworkflow_runcompletion of Stage 1. Runs in the protectedbedrocke
aeb350f40dccOBSERVED · 2026-10-28What it tells the agent
The instruction file, verbatim from the audited commit — this is the text the model reads, and the surface the audit's instruction layer examines. Quoted here so you can judge it without cloning anything.
---
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\"/.agents/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\"/.agents/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\"/.agents/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: Escalate — High Priority (human review), then release triage
- 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__get_issue` | Get issue details and existing labels |
| `mcp__github__get_issue_comments` | Get existing issue comments |
| `mcp__github__update_issue` | 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) inpTrust audit
CAUTIONgrade B · trust 89/100 Install with care. The audit found things worth knowing before you trust its output.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | WARN |
| L1 | Static analysis of the code | PASS |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- none-observed
- Network
- none-observed
- Shell
- none-observed
- Dependencies
- pinned
- Secrets in source
- none-found
Findings (5)
.claude/skills
.dockerignore
.github/ci_commit_pins/triton.txt
AGENTS.md
docs/requirements.txt
Gates applied: no_behavioural_pass.
aeb350f40dccfull audit observations/trust-audit/skill/pytorch__triaging-issues.json · Report an issue / request a re-scanAudit history
Every audit this skill has had.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-28 | aeb350f40dcc | CAUTION | B | 89 | first audit |
Questions
What does the triaging-issues — pytorch/pytorch skill do?
Tensors and Dynamic neural networks in Python with strong GPU acceleration
Is triaging-issues — pytorch/pytorch safe to install?
With care. The audit graded it B (89/100) and found 5 things worth knowing before you trust this skill, listed below with the exact line each was found on.
What can triaging-issues — pytorch/pytorch access on my machine?
The audit observed no filesystem, network or shell use at all in its source.
How current is this page?
The grade is for one exact copy of the source (aeb350f40dcc), read on 2026-10-28. The repository is watched, and a new audit runs when it changes — this is the first audit.
Add this badge to your README
Shows this page's audit result and links back to it. It updates when the audit does.
[](https://modelsatlas.com/skills/pytorch/triaging-issues/)
Not your listing, or something out of date? Claim or update your listing.