skills/debugging-first/SKILL.md
Enforces an evidence-first approach to bug investigation. Requires agents to gather debugging evidence (console logs, network requests, application state) before examining or modifying source code.
npx skillsauth add adilkalam/orca debugging-firstInstall 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.
RULE: Use debugging tools BEFORE examining or modifying code when investigating issues.
When something isn't working, gather evidence FIRST before making changes. Debugging tools give you facts; guessing wastes time.
DO:
# Browser console (via Puppeteer evaluate)
mcp__puppeteer__puppeteer_evaluate({ script: "console.log('checking...')" })
# Server logs
tail -f logs/app.log
# Build output
npm run build 2>&1 | head -50
DO:
# Browser network (via Puppeteer evaluate)
mcp__puppeteer__puppeteer_evaluate({ script: "performance.getEntriesByType('resource')" })
# CLI testing
curl -v [endpoint]
# Check for CORS issues
# Look for preflight failures
DO:
Only AFTER gathering evidence from above:
User: "The login isn't working"
Agent (CORRECT approach):
1. Check console logs for errors
2. Check network tab for API calls
3. Check what error message (if any) is shown
4. Check if user is redirected or stays on page
5. NOW look at the code with context
With debugging evidence in hand:
DON'T:
User: "Login is broken"
Agent: *immediately reads auth code*
Agent: "I see the code, let me refactor the login flow..."
Result: 2 hours wasted, wrong diagnosis, possibly new bugs introduced
User: "Login is broken"
Agent: "Let me check the console and network requests first."
*checks console* -> "401 Unauthorized"
*checks network* -> "Token expired, refresh token request failing"
Agent: "The issue is token refresh failure. The fix is [specific fix]"
Result: 5 minutes, correct diagnosis, targeted fix
Before modifying code to fix a bug:
If any are unchecked, GO BACK and debug first.
When reporting findings, use this format:
**Debugging Evidence:**
- Console: [what you found - exact errors, warnings]
- Network: [what you found - status codes, payloads]
- State: [what you found - values, null checks]
**Root Cause:** [specific cause based on evidence]
**Proposed Fix:** [targeted fix addressing root cause]
**Verification Plan:** [how to confirm the fix works]
Debugging-first does NOT apply when:
Debugging-first DOES apply when:
# Get console messages (via Puppeteer evaluate)
mcp__puppeteer__puppeteer_evaluate({ script: "window.errors || []" })
# Get network requests (via Performance API)
mcp__puppeteer__puppeteer_evaluate({ script: "performance.getEntriesByType('resource')" })
# Take screenshot to see current state
mcp__puppeteer__puppeteer_screenshot({ name: "debug-state" })
# Check server logs
tail -f logs/*.log
# Check process status
ps aux | grep [process]
# Check port bindings
lsof -i :[port]
# Run build with verbose output
npm run build --verbose
# Check TypeScript errors
npx tsc --noEmit
# Check for circular dependencies
npx madge --circular src/
content-media
Download YouTube video transcripts when user provides a YouTube URL or asks to download/get/fetch a transcript from YouTube. Also use when user wants to transcribe or get captions/subtitles from a YouTube video.
development
Web UI quality rules: interactions, forms, loading, animations, layout, content, performance, accessibility, design. Apply to all web UI work. Adapted from Vercel Design Guidelines.
testing
MANDATORY protocol enforcing knowledge check before EVERY response - prevents explaining systems without reading docs, claiming without verification, and ignoring auto-loaded context
testing
Typography hierarchy and spacing scale fallbacks. Yields to project design-dna when present.