write-incident-runbook
关于
This Claude Skill generates structured incident runbooks with diagnostic steps, resolution procedures, and communication templates. It helps standardize incident response for recurring alerts and reduce MTTR through clear documentation. Developers can use it to create training materials and link alert annotations directly to resolution workflows.
快速安装
Claude Code
推荐npx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/write-incident-runbook在 Claude Code 中复制并粘贴此命令以安装该技能
技能文档
name: write-incident-runbook description: > Crea manuales de incidentes estructurados con pasos de diagnóstico, procedimientos de resolución, rutas de escalada y plantillas de comunicación para una respuesta efectiva a incidentes. Útil para documentar procedimientos de respuesta para alertas recurrentes, estandarizar la respuesta a incidentes en una rotación de guardia, reducir el MTTR con pasos de diagnóstico claros, crear materiales de formación para nuevos miembros del equipo, o vincular anotaciones de alerta directamente a procedimientos de resolución. locale: es source_locale: en source_commit: 6f65f316 translator: claude-opus-4-6 translation_date: 2026-03-16 license: MIT allowed-tools: Read Write Edit Bash Grep Glob metadata: author: Philipp Thoss version: "1.0" domain: observability complexity: basic language: multi tags: runbook, incident-response, diagnostics, escalation, documentation
Escribir Manual de Incidentes
Crea manuales accionables que guíen a los equipos de respuesta a través del diagnóstico y la resolución de incidentes.
Cuándo Usar
- Documentar procedimientos de respuesta para alertas o incidentes recurrentes
- Estandarizar la respuesta a incidentes entre los miembros de la rotación de guardia
- Reducir el tiempo medio de resolución (MTTR) con pasos de diagnóstico claros
- Crear materiales de formación para nuevos miembros del equipo en el manejo de incidentes
- Establecer rutas de escalada y protocolos de comunicación
- Migrar el conocimiento tribal a documentación escrita
- Vincular alertas a procedimientos de resolución (anotaciones de alerta)
Entradas
- Requerido: Nombre/descripción del incidente o alerta
- Requerido: Datos históricos de incidentes y patrones de resolución
- Opcional: Consultas de diagnóstico (Prometheus, logs, trazas)
- Opcional: Contactos de escalada y canales de comunicación
- Opcional: Post-mortems de incidentes anteriores
Procedimiento
Paso 1: Elegir la Estructura de Plantilla del Manual
Consulta Ejemplos Extendidos para archivos de plantilla completos.
Selecciona una plantilla apropiada según el tipo y la complejidad del incidente.
Estructura básica de plantilla de manual:
# [Alert/Incident Name] Runbook
## Overview | Severity | Symptoms
## Diagnostic Steps | Resolution Steps
## Escalation | Communication | Prevention | Related
Plantilla avanzada de manual SRE (extracto):
# [Service Name] - [Incident Type] Runbook
## Metadata
- Service, Owner, Severity, On-Call, Last Updated
## Diagnostic Phase
### Quick Health Check (< 5 min): Dashboard, error rate, deployments
### Detailed Investigation (5-20 min): Metrics, logs, traces, failure patterns
# ... (see EXAMPLES.md for complete template)
Componentes clave de la plantilla:
- Metadatos: Propiedad del servicio, gravedad, rotación de guardia
- Fase de diagnóstico: Verificaciones rápidas → investigación detallada → patrones de fallo
- Fase de resolución: Mitigación inmediata → corrección de causa raíz → verificación
- Escalada: Criterios y rutas de contacto
- Comunicación: Plantillas internas/externas
- Prevención: Acciones a corto/largo plazo
Esperado: La plantilla seleccionada coincide con la complejidad del incidente, las secciones son apropiadas para el tipo de servicio.
En caso de fallo:
- Comenzar con la plantilla básica, iterar basándose en los patrones del incidente
- Revisar ejemplos de la industria (libros SRE de Google, manuales de proveedores)
- Adaptar la plantilla basándose en los comentarios del equipo después del primer uso
Paso 2: Documentar los Procedimientos de Diagnóstico
Consulta Ejemplos Extendidos para consultas de diagnóstico completas y árboles de decisión.
Crea procedimientos de investigación paso a paso con consultas específicas.
Lista de verificación de diagnóstico de seis pasos:
-
Verificar la salud del servicio: Verificaciones del endpoint de salud y métricas de tiempo de actividad
curl -I https://api.example.com/health # Expected: HTTP 200 OKup{job="api-service"} # Expected: 1 for all instances -
Verificar la tasa de errores: Porcentaje de error actual y desglose por endpoint
sum(rate(http_requests_total{status=~"5.."}[5m])) / sum(rate(http_requests_total[5m])) * 100 # Expected: < 1% -
Analizar los logs: Errores recientes y mensajes de error principales desde Loki
{job="api-service"} |= "error" | json | level="error" -
Verificar la utilización de recursos: Estado de CPU, memoria y pool de conexiones
avg(rate(container_cpu_usage_seconds_total{pod=~"api-service.*"}[5m])) * 100 # Expected: < 70% -
Revisar los cambios recientes: Despliegues, commits de git, cambios de infraestructura
-
Examinar las dependencias: Salud del servicio descendente, latencia de base de datos/API
Árbol de decisión de patrones de fallo (extracto):
- ¿Servicio caído? → Verificar todos los pods/instancias
- ¿Tasa de error elevada? → Verificar tipos de error específicos (5xx, gateway, base de datos, timeouts)
- ¿Cuándo comenzó? → Después del despliegue (rollback), gradual (fuga de recursos), repentino (tráfico/dependencia)
Esperado: Los procedimientos de diagnóstico son específicos, incluyen valores esperados vs actuales, guían al equipo de respuesta a través de la investigación.
En caso de fallo:
- Probar las consultas en el sistema de monitoreo real antes de documentarlas
- Incluir capturas de pantalla de dashboards para referencia visual
- Agregar una sección de "Errores comunes" para pasos frecuentemente omitidos
- Iterar basándose en los comentarios de los equipos de respuesta a incidentes
Paso 3: Definir los Procedimientos de Resolución
Consulta Ejemplos Extendidos para las 5 opciones de resolución con comandos completos y procedimientos de reversión.
Documenta la remediación paso a paso con opciones de reversión.
Cinco opciones de resolución (resumen breve):
-
Revertir el despliegue (más rápido): Para errores post-despliegue
kubectl rollout undo deployment/api-serviceVerificar → Monitorear → Confirmar resolución (tasa de error < 1%, latencia normal, sin alertas)
-
Escalar recursos: Para alta CPU/memoria, agotamiento del pool de conexiones
kubectl scale deployment/api-service --replicas=$((current * 3/2)) -
Reiniciar el servicio: Para fugas de memoria, conexiones bloqueadas, corrupción de caché
kubectl rollout restart deployment/api-service -
Feature Flag / Circuit Breaker: Para errores de características específicas o fallos de dependencias externas
kubectl set env deployment/api-service FEATURE_NAME=false -
Remediación de base de datos: Para conexiones de base de datos, consultas lentas, agotamiento del pool
-- Kill long-running queries, restart connection pool, increase pool size
Lista de verificación de verificación universal:
- Tasa de error < 1%
- Latencia P99 < umbral
- Rendimiento en la línea base
- Uso de recursos saludable (CPU < 70%, Memoria < 80%)
- Dependencias saludables
- Pruebas orientadas al usuario pasan
- Sin alertas activas
Procedimiento de reversión: Si la resolución empeora la situación → pausar/cancelar → revertir → reevaluar
Esperado: Los pasos de resolución son claros, incluyen verificaciones de verificación, proporcionan opciones de reversión para cada acción.
En caso de fallo:
- Agregar pasos más detallados para procedimientos complejos
- Incluir capturas de pantalla o diagramas para procesos de múltiples pasos
- Documentar las salidas de comandos (esperadas vs actuales)
- Crear un manual separado para procedimientos de resolución complejos
Paso 4: Establecer las Rutas de Escalada
Consulta Ejemplos Extendidos para niveles de escalada completos y plantilla de directorio de contactos.
Define cuándo y cómo escalar los incidentes.
Cuándo escalar inmediatamente:
- Interrupción orientada al cliente > 15 minutos
- Presupuesto de error de SLO > 10% agotado
- Pérdida/corrupción de datos o sospecha de brecha de seguridad
- No se puede identificar la causa raíz en 20 minutos
- Los intentos de mitigación fallan o empeoran la situación
Cinco niveles de escalada:
- Guardia primario (respuesta en 5 min): Desplegar correcciones, rollback, escalar (hasta 30 min solo)
- Guardia secundario (automático después de 15 min): Soporte adicional de investigación
- Líder de equipo (decisiones arquitectónicas): Cambios de base de datos, escalada de proveedor, incidentes > 1 hora
- Comandante de incidente (coordinación entre equipos): Múltiples equipos, comunicaciones con clientes, incidentes > 2 horas
- Ejecutivo (nivel C): Gran impacto (>50% usuarios), incumplimiento de SLA, medios/PR, interrupciones > 4 horas
Proceso de escalada:
- Notificar al destinatario con: estado actual, impacto, acciones tomadas, ayuda necesaria, vínculo al dashboard
- Traspaso si es necesario: compartir cronología, acciones, acceso, permanecer disponible
- No guardar silencio: actualizar cada 15 min, hacer preguntas, proporcionar retroalimentación
Directorio de contactos: Mantener una tabla con rol, Slack, teléfono, PagerDuty para:
- Equipos de Plataforma/Base de datos/Seguridad/Red
- Comandante de incidente
- Proveedores externos (AWS, proveedor de base de datos, proveedor de CDN)
Esperado: Criterios claros para la escalada, información de contacto fácilmente accesible, rutas de escalada alineadas con la estructura organizacional.
En caso de fallo:
- Validar que la información de contacto esté actualizada (probar trimestralmente)
- Agregar árbol de decisión para cuándo escalar
- Incluir ejemplos de mensajes de escalada
- Documentar las expectativas de tiempo de respuesta para cada nivel
Paso 5: Crear Plantillas de Comunicación
Consulta Ejemplos Extendidos para todas las plantillas internas y externas con formato completo.
Proporciona mensajes pre-escritos para actualizaciones de incidentes.
Plantillas internas (Slack #incident-response):
-
Declaración inicial:
🚨 INCIDENT: [Title] | Severity: [Critical/High/Medium] Impact: [users/services] | Owner: @username | Dashboard: [link] Quick Summary: [1-2 sentences] | Next update: 15 min -
Actualización de progreso (cada 15-30 min):
📊 UPDATE #N | Status: [Investigating/Mitigating/Monitoring] Actions: [what we tried and outcomes] Theory: [what we think is happening] Next: [planned actions] -
Mitigación completada:
✅ MITIGATION | Metrics: Error [before→after], Latency [before→after] Root Cause: [brief or "investigating"] | Monitoring 30min before resolved -
Resolución:
🎉 RESOLVED | Duration: [time] | Root Cause + Impact + Follow-up actions -
Falsa alarma: Sin impacto, sin seguimiento necesario
Plantillas externas (página de estado):
- Inicial: Investigando, hora de inicio, próxima actualización en 15 min
- Progreso: Causa identificada (amigable para el cliente), implementando corrección, resolución estimada
- Resolución: Hora de resolución, causa raíz (simple), duración, medidas de prevención
Plantilla de correo electrónico para clientes: Cronología, descripción del impacto, resolución, prevención, compensación (si aplica)
Esperado: Las plantillas ahorran tiempo durante los incidentes, garantizan comunicación consistente, reducen la carga cognitiva en los equipos de respuesta.
En caso de fallo:
- Personalizar las plantillas para que coincidan con el estilo de comunicación de la empresa
- Pre-completar las plantillas con tipos de incidentes comunes
- Crear un flujo de trabajo/bot de Slack para completar las plantillas automáticamente
- Revisar las plantillas durante las retrospectivas de incidentes
Paso 6: Vincular el Manual al Monitoreo
Consulta Ejemplos Extendidos para la configuración completa de alertas de Prometheus y el JSON del dashboard de Grafana.
Integra el manual con alertas y dashboards.
Agregar vínculos de manual a las alertas de Prometheus:
- alert: HighErrorRate
annotations:
runbook_url: "https://wiki.example.com/runbooks/high-error-rate"
dashboard_url: "https://grafana.example.com/d/service-overview"
incident_channel: "#incident-platform"
Incrustar vínculos de diagnóstico rápido en el manual:
- Dashboard de Resumen del Servicio
- Tasa de Error Última 1h (vínculo directo de Prometheus)
- Logs de Error Recientes (Loki/Grafana Explore)
- Despliegues Recientes (GitHub/CI)
- Incidentes de PagerDuty
Crear panel de dashboard de Grafana con vínculos de manual (panel markdown que lista todos los manuales de incidentes con información de guardia y escalada)
Esperado: Los equipos de respuesta pueden acceder a los manuales directamente desde las alertas o dashboards, las consultas de diagnóstico están pre-completadas, acceso con un clic a las herramientas relevantes.
En caso de fallo:
- Verificar que las URL de los manuales sean accesibles sin VPN/inicio de sesión
- Usar acortadores de URL para vínculos complejos de Grafana/Prometheus
- Probar los vínculos trimestralmente para asegurarse de que no se rompan
- Crear marcadores del navegador para los manuales de uso frecuente
Validación
- El manual sigue una estructura de plantilla consistente
- Los procedimientos de diagnóstico incluyen consultas específicas y valores esperados
- Los pasos de resolución son accionables con comandos claros
- Los criterios de escalada y los contactos están actualizados
- Se proporcionan plantillas de comunicación para audiencias internas y externas
- El manual está vinculado desde las alertas de monitoreo y los dashboards
- El manual se probó durante una simulación de incidente o un incidente real
- Los comentarios de los equipos de respuesta se incorporan al manual
- El historial de revisiones se rastrea con fechas y autores
- El manual es accesible sin autenticación (o en caché sin conexión)
Errores Comunes
- Demasiado genérico: Los manuales con pasos vagos como "verificar los logs" sin consultas específicas no son accionables. Ser específico.
- Información desactualizada: Los manuales que hacen referencia a sistemas o comandos antiguos se vuelven inútiles. Revisar trimestralmente.
- Sin pasos de verificación: La resolución sin verificación lleva a falsos positivos. Siempre incluir "cómo confirmar que está arreglado."
- Procedimientos de reversión faltantes: Cada acción debe tener un plan de reversión. No atrapar a los equipos de respuesta en un estado peor.
- Asumir conocimiento: Los manuales solo para expertos excluyen a los ingenieros junior. Escribir para la persona menos experimentada en rotación.
- Sin propietario: Los manuales sin propietarios se vuelven obsoletos. Asignar equipo/persona responsable de las actualizaciones.
- Oculto detrás de autenticación: Los manuales inaccesibles durante problemas de VPN/SSO son inútiles durante una crisis. Guardar copias en caché o usar una wiki pública.
Habilidades Relacionadas
configure-alerting-rules- Vincular manuales a anotaciones de alerta para acceso inmediato durante incidentesbuild-grafana-dashboards- Incrustar vínculos de manuales en dashboards y paneles de diagnósticosetup-prometheus-monitoring- Incluir consultas de diagnóstico de Prometheus en los procedimientos del manualdefine-slo-sli-sla- Referenciar el impacto en el SLO en la clasificación de gravedad del incidente
GitHub 仓库
相关推荐技能
executing-plans
设计该Skill用于当开发者提供完整实施计划时,以受控批次方式执行代码实现。它会先审阅计划并提出疑问,然后分批次执行任务(默认每批3个任务),并在批次间暂停等待审查。关键特性包括分批次执行、内置检查点和架构师审查机制,确保复杂系统实现的可控性。
requesting-code-review
设计该Skill可在完成任务、实现主要功能或合并代码前自动调度代码审查子代理,确保实现符合需求和计划。它支持通过指定git SHA范围进行精准的代码变更审查,帮助开发者在关键节点及时发现潜在问题。核心原则是"早审查、勤审查",适用于开发流程的各个关键阶段。
connect-mcp-server
设计这个Skill指导开发者如何将MCP服务器连接到Claude Code,支持HTTP、stdio和SSE三种传输协议。它涵盖了从安装配置到认证安全的完整流程,适用于集成GitHub、Notion、数据库等外部服务。当开发者需要添加集成、配置外部工具或提及MCP相关功能时,这个Skill能提供实用的操作指南。
web-cli-teleport
设计该Skill帮助开发者根据任务特性选择Claude Code的Web或CLI界面,并指导如何在两种环境间无缝迁移会话。它能分析任务复杂度、迭代需求等要素,推荐最优工作界面和工作流。关键特性包括会话状态管理、环境切换指导和上下文优化建议。
