---
name: chat-handoff
description: Use when the user asks to summarize the current chat, hand off context to a new chat, or says phrases like "суммаризируй чат", "суммаризируй диалог", "передай контекст", "сделай хандоф", "выжимка диалога", "handoff", "контекст для нового чата". Produces a single copy-paste markdown block that gives a fresh Claude session full working context — adaptive to research, project, creative, or decision-type chats.
---

# Chat Handoff — выжимка диалога для передачи в новый чат

Цель скилла: за один заход превратить текущий разговор в **готовый к копированию markdown-блок**, который пользователь вставит первым сообщением в новый чат, и новый Claude мгновенно получит полный рабочий контекст — без переспросов.

## Когда использовать

Активируйся, если пользователь говорит:
- «суммаризируй чат / диалог»
- «передай контекст в новый чат»
- «сделай хандоф / handoff»
- «выжимка диалога»
- «контекст для нового чата»
- любая близкая по смыслу формулировка

Скилл универсален — работает для **любого** типа чата (research, project/build, creative, decision, mixed). Не отказывайся, если чат «не про код».

## Процесс (4 шага)

Создай TodoWrite со следующими пунктами и веди по ним работу:

1. Разведка контекста (молча)
2. Автодетект типа чата + выбор опциональных секций
3. Уточняющие вопросы (только если есть реальная неоднозначность)
4. Сборка и выдача handoff-блока

### Шаг 1 — Разведка контекста (молча, без сообщений пользователю)

Пройди по всему доступному контексту чата и собери в голове:

- **Изначальная цель** — что пользователь хотел в самом начале (его первые сообщения)
- **Финальное понимание цели** — как цель уточнилась/изменилась
- **Принятые решения** — конкретные выборы + ЯВНОЕ «почему» (если причина не названа — не выдумывай)
- **Артефакты** — созданные/изменённые файлы, пути, ключевые куски кода/текста
- **Проблемы и их решения** — что ломалось / что было непонятно → как разрулили
- **Внешние источники** — ссылки, документы, видео, материалы, на которые опирались
- **Альтернативы** — что рассматривали и почему отвергли (для research/decision)
- **Терминология** — специфичные термины, которые ввели в этом чате
- **Ограничения / допущения** — явно проговорённые constraints
- **Стиль работы** — что пользователь любит/не любит (тон, формат, инструменты, методы)
- **Открытые вопросы** — что осталось нерешённым

### Шаг 2 — Автодетект типа чата

По собранному определи доминирующий тип (это влияет на набор опциональных секций):

| Тип | Признаки |
|---|---|
| **research** | Чтение источников, сравнение, изучение темы, мало или нет файлов |
| **project/build** | Создание/правка файлов, код, сборка артефактов |
| **creative** | Тексты, дизайн, контент, идеи, итерации над формой |
| **decision** | Выбор между вариантами, обсуждение стратегии, мало артефактов |
| **mixed** | Несколько типов одновременно |

Не объявляй тип пользователю — это внутренний выбор. Используй только для решения, какие опциональные секции включить.

### Шаг 3 — Уточняющие вопросы (только при необходимости)

Задавай через AskUserQuestion **максимум 1–3 вопроса**, и **только** если есть реальная неоднозначность. Примеры уместных вопросов:

- «Включать отброшенные варианты или только финальные решения?»
- «Объём: компактный (~300 слов) или развёрнутый (~800)?»
- «Это handoff для технического чата (с путями файлов) или для обзорного?»

Если всё очевидно — **пропусти этот шаг полностью** и переходи к сборке.

### Шаг 4 — Сборка и выдача handoff-блока

Выведи **один fenced markdown-блок** прямо в чат. Перед блоком — одно короткое предложение: «Скопируй блок ниже и вставь первым сообщением в новый чат». После блока — больше ничего не пиши.

## Шаблон выжимки

### Универсальное ядро (стандартный режим — 6 секций):

