19 KiB
Debug Skill - Comprehensive Debugging Toolkit
A professional-grade debugging skill for diagnosing, reproducing, fixing, analyzing, and optimizing complex issues across the entire application stack.
Overview
The debug skill provides systematic debugging operations that work seamlessly with the 10x-fullstack-engineer agent to deliver cross-stack debugging expertise, production-grade strategies, and prevention-focused solutions.
Available Operations
1. diagnose - Comprehensive Diagnosis and Root Cause Analysis
Performs systematic diagnosis across all layers of the application stack to identify root causes of complex issues.
Usage:
/10x-fullstack-engineer:debug diagnose issue:"Users getting 500 errors on file upload" environment:"production" logs:"logs/app.log"
Parameters:
issue:"description"(required) - Problem descriptionenvironment:"prod|staging|dev"(optional) - Target environmentlogs:"path"(optional) - Log file locationreproduction:"steps"(optional) - Steps to reproduceimpact:"severity"(optional) - Issue severity
What it does:
- Collects diagnostic data from frontend, backend, database, and infrastructure
- Analyzes symptoms and patterns across all stack layers
- Forms and tests hypotheses systematically
- Identifies root cause with supporting evidence
- Provides actionable recommendations
Output:
- Executive summary of issue and root cause
- Detailed diagnostic data from each layer
- Hypothesis analysis with evidence
- Root cause explanation
- Recommended immediate actions and permanent fix
- Prevention measures (monitoring, testing, documentation)
2. reproduce - Create Reliable Reproduction Strategies
Develops reliable strategies to reproduce issues consistently, creating test cases and reproduction documentation.
Usage:
/10x-fullstack-engineer:debug reproduce issue:"Payment webhook fails intermittently" environment:"staging" data:"sample-webhook-payload.json"
Parameters:
issue:"description"(required) - Issue to reproduceenvironment:"prod|staging|dev"(optional) - Environment contextdata:"path"(optional) - Test data locationsteps:"description"(optional) - Known reproduction stepsreliability:"percentage"(optional) - Current reproduction rate
What it does:
- Gathers environment, data, and user context
- Creates local reproduction strategy
- Develops automated test cases (unit, integration, E2E)
- Tests scenario variations and edge cases
- Verifies reproduction reliability
- Documents comprehensive reproduction guide
Output:
- Reproduction reliability metrics
- Prerequisites and setup instructions
- Detailed reproduction steps (manual and automated)
- Automated test case code
- Scenario variations tested
- Troubleshooting guide for reproduction issues
3. fix - Implement Targeted Fixes with Verification
Implements targeted fixes with comprehensive verification, safeguards, and prevention measures.
Usage:
/10x-fullstack-engineer:debug fix issue:"Race condition in order processing" root_cause:"Missing transaction lock" verification:"run-integration-tests"
Parameters:
issue:"description"(required) - Issue being fixedroot_cause:"cause"(required) - Identified root causeverification:"strategy"(optional) - Verification approachscope:"areas"(optional) - Affected code areasrollback:"plan"(optional) - Rollback strategy
What it does:
- Designs appropriate fix pattern for the issue type
- Implements fix with safety measures
- Adds safeguards (validation, rate limiting, circuit breakers)
- Performs multi-level verification (unit, integration, load, production)
- Adds prevention measures (tests, monitoring, alerts)
- Documents fix and deployment plan
Fix patterns supported:
- Missing error handling
- Race conditions
- Memory leaks
- Missing validation
- N+1 query problems
- Configuration issues
- Infrastructure limits
Output:
- Detailed fix implementation with before/after code
- Safeguards added (validation, error handling, monitoring)
- Verification results at all levels
- Prevention measures (tests, alerts, documentation)
- Deployment plan with rollback strategy
- Files modified and commits made
4. analyze-logs - Deep Log Analysis with Pattern Detection
Performs deep log analysis with pattern detection, timeline correlation, and anomaly identification.
Usage:
/10x-fullstack-engineer:debug analyze-logs path:"logs/application.log" pattern:"ERROR.*timeout" timeframe:"last-24h"
Parameters:
path:"log-file-path"(required) - Log file to analyzepattern:"regex"(optional) - Filter patterntimeframe:"range"(optional) - Time range to analyzelevel:"error|warn|info"(optional) - Log level filtercontext:"lines"(optional) - Context lines around matches
What it does:
- Discovers and filters relevant logs across all sources
- Detects error patterns and clusters similar errors
- Performs timeline analysis and event correlation
- Traces individual requests across services
- Identifies statistical anomalies and spikes
- Analyzes performance, user impact, and security issues
Utility script:
./commands/debug/.scripts/analyze-logs.sh \
--file logs/application.log \
--level ERROR \
--since "1 hour ago" \
--context 5
Output:
- Summary of findings with key statistics
- Top errors with frequency and patterns
- Timeline of critical events
- Request tracing through distributed system
- Anomaly detection (spikes, new errors)
- Performance analysis from logs
- User impact assessment
- Root cause analysis based on log patterns
- Recommendations for fixes and monitoring
5. performance - Performance Debugging and Optimization
Debugs performance issues through profiling, bottleneck identification, and targeted optimization.
Usage:
/10x-fullstack-engineer:debug performance component:"api-endpoint:/orders" metric:"response-time" threshold:"200ms"
Parameters:
component:"name"(required) - Component to profilemetric:"type"(optional) - Metric to measure (response-time, throughput, cpu, memory)threshold:"value"(optional) - Target performance thresholdduration:"period"(optional) - Profiling durationload:"users"(optional) - Concurrent users for load testing
What it does:
- Establishes performance baseline
- Profiles application, database, and network
- Identifies bottlenecks (CPU, I/O, memory, network)
- Implements targeted optimizations (queries, caching, algorithms, async)
- Performs load testing to verify improvements
- Sets up performance monitoring
Profiling utility script:
./commands/debug/.scripts/profile.sh \
--app node_app \
--duration 60 \
--endpoint http://localhost:3000/api/slow
Optimization strategies:
- Query optimization (indexes, query rewriting)
- Caching (application-level, Redis)
- Code optimization (algorithms, lazy loading, pagination)
- Async optimization (parallel execution, batching)
Output:
- Performance baseline and after-optimization metrics
- Bottlenecks identified with evidence
- Optimizations implemented with code changes
- Load testing results
- Performance improvement percentages
- Monitoring setup (metrics, dashboards, alerts)
- Recommendations for additional optimizations
6. memory - Memory Leak Detection and Optimization
Detects memory leaks, analyzes memory usage patterns, and optimizes memory consumption.
Usage:
/10x-fullstack-engineer:debug memory component:"background-worker" symptom:"growing-heap" duration:"6h"
Parameters:
component:"name"(required) - Component to analyzesymptom:"type"(optional) - Memory symptom (growing-heap, high-usage, oom)duration:"period"(optional) - Observation periodthreshold:"max-mb"(optional) - Memory threshold in MBprofile:"type"(optional) - Profile type (heap, allocation)
What it does:
- Identifies memory symptoms (leaks, high usage, OOM)
- Captures memory profiles (heap snapshots, allocation tracking)
- Analyzes common leak patterns
- Implements memory optimizations
- Performs leak verification under load
- Tunes garbage collection
Memory check utility script:
./commands/debug/.scripts/memory-check.sh \
--app node_app \
--duration 300 \
--interval 10 \
--threshold 1024
Common leak patterns detected:
- Event listeners not removed
- Timers not cleared
- Closures holding references
- Unbounded caches
- Global variable accumulation
- Detached DOM nodes
- Infinite promise chains
Optimization techniques:
- Stream large data instead of loading into memory
- Use efficient data structures (Map vs Array)
- Paginate database queries
- Implement LRU caches with size limits
- Use weak references where appropriate
- Object pooling for frequently created objects
Output:
- Memory symptoms and baseline metrics
- Heap snapshot analysis
- Memory leaks identified with evidence
- Fixes implemented with before/after code
- Memory after fixes with improvement percentages
- Memory stability test results
- Garbage collection metrics
- Monitoring setup and alerts
- Recommendations for memory limits and future monitoring
Utility Scripts
The debug skill includes three utility scripts in .scripts/ directory:
analyze-logs.sh
Purpose: Analyze log files for patterns, errors, and anomalies
Features:
- Pattern matching with regex
- Log level filtering
- Time-based filtering
- Context lines around matches
- Error statistics and top errors
- Time distribution analysis
- JSON output support
profile.sh
Purpose: Profile application performance (CPU, memory, I/O)
Features:
- CPU profiling with statistics
- Memory profiling with growth detection
- I/O profiling
- Concurrent load testing
- Automated recommendations
- Comprehensive reports
memory-check.sh
Purpose: Monitor memory usage and detect leaks
Features:
- Real-time memory monitoring
- Memory growth detection
- Leak detection with trend analysis
- ASCII memory usage charts
- Threshold alerts
- Detailed memory reports
Common Debugging Workflows
Workflow 1: Production Error Investigation
# Step 1: Diagnose the issue
/10x-fullstack-engineer:debug diagnose issue:"500 errors on checkout" environment:"production" logs:"logs/app.log"
# Step 2: Analyze logs for patterns
/10x-fullstack-engineer:debug analyze-logs path:"logs/app.log" pattern:"checkout.*ERROR" timeframe:"last-1h"
# Step 3: Reproduce locally
/10x-fullstack-engineer:debug reproduce issue:"Checkout fails with 500" environment:"staging" data:"test-checkout.json"
# Step 4: Implement fix
/10x-fullstack-engineer:debug fix issue:"Database timeout on checkout" root_cause:"Missing connection pool configuration"
Workflow 2: Performance Degradation
# Step 1: Profile performance
/10x-fullstack-engineer:debug performance component:"api-endpoint:/checkout" metric:"response-time" threshold:"500ms"
# Step 2: Analyze slow queries
/10x-fullstack-engineer:debug analyze-logs path:"logs/postgresql.log" pattern:"duration:.*[0-9]{4,}"
# Step 3: Implement optimization
/10x-fullstack-engineer:debug fix issue:"Slow checkout API" root_cause:"N+1 query on order items"
Workflow 3: Memory Leak Investigation
# Step 1: Diagnose memory symptoms
/10x-fullstack-engineer:debug diagnose issue:"Memory grows over time" environment:"production"
# Step 2: Profile memory usage
/10x-fullstack-engineer:debug memory component:"background-processor" symptom:"growing-heap" duration:"1h"
# Step 3: Implement fix
/10x-fullstack-engineer:debug fix issue:"Memory leak in event handlers" root_cause:"Event listeners not removed"
Workflow 4: Intermittent Failure
# Step 1: Reproduce reliably
/10x-fullstack-engineer:debug reproduce issue:"Random payment failures" environment:"staging"
# Step 2: Diagnose with reproduction
/10x-fullstack-engineer:debug diagnose issue:"Payment webhook fails intermittently" reproduction:"steps-from-reproduce"
# Step 3: Analyze timing
/10x-fullstack-engineer:debug analyze-logs path:"logs/webhooks.log" pattern:"payment.*fail" context:10
# Step 4: Fix race condition
/10x-fullstack-engineer:debug fix issue:"Race condition in webhook handler" root_cause:"Concurrent webhook processing"
Integration with 10x-fullstack-engineer Agent
All debugging operations are designed to work with the 10x-fullstack-engineer agent, which provides:
- Cross-stack debugging expertise - Systematic analysis across frontend, backend, database, and infrastructure
- Systematic root cause analysis - Hypothesis formation, testing, and evidence-based conclusions
- Production-grade debugging strategies - Safe, reliable approaches suitable for production environments
- Performance and security awareness - Considers performance impact and security implications
- Prevention-focused mindset - Not just fixing issues, but preventing future occurrences
The agent brings deep expertise in:
- Full-stack architecture patterns
- Performance optimization techniques
- Memory management and leak detection
- Database query optimization
- Distributed systems debugging
- Production safety and deployment strategies
Debugging Best Practices
1. Start with Diagnosis
Always begin with /debug diagnose to understand the full scope of the issue before attempting fixes.
2. Reproduce Reliably
Use /debug reproduce to create reproducible test cases. A bug that can't be reliably reproduced is hard to fix and verify.
3. Analyze Logs Systematically
Use /debug analyze-logs to find patterns and correlations. Look for:
- Error frequency and distribution
- Timeline correlation with deployments
- Anomalies and spikes
- Request tracing across services
4. Profile Before Optimizing
Use /debug performance and /debug memory to identify actual bottlenecks. Don't optimize based on assumptions.
5. Fix with Verification
Use /debug fix which includes:
- Proper error handling
- Comprehensive testing
- Monitoring and alerts
- Documentation
6. Add Prevention Measures
Every fix should include:
- Regression tests
- Monitoring metrics
- Alerts on thresholds
- Documentation updates
Output Documentation
Each operation generates comprehensive reports in markdown format:
- Executive summaries for stakeholders
- Detailed technical analysis for engineers
- Code snippets with before/after comparisons
- Evidence and metrics supporting conclusions
- Actionable recommendations with priorities
- Next steps with clear instructions
Reports include:
- Issue description and symptoms
- Analysis methodology and findings
- Root cause explanation with evidence
- Fixes implemented with code
- Verification results
- Prevention measures added
- Files modified and commits
- Monitoring and alerting setup
Error Handling
All operations include robust error handling:
- Insufficient information - Lists what's needed and how to gather it
- Cannot reproduce - Suggests alternative debugging approaches
- Fix verification fails - Provides re-diagnosis steps
- Optimization degrades performance - Includes rollback procedures
- Environment differences - Helps bridge local vs production gaps
Common Debugging Scenarios
Database Performance Issues
- Use
/debug performanceto establish baseline - Use
/debug analyze-logson database slow query logs - Identify missing indexes or inefficient queries
- Use
/debug fixto implement optimization - Verify with load testing
Memory Leaks
- Use
/debug diagnoseto identify symptoms - Use
/debug memoryto capture heap profiles - Identify leak patterns (event listeners, timers, caches)
- Use
/debug fixto implement cleanup - Verify with sustained load testing
Intermittent Errors
- Use
/debug analyze-logsto find error patterns - Use
/debug reproduceto create reliable reproduction - Use
/debug diagnosewith reproduction steps - Identify timing or concurrency issues
- Use
/debug fixto implement proper synchronization
Production Incidents
- Use
/debug diagnosefor rapid root cause analysis - Use
/debug analyze-logsfor recent time period - Implement immediate mitigation (rollback, circuit breaker)
- Use
/debug reproduceto prevent recurrence - Use
/debug fixfor permanent solution
Performance Degradation
- Use
/debug performanceto compare against baseline - Identify bottlenecks (CPU, I/O, memory, network)
- Use
/debug analyze-logsfor slow operations - Implement targeted optimizations
- Verify improvements with load testing
Tips and Tricks
Effective Log Analysis
- Use pattern matching to find related errors
- Look for request IDs to trace across services
- Check timestamps for correlation with deployments
- Compare error rates before and after changes
- Use context lines to understand error conditions
Performance Profiling
- Profile production-like workloads
- Use realistic data sizes
- Test under sustained load, not just peak
- Profile both CPU and memory together
- Use flame graphs for visual analysis
Memory Debugging
- Force GC between measurements for accuracy
- Take multiple heap snapshots over time
- Look for objects that never get collected
- Check for consistent growth, not just spikes
- Verify fixes with extended monitoring
Reproduction Strategies
- Minimize reproduction to essential steps
- Control timing with explicit delays
- Use specific test data that triggers issue
- Document environment differences
- Aim for >80% reproduction reliability
File Locations
plugins/10x-fullstack-engineer/commands/debug/
├── skill.md # Router/orchestrator
├── diagnose.md # Diagnosis operation
├── reproduce.md # Reproduction operation
├── fix.md # Fix implementation operation
├── analyze-logs.md # Log analysis operation
├── performance.md # Performance debugging operation
├── memory.md # Memory debugging operation
├── .scripts/
│ ├── analyze-logs.sh # Log analysis utility
│ ├── profile.sh # Performance profiling utility
│ └── memory-check.sh # Memory monitoring utility
└── README.md # This file
Requirements
- Node.js operations: Node.js runtime with
--inspector--profflags for profiling - Log analysis: Standard Unix tools (awk, grep, sed), optional jq for JSON logs
- Performance profiling: Apache Bench (ab), k6, or Artillery for load testing
- Memory profiling: Chrome DevTools, clinic.js, or memwatch for Node.js
- Database profiling: Access to database query logs and EXPLAIN ANALYZE capability
Support and Troubleshooting
If operations fail:
- Check that required parameters are provided
- Verify file paths and permissions
- Ensure utility scripts are executable (
chmod +x .scripts/*.sh) - Check that prerequisite tools are installed
- Review error messages for specific issues
For complex debugging scenarios:
- Start with
/debug diagnosefor systematic analysis - Use multiple operations in sequence for comprehensive investigation
- Leverage the 10x-fullstack-engineer agent's expertise
- Document findings and share with team
Version
Debug Skill v1.0.0
License
Part of the 10x-fullstack-engineer plugin for Claude Code.