skills/debug/SKILL.md
Systematic debugging guidance for bugs, failures, unexpected behavior, and performance regressions. Emphasizes reproducible feedback loops, hypothesis testing, instrumentation, fixes, and regression tests. Use when investigating a bug, unexpected behavior, crash, wrong output, or performance regression, or triaging incoming bug reports.
npx skillsauth add shipshitdev/library debugInstall 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.
Debugging methodology: 54 rules across 10 categories prioritized by impact. Based on research from Andreas Zeller's "Why Programs Fail" and academic debugging curricula.
Use this loop before reaching for the detailed rules:
If no reliable loop can be built, stop and name exactly what evidence is missing: logs, trace payloads, a failing fixture, a screen recording, environment access, or a reproduction script. Do not guess without a loop.
Try these in order, choosing the cheapest loop that reproduces the real symptom:
Improve the loop itself when it is slow, flaky, or vague. A sharp 2-second loop is more valuable than a broad 2-minute suite when debugging.
[DEBUG-20260607-auth].For performance regressions, measure first. Establish a baseline, capture timing or profiler evidence, and bisect before changing code.
| Priority | Category | Impact | Prefix |
|----------|----------|--------|--------|
| 1 | Problem Definition | CRITICAL | prob- |
| 2 | Hypothesis-Driven Search | CRITICAL | hypo- |
| 3 | Observation Techniques | HIGH | obs- |
| 4 | Root Cause Analysis | HIGH | rca- |
| 5 | Tool Mastery | MEDIUM-HIGH | tool- |
| 6 | Bug Triage and Classification | MEDIUM | triage- |
| 7 | Common Bug Patterns | MEDIUM | pattern- |
| 8 | Fix Verification | MEDIUM | verify- |
| 9 | Anti-Patterns | MEDIUM | anti- |
| 10 | Prevention & Learning | LOW-MEDIUM | prev- |
prob-reproduce-before-debug - Reproduce the bug before investigatingprob-minimal-reproduction - Create minimal reproduction casesprob-document-symptoms - Document symptoms preciselyprob-separate-symptoms-causes - Separate symptoms from causesprob-state-expected-actual - State expected vs actual behaviorprob-recent-changes - Check recent changes firsthypo-scientific-method - Apply the scientific methodhypo-binary-search - Use binary search to localize bugshypo-one-change-at-time - Test one hypothesis at a timehypo-where-not-what - Find WHERE before asking WHAThypo-rule-out-obvious - Rule out obvious causes firsthypo-rubber-duck - Explain the problem aloudobs-strategic-logging - Use strategic loggingobs-log-inputs-outputs - Log function inputs and outputsobs-breakpoint-strategy - Use breakpoints strategicallyobs-stack-trace-reading - Read stack traces bottom to topobs-watch-expressions - Use watch expressions for stateobs-trace-data-flow - Trace data flow through systemrca-five-whys - Use the 5 Whys techniquerca-fault-propagation - Trace fault propagation chainsrca-last-known-good - Find the last known good staterca-question-assumptions - Question your assumptionsrca-examine-boundaries - Examine system boundariestool-conditional-breakpoints - Use conditional breakpointstool-logpoints - Use logpoints instead of modifying codetool-step-commands - Master step over/into/outtool-call-stack-navigation - Navigate the call stacktool-memory-inspection - Inspect memory and object statetool-exception-breakpoints - Use exception breakpointstriage-severity-vs-priority - Separate severity from prioritytriage-user-impact-assessment - Assess user impact before prioritizingtriage-reproducibility-matters - Factor reproducibility into triagetriage-quick-wins-first - Identify and ship quick wins firsttriage-duplicate-detection - Detect and link duplicate bug reportspattern-null-pointer - Recognize null pointer patternspattern-off-by-one - Spot off-by-one errorspattern-race-condition - Identify race condition symptomspattern-memory-leak - Detect memory leak patternspattern-type-coercion - Watch for type coercion bugspattern-async-await-errors - Catch async/await error handling mistakespattern-timezone-issues - Recognize timezone and date bugsverify-reproduce-fix - Verify with original reproductionverify-regression-check - Check for regressionsverify-understand-why-fix-works - Understand why fix worksverify-add-test - Add test to prevent recurrenceanti-shotgun-debugging - Avoid shotgun debugginganti-quick-patch - Avoid quick patches without understandinganti-tunnel-vision - Avoid tunnel vision on initial hypothesisanti-debug-fatigue - Recognize debugging fatigueanti-blame-tool - Don't blame the tool too quicklyprev-document-solution - Document bug solutionsprev-postmortem - Conduct blameless postmortemsprev-defensive-coding - Add defensive code at boundariesprev-improve-error-messages - Improve error messagesRead individual reference files for detailed explanations and code examples:
For the complete guide with all rules expanded: AGENTS.md
The operational loop incorporates debugging workflow ideas adapted from
Matt Pocock's MIT-licensed diagnose skill.
development
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.