SuperClaude/Docs/Reference/diagnostic-reference.md

1014 lines
32 KiB
Markdown
Raw Normal View History

# Diagnostic Reference Guide
**Advanced Diagnostics Focus**: This guide provides comprehensive diagnostic procedures for performance monitoring, session management, and system-level troubleshooting. Use these procedures for complex issues that require deep analysis and systematic investigation.
**Systematic Investigation**: Each diagnostic section includes monitoring tools, analysis procedures, and optimization strategies to identify root causes and implement effective solutions.
## Performance Monitoring and Analysis
### System Resource Diagnostics
**Comprehensive Performance Monitoring:**
```bash
# Complete system resource analysis
echo "=== SuperClaude Performance Diagnostics ==="
# CPU usage analysis
echo "=== CPU Usage ==="
top -b -n 1 | head -10
ps aux --sort=-%cpu | head -10
# Memory usage analysis
echo "=== Memory Usage ==="
free -h
ps aux --sort=-%mem | head -10
# Disk I/O analysis
echo "=== Disk I/O ==="
iostat -x 1 3
df -h
# Network analysis (if MCP servers used)
echo "=== Network Status ==="
netstat -i
ss -tuln | grep -E ":8000|:8001|:8002"
# Process analysis
echo "=== SuperClaude Processes ==="
ps aux | grep -E "python.*SuperClaude|node.*mcp|claude"
```
**Real-time Performance Monitoring:**
```bash
# Continuous monitoring setup
echo "=== Setting up continuous monitoring ==="
# Install monitoring tools if needed
# Ubuntu/Debian: sudo apt install htop iotop nethogs
# CentOS/RHEL: sudo yum install htop iotop nethogs
# macOS: brew install htop
# Real-time monitoring commands
echo "Use these commands for real-time monitoring:"
echo "htop # Interactive process monitor"
echo "iotop # I/O usage by process"
echo "nethogs # Network usage by process"
echo "watch free -h # Memory usage updates"
echo "watch df -h # Disk space updates"
# Performance baseline establishment
echo "=== Establishing performance baselines ==="
time python3 -m SuperClaude --version
time ls ~/.claude/
time cat ~/.claude/CLAUDE.md | wc -l
```
**Performance Bottleneck Identification:**
```bash
# Systematic bottleneck analysis
echo "=== Bottleneck Analysis ==="
# CPU bottleneck detection
echo "CPU Analysis:"
top -b -n 1 | grep "Cpu(s)" | awk '{print $2}' | cut -d'%' -f1
if [ $(top -b -n 1 | grep "Cpu(s)" | awk '{print $2}' | cut -d'%' -f1 | cut -d'.' -f1) -gt 80 ]; then
echo "⚠️ High CPU usage detected"
echo "Solutions: Reduce operation scope, use --scope flags"
fi
# Memory bottleneck detection
echo "Memory Analysis:"
MEM_USAGE=$(free | grep Mem | awk '{printf "%.0f", $3/$2 * 100}')
if [ $MEM_USAGE -gt 85 ]; then
echo "⚠️ High memory usage: ${MEM_USAGE}%"
echo "Solutions: Clear sessions, restart Claude Code"
fi
# Disk I/O bottleneck detection
echo "Disk I/O Analysis:"
iostat -x 1 1 | tail -n +4 | awk '$10 > 80 {print "⚠️ High I/O on " $1 ": " $10 "% utilization"}'
# Network bottleneck detection (for MCP servers)
echo "Network Analysis:"
ping -c 3 8.8.8.8 | tail -1 | awk -F'/' '{if($5 > 100) print "⚠️ High network latency: " $5 "ms"}'
```
### Performance Optimization Strategies
**CPU Optimization:**
```bash
# CPU usage optimization
echo "=== CPU Optimization Strategies ==="
# Identify CPU-intensive processes
ps aux --sort=-%cpu | grep -E "python.*SuperClaude|node.*mcp" | head -5
# Optimization solutions
echo "CPU Optimization Actions:"
echo "1. Use scope limiting: --scope file instead of --scope project"
echo "2. Break complex tasks into smaller operations"
echo "3. Use selective MCP servers: --c7 --seq instead of --all-mcp"
echo "4. Restart Claude Code session to clear accumulated processes"
# CPU monitoring during operations
echo "Monitor CPU during operations:"
echo "watch 'ps aux --sort=-%cpu | head -10'"
```
**Memory Optimization:**
```bash
# Memory usage optimization
echo "=== Memory Optimization Strategies ==="
# Memory analysis
echo "Current memory status:"
free -h
echo ""
echo "Process memory usage:"
ps aux --sort=-%mem | head -10
# Session memory cleanup
echo "Session cleanup commands:"
echo "rm -rf ~/.claude/sessions/old-* # Remove old sessions"
echo "rm -rf ~/.claude/temp/ # Clear temporary files"
echo "rm -rf /tmp/superclaude-* # Clear system temp files"
# Memory monitoring
echo "Memory monitoring:"
echo "watch 'free -h && echo && ps aux --sort=-%mem | head -5'"
```
**Disk I/O Optimization:**
```bash
# Disk I/O optimization
echo "=== Disk I/O Optimization ==="
# Disk usage analysis
du -sh ~/.claude/
du -sh ~/.claude/sessions/ 2>/dev/null || echo "No sessions directory"
df -h ~/.claude/
# I/O optimization actions
echo "I/O Optimization Actions:"
echo "1. Focus on specific files instead of entire projects"
echo "2. Use faster storage (SSD) for ~/.claude directory"
echo "3. Regular cleanup of session files"
echo "4. Move large projects to faster storage"
# I/O monitoring
echo "Monitor I/O usage:"
echo "iotop -o -d 1 # Show processes doing I/O"
```
## Session Management Diagnostics
### Session Lifecycle Analysis
**Session State Diagnosis:**
```bash
# Complete session state analysis
echo "=== Session State Diagnostics ==="
# Session directory analysis
echo "Session Directory Analysis:"
ls -la ~/.claude/sessions/ 2>/dev/null || echo "No sessions directory found"
du -sh ~/.claude/sessions/ 2>/dev/null || echo "No sessions to analyze"
# Session file integrity check
echo "Session File Integrity:"
find ~/.claude/sessions/ -name "*.json" -type f 2>/dev/null | while read file; do
if python3 -c "import json; json.load(open('$file'))" 2>/dev/null; then
echo "✅ Valid: $(basename $file)"
else
echo "❌ Corrupted: $(basename $file)"
fi
done
# Session memory usage analysis
echo "Session Memory Usage:"
find ~/.claude/sessions/ -name "*.json" -type f -exec du -h {} \; 2>/dev/null | sort -hr | head -10
```
**Session Performance Analysis:**
```bash
# Session performance diagnostics
echo "=== Session Performance Analysis ==="
# Session load time testing
echo "Session Load Performance:"
time ls ~/.claude/sessions/ >/dev/null 2>&1
# Session access pattern analysis
echo "Session Access Patterns:"
find ~/.claude/sessions/ -type f -printf "%T@ %p\n" 2>/dev/null | sort -n | tail -10 | while read timestamp file; do
date -d @${timestamp} "+%Y-%m-%d %H:%M:%S"
basename "$file"
echo "---"
done
# Session storage efficiency
echo "Session Storage Efficiency:"
total_sessions=$(find ~/.claude/sessions/ -name "*.json" 2>/dev/null | wc -l)
total_size=$(du -sb ~/.claude/sessions/ 2>/dev/null | cut -f1)
if [ "$total_sessions" -gt 0 ] && [ "$total_size" -gt 0 ]; then
avg_size=$((total_size / total_sessions))
echo "Total sessions: $total_sessions"
echo "Total size: $(echo $total_size | awk '{print $1/1024/1024 "MB"}')"
echo "Average session size: $(echo $avg_size | awk '{print $1/1024 "KB"}')"
fi
```
### Session Recovery Procedures
**Session Corruption Recovery:**
```bash
# Session corruption diagnosis and recovery
echo "=== Session Corruption Recovery ==="
# Identify corrupted sessions
echo "Identifying corrupted sessions:"
find ~/.claude/sessions/ -name "*.json" -type f 2>/dev/null | while read file; do
if ! python3 -c "import json; json.load(open('$file'))" 2>/dev/null; then
echo "Corrupted: $file"
mv "$file" "$file.corrupted.$(date +%s)"
echo "Backed up to: $file.corrupted.$(date +%s)"
fi
done
# Session backup creation
echo "Creating session backups:"
if [ -d ~/.claude/sessions/ ]; then
backup_dir=~/.claude/sessions.backup.$(date +%Y%m%d_%H%M%S)
cp -r ~/.claude/sessions/ "$backup_dir"
echo "Sessions backed up to: $backup_dir"
fi
# Session validation procedure
echo "Session validation procedure:"
cat << 'EOF' > /tmp/validate_session.py
import json
import sys
import os
def validate_session(filepath):
try:
with open(filepath, 'r') as f:
data = json.load(f)
# Basic structure validation
required_keys = ['timestamp', 'context']
for key in required_keys:
if key not in data:
return False, f"Missing key: {key}"
return True, "Valid session"
except json.JSONDecodeError as e:
return False, f"JSON error: {e}"
except Exception as e:
return False, f"Error: {e}"
if __name__ == "__main__":
if len(sys.argv) != 2:
print("Usage: python validate_session.py <session_file>")
sys.exit(1)
filepath = sys.argv[1]
is_valid, message = validate_session(filepath)
print(f"{'✅' if is_valid else '❌'} {filepath}: {message}")
EOF
find ~/.claude/sessions/ -name "*.json" -type f 2>/dev/null | while read file; do
python3 /tmp/validate_session.py "$file"
done
rm /tmp/validate_session.py
```
**Session Optimization Procedures:**
```bash
# Session optimization and cleanup
echo "=== Session Optimization ==="
# Archive old sessions
echo "Archiving old sessions (>30 days):"
find ~/.claude/sessions/ -name "*.json" -type f -mtime +30 2>/dev/null | while read file; do
archive_dir=~/.claude/sessions.archive/$(date +%Y-%m)
mkdir -p "$archive_dir"
mv "$file" "$archive_dir/"
echo "Archived: $(basename $file)"
done
# Compress large sessions
echo "Compressing large sessions (>1MB):"
find ~/.claude/sessions/ -name "*.json" -type f -size +1M 2>/dev/null | while read file; do
gzip "$file"
echo "Compressed: $(basename $file).gz"
done
# Session defragmentation
echo "Session defragmentation:"
if [ -d ~/.claude/sessions/ ]; then
# Sort sessions by access time and reorganize
temp_dir=$(mktemp -d)
find ~/.claude/sessions/ -name "*.json" -type f -printf "%A@ %p\n" 2>/dev/null | sort -n | while read atime file; do
cp "$file" "$temp_dir/$(basename $file)"
done
echo "Sessions reorganized in: $temp_dir"
echo "Replace sessions directory with: mv $temp_dir ~/.claude/sessions.optimized"
fi
```
## Advanced System Diagnostics
### Comprehensive Health Assessment
**System-Wide Health Check:**
```bash
# Complete SuperClaude system health assessment
echo "=== SuperClaude System Health Assessment ==="
# Core component verification
echo "Core Component Status:"
python3 -m SuperClaude --version && echo "✅ SuperClaude installed" || echo "❌ SuperClaude not found"
ls ~/.claude/CLAUDE.md >/dev/null 2>&1 && echo "✅ Configuration exists" || echo "❌ Configuration missing"
grep -q "SuperClaude" ~/.claude/CLAUDE.md 2>/dev/null && echo "✅ Configuration valid" || echo "❌ Configuration invalid"
# Dependency verification
echo "Dependency Status:"
python3 --version | grep -E "3\.[8-9]|3\.[1-9][0-9]" >/dev/null && echo "✅ Python version OK" || echo "❌ Python version incompatible"
which claude >/dev/null 2>&1 && echo "✅ Claude Code available" || echo "❌ Claude Code not found"
# MCP server verification
echo "MCP Server Status:"
node --version 2>/dev/null | grep -E "v1[6-9]|v[2-9][0-9]" >/dev/null && echo "✅ Node.js version OK" || echo "⚠️ Node.js version may be incompatible"
npm list -g 2>/dev/null | grep -E "context7|sequential|magic" >/dev/null && echo "✅ MCP servers installed" || echo "⚠️ No MCP servers found"
# File system verification
echo "File System Status:"
[ -w ~/.claude/ ] && echo "✅ Configuration directory writable" || echo "❌ Configuration directory not writable"
df -h ~/.claude/ | tail -1 | awk '{if($5+0 < 90) print " Sufficient disk space: " $5 " used"; else print " Low disk space: " $5 " used"}'
# Network verification (if MCP servers require internet)
echo "Network Status:"
ping -c 1 8.8.8.8 >/dev/null 2>&1 && echo "✅ Internet connectivity OK" || echo "⚠️ Internet connectivity issues"
```
**Configuration Integrity Analysis:**
```bash
# Configuration file integrity analysis
echo "=== Configuration Integrity Analysis ==="
# CLAUDE.md structure analysis
echo "CLAUDE.md Analysis:"
if [ -f ~/.claude/CLAUDE.md ]; then
line_count=$(wc -l ~/.claude/CLAUDE.md | cut -d' ' -f1)
if [ $line_count -gt 100 ]; then
echo "✅ Configuration size appropriate: $line_count lines"
else
echo "⚠️ Configuration may be incomplete: $line_count lines"
fi
# Check for required imports
import_count=$(grep -c "^@" ~/.claude/CLAUDE.md 2>/dev/null)
if [ $import_count -gt 5 ]; then
echo "✅ Import structure OK: $import_count imports"
else
echo "⚠️ Few imports found: $import_count imports"
fi
# Check for circular imports
echo "Circular import check:"
if grep -q "@CLAUDE.md" ~/.claude/CLAUDE.md 2>/dev/null; then
echo "❌ Circular import detected"
else
echo "✅ No circular imports"
fi
else
echo "❌ CLAUDE.md not found"
fi
# Component file analysis
echo "Component Files Analysis:"
for component in FLAGS RULES PRINCIPLES; do
if [ -f ~/.claude/${component}.md ]; then
size=$(wc -l ~/.claude/${component}.md | cut -d' ' -f1)
echo "✅ ${component}.md: $size lines"
else
echo "❌ ${component}.md missing"
fi
done
```
### Error Pattern Analysis
**Error Classification and Analysis:**
```bash
# Error pattern analysis and classification
echo "=== Error Pattern Analysis ==="
# Create error classification function
classify_error() {
local error_msg="$1"
case "$error_msg" in
*"permission denied"*|*"Permission denied"*)
echo "PERMISSION_ERROR: File system access issue"
;;
*"command not found"*|*"not recognized"*)
echo "COMMAND_ERROR: Installation or configuration issue"
;;
*"timeout"*|*"connection failed"*)
echo "NETWORK_ERROR: Connectivity or server issue"
;;
*"memory"*|*"out of memory"*)
echo "RESOURCE_ERROR: Insufficient system resources"
;;
*"syntax error"*|*"invalid"*)
echo "CONFIGURATION_ERROR: Configuration file corruption"
;;
*"dependency"*|*"module not found"*)
echo "DEPENDENCY_ERROR: Missing required components"
;;
*)
echo "UNKNOWN_ERROR: Requires manual investigation"
;;
esac
}
# Error log analysis (if logs exist)
echo "Error Log Analysis:"
if [ -f ~/.claude/error.log ]; then
echo "Recent errors:"
tail -20 ~/.claude/error.log | while read line; do
error_type=$(classify_error "$line")
echo "$error_type: $line"
done
else
echo "No error log found"
fi
# System log analysis for SuperClaude-related errors
echo "System Log Analysis:"
journalctl --since "1 day ago" 2>/dev/null | grep -i -E "superclaude|claude|python.*error" | tail -10 || echo "No system logs available"
```
**Root Cause Analysis Procedures:**
```bash
# Systematic root cause analysis
echo "=== Root Cause Analysis ==="
# Problem reproduction framework
echo "Problem Reproduction Framework:"
cat << 'EOF'
Root Cause Analysis Steps:
1. OBSERVATION: What exactly is failing?
- Record exact error messages
- Note system state when error occurs
- Document reproduction steps
2. HYPOTHESIS: What might be causing the issue?
- Installation problems
- Configuration errors
- Resource constraints
- Environmental issues
3. TESTING: How to verify the hypothesis?
- Isolated component testing
- Resource monitoring during failure
- Configuration validation
- Dependency verification
4. RESOLUTION: How to fix the identified cause?
- Apply targeted solutions
- Verify fix effectiveness
- Prevent recurrence
- Document solution
EOF
# Automated diagnostic procedures
echo "Automated Diagnostic Procedures:"
# Test isolation procedure
test_isolation() {
echo "Testing component isolation:"
# Test basic Python functionality
python3 -c "print('Python OK')" && echo "✅ Python working" || echo "❌ Python issue"
# Test SuperClaude installation
python3 -m SuperClaude --version >/dev/null 2>&1 && echo "✅ SuperClaude installed" || echo "❌ SuperClaude issue"
# Test configuration loading
[ -f ~/.claude/CLAUDE.md ] && echo "✅ Configuration exists" || echo "❌ Configuration missing"
# Test MCP servers (if applicable)
if which node >/dev/null 2>&1; then
npm list -g >/dev/null 2>&1 && echo "✅ npm working" || echo "❌ npm issue"
fi
}
test_isolation
```
## Performance Benchmarking
### Baseline Performance Metrics
**Performance Baseline Establishment:**
```bash
# Establish SuperClaude performance baselines
echo "=== Performance Baseline Establishment ==="
# System capability assessment
echo "System Capability Assessment:"
echo "CPU cores: $(nproc)"
echo "Memory: $(free -h | grep Mem | awk '{print $2}')"
echo "Storage type: $(lsblk -o NAME,ROTA | grep "0$" >/dev/null && echo "SSD" || echo "HDD")"
echo "Python version: $(python3 --version)"
# Operation timing benchmarks
echo "Operation Timing Benchmarks:"
# Basic operations
echo "Basic operation timings:"
time_basic() {
local start_time=$(date +%s.%N)
eval "$1" >/dev/null 2>&1
local end_time=$(date +%s.%N)
echo "$(echo "$end_time - $start_time" | bc)s"
}
echo "SuperClaude version check: $(time_basic 'python3 -m SuperClaude --version')"
echo "Configuration read: $(time_basic 'cat ~/.claude/CLAUDE.md | wc -l')"
echo "Session directory list: $(time_basic 'ls ~/.claude/sessions/')"
# File operation benchmarks
echo "File Operation Benchmarks:"
temp_file="/tmp/superclaude_test_$(date +%s).txt"
dd if=/dev/zero of="$temp_file" bs=1M count=10 >/dev/null 2>&1
read_time=$(time_basic "cat $temp_file")
echo "10MB file read: ${read_time}"
rm "$temp_file"
# Memory usage baseline
echo "Memory Usage Baseline:"
python3 -c "
import psutil
import os
process = psutil.Process(os.getpid())
print(f'Current memory usage: {process.memory_info().rss / 1024 / 1024:.1f} MB')
"
```
**Performance Regression Testing:**
```bash
# Performance regression detection
echo "=== Performance Regression Testing ==="
# Create performance test suite
create_performance_test() {
cat << 'EOF' > /tmp/superclaude_perf_test.py
#!/usr/bin/env python3
import time
import subprocess
import json
import sys
import os
def time_operation(command, description):
"""Time a shell command and return duration"""
start_time = time.time()
try:
result = subprocess.run(command, shell=True, capture_output=True, text=True, timeout=30)
end_time = time.time()
duration = end_time - start_time
success = result.returncode == 0
return {
'description': description,
'duration': duration,
'success': success,
'command': command
}
except subprocess.TimeoutExpired:
return {
'description': description,
'duration': 30.0,
'success': False,
'command': command,
'error': 'timeout'
}
def run_performance_tests():
"""Run suite of performance tests"""
tests = [
('python3 -m SuperClaude --version', 'Version check'),
('ls ~/.claude/', 'Config directory list'),
('cat ~/.claude/CLAUDE.md | wc -l', 'Config file read'),
('find ~/.claude/ -name "*.md" | wc -l', 'Config file search'),
]
results = []
for command, description in tests:
print(f"Testing: {description}...")
result = time_operation(command, description)
results.append(result)
status = "✅" if result['success'] else "❌"
print(f" {status} {description}: {result['duration']:.3f}s")
return results
if __name__ == "__main__":
print("SuperClaude Performance Test Suite")
print("=" * 40)
results = run_performance_tests()
# Save results for comparison
timestamp = time.strftime("%Y%m%d_%H%M%S")
results_file = f"/tmp/superclaude_perf_{timestamp}.json"
with open(results_file, 'w') as f:
json.dump({
'timestamp': timestamp,
'results': results
}, f, indent=2)
print(f"\nResults saved to: {results_file}")
# Summary statistics
successful_tests = [r for r in results if r['success']]
if successful_tests:
avg_duration = sum(r['duration'] for r in successful_tests) / len(successful_tests)
print(f"Average operation time: {avg_duration:.3f}s")
failed_tests = [r for r in results if not r['success']]
if failed_tests:
print(f"Failed tests: {len(failed_tests)}")
for test in failed_tests:
print(f" - {test['description']}")
EOF
python3 /tmp/superclaude_perf_test.py
rm /tmp/superclaude_perf_test.py
}
create_performance_test
```
### Resource Usage Optimization
**Memory Usage Optimization:**
```bash
# Memory usage optimization and monitoring
echo "=== Memory Usage Optimization ==="
# Memory usage analysis
analyze_memory_usage() {
echo "Current memory state:"
free -h
echo ""
echo "SuperClaude-related processes:"
ps aux | grep -E "python.*SuperClaude|node.*mcp" | head -10
echo ""
echo "Memory-intensive processes:"
ps aux --sort=-%mem | head -10
echo ""
# Memory usage recommendations
total_mem=$(free -m | grep Mem | awk '{print $2}')
used_mem=$(free -m | grep Mem | awk '{print $3}')
mem_percent=$((used_mem * 100 / total_mem))
echo "Memory usage: ${mem_percent}%"
if [ $mem_percent -gt 80 ]; then
echo "⚠️ High memory usage detected"
echo "Recommendations:"
echo " - Clear old session files: rm -rf ~/.claude/sessions/old-*"
echo " - Restart Claude Code session"
echo " - Use scope limiting: --scope file"
echo " - Close unused applications"
elif [ $mem_percent -gt 60 ]; then
echo " Moderate memory usage"
echo "Consider periodic session cleanup"
else
echo "✅ Memory usage is acceptable"
fi
}
analyze_memory_usage
# Memory cleanup procedures
echo "Memory Cleanup Procedures:"
echo "1. Session cleanup: find ~/.claude/sessions/ -mtime +7 -delete"
echo "2. Temporary file cleanup: rm -rf /tmp/superclaude-*"
echo "3. System cache cleanup: sync && echo 3 > /proc/sys/vm/drop_caches (requires sudo)"
echo "4. Browser cache cleanup (if using Playwright MCP)"
```
**CPU Usage Optimization:**
```bash
# CPU usage optimization
echo "=== CPU Usage Optimization ==="
# CPU analysis
analyze_cpu_usage() {
echo "CPU usage analysis:"
# Current CPU load
cpu_load=$(uptime | awk -F'load average:' '{print $2}' | awk '{print $1}' | cut -d',' -f1)
cpu_cores=$(nproc)
cpu_percent=$(echo "$cpu_load * 100 / $cpu_cores" | bc -l | cut -d'.' -f1)
echo "CPU load average: $cpu_load (${cpu_percent}% of capacity)"
# Process CPU usage
echo "Top CPU consumers:"
ps aux --sort=-%cpu | head -10
# SuperClaude-specific CPU usage
echo "SuperClaude-related CPU usage:"
ps aux | grep -E "python.*SuperClaude|node.*mcp" | awk '{sum+=$3} END {print "Total CPU: " sum "%"}'
# CPU optimization recommendations
if [ $cpu_percent -gt 80 ]; then
echo "⚠️ High CPU usage detected"
echo "Recommendations:"
echo " - Use operation scope limiting"
echo " - Break complex tasks into smaller operations"
echo " - Avoid parallel MCP server operations"
echo " - Consider system upgrade"
else
echo "✅ CPU usage is acceptable"
fi
}
analyze_cpu_usage
```
## Advanced Troubleshooting Techniques
### Systematic Problem Resolution
**Multi-Layer Diagnostic Approach:**
```bash
# Multi-layer diagnostic framework
echo "=== Multi-Layer Diagnostic Framework ==="
# Layer 1: System level
echo "Layer 1 - System Level Diagnostics:"
echo "Operating system: $(uname -a)"
echo "Available memory: $(free -h | grep Mem | awk '{print $7}')"
echo "Available disk: $(df -h ~ | tail -1 | awk '{print $4}')"
echo "System load: $(uptime | awk -F'load average:' '{print $2}')"
# Layer 2: Python environment
echo "Layer 2 - Python Environment:"
echo "Python version: $(python3 --version)"
echo "Python executable: $(which python3)"
echo "Python modules: $(python3 -c 'import sys; print(len(sys.modules))') loaded"
echo "SuperClaude installation: $(python3 -m SuperClaude --version 2>/dev/null || echo 'Not installed')"
# Layer 3: SuperClaude configuration
echo "Layer 3 - SuperClaude Configuration:"
echo "Configuration directory: $(ls -ld ~/.claude/ 2>/dev/null || echo 'Not found')"
echo "Configuration files: $(find ~/.claude/ -name "*.md" 2>/dev/null | wc -l) files"
echo "Session files: $(find ~/.claude/sessions/ -name "*.json" 2>/dev/null | wc -l) sessions"
# Layer 4: MCP servers
echo "Layer 4 - MCP Servers:"
if which node >/dev/null 2>&1; then
echo "Node.js version: $(node --version)"
echo "MCP servers: $(npm list -g 2>/dev/null | grep -E "context7|sequential|magic" | wc -l) installed"
else
echo "Node.js: Not installed"
fi
# Layer 5: Claude Code integration
echo "Layer 5 - Claude Code Integration:"
if which claude >/dev/null 2>&1; then
echo "Claude Code: $(claude --version 2>/dev/null || echo 'Version unknown')"
else
echo "Claude Code: Not found in PATH"
fi
```
**Dependency Chain Analysis:**
```bash
# Dependency chain verification
echo "=== Dependency Chain Analysis ==="
# Create dependency verification function
verify_dependency_chain() {
local status=0
echo "Verifying dependency chain:"
# Level 1: Operating system
echo -n "1. Operating system compatibility: "
case "$(uname -s)" in
Linux*) echo "✅ Linux" ;;
Darwin*) echo "✅ macOS" ;;
CYGWIN*|MINGW*) echo "✅ Windows" ;;
*) echo "⚠️ Unknown OS"; status=1 ;;
esac
# Level 2: Python
echo -n "2. Python 3.8+ requirement: "
if python3 -c "import sys; sys.exit(0 if sys.version_info >= (3, 8) else 1)" 2>/dev/null; then
echo "✅ $(python3 --version)"
else
echo "❌ Python 3.8+ required"
status=1
fi
# Level 3: SuperClaude package
echo -n "3. SuperClaude package: "
if python3 -m SuperClaude --version >/dev/null 2>&1; then
echo "✅ Installed"
else
echo "❌ Not installed or corrupted"
status=1
fi
# Level 4: Configuration files
echo -n "4. Configuration files: "
if [ -f ~/.claude/CLAUDE.md ] && [ -s ~/.claude/CLAUDE.md ]; then
echo "✅ Present and non-empty"
else
echo "❌ Missing or empty"
status=1
fi
# Level 5: Node.js (optional but recommended)
echo -n "5. Node.js for MCP servers: "
if which node >/dev/null 2>&1; then
node_version=$(node --version | cut -d'v' -f2 | cut -d'.' -f1)
if [ "$node_version" -ge 16 ]; then
echo "✅ Node.js $(node --version)"
else
echo "⚠️ Node.js version may be too old"
fi
else
echo "⚠️ Not installed (MCP servers unavailable)"
fi
# Level 6: Claude Code integration
echo -n "6. Claude Code integration: "
if which claude >/dev/null 2>&1; then
echo "✅ Claude Code available"
else
echo "⚠️ Claude Code not found"
fi
return $status
}
verify_dependency_chain
dependency_status=$?
if [ $dependency_status -eq 0 ]; then
echo "✅ All dependencies satisfied"
else
echo "❌ Dependency issues detected - resolve before proceeding"
fi
```
## Emergency Procedures
### Complete System Recovery
**Full System Recovery Protocol:**
```bash
# Complete SuperClaude system recovery
echo "=== SuperClaude Emergency Recovery Protocol ==="
# Step 1: System state backup
echo "Step 1: Creating system state backup..."
backup_timestamp=$(date +%Y%m%d_%H%M%S)
backup_dir=~/superclaude_recovery_$backup_timestamp
mkdir -p "$backup_dir"
[ -d ~/.claude/ ] && cp -r ~/.claude/ "$backup_dir/claude_config/"
[ -d ~/.npm/ ] && cp -r ~/.npm/ "$backup_dir/npm_config/" 2>/dev/null || true
env | grep -E "CLAUDE|PYTHON|NODE" > "$backup_dir/environment_vars.txt"
python3 -m pip list > "$backup_dir/python_packages.txt" 2>/dev/null || true
npm list -g > "$backup_dir/npm_packages.txt" 2>/dev/null || true
echo "Backup created in: $backup_dir"
# Step 2: Complete cleanup
echo "Step 2: Performing complete cleanup..."
rm -rf ~/.claude/
npm cache clean --force 2>/dev/null || true
python3 -m pip uninstall SuperClaude -y 2>/dev/null || true
# Step 3: Fresh installation
echo "Step 3: Fresh SuperClaude installation..."
python3 -m pip install SuperClaude
if [ $? -eq 0 ]; then
echo "✅ SuperClaude package installed"
else
echo "❌ Package installation failed"
exit 1
fi
# Step 4: Configuration setup
echo "Step 4: Configuration setup..."
python3 -m SuperClaude install --fresh
if [ $? -eq 0 ]; then
echo "✅ Configuration installed"
else
echo "❌ Configuration setup failed"
exit 1
fi
# Step 5: MCP server installation (if Node.js available)
if which node >/dev/null 2>&1; then
echo "Step 5: MCP server installation..."
python3 -m SuperClaude install --components mcp --force
if [ $? -eq 0 ]; then
echo "✅ MCP servers installed"
else
echo "⚠️ MCP server installation failed - continuing without MCP"
fi
else
echo "Step 5: Skipping MCP servers (Node.js not available)"
fi
# Step 6: Verification
echo "Step 6: Installation verification..."
if python3 -m SuperClaude --version && [ -f ~/.claude/CLAUDE.md ]; then
echo "✅ Recovery completed successfully"
echo "Backup available at: $backup_dir"
else
echo "❌ Recovery failed - check logs and backup"
exit 1
fi
```
**Disaster Recovery Checklist:**
```bash
# Disaster recovery checklist and procedures
echo "=== Disaster Recovery Checklist ==="
cat << 'EOF'
SuperClaude Disaster Recovery Checklist:
PRE-RECOVERY ASSESSMENT:
□ Identify specific failure symptoms
□ Document error messages and conditions
□ Check system resource availability
□ Verify backup existence and integrity
RECOVERY STEPS:
□ Create system state backup
□ Stop all Claude Code sessions
□ Clear corrupted configurations
□ Perform fresh installation
□ Verify basic functionality
□ Restore custom configurations (if applicable)
□ Test core operations
□ Reinstall MCP servers (if needed)
□ Validate full functionality
POST-RECOVERY VERIFICATION:
□ Test SuperClaude version command
□ Verify configuration file integrity
□ Test basic operations in Claude Code
□ Validate MCP server functionality
□ Document recovery process and lessons learned
PREVENTION MEASURES:
□ Regular configuration backups
□ System resource monitoring
□ Update management procedures
□ Recovery procedure documentation
□ Test recovery procedures periodically
EOF
```
## Related Resources
### Diagnostic Tool References
- **System Monitoring**: `htop`, `iostat`, `netstat`, `free`, `df`
- **Process Analysis**: `ps`, `top`, `pgrep`, `lsof`
- **Network Diagnostics**: `ping`, `curl`, `wget`, `ss`
- **Log Analysis**: `journalctl`, `tail`, `grep`, `awk`
### SuperClaude-Specific Resources
- **Common Issues**: [common-issues.md](common-issues.md) - Basic troubleshooting procedures
- **MCP Server Guide**: [mcp-server-guide.md](mcp-server-guide.md) - MCP-specific diagnostics
- **Installation Guide**: [../Getting-Started/installation.md](../Getting-Started/installation.md) - Setup procedures
- **User Guide**: [../User-Guide/](../User-Guide/) - Operational documentation
### Support and Community
- **GitHub Issues**: [Technical support and bug reporting](https://github.com/SuperClaude-Org/SuperClaude_Framework/issues)
- **GitHub Discussions**: [Community support and best practices](https://github.com/SuperClaude-Org/SuperClaude_Framework/discussions)
- **Contributing Guide**: [../Developer-Guide/contributing-code.md](../Developer-Guide/contributing-code.md) - Development contribution
---
**Diagnostic Philosophy**: Approach problems systematically - start with basic verification, isolate components, test hypotheses, and apply targeted solutions. Document findings for future reference and community benefit.
**Emergency Contact**: For critical system failures, use the complete recovery protocol above. If issues persist after recovery, document the full diagnostic output and seek community support through GitHub issues.