🔧 Решение проблем
Диагностика и решение типичных проблем: context rot (деградация качества), галлюцинации, OOM, раздутые токены, зависшие MCP, бесконечные циклы правок.
Context Rot — деградация качества к концу сессии
Claude начинает делать глупые ошибки, которые в начале не делал
По мере заполнения контекстного окна (~200K токенов) Claude всё хуже обрабатывает новые запросы. Ранние инструкции "вытесняются" поздними данными. Симптомы: игнорирование правил, повторение уже исправленных ошибок, потеря нити задачи.
✅ Решение
1. Установить
2. При симптомах — выполнить
3. Перед очисткой — попросить Claude: "Выведи список изменённых файлов и незавершённых задач".
4. Использовать
CLAUDE_CODE_AUTO_COMPACT_WINDOW=400000 — автоматическая компактация до достижения лимита.2. При симптомах — выполнить
/clear и начать новую сессию с чистым контекстом.3. Перед очисткой — попросить Claude: "Выведи список изменённых файлов и незавершённых задач".
4. Использовать
claude-mem MCP для сохранения прогресса между сессиями.
Галлюцинации — "всё работает", но тесты не запущены
Claude утверждает что код работает, не проверив это
Claude может написать "тесты прошли" или "миграция выполнена" не запустив реальных команд. Особенно опасно при работе с БД и тестами.
✅ Решение
1. Всегда требовать реальный output: "Запусти
2. При подозрении: "Покажи точный вывод команды, не интерпретацию".
3. Использовать
4. Добавить в CLAUDE.md: "При буксовании — запусти тесты и покажи output перед тем как говорить что готово".
./vendor/bin/pest и покажи output".2. При подозрении: "Покажи точный вывод команды, не интерпретацию".
3. Использовать
/verification skill из superpowers — он заставляет Claude проверять реальное состояние.4. Добавить в CLAUDE.md: "При буксовании — запусти тесты и покажи output перед тем как говорить что готово".
Token Inflation — раздутые ответы, высокая стоимость
Claude пишет многостраничные объяснения вместо кода
Без ограничений Claude склонен к избыточным объяснениям, повторению того что уже сделано, многословным докстрингам. Это увеличивает стоимость и засоряет контекст.
✅ Решение
1. В CLAUDE.md: "Отвечай кратко. Без завершающего резюме. Без объяснения что ты сделал — пользователь сам прочитает diff".
2. Включить
3. Переключаться на Haiku для простых задач (rename, format):
4. Использовать Plan Mode для сложных задач — Claude думает эффективнее в плановом режиме.
2. Включить
MCP_TOOL_SEARCH=1 — MCP схемы загружаются по требованию, не все сразу.3. Переключаться на Haiku для простых задач (rename, format):
/model haiku.4. Использовать Plan Mode для сложных задач — Claude думает эффективнее в плановом режиме.
OOM — контейнеры умирают при ETL
Exit code 137 в логах Docker
PostgreSQL или Python ETL-контейнер убивается OOM killer. Симптомы: контейнер перезапускается сам,
Exit code 137 в логах, запросы к БД зависают.
✅ Решение
1. Проверить логи:
2. Снизить PostgreSQL параметры:
3. WSL2 память: проверить
4. Добавить батчинг в ETL: не более 10K строк за транзакцию
mcp__docker__docker_container_logs({ container: "db-1", tail: 50 })2. Снизить PostgreSQL параметры:
ALTER SYSTEM SET shared_buffers = '4GB';ALTER SYSTEM SET max_parallel_workers_per_gather = '1';SELECT pg_reload_conf();3. WSL2 память: проверить
C:\Users\..\.wslconfig — memory должна быть 38GB4. Добавить батчинг в ETL: не более 10K строк за транзакцию
Бесконечный цикл правок — Claude не может исправить баг
Попытка 4, 5, 6... и всё равно не работает
Claude входит в петлю: исправляет один баг → появляется другой → исправляет → первый возвращается. Или Claude делает всё более сложные попытки вместо простого решения.
✅ Решение
1. После 2 неудачных попыток:
2. Дать больше контекста: "Покажу тебе полный стек трейс" + вставить реальный error output.
3. Сузить задачу: "Реализуй ТОЛЬКО функцию X. Не трогай Y и Z. После — git diff покажу сам".
4. Использовать
5. Переключиться на Opus для сложных логических проблем:
/clear + переформулировать проблему с нуля.2. Дать больше контекста: "Покажу тебе полный стек трейс" + вставить реальный error output.
3. Сузить задачу: "Реализуй ТОЛЬКО функцию X. Не трогай Y и Z. После — git diff покажу сам".
4. Использовать
/debugging skill — структурированный процесс отладки через гипотезы.5. Переключиться на Opus для сложных логических проблем:
/model opus.
🔌 Типичные проблемы MCP
| Симптом | Вероятная причина | Решение |
|---|---|---|
| MCP не запускается при старте | uvx или npx не найден |
where uvx в PowerShell. Установить uv: pip install uv |
| laravel-boost timeout | Контейнер не запущен | Проверить: mcp__docker__docker_list_containers |
| postgres-mcp: "connection refused" | Неправильный host/port | Использовать host.docker.internal:5432 (не localhost) |
| MCP инструменты не появляются | MCP_TOOL_SEARCH=1 сбрасывает схемы | Использовать ToolSearch для явной загрузки нужных инструментов |
| claude-mem данные потеряны | База claude-mem сбросилась | claude-mem хранит в ~/.claude/claude-mem.db — проверить |
| chrome-devtools не видит браузер | Chrome не запущен с debug портом | Запустить Chrome: chrome --remote-debugging-port=9222 |
🚨 Экстренные команды
// Принудительная компактация контекста:
// /compact (команда в Claude Code)
// Сброс сессии Claude Code:
// /clear
// Просмотр текущего использования токенов:
// /tokens
// Смена модели на лету:
// /model sonnet (экономия в 5x vs Opus)
// /model haiku (для простых задач в 20x)
// /model opus (для сложных задач)
// При зависании Docker контейнера:
mcp__docker__docker_restart_container({ container: "backend-1" })
// Проверить RAM контейнера:
mcp__docker__docker_container_stats({ container: "backend-1" })
// WSL2 полный сброс (только в PowerShell, вне Claude):
// wsl --shutdown
// (потом перезапустить Docker Desktop)
📊 Топ-15 реальных проблем больших проектов
Сводка из тысяч реальных кейсов: GitHub Issues anthropics/claude-code, Reddit, HackerNews, аудит AMD (6852 сессии) — март–май 2026.
| # | Проблема | Симптомы | Частота |
|---|---|---|---|
| 1 | Auto-compaction уничтожает контекст | После сжатия Claude забывает переменные, переписывает тесты; «infinite compaction loop» | HIGH |
| 2 | Quality regression | Visible thinking упал на 73% (янв→мар 2026); files-read-before-edit с 6.6 до 2.0; full-file rewrites удвоились | HIGH |
| 3 | Verification gap | «100% successful» при сломанном коде; переписывает падающие тесты; фабрикует tool output | HIGH |
| 4 | Destructive git без подтверждения | git reset --hard, force-push поверх remote, checkout без предупреждения |
HIGH |
| 5 | Лимиты сгорают за 1–2 дня | Opus 4.7 жжёт ~35% больше токенов из-за tokenizer inflation; 20+ MCP = 67k токенов до первой команды | HIGH |
| 6 | Wrong file в монорепо | Патчит ui/ вместо ui-kit/; импорты из неправильного пакета |
HIGH |
| 7 | Subagents фабрикуют результаты | Сжимает 6100 токенов в 420-token summary, дропая критическое | HIGH |
| 8 | Over-engineering | «Add OTP» → 12-file framework; добавляет Dashboard/Team/Settings которых не просили | HIGH |
| 9 | Plan mode игнорируется | Стоп после 30% TODO с рапортом «complete»; начинает редактировать вопреки plan mode | MED |
| 10 | MCP падает | «Method not found -32601», race condition, transport closes до возврата | MED |
| 11 | Cache TTL регрессия | TTL silently 1h→5m в марте 2026; cache_creation inflation +20K токенов/turn | MED |
| 12 | Context limit при 27% | Reserved buffer ел 33–45K токенов скрыто от пользователя | MED |
| 13 | CLAUDE.md хрупкий | Обрезается на 200 строк / 25KB без предупреждения; не авто-записывает решения | MED |
| 14 | Безопасность: prompt injection | CVE-2026-35021 (RCE через метасимволы), CVE-2026-21852 (API key via ANTHROPIC_BASE_URL) | MED |
| 15 | Hallucinated APIs | Изобретает несуществующие функции; конкретные числа без верификации | MED |
Источник данных: GitHub Issues anthropics/claude-code, аудит AMD (6852 сессии, Stella Laurenzo),
блоги экспертов: Boris Cherny, Geoffrey Huntley, Armin Ronacher, Mitchell Hashimoto, Steve Yegge, Harper Reed.
Период: март–май 2026.
Решения для самых частых проблем
Auto-compaction + Verification gap (#1, #3)
Claude «забывает» и «лжёт» об успехе
Верификация реальными командами
Всегда требуйте реальный output:
./vendor/bin/pest, pytest -v, npm test. Никогда не доверяйте «100% successful» без proof. «Never trust AI when it reports tests passing without independent verification» — Steve Yegge.Отключить auto-compact или повысить порог
Установите
CLAUDE_CODE_AUTO_COMPACT_WINDOW=400000 в settings.json env. Перед compaction вручную записывайте ключевые переменные в CLAUDE.md текущей сессии.Лимиты токенов сгорают (#5)
20+ MCP = 67k токенов до первой команды
MCP_TOOL_SEARCH=1 и минимальный набор MCP
Включите
MCP_TOOL_SEARCH=1 в env — экономит 47–95% токенов на схемах MCP. Держите не более 5–7 MCP. Стек-специфичные MCP — только в проектном .mcp.json, не глобально.Sonnet по умолчанию, Opus только для планирования
Opus 4.7 в 5× дороже Sonnet при сопоставимом качестве для большинства задач. Используйте Opus только в /brainstorm и plan phase.
Over-engineering (#8)
«Добавь кнопку» → 12 новых файлов
Скоуп в промпте обязателен
Всегда добавляйте: «Реализуй ТОЛЬКО [функцию/компонент]. Не добавляй [то/то]. Без рефакторинга вокруг.» Пишите в CLAUDE.md: «YAGNI строго. Спрашивай перед добавлением функциональности сверх запрошенной.»
💬 Правила эффективного prompting
| Ситуация | Плохо | Хорошо |
|---|---|---|
| Новая задача | "Добавь платежи" | "Добавь Stripe платежи для подписок. Только бэкенд (Laravel Service + Controller). Без frontend пока." |
| Баг | "Почини ошибку" | "Получаю 500 ошибку при POST /api/payments. Вот стек трейс: [вставить]. Функция в PaymentService::create." |
| Ограничение | (ничего) | "Реализуй ТОЛЬКО функцию store() в PaymentController. Не трогай Service и Migration." |
| Проверка | "Работает?" | "Запусти ./vendor/bin/pest tests/Feature/PaymentTest.php и покажи реальный output." |
| Claude буксует | Продолжить давить | /clear + начать с другого угла + дать больше контекста |
Главное правило: если Claude дважды дал неправильный ответ — это не проблема Claude, это проблема формулировки задачи. Переформулируй с большим контекстом и меньшей областью задачи.