Зарегистрируйся или войди
Создай аккаунт — email + пароль. Никакого OAuth, никаких внешних зависимостей. Или войди под demo / demo1234, чтобы попробовать сразу.
Open-source SRE game platform
Wheel of Misfortune — колесо случайно выбирает инцидент, команда разбирает его в реальном времени. Тренируй навыки on-call, управление инцидентами и координацию в SRE-стиле.
Как играть
Создай аккаунт — email + пароль. Никакого OAuth, никаких внешних зависимостей. Или войди под demo / demo1234, чтобы попробовать сразу.
Перейди в галерею — там уже есть публичный Starter Pack. Или создай свой pack в "Мои игры" и наполни его сценариями вручную или через JSON-импорт.
В Leader Console отметь, какие сценарии участвуют в сегодняшней сессии. Можно оставить все или выбрать под уровень команды.
Нажми «Крутить колесо 🎰» — колесо случайно выбирает сценарий. Команда видит название и summary инцидента. Таймер пошёл.
Каждый раунд — 4 варианта действий (DBG / COM / OPS / IC). Выбор влияет на Panic level, Service Health и Score. Игра — 10 раундов.
Для самостоятельной отработки. Сценарии идут по очереди, panic растёт с каждым раундом. В конце — ранг: On-call / IC / Master SRE.
Загрузка сценариев
agent-skill/wom-incident-to-json/SKILL.md
В репозитории есть готовый агентный скилл для Claude Code. Он конвертирует описание любого реального инцидента, runbook или заметки в валидный JSON для импорта — автоматически заполняет все поля по контексту.
Как использовать
agent-skill/wom-incident-to-json/SKILL.md в свой проект# WOM Incident To JSON
Convert incident descriptions, markdown runbooks, and rough notes into import-ready JSON for WOM Platform.
## Output Contract
- Always output **valid JSON**.
- Root object must match `schemas/wom.scenario.v1.json`.
- Use uppercase enum for difficulty: `JUNIOR`, `MIDDLE`, `SENIOR`.
- Keep `durationMin` realistic: `15-30` for typical training rounds.
## Prompt Template For Agent
When the user says: "Сделай JSON для импорта в WOM", produce:
1. `scenarios[]` with one object per incident.
2. Fill:
- `title`: short incident name
- `summary`: one-sentence game framing
- `type`: stack area, e.g. `DNS, NetworkPolicy`
- `difficulty`: inferred from blast radius and ambiguity
- `durationMin`: expected game length
- `contextJson`: infra/services/setup/time
- `eventsJson`: timeline-style events with `t`, `type`, `title`, `body`
- `hintsJson`: coaching hints
- `actionsJson`: candidate player actions
- `gmScriptJson`: optional pressure/checkpoints/beats
## Example
```json
{
"scenarios": [
{
"title": "Потерянные в DNS",
"summary": "Сервис периодически не резолвит внутренние имена.",
"type": "DNS, CoreDNS",
"difficulty": "MIDDLE",
"durationMin": 20,
"contextJson": {
"infra": "Kubernetes 1.34",
"services": ["frontend", "backend", "coredns"],
"setup": "После сетевого hardening появились интервальные timeout.",
"time": "Четверг, 11:00"
},
"eventsJson": [],
"hintsJson": [],
"actionsJson": [],
"gmScriptJson": null
}
]
}
```POST /api/import
Открой нужный pack → форма «Импорт JSON» внизу страницы. Вставь объект с массивом scenarios — все сценарии добавятся сразу. Можно импортировать до 100 сценариев за раз.
Минимальный формат
{
"scenarios": [
{
"title": "Потерянные в DNS",
"summary": "Сервис не резолвит внутренние имена.",
"type": "DNS, CoreDNS",
"difficulty": "MIDDLE",
"durationMin": 20,
"contextJson": { "infra": "Kubernetes 1.34" },
"eventsJson": [],
"hintsJson": [],
"actionsJson": [],
"gmScriptJson": null
}
]
}Обязательные поля: title, summary, type, difficulty, durationMin. Полная схема — schemas/wom.scenario.v1.json в репозитории.
Быстрый старт
Хочешь попробовать прямо сейчас? Войди под demo / demo1234, открой Starter Pack в галерее и переключись в Режим ведущего. Первый инцидент — через 30 секунд.