Управление контекстом — навык #1
Цель: освоить главное что отличает отличных пользователей Claude Code от хороших. Контекст — это ресурс, относись соответственно.
Почему это главное
Полевое наблюдение: "Это навык #1 который отличает хороших пользователей Claude Code от отличных. Разница в результатах — кардинальная."
Контекстное окно — около 200K токенов (или 1M на Max). Кажется много. Но:
Одна длинная сессия + вывод тестов + чтение 30 файлов + обсуждение + итерации = окно забивается быстро.
Что происходит когда контекст заполняется
- Сначала очищается вывод старых инструментов
- Разговор автоматически сжимается
- Ранние инструкции могут быть потеряны
Это и есть момент когда Claude начинает "забывать" что ты ему говорил в начале.
Эффект "lost in the middle"
Даже когда контекст не переполнен — модель надёжно обрабатывает начало и конец длинного ввода, но может пропускать середину. Это не баг, это свойство трансформеров.
Следствия:
- Важные факты класть в начало или конец блока
- Суммирующие заголовки секций помогают
- Обрезай вывод инструментов до релевантного
Активное управление — инструменты
| Команда | Когда |
|---|---|
/compact | Ручное сжатие когда разговор затянулся |
/clear | Чистый старт между несвязанными задачами |
/cost | Что ест токены и где |
/memory | Проверить что загружено |
Правило "2 попыток" (Золотое)
Ты просишь Claude сделать X. Не получилось. Поправляешь. Опять не получилось. Поправляешь снова.
СТОП.
После 2 неудачных попыток — контекст загрязнён ошибочными подходами. Claude ссылается на собственные ошибки как на правду. Пиши третью попытку в загрязнённый контекст — хуже чем пиши её в свежий.
Алгоритм:
- Попытка 1 по твоему исходному промпту
- Не сработало → анализируй что узнал нового
- Попытка 2 с уточнениями
- Не сработало → стоп, не третья попытка
/clear- Напиши новый промпт с нуля — учти что узнал в 2 попытках
- Начинай заново
Автор: "Я усвоил это ценой примерно 6 часов потраченного времени".
Что сохранить перед /clear
- Ключевые находки (структура, зависимости) → скопируй в CLAUDE.md или scratchpad-файл
- Файлы которые Claude уже определил как релевантные → упомяни в новом промпте
- Что точно НЕ работает → кратко "не пробуй X, уже делали, не подходит"
Scratchpad pattern
Для длинных исследовательских сессий — файл-блокнот:
touch .claude-scratchpad.mdКогда Claude что-то понимает — просишь сохранить:
"write key findings to .claude-scratchpad.md so we can reference them after /clear"
Потом в новой сессии:
claude "read .claude-scratchpad.md first, then continue with [task]"Контекст сессии свежий, но знания не потеряны.
Двойной Escape — откат
Claude пошёл не туда в последнем шаге, но контекст до этого был полезный?
Двойное Escape вызывает меню отката:
- Отменить последнее действие
- Вернуться дальше
- "Сжать отсюда" — сжимает неудачную попытку, сохраняет полезное
Лучше /clear потому что не теряешь всё — только ошибку.
Субагенты как инструмент контекста
Самое эффективное что ты можешь сделать — делегировать объёмные чтения субагентам (см. урок 3.1).
Пример:
# Плохо — засоряет основной контекст
claude "run the full test suite and tell me what's broken"
# Вывод на 800 строк влезает в твой разговор
# Хорошо — изолированно
claude "use the Explore subagent to run tests and return a structured summary of failures"
# Вывод там, резюме здесьИзвлечение "case facts"
Для многоходовых сессий (особенно агенты клиентской поддержки) — извлекай постоянные факты в блок за пределами суммируемой истории.
Пример: номер заказа, сумма, статус, ID клиента. Эти значения нельзя терять при сжатии.
CASE FACTS (do not summarize)
- Customer ID: 12345
- Order ID: 98765
- Refund amount: $129.00
- Status: pending review
---
[sliding conversation history below]
Новая сессия vs resume
| Ситуация | Что делать |
|---|---|
| Продолжаешь ту же работу | /compact или claude --resume <session-id> |
| Новая задача в том же проекте | /clear внутри сессии |
| Задача развернулась по-другому | Новая сессия с инъекцией сводки ключевых фактов |
| Контекст сильно деградировал | Новая сессия, scratchpad с выводами |
| Параллельная альтернативная ветка | claude --resume <id> --fork-session |
Антипаттерны
❌ Держать CSS-debugging + новый API endpoint в одной сессии
❌ Пропускать /clear, надеяться что "само разберётся"
❌ Дебажить в основной сессии вместо делегирования Explore
❌ Переписывать CLAUDE.md после каждого разговора — это не паттерн
❌ Игнорировать /cost — узнаешь о проблеме когда счёт придёт
Практика (15 минут)
Задача 1. Scratchpad
В текущей сессии попроси Claude сделать анализ чего-то (например, архитектуры модуля). Потом:
"write all key findings to .scratchpad.md"
Сделай /clear. Начни новую сессию:
"read .scratchpad.md first, then answer: [конкретный вопрос про анализ]"
Сравни с тем как было бы если бы ты просто сказал "вспомни что мы обсуждали" — Claude не вспомнит после clear.
Задача 2. Двойной Escape
В сессии где Claude сделал что-то странное — попробуй Esc Esc. Посмотри меню. Протестируй "сжать отсюда".
Задача 3. /cost
В длинной сессии запусти /cost. Посмотри что больше всего ест токены. Обычно это:
- Полный вывод инструментов
- Повторяющиеся чтения тех же файлов
- Раздутый CLAUDE.md
Что дальше
Последний урок модуля: /loop и /schedule. Автоматизация до недели непрерывной работы. Skill превращается в персонального робота-ассистента.