---
name: instant-retro
description: |
  Мгновенное ретро — саммари всей работы с момента последнего ретро. Показывает что сделано (по доменам), что НЕ доделано, и что дальше. Используй этот скилл ВСЕГДА когда пользователь хочет понять что произошло за последнюю сессию или период работы.

  MANDATORY: Используй при ЛЮБОМ из этих триггеров: "ретро", "recap", "что сделано", "что было", "саммари сессии", "session summary", "обзор работы", "что нового", "покажи прогресс", "progress report", "итоги", "что мы наделали", "retro", "retrospective", "дай саммари", "что изменилось".
---

# Instant Retro — Мгновенная ретроспектива

Ты проводишь мгновенное ретро для Артёма. Твоя задача — за 30 секунд собрать полную картину: что сделано, что не доделано, что дальше. Без воды, без церемоний.

## Как это работает

### Шаг 1: Определи временной диапазон

Прочитай файл состояния последнего ретро:
```
.claude/tmp/instant-retro-last.json
```

Если файл существует — бери `timestamp` из него как точку отсчёта. Если не существует — это первое ретро, бери последние 24 часа (или последние 20 коммитов, что меньше).

### Шаг 2: Собери данные (параллельно)

Запусти одновременно:

**1. Git log** — основной источник правды:
```bash
git log --oneline --since="<timestamp>" --no-merges
```
Если диапазон большой, ограничь вывод последними 200 коммитами, чтобы ретро не зависало на длинной истории:
```bash
git log --oneline --since="<timestamp>" --no-merges --max-count=200
```
Если `--since` не работает (VM может не иметь точных дат), используй:
```bash
git log --oneline -50 --no-merges
```
и фильтруй вручную по дате из коммитов.

**2. Git diff stat** — масштаб изменений:
```bash
git diff --stat <last-retro-commit>..HEAD
```

**3. Незакоммиченные изменения** — что в процессе:
```bash
git status --short
```

**4. Транскрипты сессий Cowork** (если доступен `list_sessions` / `read_transcript`):
- Получи список последних сессий через `list_sessions`
- Прочитай транскрипты сессий после timestamp последнего ретро
- Извлеки: какие задачи обсуждались, какие решения приняты, что осталось незавершённым

### Шаг 3: Классифицируй по доменам

Группируй коммиты и изменения по доменам на основе путей файлов и commit messages:

| Домен | Паттерны |
|-------|----------|
| **iOS / SwiftUI** | `Hexbound/`, `.swift`, `feat(ios)`, `fix(ios)` |
| **Backend / API** | `backend/`, `.ts` в `src/`, `feat(api)`, `fix(api)` |
| **Admin Panel** | `admin/`, `feat(admin)` |
| **Database** | `prisma/`, `migration`, `schema` |
| **Balance / Game Systems** | `balance`, `combat`, `economy`, `progression` |
| **UI/UX / Design** | `Theme/`, `ButtonStyles`, `design`, `ornamental` |
| **Docs** | `docs/`, `CLAUDE.md`, `.md` |
| **Assets / Art** | `Assets.xcassets/`, `.png`, `.imageset`, `art` |
| **DevOps / Deploy** | `scripts/`, `vercel`, `deploy`, `git` |
| **Landing / Web** | `hexbound-landing/`, `.html`, `.css` |

### Шаг 4: Определи "не доделано"

Источники незавершённых задач:

1. **Незакоммиченные изменения** (`git status`) — работа в процессе
2. **Из транскриптов сессий** — задачи которые обсуждались но не были завершены, TODO которые упоминались
3. **Коммиты с `WIP`, `todo`, `partial`, `temp`** — явные маркеры незавершённости
4. **Coming Soon фичи** — упомянутые в коммитах но помеченные как placeholder

### Шаг 5: Сформируй отчёт

Формат ответа (на русском, кратко):

```
## Ретро: [дата начала] → [сейчас]
[N коммитов, M файлов изменено, +X/-Y строк]

### Сделано
**iOS / SwiftUI**
- краткое описание 1
- краткое описание 2

**Backend**
- краткое описание

**Docs**
- краткое описание

[... другие домены где были изменения ...]

### Не доделано
- что осталось незавершённым (с контекстом откуда знаем)
- WIP изменения в git status

### Что дальше
- логичные следующие шаги исходя из текущего прогресса
- приоритеты (если очевидны из контекста)
```

Правила форматирования:
- Каждый пункт в "Сделано" — одна строка, без подробностей. Это обзор, не changelog.
- Домены без изменений — не показывай
- "Что дальше" — максимум 3-5 пунктов, самое важное
- Если были баг-фиксы — группируй: "Исправлено N багов (arena HP, shop prices, ...)" вместо отдельных строк

### Шаг 6: Обнови состояние

После вывода отчёта, обнови файл состояния:
```json
{
  "timestamp": "<ISO datetime сейчас>",
  "commit": "<текущий HEAD commit hash>",
  "summary": "<одна строка — главное из этого ретро>",
  "retro_count": <N+1>
}
```

Сохрани в `.claude/tmp/instant-retro-last.json`.

## Особые случаи

**Первое ретро:** Когда `.claude/tmp/instant-retro-last.json` не существует, скажи "Это первое ретро!" и покажи последние 20 коммитов.

**Пустое ретро:** Если между ретро не было коммитов — скажи честно: "С прошлого ретро ничего не закоммичено" и покажи только незакоммиченные изменения и незавершённые задачи из транскриптов.

**Пользователь указал период:** Если пользователь говорит "ретро за неделю" или "что сделано за вчера" — используй указанный период вместо `.claude/tmp/instant-retro-last.json`.

---

## Agent Bus (Team Communication)

> Ты часть Agent Team. После завершения работы — запиши результат в bus. Перед началом — проверь bus на сообщения от других агентов.

### При старте
1. `ls .claude/agent-bus/` — проверь есть ли файлы от других агентов
2. Прочитай `.md` файлы (кроме `PROTOCOL.md`, `AGENT_HEADER.md`) — это результаты других агентов
3. Проверь секцию `## Alerts` — если есть `@{твоё-имя}` или `@ALL`, обработай

### При завершении
Запиши результат: `Write tool → .claude/agent-bus/{твоё-имя}.md`

Формат:
```markdown
# {Name} — Result
timestamp: {now}
status: OK | WARNING | BLOCKED

## Findings
- ...

## Decisions
- ...

## Alerts
- @{agent}: описание (если нашёл проблему для другого агента)

## Files Changed
- path/to/file (action)
```
