Актуально на апрель 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

Разделяй исследование и реализацию. Сессия, которая много читает, обычно не та же самая сессия, которой стоит доверять финальное изменение.

  1. Plan mode — Claude читает файлы, строит план, ничего не меняет
  2. Одобряешь план
  3. Normal mode — реализует по плану
  4. Коммит
# Включить 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 Продолжить прошлую сессию