From dev-workflow
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes
How this skill is triggered — by the user, by Claude, or both
Slash command
/dev-workflow:systematic-debuggingThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
**No fixes without root cause identification first.**
No fixes without root cause identification first.
You may not propose or implement fixes until you understand why the system is behaving incorrectly. If you don't know the root cause, you must investigate further.
Reproduce and observe:
Checkpoint: Bug is reproducible. Evidence is documented.
Study the code paths:
Checkpoint: You understand what the code is trying to do and where it deviates.
Develop testable hypothesis:
Checkpoint: You have a theory that explains all observed symptoms.
Use test-driven development:
dev-workflow:test-driven-development skillCheckpoint: Bug is fixed. Test prevents regression.
After 3 failed fix attempts, STOP and reassess:
Don't keep trying variations. If 3 attempts failed, your understanding is incomplete.
Always use for:
This is the required approach for all debugging work.
Chains to dev-workflow:test-driven-development:
Works with dev-workflow:implementer:
Works with dev-workflow:plan-execution:
❌ Trying random fixes hoping something works ❌ Fixing symptoms without understanding cause ❌ Skipping hypothesis phase and jumping to implementation ❌ Not reproducing the bug before claiming it's fixed ❌ Continuing past 3 failed attempts without reassessing ❌ Implementing fixes without tests
✅ Root cause is clearly identified and explained ✅ Hypothesis was tested and confirmed before fixing ✅ Fix has corresponding test that would catch regression ✅ Original reproduction steps now pass ✅ No new failures introduced ✅ If 3 attempts failed, escalation or reassessment occurred
BUG: User login fails with "Invalid token" error
Phase 1 - INVESTIGATE
- Reproduced: POST /login with valid credentials → 401
- Stack trace shows: TokenValidator.verify() throwing
- Works in dev, fails in staging
- Started failing after deploy 2 days ago
Phase 2 - ANALYZE
- Read TokenValidator code: checks exp claim
- Token generation: sets exp to 1h from now
- Environment difference: staging uses UTC, dev uses local time
- Recent change: Updated time library 2 days ago
Phase 3 - HYPOTHESIZE
Theory: New time library returns different timezone format,
causing exp claim to be misinterpreted in staging.
Test: Add logging to show exact exp value and current time.
Result: Confirmed - exp is ISO string, validator expects Unix timestamp.
Phase 4 - IMPLEMENT
→ Invoke dev-workflow:test-driven-development
→ RED: Write test with ISO exp format → expect to pass
→ GREEN: Update TokenValidator to handle both formats
→ REFACTOR: Clean up time handling
→ VERIFY: All tests pass, staging login works
npx claudepluginhub tombakerjr/claude-code-workflows --plugin dev-workflowGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.