Почему ваш Claude Code работает вполсилы?
Вы установили Claude Code, дали ему пару задач — вроде пишет код, рефакторит, коммитит. Но есть ощущение, что это лишь 30% его возможностей. Он тупит на простых вопросах, теряет контекст, игнорирует вашу архитектуру, а иногда генерирует откровенную ерунду. И вы думаете: «Ну, AI — он и есть AI, что взять?»
Спойлер: дело не в AI. Дело в том, что вы не дали Claude Code правильных инструкций. Из коробки это мощный, но сырой инструмент. А после грамотной настройки он превращается в отдел из пяти инженеров, который работает 24/7, не спит, не пьет кофе и не просит повышения зарплаты.
Я собрал 10 скрытых (или неочевидных) настроек Claude Code, которые реально выжимают из него максимум. Без воды, только конфиги и объяснения — зачем каждый из них нужен и как не наступить на грабли.
Настройка №1: CLAUDE.md — ваш «конституционный» файл проекта
Самая недооцененная фича. Все пишут промпты в чате, но забывают, что Claude Code читает CLAUDE.md из корня проекта. Это его основная инструкция, «конституция» проекта. Если там пусто — Claude действует наугад.
Что должно быть в CLAUDE.md? Не просто «ты — опытный разработчик», а конкретные правила:
- Какие линтеры и форматтеры используем (ESLint, Prettier, Black).
- Структура проекта: где лежат компоненты, утилиты, тесты.
- Паттерны, которые запрещены (например, не используем any в TypeScript).
- Ссылки на внутренние документы (архитектура, API).
# Project Rules
- Язык: TypeScript строгий режим, noUnusedLocals, noUncheckedIndexedAccess
- Стиль: camelCase для переменных, PascalCase для компонентов
- Форматирование: Prettier с шириной 100, одинарные кавычки
- Тесты: Jest, каждый модуль покрыт минимум на 80%
- Архитектура: Feature-Sliced Design, см. /docs/arch.md
- Запрещено: any, ts-ignore, lodash (используем встроенные методы)Типичная ошибка: класть в CLAUDE.md длинные философские рассуждения. Модель их читает, но выполняет плохо. Пишите коротко, конкретно, в виде чек-листов.
Подробнее про написание эффективного CLAUDE.md я разбирал в статье Архитектура Claude Code: как управлять контекстом, Subagents и писать эффективный CLAUDE.md. Там есть шаблоны для разных типов проектов.
Настройка №2: Флаг --effort xhigh — режим «одумайся»
По умолчанию Claude Code работает в режиме быстрого ответа: минимум размышлений, максимум скорости. Для простых задач — ок, но для сложного рефакторинга, оптимизации запросов или написания миграций базы — качество хромает.
Флаг --effort принимает значения low, medium, high, xhigh. Разница в том, сколько «токенов размышления» модель потратит перед ответом. xhigh заставляет Claude проговорить вслух все варианты, взвесить плюсы и минусы, а уже потом выдать код.
# Как НЕ надо
claude "напиши миграцию для добавления индекса"
# Как надо
claude --effort xhigh "напиши миграцию для PostgreSQL: создай индекс для поиска по email, учти блокировки, добавь мониторинг"Когда я впервые включил xhigh на задаче рефакторинга легаси API, Claude выдал план из 8 шагов, нашел баг в логике, который я не заметил, и предложил две альтернативы с бенчмарками. Без флага он бы просто заменил if на switch.
Но помните: xhigh сжигает токены в 2-3 раза быстрее. Используйте его только для сложных задач, а для рутины (добавить поле, поправить стиль) оставьте low или medium. Идеальный баланс описан в Claude Code 2.0: от новичка до архитектора за один день.
Настройка №3: Subagent mode — делегирование как в реальной команде
Claude Code умеет запускать подзадачи в виде «субагентов». Это не просто вызов функций — он создает отдельный инстанс модели с собственным контекстом, который выполняет задачу параллельно и возвращает результат.
Включение: в CLAUDE.md или переменной окружения CLAUDE_SUBAGENT_ENABLED=true. После этого можно писать промпты с пометкой #subagent.
# Пример: Claude сам разбивает задачу на подзадачи
claude "напиши тесты для модуля auth, используй subagent для каждой группы тестов"Внутри он запускает субагентов: один пишет тесты для login, второй — для register, третий — для reset password. Каждый работает в изолированном контексте, не засоряя память главного. Результаты склеиваются автоматически.
Настройка №4: Context compression — не дай контексту умереть
Claude Code имеет лимит контекста (сейчас до 200K токенов). Но когда вы работаете с большим проектом, каждый запрос добавляет историю. Через 10-20 шагов модель «забывает» начало диалога.
Решение — флаг --context-compression или настройка в .claude/config.json:
{
"contextCompression": {
"strategy": "summary", // "summary" | "selective" | "off"
"maxTokens": 80000,
"compressAfterSteps": 5
}
}Как работает summary: после 5 шагов Claude сжимает старые сообщения в краткое резюме, выбрасывая неважные детали. Selective — оставляет только сообщения с высоким score релевантности. Без сжатия к 15-му шагу вы получите бред.
Ошибка: отключать компрессию, думая что «больше контекста — лучше». На практике модель начинает путаться в деталях. Я рекомендую smart режим (если доступен) или summary с порогом 50K токенов.
Настройка №5: Pre/post hooks — автоматизация до и после генерации
Claude Code поддерживает хуки — скрипты, которые выполняются до и после каждого действия модели. Это как CI/CD, но для работы AI.
Например, можно настроить автоформатирование после генерации, запуск тестов, линтинг, или даже отправку уведомления в Slack.
# .claude/hooks.yml
pre:
- script: "git stash"
description: "Сохраняем текущие изменения"
post:
- script: "npm run lint:fix"
description: "Автоформатирование"
- script: "npm run test -- --changed"
description: "Запуск тестов на измененные файлы"
- script: 'curl -X POST -H "Content-Type: application/json" -d '{"text":"Генерация завершена"}' $SLACK_WEBHOOK'
description: "Уведомление в Slack"Без хуков вы будете каждый раз руками гонять форматирование и тесты. С хуками — Claude сам гарантирует, что код проходит проверки.
Настройка №6: Model selection — выбирай модель под задачу
Claude Code поддерживает разные модели Anthropic: Opus (максимальное качество), Sonnet (баланс), Haiku (быстрые ответы). По умолчанию используется Sonnet, но вы можете переключаться прямо в запросе.
# Быстрый поиск — Haiku
claude --model haiku "найди все вызовы функции getUser"
# Сложный рефакторинг — Opus 4.5
claude --model opus-4.5 --effort xhigh "перепиши модуль авторизации на DDD"
# Обычный код — Sonnet
claude --model sonnet "добавь поле createdAt в модель User"В статье про Claude Opus 4.5 я показывал, как кастомный промпт + правильная модель заменяют middle-разработчика. Экономия токенов до 40% при правильном выборе.
Настройка №7: Temperature tuning — от бюрократа до художника
Temperature управляет креативностью модели. 0.0 — строгий бюрократ, всегда одинаковый ответ. 1.0 — художник, может выдать неожиданное решение. Для кода обычно ставят 0.0-0.3, чтобы избежать галлюцинаций.
Но есть случаи, когда полезно повысить: написание тестовых сценариев, генерация моковых данных, создание документации. Я использую 0.1 для продакшен-кода и 0.6 для тестов.
# В Claude Code можно передать через аргумент
claude --temperature 0.4 "придумай 5 крайних случаев для функции валидации email"
# Или настроить в .claude/config.json
temperature: 0.1 # дефолт для проекта
override:
"regenerate tests": 0.7Совет: никогда не ставьте temperature >0.5 для генерации инфраструктурного кода (Terraform, Dockerfile). Модель начнет придумывать несуществующие ресурсы. Проверено на собственных граблях.
Настройка №8: MCP серверы — подключение внешних данных
Model Context Protocol (MCP) — стандарт для подключения к внешним источникам: базам данных, API, файловой системе, документации. В Claude Code это реализовано через --mcp флаг или конфигурацию.
Подключив MCP сервер к PostgreSQL, Claude может сам делать SELECT запросы, анализировать схему, писать миграции. Без MCP вы бы копировали схему в промпт вручную.
# Запуск с MCP сервером
claude --mcp postgres://user:pass@localhost/mydb "проанализируй медленные запросы по логам"
# Или в .claude/config.json
mcpServers:
- name: "my-db"
type: postgres
url: "postgresql://..."
- name: "docs"
type: filesystem
root: "./docs/"MCP — это суперсила. Я подключаю к Claude Code базу, документацию, Swagger, и он отвечает на вопросы про код, данные и API без необходимости что-то объяснять. Подробнее в статье про архитектуру Claude Code.
Настройка №9: Custom tools — расширение возможностей
Claude Code позволяет добавлять кастомные инструменты — команды, которые модель может вызывать как функции. Это выходит за рамки встроенного набора (поиск, чтение файлов).
Например, можно сделать инструмент для деплоя, для запуска миграций, для проверки лицензий. Инструменты описываются в формате JSON Schema и регистрируются в .claude/tools/.
// .claude/tools/deploy.json
{
"name": "deploy",
"description": "Деплой приложения на staging",
"input_schema": {
"type": "object",
"properties": {
"branch": { "type": "string" },
"env": { "type": "string", "enum": ["staging", "prod"] }
},
"required": ["branch"]
},
"command": "npm run deploy --branch=$branch --env=$env"
}Теперь можно сказать: «Claude, задеплой ветку feature/payment на staging» — и он выполнит команду, предварительно проверив код и тесты.
Настройка №10: Project-wide instructions — наследование для монорепозиториев
Если у вас монорепозиторий с десятками пакетов, ставить один CLAUDE.md на весь проект — плохая идея. У каждого пакета свои правила, линтеры, архитектура.
Решение: директория .claude/ в корне с файлами global.md и переопределениями в каждом пакете. Claude Code сначала загружает глобальные правила, потом ищет CLAUDE.md в папке, где выполняется команда, и объединяет их.
repo/
.claude/
global.md # общие правила для всего проекта
packages/
frontend/
CLAUDE.md # правила только для frontend
backend/
CLAUDE.md # правила для backend
shared/
CLAUDE.mdЯ часто вижу, как разработчики копируют один огромный промпт во все пакеты. Это убивает специфику. Используйте наследование — дайте каждому модулю свои настройки.
Типичные ошибки при настройке Claude Code (и как их избежать)
- Слишком длинный CLAUDE.md (>10K токенов). Модель тратит контекст на чтение правил, вместо того чтобы решать задачу. Держите в пределах 2-3K токенов.
- Игнорирование effort xhigh для сложных задач. Получаете поверхностные ответы, тратите время на итерации. Лучше один раз с xhigh, чем 5 раз с low.
- Подключение MCP к продакшен-базе. Claude может случайно выполнить DELETE без WHERE. Всегда используйте read-only пользователя или staging.
- Отсутствие hooks. Каждый раз вручную прогоняете тесты? Автоматизируйте.
- Температура >0.3 для кода. Риск галлюцинаций высок. Держите 0.0-0.3 для production.
Часто задаваемые вопросы
Нужно ли писать CLAUDE.md для каждого проекта?
Желательно. Даже короткий файл из 5 правил радикально улучшает качество. Для пет-проектов можно не заморачиваться, но для коммерческой разработки — обязательно.
Как узнать, что модель использует subagent?
Включите verbose режим: claude --verbose. В логах появится информация о запуске субагентов. Также можно поставить флаг --show-subagent.
Сколько токенов экономит context compression?
В среднем 30-50% на длинных сессиях. Точная цифра зависит от проекта, но в моих тестах сжатие позволило работать в 2 раза дольше до потери контекста.
Можно ли комбинировать все эти настройки?
Да, они не конфликтуют. Я рекомендую начать с CLAUDE.md и effort xhigh, затем добавить hooks и MCP. Subagent и custom tools — для продвинутых сценариев.
Финальный совет: не настраивайте всё сразу
Самая частая ошибка, которую я вижу — люди пытаются внедрить все 10 настроек за один день. В итоге получают кашу: MCP сервер падает, hooks блокируют коммиты, subagent генерирует дубли.
Делайте итеративно. Неделя — одна настройка. Сначала CLAUDE.md. Поняли, как он влияет? Добавьте effort. Через месяц у вас будет отдел AI-инженеров, а не один тупящий бот.
И да, если вы думаете, что Claude Code заменит вас в ближайшие полгода — вы правы. Но только если вы не научитесь управлять им. Те, кто освоит эти настройки, будут управлять AI, а не конкурировать с ним.