Install any skill in seconds. Free to start, no credit card required.
Get Started Free →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.
.claude/skills/denoland-issue-triage/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-10 | ✗→✓ | ▲ Improved | 23% | 0% |
| case-22 | ✗→✓ | ▲ Improved | 198% | 0% |
| case-08 | ✓→✗ | ▼ Worse | 86% | 0% |
| case-09 | ✓→✗ | ▼ Worse | 73% | 0% |
| case-12 | ✓→✗ | ▼ Worse | 89% | 0% |
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):
sh# 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):
shREPRO_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.
shrm -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 |
shgh issue edit $ARGUMENTS --repo denoland/deno --add-label "bug"
Remove the needs triage or triage required 👀 label if present:
shgh 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.shgh issue comment $ARGUMENTS --repo denoland/deno --body "comment text"
Close the issue if it's a duplicate, question, or invalid:
shgh issue close $ARGUMENTS --repo denoland/deno --reason "not planned"
GitHub.
issues.
to, note that and skip reproduction.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 6,418 | 6,117 | -5% | 1 | 1 | 0% | 266 | 2,107 | +692% | 0 | 0 | — |
case-02 | fail→fail | 32,701 | 5,189 | -84% | 1 | 1 | 0% | 5,429 | 2,118 | -61% | 0 | 0 | — |
case-03 | fail→fail | 6,386 | 41,760 | +554% | 1 | 1 | 0% | 204 | 2,181 | +969% | 0 | 0 | — |
case-04 | fail→fail | 7,384 | 16,032 | +117% | 1 | 1 | 0% | 834 | 3,202 | +284% | 0 | 0 | — |
case-05 | fail→fail | 5,942 | 14,296 | +141% | 1 | 1 | 0% | 830 | 2,668 | +221% | 0 | 0 | — |
case-06 | fail→fail | 19,843 | 9,022 | -55% | 1 | 1 | 0% | 3,058 | 2,366 | -23% | 0 | 0 | — |
case-07 | fail→fail | 6,897 | 14,315 | +108% | 1 | 1 | 0% | 836 | 2,192 | +162% | 0 | 0 | — |
case-08 | pass→fail | 8,221 | 15,859 | +93% | 1 | 1 | 0% | 1,248 | 2,320 | +86% | 0 | 0 | — |
case-09 | pass→fail | 12,802 | 20,375 | +59% | 1 | 1 | 0% | 2,046 | 3,548 | +73% | 0 | 0 | — |
case-10 | fail→pass | 13,063 | 7,255 | -44% | 1 | 1 | 0% | 2,014 | 2,477 | +23% | 0 | 0 | — |
case-11 | pass→pass | 8,752 | 10,774 | +23% | 1 | 1 | 0% | 1,500 | 2,525 | +68% | 0 | 0 | — |
case-12 | pass→fail | 9,201 | 15,418 | +68% | 1 | 1 | 0% | 1,273 | 2,412 | +89% | 0 | 0 | — |
case-13 | fail→fail | 16,618 | 10,483 | -37% | 1 | 1 | 0% | 2,298 | 2,731 | +19% | 0 | 0 | — |
case-14 | pass→fail | 5,755 | 38,123 | +562% | 1 | 1 | 0% | 854 | 10,386 | +1116% | 0 | 0 | — |
case-15 | fail→fail | 9,234 | 5,930 | -36% | 1 | 1 | 0% | 1,545 | 2,107 | +36% | 0 | 0 | — |
case-16 | pass→pass | 6,900 | 3,266 | -53% | 1 | 1 | 0% | 997 | 2,309 | +132% | 0 | 0 | — |
case-17 | pass→pass | 6,617 | 3,581 | -46% | 1 | 1 | 0% | 841 | 2,313 | +175% | 0 | 0 | — |
case-18 | pass→pass | 6,012 | 2,544 | -58% | 1 | 1 | 0% | 710 | 2,165 | +205% | 0 | 0 | — |
case-19 | fail→fail | 6,024 | 9,233 | +53% | 1 | 1 | 0% | 733 | 2,379 | +225% | 0 | 0 | — |
case-20 | fail→fail | 9,906 | 27,966 | +182% | 1 | 1 | 0% | 1,366 | 6,839 | +401% | 0 | 0 | — |
case-21 | pass→pass | 12,453 | 3,949 | -68% | 1 | 1 | 0% | 1,575 | 2,363 | +50% | 0 | 0 | — |
case-22 | fail→pass | 10,558 | 2,088 | -80% | 1 | 1 | 0% | 706 | 2,106 | +198% | 0 | 0 | — |
case-23 | pass→fail | 9,066 | 20,137 | +122% | 1 | 1 | 0% | 1,401 | 2,785 | +99% | 0 | 0 | — |
case-24 | pass→pass | 10,312 | 3,528 | -66% | 1 | 1 | 0% | 1,576 | 2,342 | +49% | 0 | 0 | — |
case-25 | pass→pass | 4,748 | 2,383 | -50% | 1 | 1 | 0% | 559 | 2,079 | +272% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 25 cases were attempted, and 10 counted toward the lift figure. The other 15 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of -12 percentage points is the difference between those two pass rates over the 10 comparable cases. 7 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.