denoland/issue-triage
Triage a Deno GitHub issue — reproduce bugs, classify, label, and comment with findings. Use when asked to triage an issue or when an issue number/URL is provided for triage.
npx skills add https://github.com/denoland/deno --skill issue-triage
Triage issue $ARGUMENTS on the denoland/deno repository.
gh issue view $ARGUMENTS --repo denoland/deno --json number,title,body,author,labels,state,comments,createdAt,url
Determine what kind of issue this is:
gh issue list --search "keywords" --state all)
If the issue is clearly a question, duplicate, or invalid, skip reproduction and
go straight to Step 5.
A valid bug report needs:
deno --version output)If any of these are missing, label as needs info and comment asking the author
to provide the missing details. Do not attempt reproduction without a clear
repro case.
Only attempt reproduction for bug reports that have a clear repro case.
Prefer running reproductions inside a Docker container for isolation. Fall back
to a local temp directory only if Docker is unavailable.
Docker (preferred):
# Run repro with latest canary
docker run --rm -v "$REPRO_DIR":/repro -w /repro denoland/deno:canary deno run repro.ts
# Run repro with a specific version (e.g., 2.1.4)
docker run --rm -v "$REPRO_DIR":/repro -w /repro denoland/deno:2.1.4 deno run repro.ts
Use docker run --rm so containers are cleaned up automatically. Mount the
repro files via -v.
Local fallback (if Docker is not available):
REPRO_DIR=$(mktemp -d)
deno run "$REPRO_DIR/repro.ts"
Try to reproduce with both:
Use the appropriate Docker image tag for each version (e.g.,
denoland/deno:2.1.4, denoland/deno:canary).
If the issue specifies a particular Deno version and the bug does NOT reproduce
on canary, note that it may already be fixed. Check git log for relevant fixes.
deno subcommand and flags
If the reproduction involves specific npm packages, deno.json config, or
multi-file setups, recreate the full environment as described.
rm -rf "$REPRO_DIR"
Note:
related issues)
Add labels based on your classification. Keep it minimal — usually a single area
label is sufficient. Do not over-label.
| Label | When to use |
| ------------ | --------------------------------------------------- |
| bug | Confirmed bug — always add for verified bug reports |
| feat | Accepted new feature |
| suggestion | Feature request not yet accepted |
| question | Usage question |
| duplicate | Duplicate of another issue |
| invalid | Not actionable |
| panic | Deno panics/crashes |
| regression | Something that used to work but is now broken |
| Label | Area |
| -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------- |
| node compat | General Node.js compatibility |
| node API | Specific node:* module APIs |
| ext/node, ext/fs, ext/net, ext/http, ext/fetch, ext/web, ext/crypto, ext/console, ext/url, ext/websocket, ext/kv | Specific extension |
| cli | CLI behavior, flags, subcommands |
| lsp | Language server |
| runtime | Runtime crate |
| permissions | Permission system |
| compile | deno compile |
| testing | deno test and coverage |
| task runner | deno task |
| install | deno install / deno add |
| tsc | TypeScript compiler |
| types | TypeScript type issues |
| config | deno.json configuration |
| node resolution | Node/npm module resolution |
| publish | deno publish |
| lint | deno lint |
| wasm | WebAssembly |
| Label | When to use |
| --------------- | ------------------------------------------- |
| high priority | Severe impact, blocks users, security issue |
| quick fix | Obviously simple fix |
gh issue edit $ARGUMENTS --repo denoland/deno --add-label "bug"
Remove the needs triage or triage required 👀 label if present:
gh issue edit $ARGUMENTS --repo denoland/deno --remove-label "needs triage" --remove-label "triage required 👀"
Post a triage comment with your findings. Structure:
For confirmed bugs:
Confirmed on [version]. [Brief description of what you observed.]
[If tested on canary: "Also reproduces on canary." or "Does not reproduce on canary — may already be fixed."]
For needs info:
Thanks for reporting. Could you provide [missing info]? This will help us investigate.
For duplicates:
This looks like a duplicate of #XXXX. Closing in favor of that issue.
For questions:
This is a usage question rather than a bug. [Brief answer or pointer to docs.] Closing this — feel free to ask on https://discord.gg/deno if you have more questions.
gh issue comment $ARGUMENTS --repo denoland/deno --body "comment text"
Close the issue if it's a duplicate, question, or invalid:
gh issue close $ARGUMENTS --repo denoland/deno --reason "not planned"
GitHub.
issues.
to, note that and skip reproduction.
Take denoland/issue-triage from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.
The instructions reference docker.
Without those the skill loads but fails at the first command.