```markdown
# Контекст из прошлого чата

> Это передача контекста из предыдущей сессии. Прочитай, подтверди коротким «принял», и жди следующего сообщения.

**TL;DR:** <одна строка — главный вывод/результат чата, понятный без чтения остального>

## О чём был чат
<1–3 предложения: тема и зачем взялись>

## Главное, что выяснили / сделали
- <ключевой факт, вывод или результат>
- <ещё один>

## Ключевые решения и почему
- **<выбор/вывод>** — потому что <причина из чата>

## Источники и материалы
- <ссылка / файл / документ> — <что это и зачем>

## Стиль работы и предпочтения пользователя
- <тон, формат ответов, методы, что не любит — ТОЛЬКО с конкретным доказательством из чата>

## Открытые вопросы / куда двигаться дальше
- <что осталось нерешённым или следующий шаг>
```

### Компактный режим (для коротких чатов)

Если в чате **меньше ~10 содержательных реплик** — не раздувай выжимку. Используй сокращённый шаблон:

```markdown
# Контекст из прошлого чата

> Это передача контекста из предыдущей сессии. Прочитай, подтверди коротким «принял», и жди следующего сообщения.

**TL;DR:** <одна строка>

## О чём был чат
<1–2 предложения>

## Главное
- <ключевой факт/решение>

## Открытые вопросы / следующий шаг
- <что дальше>
```

Не насилуй шаблон ради шаблона: лучше 3 секции с реальным содержанием, чем 6 с одной строкой в каждой.

### Mixed-режим (несколько несвязанных тем в одном чате)

Если в чате обсуждались **две и более несвязанные темы** (например: выбор заголовка эпизода + покупка микрофона; или дизайн-система + маркетинговый план) — НЕ сваливай всё в общие секции. Раздели выжимку на блоки по темам:

```markdown
# Контекст из прошлого чата

> Это передача контекста из предыдущей сессии. Прочитай, подтверди коротким «принял», и жди следующего сообщения.

**TL;DR:** <одна строка с явным указанием, что чат был на N тем — и какие>

## О чём был чат
<коротко: что чат смешанный, какие темы>

## Тема 1: <название>
- **Главное:** <ключевые факты/результаты>
- **Решения:** <решения с «потому что»>
- **Артефакты / источники / альтернативы:** <если есть>
- **Открытые вопросы:** <если есть>

## Тема 2: <название>
- (та же структура)

## Стиль работы и предпочтения пользователя
- <общие, применимые ко всем темам>
```

Каждая тема — самодостаточный мини-блок. Новый чат сможет работать по любой из них независимо.

### Язык выжимки

Пиши handoff на том языке, на котором пользователь общался последние ~5 реплик. Если чат был двуязычным (например, обсуждение на русском, технические термины/код на английском) — сохрани эту смесь.

### Опциональные секции (добавляй ТОЛЬКО если содержимое реально есть)

Вставляй их перед «Открытые вопросы», в порядке логики:

| Секция | Заголовок | Когда добавлять |
|---|---|---|
| Артефакты | `## Артефакты (файлы и пути)` | В чате создавали или меняли файлы |
| Решённые проблемы | `## Решённые проблемы` | Был дебаг или преодолённое препятствие |
| Рассмотренные альтернативы | `## Рассмотренные альтернативы` | Сравнивали варианты — что выбрали и почему отвергли остальные |
| Терминология | `## Терминология` | Ввели специфичные термины, важные для понимания |
| Ограничения и допущения | `## Ограничения и допущения` | Явно проговорённые constraints |
| Ключевые цитаты | `## Ключевые цитаты из источников` | Важна точная формулировка из материала |

## Жёсткие правила (анти-паттерны)

