Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Automated incident triage and management system that aggregates alerts, assesses severity, creates incidents, notifies stakeholders, and tracks resolution progress. Integrates with monitoring systems to provide comprehensive incident lifecycle management.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-15 | ✗→✓ | ▲ Improved | 55% | 0% |
| case-16 | ✗→✓ | ▲ Improved | 329% | 0% |
| case-01 | ✗→✓ | ▲ Improved | 503% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 253% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 420% | 0% |
The Incident Triage Automator skill provides intelligent incident management capabilities, automatically triaging alerts, assessing severity, and coordinating incident response across multiple monitoring systems. It reduces incident response time and ensures consistent handling of operational issues.
bash# Aggregate and triage alerts from all sources skill invoke incident-triage-automator triage --time-window 1h --severity-threshold HIGH # Triage specific monitoring source skill invoke incident-triage-automator triage --source prometheus --time-window 30m # Create incident from alerts skill invoke incident-triage-automator create-incident --title "Database Degradation" --severity P1
bash# Notify stakeholders for P0 incident skill invoke incident-triage-automator notify --incident-id INC-001 --escalation-level executive # Send custom notification skill invoke incident-triage-automator notify --incident-id INC-002 --channels slack,email --message-template custom
bash# Get runbook recommendations for incident skill invoke incident-triage-automator recommend-runbook --incident-id INC-001 --symptoms "high_cpu,slow_queries" # Search runbooks by service skill invoke incident-triage-automator recommend-runbook --service database --category performance
bash# Update incident status skill invoke incident-triage-automator update-status --incident-id INC-001 --status investigating # Add resolution notes skill invoke incident-triage-automator update-status --incident-id INC-001 --status resolved --resolution-notes "Fixed database connection pool"
bash# Monitoring System Credentials PROMETHEUS_URL=https://prometheus.company.com DATADOG_API_KEY=your_datadog_api_key DATADOG_APP_KEY=your_datadog_app_key PAGERDUTY_API_KEY=your_pagerduty_api_key # Notification System Credentials SLACK_BOT_TOKEN=xoxb-your-slack-bot-token SLACK_SIGNING_SECRET=your-slack-signing-secret EMAIL_SMTP_HOST=smtp.company.com EMAIL_SMTP_PORT=587 EMAIL_USERNAME=alerts@company.com EMAIL_PASSWORD=your_email_password # Incident Management System INCIDENT_SYSTEM_URL=https://incidents.company.com INCIDENT_API_KEY=your_incident_api_key
yaml# .claude/skills/incident-triage-automator/config.yaml alert_sources: prometheus: url: https://prometheus.company.com enabled: true alertmanager_url: https://alertmanager.company.com datadog: api_key: ${DATADOG_API_KEY} app_key: ${DATADOG_APP_KEY} enabled: true pagerduty: api_key: ${PAGERDUTY_API_KEY} enabled: true severity_assessment: weights: user_impact: 0.4 business_impact: 0.3 affected_users: 0.2 affected_services: 0.1 thresholds: P0: 80 P1: 60 P2: 40 P3: 20 escalation_policy: P0: - level: executive delay: 0m channels: [slack, email, pagerduty] P1: - level: director delay: 15m channels: [slack, email] - level: executive delay: 1h channels: [slack, email, pagerduty] P2: - level: manager delay: 1h channels: [slack, email] P3: - level: team delay: 4h channels: [slack] notification_templates: slack: | 🚨 **{{severity}} Incident** 🚨 *Title*: {{title}} *Status*: {{status}} *Services*: {{affected_services}} {{description}} 🔗 View Incident: {{incident_url}} email: | <h2>🚨 {{severity}} Incident Alert</h2> <p><strong>Title:</strong> {{title}}</p> <p><strong>Status:</strong> {{status}}</p> <p><strong>Affected Services:</strong> {{affected_services}}</p> <p><strong>Description:</strong> {{description}}</p> <p><a href="{{incident_url}}">View Incident Details</a></p>
This skill integrates with the incident-triage MCP server for enhanced capabilities:
aggregate_alerts: Aggregate and correlate alerts from multiple sourcesassess_incident_severity: Assess incident severity based on impactcreate_incident: Create incidents in incident management systemsnotify_stakeholders: Notify relevant stakeholdersrecommend_runbook: Recommend relevant runbookstrack_incident_status: Track incident resolution progressjavascript// Using the MCP server directly const alerts = await mcp.call('aggregate_alerts', { time_window: '1h', alert_sources: ['prometheus', 'datadog'], correlation_threshold: 0.7 }); const severity = await mcp.call('assess_incident_severity', { incident_data: { title: 'Database Performance Degradation', affected_services: ['database', 'api'], user_impact: 'major', business_impact: 'medium' }, auto_create_incident: true });
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Alert Sources │ │ Triage Engine │ │ Incident Mgmt │
│ │ │ │ │ │
│ • Prometheus │───▶│ • Correlation │───▶│ • Incident CRUD │
│ • Datadog │ │ • Severity Calc │ │ • Status Tracking│
│ • PagerDuty │ │ • Pattern Match │ │ • Assignment │
│ • Custom APIs │ │ • ML Assessment │ │ • Escalation │
└─────────────────┘ └──────────────────┘ └─────────────────┘
│ │ │
▼ ▼ ▼
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Notification │ │ Runbook Engine │ │ Reporting │
│ │ │ │ │ │
│ • Slack Bot │ │ • Search │ │ • MTTR Metrics │
│ • Email Sender │ │ • Ranking │ │ • Incident Report│
│ • Teams Webhook │ │ • Context Match │ │ • Post-mortem │
│ • PagerDuty API │ │ • Success Rate │ │ • Trend Analysis │
└─────────────────┘ └──────────────────┘ └─────────────────┘The skill uses a sophisticated correlation algorithm:
The severity assessment considers multiple factors:
pythondef calculate_severity_score(incident_data): score = 0 # User impact (40% weight) user_impact_scores = { 'none': 0, 'minor': 25, 'major': 50, 'critical': 100 } score += user_impact_scores[incident_data.user_impact] * 0.4 # Business impact (30% weight) business_impact_scores = { 'none': 0, 'minor': 25, 'major': 50, 'critical': 100 } score += business_impact_scores[incident_data.business_impact] * 0.3 # Affected users (20% weight) if incident_data.affected_users > 10000: score += 100 * 0.2 elif incident_data.affected_users > 1000: score += 75 * 0.2 elif incident_data.affected_users > 100: score += 50 * 0.2 elif incident_data.affected_users > 10: score += 25 * 0.2 # Affected services (10% weight) score += min(incident_data.affected_services.length * 10, 100) * 0.1 return min(score, 100)
The runbook recommendation uses multiple signals:
Alert Aggregation Failures
bash# Check monitoring system connectivity skill invoke incident-triage-automator check-connection --source prometheus skill invoke incident-triage-automator check-connection --source datadog # Verify alert format skill invoke incident-triage-automator validate-alerts --source prometheus
Severity Assessment Issues
bash# Test severity calculation skill invoke incident-triage-automator test-severity --incident-data test-incident.json # Review assessment weights skill invoke incident-triage-automator show-config --section severity_assessment
Notification Failures
bash# Test notification channels skill invoke incident-triage-automator test-notification --channel slack skill invoke incident-triage-automator test-notification --channel email # Verify escalation policies skill invoke incident-triage-automator test-escalation --severity P0
bash# Enable debug logging export INCIDENT_TRIAGE_DEBUG=true skill invoke incident-triage-automator triage --debug --verbose
yaml# .github/workflows/incident-response.yml name: Incident Response Test on: [push] jobs: test-incident-response: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Test Alert Processing run: | skill invoke incident-triage-automator test-alerts \ --test-data test-alerts.json \ --expected-severity P1 - name: Test Notification Flow run: | skill invoke incident-triage-automator test-notification \ --channel slack \ --test-incident-id TEST-001
javascript// Slack bot command handler app.command('/incident', async ({ command, ack, say }) => { await ack(); const parts = command.text.split(' '); const action = parts[0]; const incidentId = parts[1]; switch (action) { case 'status': const status = await skill.invoke('incident-triage-automator', { action: 'get-status', incident_id: incidentId }); await say(`Incident ${incidentId} status: ${status.status}`); break; case 'escalate': await skill.invoke('incident-triage-automator', { action: 'escalate', incident_id: incidentId, level: 'manager' }); await say(`Incident ${incidentId} escalated to manager`); break; } });
/docs/incident-triage-automator.md/examples/incident-triage/#incident-response Slack channelThis skill is licensed under the MIT License. See LICENSE file for details.
Other measured skills in the registry, with their headline benchmark lift.