From vmkteam-developer
Investigates production incidents using Sentry errors, Prometheus metrics, Loki logs, Nomad status, Kibana nginx logs, Grafana annotations, and API health checks. For slowdowns, 500 errors, or post-deploy breaks.
npx claudepluginhub vmkteam/claude-plugins --plugin vmkteam-developerThis skill uses the workspace's default tool permissions.
Полное расследование инцидента. Задействует все доступные data source скиллы по стадии проекта.
Mandates invoking relevant skills via tools before any response in coding sessions. Covers access, priorities, and adaptations for Claude Code, Copilot CLI, Gemini CLI.
Share bugs, ideas, or general feedback.
Полное расследование инцидента. Задействует все доступные data source скиллы по стадии проекта.
Конкретные подключения из .claude/memory/project-index.md.
Для полного workflow production-инцидента с HITL, mitigation и post-mortem — использовать
/incident.
Из описания извлечь:
statsPeriod=1hПервым делом — жив ли сервис?
pcurl @{api_prod_profile} https://{api_prod_host}/{rpc_endpoint} -s -L -X POST \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"{known_method}","params":{},"id":1}' \
-w '\nHTTP %{http_code} | Total: %{time_total}s | TTFB: %{time_starttransfer}s\n'
Если не отвечает — сразу проверять Nomad (шаг 6).
Параллельно:
Top-3 issues → получить latest event (stacktrace, breadcrumbs).
Параллельно:
level="ERROR")durationMS > 500)err!="<nil>")Проверить — не инфраструктурная ли причина:
increase(nomad_client_allocs_oom_killed[{period}]))increase(nomad_client_allocs_restart[{period}]))Если есть — проверить на уровне reverse proxy:
requestTime > 1)pcurl @{grafana_profile} 'https://{grafana_host}/api/annotations?from='$(date -v-{period} +%s)000'&to='$(date +%s)000'&limit=20' -s
Из project-index.md → секция "Связанные сервисы". Для каждого зависимого сервиса проверить:
Проверить — может проблема уже известна:
pcurl @{yt_profile} 'https://{yt_host}/api/issues?query=project:{PROJECT}+{keywords}&fields=idReadable,summary&$top=5' -s
Через Sentry releases и Grafana annotations:
Когда есть гипотеза (stacktrace, подозрительный метод):
git diff {release_commit}..HEAD --statСохранить в docs/llm/incidents/{YYYY-MM-DD}-{slug}/report.md.
## Incident Report
**Время:** {start} — {end}
**Severity:** Critical / High / Medium / Low
**Affected:** {services}, {endpoints}
### Timeline
- HH:MM — Release {version} deployed
- HH:MM — Error rate started growing
- HH:MM — First user reports
### Здоровье
- API: {alive/down}, latency: {time}s
- Nomad: OOM={count}, restarts={count}, blocked={count}
### Ошибки (Sentry)
| # | Issue | Events | Users | Trend |
|---|-------|--------|-------|-------|
### Метрики (Prometheus)
- Error rate: {current}% (обычно {baseline}%)
- Latency: {current}ms (обычно {baseline}ms)
- Throughput: {current} RPS (обычно {baseline} RPS)
- Goroutines: {current} | Memory: {current} | DB conns: {current}
### Логи (Loki)
- Errors: {count} за период
- Top ошибки: {list}
### Nginx (Kibana)
- 5xx: {count} за период
- Slow (>1s): {count}
### Зависимые сервисы
| Сервис | Sentry errors | Error rate |
|--------|---------------|------------|
### Деплои
- Последний деплой: {version} в {time}
- Grafana annotations: {list}
### Root Cause
{hypothesis based on data}
### Ссылки
- [Sentry issues]({url})
- [Grafana dashboard]({url})
- [YouTrack]({url}) (если найден существующий тикет)
### Рекомендации
- {action items}
- Создать тикет в YouTrack: {да/нет, какой проект}