- **НЕ вшивай новый запрос внутрь handoff'а.** Handoff — это ТОЛЬКО справка о прошлом, read-only. Не пиши внутри блока «А теперь помоги мне с X», «Вопрос на этот чат: ...», «Продолжи с Y». Новый запрос пользователь сам напишет отдельным сообщением после вставки. Нарушение этого правила ломает работу нового чата — Claude получит контекст и тут же бросится «отвечать», хотя пользователь ещё не сформулировал реальный вопрос.
- **НЕ пересказывай хронологически** («сначала мы…, потом…»). Только структурированные факты.
- **НЕ включай пустые секции.** Если в чате не было файлов — выкинь «Артефакты». Лучше короткая выжимка из 5 секций, чем длинная с заглушками.
- **НЕ выдумывай.** Любой факт, цитата, путь файла, причина — должны браться из чата. Если причины решения нет — не пиши «потому что», просто назови решение.
- **НЕ инферируй характер пользователя.** В секцию «Стиль работы» включай только предпочтения с **конкретным доказательством из чата** (пользователь явно сказал, отверг, попросил, поправил тебя). Не пиши «любит подробные ответы» если в чате он этого не показал. Если доказательств нет — не выдумывай, лучше сделай секцию короче или выкинь.
- **НЕ включай мусор:** пустые подтверждения, повторные чтения файлов, болтовню.
- **НЕ выкидывай отброшенные варианты молча.** Если в чате что-то рассматривали и отвергли — это важно для нового чата (чтобы не предлагали то же самое заново). Запиши в «Рассмотренные альтернативы» с одной строкой «почему отвергли».
- **Конкретика > обобщения.** «Обсудили дизайн» ❌ → «Выбрали тёмную тему с акцентом oklch(0.7 0.15 250)» ✅
- **Никаких эмодзи** в заголовках секций (заголовки чистые `##`).
- **Никаких преамбул** перед блоком кроме одной строки-инструкции пользователю.
- **Никаких комментариев после блока.** Закончил вывод блока — закончил сообщение.

## Пример выдачи (как должно выглядеть твоё сообщение)

> Скопируй блок ниже и вставь первым сообщением в новый чат.
>
> ```markdown
> # Контекст из прошлого чата
>
> > Это передача контекста из предыдущей сессии. Прочитай, подтверди коротким «принял», и жди следующего сообщения.
>
> **TL;DR:** Собрали дизайн-систему мобильного приложения подкаста — палитра OKLCH на тёмной базе, типографика на Inter, 4px-сетка. Файлы: `design-system.md`, `tokens.json`.
>
> ## О чём был чат
> Разработка дизайн-системы для мобильного приложения подкаста. Цель — единый визуальный язык для плеера, фида и страницы эпизода.
>
> ## Главное, что выяснили / сделали
> - Зафиксировали палитру в OKLCH с тёмной базой
> - Описали 3 типографические шкалы (display / body / caption)
> - Собрали правила spacing на 4px-сетке
>
> ## Ключевые решения и почему
> - **OKLCH вместо HSL** — потому что нужна перцептивная равномерность яркости между акцентами
> - **Один акцентный цвет, не два** — потому что в плеере нельзя отвлекать от обложки эпизода
>
> ## Артефакты (файлы и пути)
> - `~/Desktop/звук/design-system.md` — основной документ дизайн-системы
> - `~/Desktop/звук/tokens.json` — токены в формате Style Dictionary
>
> ## Источники и материалы
> - https://oklch.com — для подбора акцентов
> - Refactoring UI, глава 2 — основа правил spacing
>
> ## Стиль работы и предпочтения пользователя
> - Любит короткие ответы по существу, без воды
> - Решения обосновывать одной строкой «потому что …»
> - Русский язык в общении, английский — в названиях токенов
>
> ## Открытые вопросы / куда двигаться дальше
> - Не решено: motion-токены (длительности и easing)
> - Следующий шаг — собрать компонентную библиотеку в Figma
> ```

## Финальная проверка перед отправкой

Перед тем как отправить блок пользователю, мысленно проверь:

1. Все факты в блоке реально звучали в чате? (никакой выдумки)
2. Внутри блока НЕТ нового запроса/задачи для следующего чата? (handoff = read-only)
3. Есть TL;DR-строка в самом верху, понятная без чтения остального?
4. Выбран правильный режим (стандартный / компактный / mixed) под тип и длину чата?
5. Каждая включённая секция содержит ≥1 пункт? (нет пустых)
6. Решения имеют «потому что» из чата? (или причина опущена честно)
7. В «Стиле работы» — только предпочтения с конкретным доказательством из чата, без выдумки?
8. Нет хронологии «сначала-потом»?
9. Новый Claude, прочитав только этот блок, поймёт что делать дальше?

Если на любой ответ «нет» — переделай перед выдачей.
