bundles/github/skills/bug/SKILL.md
File a GitHub issue of type Bug from a description — structures a clear bug report (summary, steps to reproduce, expected vs actual, environment), previews it, then on confirmation creates the issue with the Bug issue type (falling back to a bug label when the repo has no issue types). Use when the user asks to file a bug, open a bug report, create a GitHub bug issue, log a bug, or runs /bug.
npx skillsauth add shipshitdev/library bugInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Turn a description of something broken into a GitHub issue
of type Bug. It drafts the report from what the user gives (plus repo context),
shows it for approval, and only then files the issue — typed Bug where the repo
supports issue types, otherwise labelled bug.
It never opens an issue without confirmation and never invents reproduction steps or facts the user did not provide; unknowns are marked as such.
Inputs:
Outputs:
Bug or labelled bug (and why)Creates/Modifies:
Bug (or with the bug label) via ghbug label if it is used as a fallback and does not yet existExternal Side Effects:
Confirmation Required:
bug label (fallback path), if one does not already existDelegates To:
gh-fix-ci when the bug is a failing CI check the user wants fixed instead of fileddebug / systematic-debugging when the user wants to root-cause before filing/bugDo not use this skill to fix the bug, to file feature requests or tasks (those are a different issue type), or to triage existing issues.
gh auth status -h github.com
gh repo view --json nameWithOwner,hasIssuesEnabled --jq '{repo:.nameWithOwner, issues:.hasIssuesEnabled}'
Stop if issues are disabled. Detect whether the repo's owner defines issue types
and whether a Bug type exists:
gh issue create --help | grep -q -- '--type' && echo "type-flag: supported"
gh api "repos/{owner}/{repo}" --jq '.owner.type' 2>/dev/null
Decide the path:
Bug type. Use
--type Bug.bug label — fallback when no issue types exist. Check for the label and plan
to create it only if needed:gh label list --search bug --json name --jq '.[].name'
Structure the report from what the user gave. Keep it factual — never fabricate
steps, versions, or behavior. Mark anything unknown as _not provided_.
Title: a short, specific summary of the symptom (not "bug" or "it's broken").
Body (omit sections that genuinely do not apply):
## Summary
<one or two sentences: what is broken>
## Steps to Reproduce
1. …
2. …
## Expected
<what should happen>
## Actual
<what happens instead — include the error/stack trace verbatim if provided>
## Environment
<app/service, version or commit, OS/browser, anything relevant — or _not provided_>
## Notes
<links, related issues, suspected area — only if the user gave them>
If the user pasted a stack trace or error, quote it verbatim in a fenced block under Actual. Ask one concise follow-up only if the report is unusable without it (e.g. no symptom at all); otherwise draft with what you have and mark gaps.
Print the full drafted issue — title, body, the type/label decision, and any labels/assignee/milestone to apply — then stop and wait for an explicit yes. In a read-only or dry-run request, end here and file nothing.
Only after confirmation, write the body to a temp file (to preserve formatting) and create the issue.
Preferred — Bug issue type:
gh issue create --title "<title>" --body-file /tmp/bug_body.md --type Bug
Fallback — bug label (create the label first only if it is missing and the user
agreed):
gh label create bug --color d73a4a --description "Something isn't working" 2>/dev/null || true
gh issue create --title "<title>" --body-file /tmp/bug_body.md --label bug
Add --assignee, --label, --milestone, or --project only for values the user
specified. If --type Bug fails because the type does not exist, fall back to the
label path and say so rather than failing the run.
bug / bug <description> — Phases 1-4. Draft, confirm, file the issue. (Default.)bug draft — Phases 1-3. Draft and print the report only; create nothing.If the user names labels, an assignee, a milestone, or a severity, honor them. If they ask for a feature or task instead of a bug, say this skill files bugs and point them to the right issue type.
Report:
Bug or labelled bugdebug / systematic-debugging, or fix a
failing check with gh-fix-cidevelopment
TypeScript refactoring and modernization guidelines from a principal specialist perspective. This skill should be used when refactoring, reviewing, or modernizing TypeScript code to ensure type safety, compiler performance, and idiomatic patterns. Triggers on tasks involving TypeScript type architecture, narrowing, generics, error handling, or migration to modern TypeScript features.
tools
Resolves TypeScript and JavaScript problems across type-level programming, performance, monorepo management, migration, and modern tooling. Invoke when diagnosing "type instantiation excessively deep" errors, migrating JS to TS, configuring strict tsconfig, debugging module resolution, or choosing between Biome/ESLint/Turborepo/Nx.
tools
Turborepo monorepo build system guidance. Triggers on: `turbo.json`, task pipelines, `dependsOn`, caching, remote cache, the `turbo` CLI, `--filter`, `--affected`, CI optimization, environment variables, internal packages, monorepo structure, and package boundaries. Use when the user configures tasks or workflows, creates packages, sets up a monorepo, shares code between apps, runs changed packages, debugs cache behavior, or works in an `apps/` plus `packages/` workspace.
tools
Provides Tailwind CSS v4 performance optimization and best practices guidelines. Triggers when writing, reviewing, or refactoring Tailwind CSS v4 code; when working with Tailwind configuration, @theme directive, utility classes, responsive design, dark mode, container queries, or CSS generation optimization.