bundles/dev-workflow/skills/debug/SKILL.md
Front door for a freshly reported failure: build a deterministic feedback loop, reproduce the symptom, rank falsifiable hypotheses, and instrument the narrowest point that separates them. Carries the lookup library — 54 rules across 10 categories covering observation technique, common bug patterns, and triage priority. Use on first contact with a bug, crash, wrong output, or performance regression before any fix has been attempted, and to look up a debugging technique or bug pattern by name. Hands off to `systematic-debugging` when a fix attempt has already failed or the cause survives the loop.
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.
The front door for a reported failure. It resolves the cheapest loop that reproduces the symptom, narrows to a cause, and either lands a fix or hands the case to the full loop. Debugging methodology: 54 rules across 10 categories prioritized by impact. Based on research from Andreas Zeller's "Why Programs Fail" and academic debugging curricula.
Inputs:
Outputs:
systematic-debugging.Creates/Modifies:
External Side Effects:
Confirmation Required:
Delegates To:
systematic-debugging for the full four-phase root-cause loop, whenever the
escalation table fires.execution-debugging when the failure is a test or build breaking during
stabilization and scope must stay on that one check.bug to file the report when the case ends in a ticket rather than a fix.Run this before reaching for the detailed rules. Each step ends on a checkable bound.
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. Gather evidence rather than guessing without a loop.
systematic-debuggingHand the case over when any of these hold. Carry the loop, the evidence, and the attempt count across with it.
| Signal | Why the front door stops | |--------|--------------------------| | A fix attempt has already failed | The next attempt needs enforced re-investigation, not another guess | | The same defect returned after a previous fix | The earlier cause was a symptom | | Step 4 leaves two or more hypotheses standing | Evidence must be gathered at every component boundary | | Each fix exposes a new problem elsewhere | Three failures make it an architecture question | | The failure crosses components (API → service → database, CI → build → signing) | The four-phase loop instruments each boundary in one pass |
Otherwise finish here: the front door owns simple, first-contact bugs end to end.
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 front-door loop incorporates debugging workflow ideas adapted from
Matt Pocock's MIT-licensed diagnose skill.
development
Coordinates a weekly engineering review of board accuracy, recent code changes, operational health, and scoped cleanup. Use for a recurring repository health review or a review of the last several days.
testing
Audits project board configuration and prepares explicitly requested setup, copy, or normalization changes while preserving the existing workflow and provider boundaries. Use when inspecting a board's fields, columns, scope, or configuration.
testing
Reconciles a project board with current work and delivery evidence, reports incomplete coverage and metadata gaps, and applies only approved provider-supported field changes. Use when auditing board drift, reviewing blocked work, or assessing upcoming delivery.
development
Walk through how a subsystem works. Use for "how does X work", code walkthroughs before changing something, and placement or ownership questions. Explains architecture, runtime flow, and onboarding mental models. Can critique architecture. Use why for motivation.