---
name: automation:self-healing
---

# Self-Healing Workflows

## Purpose
Automatically detect and recover from errors without interrupting your flow.

## Self-Healing Features

### 1. Error Detection
Monitors for:
- Failed commands
- Syntax errors
- Missing dependencies
- Broken tests

### 2. Automatic Recovery

**Missing Dependencies:**
```
Error: Cannot find module 'express'
→ Automatically runs: npm install express
→ Retries original command
```

**Syntax Errors:**
```
Error: Unexpected token
→ Analyzes error location
→ Suggests fix through analyzer agent
→ Applies fix with confirmation
```

**Test Failures:**
```
Test failed: "user authentication"
→ Spawns debugger agent
→ Analyzes failure cause
→ Implements fix
→ Re-runs tests
```

### 3. Learning from Failures
Each recovery improves future prevention:
- Patterns saved to knowledge base
- Similar errors prevented proactively
- Recovery strategies optimized

**Pattern Storage:**
```javascript
// Store error patterns
mcp__monomind__memory_pattern-store({
  key: "error-pattern-" + Date.now(),
  value: JSON.stringify(errorData),
  namespace: "error-patterns",
  ttl: 2592000 // 30 days
})

// Analyze patterns
mcp__monomind__neural_patterns({
  operation: "error-recovery",
  outcome: "success"
})
```

## Self-Healing Integration

### MCP Tool Coordination
```javascript
// Initialize self-healing swarm
mcp__monomind__swarm_init({
  "topology": "star",
  "maxAgents": 4,
  "strategy": "adaptive"
})

// Spawn recovery agents
mcp__monomind__agent_spawn({
  "type": "monitor",
  "name": "Error Monitor",
  "capabilities": ["error-detection", "recovery"]
})

// Orchestrate recovery
mcp__monomind__coordination_orchestrate({
  task: "recover from error",
  strategy: "sequential",
  priority: "critical"
})
```

### Fallback Hook Configuration
```json
{
  "PostToolUse": [{
    "matcher": "^Bash$",
    "command": "npx monomind hooks post-command --command \"$TOOL_INPUT_command\" --success \"$TOOL_SUCCESS\""
  }]
}
```

## Benefits
- Resilient workflows
- Automatic recovery
- Learns from errors
- Saves debugging time