Актуально на апрель 2026.
Claude Code никогда не скажет, что проблема в контексте. Он просто потихоньку становится хуже — ответы расплывчатее, решения, о которых договорились час назад, забываются, новые советы противоречат его же предыдущим. Я месяцами читал это как “модель сегодня не в духе”.
Главный принцип
Контекстное окно — твой самый важный ресурс, и самый быстрый способ сделать Claude Code хуже это продолжать пихать всё в одну сессию и надеяться, что качество не просядет. В контекст уходит всё: каждое сообщение, каждый прочитанный файл, каждый результат команды, каждый ответ Claude. Когда окно заполняется, качество падает раньше, чем ты это замечаешь.
Размер контекста зависит от модели. У некоторых моделей есть расширенный контекст (включая 1M варианты), но единственное число которое имеет смысл: то что в твоей сессии. Проверяй через /context.
Что загружается автоматически при старте
Ещё до первого сообщения часть окна уже занята:
- System prompt и built-in tools
- Твой
CLAUDE.mdи импорты - Auto memory, если включен
- Метаданные списка skills
- Tool definitions MCP серверов, если включены
Именно поэтому две сессии с одинаковым промптом могут вести себя по-разному — разные MCP серверы, разные memory файлы, разные импорты. /context покажет реальный breakdown. /memory — какие файлы подхватились.
Мониторинг
Когда Claude начинает ощущаться “каким-то не таким”, я почти всегда смотрю именно сюда:
/context # разбивка по категориям: что сколько занимает
/memory # какие CLAUDE.md и auto memory файлы загружены
Строка статуса в нижней части показывает % заполнения в реальном времени.
Команды управления контекстом
/clear
Полный сброс. CLAUDE.md перезагружается, история исчезает. Используй когда переключаешься на другую задачу или когда сессия явно пошла не туда и проще начать заново, чем бороться с накопившимся.
/compact [инструкция]
Claude резюмирует разговор и заменяет историю кратким summary. Можно указать что сохранить:
/compact focus on the authentication changes we made
/compact keep the list of modified files and test commands
Используй когда контекст заполняется, но задача не закончена — /compact позволяет остаться в сессии не теряя нить. Если бы со всей этой страницы можно было оставить одну команду, я бы оставил эту. Возможность резюмировать, не начиная заново, спасла больше сессий, чем всё остальное здесь.
/btw вопрос
Быстрый вопрос который не попадает в основной разговор:
/btw what type does this function return?
/btw is there a built-in for this in Python?
Удобно для быстрых уточнений которые не хочется тащить в основной тред.
/rewind (или двойной Esc)
Открывает меню восстановления. Можно откатить разговор, код или оба. Используй когда Claude пошёл не туда и хочешь попробовать иначе с чистого состояния.
Autocompact
Auto-compaction это страховка, а не основная стратегия.
Срабатывает автоматически, когда контекст подходит к заполнению.
Если хочешь, чтобы это происходило раньше, в Claude Code задокументирована такая env var:
// ~/.claude/settings.json
{ "env": { "CLAUDE_AUTOCOMPACT_PCT_OVERRIDE": "75" } }
Она задаёт порог как процент доступного контекста. Поведение по умолчанию примерно 95%. Чем ниже значение, тем раньше происходит compaction. Это применяется и к основному разговору, и к subagents.
Я её не выставляю. На практике я жму /compact руками сильно раньше, чем сработал бы autocompact — ждать 95% это как ждать, пока кончится бензин, прежде чем начать искать заправку. Override нужен, если не хочется думать об этом вообще.
Если ты работаешь на extended-context модели и хочешь считать compaction от меньшего эффективного окна, в Claude Code также задокументирована CLAUDE_CODE_AUTO_COMPACT_WINDOW.
В любом случае стоит знать, что переживает сжатие: Claude заново перечитывает CLAUDE.md с диска, но ad-hoc инструкции, которые существовали только в разговоре, могут потеряться. Если что-то важно, перенеси это в CLAUDE.md до того, как жать /compact.
Что жрёт контекст больше всего
1. MCP tool definitions
Каждый подключённый MCP сервер вываливает в контекст описания всех своих tools при старте. Один tool — 550–1400 токенов. Сервер с пятьюдесятью tools — это 30k+ токенов до того как ты что-то написал.
Фикс: подключай только те серверы, которые реально нужны. /mcp позволяет отключить остальные — для этого он и существует.
2. Чтение больших файлов
Каждый файл который Claude читает — попадает в контекст целиком. Без обрезки, без резюме.
Фикс: используй subagents для открытого исследования, и давай Claude конкретный путь к файлу вместо “посмотри как у нас устроен auth”. Размытые запросы → Claude читает всё подряд.
3. Длинные разговоры
Просто накопленная история.
Фикс: /clear между задачами, /compact внутри задачи.
Привычки, которые держат контекст маленьким
Большинство проблем с контекстом на самом деле оказываются проблемами воркфлоу. Ничего из дальнейшего не про контекстное окно напрямую — всё про то, чтобы не создавать бардак с самого начала.
Давай Claude способ проверить результат
Это самое важное. Claude работает значительно лучше когда может сам проверить работу:
# Плохо
"implement email validation"
# Хорошо
"write validateEmail function. test cases: user@example.com → true,
invalid → false, user@.com → false. run tests after implementing."
Без критериев проверки Claude может сделать что-то внешне правильное, но не работающее.
Explore → Plan → Code → Commit
Разделяй исследование и реализацию. Сессия, которая много читает, обычно не та же самая сессия, которой стоит доверять финальное изменение.
- Plan mode — Claude читает файлы, строит план, ничего не меняет
- Одобряешь план
- Normal mode — реализует по плану
- Коммит
# Включить plan mode при запуске
claude --permission-mode plan
# или Shift+Tab внутри сессии
Plan mode — то, чему я сопротивлялся дольше всего, а теперь пользуюсь чаще всего, по совершенно негероической причине: одобрить план дешевле, чем вычитывать дифф.
Конкретные промпты экономят контекст
Чем конкретнее промпт — тем меньше итераций и меньше контекста тратится:
# Плохо — вызывает много уточняющих вопросов
"add a calendar widget"
# Хорошо — всё понятно сразу
"look at HotDogWidget.php to understand widget patterns.
implement a calendar widget in the same style with month
selection and year pagination. no new libraries."
Субагенты для исследования
Исследование кодовой базы читает много файлов — всё это засоряет основной контекст:
# Плохо — Claude сам читает всё в основном контексте
"investigate how our auth system handles token refresh"
# Хорошо — subagent работает в своём контексте
"use a subagent to investigate how our auth system handles
token refresh and whether we have OAuth utilities to reuse"
Subagent возвращает краткое резюме — основной контекст остаётся чистым. Только честно про размен: это резюме хуже, чем то, что ты вынес бы, прочитав файлы сам. Ты покупаешь чистый основной контекст ценой более поверхностного понимания того, что в нём.
/clear между несвязанными задачами
# Закончил с auth → начинаешь работу с UI
/clear
# Теперь чистый контекст без остатков от auth задачи
После двух неудачных поправок — сбрасывай и начинай заново
Два — то число, которое работает у меня. Третья поправка почти никогда не срабатывает, четвёртая не срабатывает точно. /clear, и пиши тот промпт, который надо было написать сразу, — со всем, чему тебя научили неудачные попытки.
Используй @ для референса файлов
@src/api/auth.ts посмотри как работает этот файл
Вместо того чтобы описывать где что находится — дай прямую ссылку.
Pipe данных напрямую
cat error.log | claude -p "что здесь происходит?"
gh pr diff | claude -p "summarize this PR"
Workflow для разных размеров задач
Это самая простая ментальная модель, которую я знаю:
Маленькая задача (typo, rename, quick fix)
→ Прямо пиши что нужно, без planning
→ Claude делает
→ Проверяешь
Средняя задача (новый endpoint, feature)
→ Plan mode: "прочитай src/api/ и спланируй как добавить X"
→ Одобряешь план
→ Normal mode: "реализуй"
→ Запускаешь тесты
→ Commit
Большая задача (рефакторинг, migration)
→ Отдельная сессия для исследования с subagents
→ Пишешь spec в файл
→ Новая чистая сессия для реализации
→ Worktrees для параллельных частей
Когда всё уже пошло не так
Любая привычка выше стоит дёшево, если применить её рано, — в этом и проблема, потому что все сигналы приходят поздно. Три, которые я научился ловить.
Сессию унесло. Начал с одного, а я уже на третьей теме. Начинается как “починить баг в логине”, а через два часа я спрашиваю про CSS в контексте, который прочитал 40 TypeScript файлов. Баг пофикшен, но у Claude теперь есть мнение и об auth слое, и о размере кнопок.
Я спорю. Одну и ту же ошибку поправил дважды, на третий раз всё равно неправильно — потому что контекст тащит все сломанные подходы, через которые мы прошли, и каждой новой поправке приходится драться сразу со всеми.
Я перестал проверять. Claude сделал что-то правдоподобное, и я отправил это в прод, так и не дав ему способа доказать, что оно работает.
Если сессия начинает ощущаться мутной, скорее всего она уже мутная. Сбрасывай раньше, чем подсказывает интуиция.
Чекпоинты и resume
Claude автоматически создаёт чекпоинты перед каждым изменением. Это не замена git, но позволяет откатиться:
Esc + Esc # или /rewind — открыть меню чекпоинтов
Сессии сохраняются локально:
claude --continue # продолжить последнюю сессию в этой директории
claude --resume # выбрать из последних сессий
claude --resume auth-refactor
/rename # дать сессии имя ("oauth-migration")
Параллельные сессии для масштабирования
Когда нужно больше:
# Несколько worktrees — несколько независимых Claude
git worktree add ../proj-auth feature/auth
git worktree add ../proj-ui feature/ui
cd ../proj-auth && claude &
cd ../proj-ui && claude &
Writer/Reviewer pattern:
- Сессия A: реализует feature
- Сессия B: ревьюит с чистым контекстом (не предвзята к коду который только что написала)
Fan-out для batch операций:
for file in $(cat files.txt); do
claude -p "migrate $file from React to Vue" \
--allowedTools "Edit" "Bash(git commit:*)"
done
Шпаргалка команд
| Команда | Когда |
|---|---|
/context |
Посмотреть что сколько занимает |
/clear |
Новая задача или загрязнённый контекст |
/compact |
Задача продолжается, нужно освободить место |
/compact focus on X |
Компакция с сохранением конкретных деталей |
/btw вопрос |
Быстрый side question вне основного треда |
/rewind или Esc+Esc |
Откат к предыдущему состоянию |
Esc |
Остановить Claude на ходу |
/mcp |
Отключить неиспользуемые MCP серверы |
--permission-mode plan |
Режим только чтения перед реализацией |
claude --continue |
Продолжить прошлую сессию |