SKILL.md
1,855 tokens · o200k_base · 10,063 bytes
Source excerpt starting at line 1.---name: issue-triagedescription: 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.argument-hint: <issue-number-or-url>allowed-tools: Bash(gh *) Bash(deno *) Bash(git *) Bash(mktemp *) Bash(rm *) Bash(cat *) Read Write Glob Grep Agent--- # Deno Issue Triage Triage issue `$ARGUMENTS` on the `denoland/deno` repository. ## Step 1: Read the issue ```!gh issue view $ARGUMENTS --repo denoland/deno --json number,title,body,author,labels,state,comments,createdAt,url``` ## Step 2: Classify the issue Determine what kind of issue this is: - **Bug report** — something isn't working as expected- **Feature request / suggestion** — a new capability or enhancement- **Question** — a usage question, not a bug- **Duplicate** — already reported (search closed and open issues with `gh issue list --search "keywords" --state all`)- **Invalid** — not actionable, not a Deno issue, or insufficient info If the issue is clearly a question, duplicate, or invalid, skip reproduction andgo straight to Step 5. ## Step 3: Check for missing information A valid bug report needs: - Deno version (`deno --version` output)- Operating system- Reproduction steps or minimal reproduction code- Expected behavior vs actual behavior If any of these are missing, label as `needs info` and comment asking the authorto provide the missing details. Do not attempt reproduction without a clearrepro case. ## Step 4: Reproduce the bug Only attempt reproduction for bug reports that have a clear repro case. ### Setup Prefer running reproductions inside a Docker container for isolation. Fall backto a local temp directory only if Docker is unavailable. **Docker (preferred):** ```sh# Run repro with latest canarydocker 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 therepro files via `-v`. **Local fallback (if Docker is not available):** ```shREPRO_DIR=$(mktemp -d)deno run "$REPRO_DIR/repro.ts"``` ### Get Deno versions Try to reproduce with both: 1. **The version from the issue** (if specified) — to confirm the bug exists2. **Latest canary** — to check if it's already fixed 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 reproduceon canary, note that it may already be fixed. Check git log for relevant fixes. ### Run the reproduction - Extract the reproduction code from the issue body- Write it to a local temp directory- Run it inside a Docker container (or locally as fallback) with the appropriate `deno` subcommand and flags- Capture both stdout and stderr- Compare actual output against the expected behavior described in the issue If the reproduction involves specific npm packages, `deno.json` config, ormulti-file setups, recreate the full environment as described. ### Clean up ```shrm -rf "$REPRO_DIR"``` ### Record findings Note: - Does the bug reproduce on the reported version?- Does the bug reproduce on canary?- Any additional observations (e.g., different error message, partial fix, related issues) ## Step 5: Label the issue Add labels based on your classification. Keep it minimal — usually a single arealabel is sufficient. Do not over-label. ### Type labels (add one if applicable) | 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 | ### Area labels (add one that best matches) | 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 | ### Priority labels (add only when clearly warranted) | Label | When to use || --------------- | ------------------------------------------- || `high priority` | Severe impact, blocks users, security issue || `quick fix` | Obviously simple fix | ### Adding labels ```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 👀"``` ## Step 6: Comment on the issue 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.``` ### Posting the comment ```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"``` ## Rules - Always confirm with the user before posting comments or modifying labels on GitHub.- Do not close bug reports — only close duplicates, questions, and invalid issues.- Keep labels minimal. One type label + one area label is usually enough.- Be kind to reporters. Thank them, especially first-time reporters.- If you cannot reproduce a bug, say so honestly — do not guess at causes.- If the reproduction requires permissions or resources you don't have access to, note that and skip reproduction.- Never dismiss an issue without investigation.
Discovery context
Discovered by repository scan. No exact path reference found in the snapshot’s root CLAUDE.md.