Spaces:
Running
Running
feat(agent): add Claude Code-style agent, skills, slash-commands, hooks, todos, sandboxed workspace, and full-stack scaffolding
81aa0b5 verified A newer version of the Gradio SDK is available: 6.19.0
metadata
name: debugging
description: >-
Systematic debugging workflow for diagnosing and fixing errors. Use when the
user reports a bug, crash, or unexpected behavior.
language: any
tags: debug, errors, troubleshooting, fix
Debugging
Approach debugging systematically. Don't guess β investigate.
Phase 1: Reproduce
Goal: Make the bug happen reliably.
- Ask: what exact steps trigger it?
- Ask: what was the expected vs actual behavior?
- Ask: is it consistent or intermittent?
- If you can reproduce it locally, do so with
bashand capture the full error output.
Phase 2: Isolate
Goal: Find the smallest scope where the bug reproduces.
- Read the relevant code with
read_file - Trace the data flow from input to failure point
- Add temporary print/logging statements if needed
- Identify the exact line where things go wrong
Phase 3: Diagnose
Goal: Understand WHY the bug happens.
Common root causes:
- Null/None/undefined: missing null checks
- Type confusion: passing wrong type, silent coercion
- Off-by-one: loop bounds, slicing
- Race conditions: shared state, async ordering
- Stale state: cached data not invalidated
- Wrong assumption: code expects something the caller doesn't guarantee
- Environment: missing env vars, wrong paths, permissions
State the root cause in one sentence before fixing.
Phase 4: Fix
Goal: Apply the minimal correct fix.
- Fix the root cause, not the symptom
- Don't introduce new patterns β match the surrounding code style
- Add a comment if the fix is non-obvious
- Consider: are there other places with the same bug?
Phase 5: Verify
Goal: Confirm the fix works and doesn't break anything.
- Re-run the reproduction steps
- Run any existing tests with
bash - Test edge cases related to the bug
- Check that you haven't introduced regressions
Phase 6: Document
Goal: Prevent recurrence.
- If appropriate, add a regression test
- Update relevant docs/comments
- Note the fix in the commit message
Anti-patterns to avoid
- β Shotgun debugging: changing random things hoping it works
- β Fixing symptoms: papering over the real issue
- β Adding null checks everywhere: hiding the real bug
- β "Works on my machine": dismissing environmental factors
- β Skipping verification: assuming the fix works