Загрузка...

Настройка Claude Code в боевых условиях: шпаргалка по конфигам, контексту и правам

Запуск Claude Code «из коробки» без предварительной настройки обычно приводит к двум крайностям: либо агент каждые двадцать секунд дергает вас подтверждениями на вызов элементарного git status, либо молча засасывает в контекст гигабайты из vendor или node_modules, сжигая недельный баланс токенов за полдня.
Чтобы инструмент работал как автономный ассистент, а не раздражающий фактор, его конфигурацию важно сразу разложить по полочкам. Разбираем актуальную архитектуру настроек Claude Code, ключевые параметры settings.json и правила отсечения лишнего контекста.

Архитектура настроек: три уровня изоляции

Claude Code использует предсказуемую иерархию конфигурации по принципу каскада (каждый следующий уровень переопределяет предыдущий):
  1. Глобальный уровень (~/.claude/settings.json)
    Применяется ко всем сессиям на вашей машине. Сюда выносятся базовые системные предпочтения: глобальная модель по умолчанию, темы оформления, поведение телеметрии и базовые лимиты затрат.
  2. Командный уровень проекта (.claude/settings.json в корне репозитория)
    Хранится в Git вместе с проектом. Здесь описывается конвенция команды: какие команды разрешено выполнять без запроса подтверждения (автозапуск тестов, линтеры), какие деструктивные действия заблокированы намертво, и какие системные пути исключены из анализа.
  3. Локальный оверрайд (.claude/settings.local.json)
    Файл строго для .gitignore. Нужен для переопределения проектных параметров под ваше персональное рабочее окружение (например, кастомный путь к PHP/Node в кастомном каталоге, специфические флаги контейнеров или локальные прокси).

Практический шаблон .claude/settings.json

Рабочий пример конфигурации для современного проекта, защищающий от типичных факапов:
JSON

{
  "$schema": "https://json.schemastore.org/claude-code-settings.json",
  "model": "claude-3-7-sonnet",
  "maxTokens": 4096,
  "permissions": {
    "allow": [
      "git status",
      "git diff",
      "git log",
      "composer test",
      "npm run test",
      "php artisan test"
    ],
    "deny": [
      "git push --force*",
      "rm -rf *",
      "drop database*",
      "truncate *"
    ]
  },
  "ignorePatterns": [
    "vendor/**",
    "node_modules/**",
    "storage/logs/**",
    ".git/**",
    "*.lock",
    "dist/**",
    "coverage/**"
  ],
  "costLimits": {
    "warnAtUsd": 3.0,
    "stopAtUsd": 10.0
  }
}

Разбор критических секций

1. Политика выполнения команд (permissions)

По умолчанию агент обязан спрашивать подтверждение перед любым вызовом утилиты в вашей оболочке.
  • В массив allow добавляйте утилиты только на чтение и запуск тестов. Когда агент правит логику и сразу прогоняет Pest/PHPUnit без вашего ручного «Yes», процесс ускоряется в разы.
  • В массив deny обязательно зашивайте маски деструктивных команд. Даже если модель словит галлюцинацию или решит «радикально почистить окружение», выполнение будет аппаратно прервано на уровне CLI.

2. Фильтрация контекста (ignorePatterns и .claudeignore)

Самая частая причина утечки токенов — агент пытается «проиндексировать» весь проект целиком.
Помимо settings.json, в корне репозитория обязательно создайте файл .claudeignore (работает по синтаксису .gitignore):
Plaintext

# Изолируем тяжелые зависимости
/vendor/
/node_modules/

# Логи и временные дампы
/storage/logs/
/storage/framework/cache/
*.log

# Лок-файлы (агенту не нужно вычитывать миллионы строк хешей)
composer.lock
package-lock.json
pnpm-lock.yaml

# Кеши тестов и артефакты сборки
/.phpunit.cache/
/coverage/
/dist/
/build/
Если агенту действительно понадобится проверить сигнатуру стороннего класса из вендора, он сможет запросить конкретный файл точечно, но не будет загружать сотни мегабайт стороннего кода в системный промпт.

3. Контроль расходов (costLimits)

Параметры warnAtUsd и stopAtUsd страхуют от зацикливания агента. Если при рефакторинге сложной цепочки скриптов агент уйдет в бесконечный цикл правок и перезапуска упавших тестов, сессия автоматически встанет на паузу по достижении лимита, а не высосет весь доступный депозит на аккаунте.

Управление настройками прямо из терминальной сессии

Не обязательно каждый раз открывать конфигурационные файлы в редакторе — базовые параметры и аудит состояния доступны через встроенные slash-команды Claude Code:
  • /config — интерактивный просмотр активных параметров с подсветкой того, из какого именно файла (глобального или проектного) приехало конкретное значение.
  • /cost — детальная сводка по сессии: объем входных/выходных токенов, использование кэша контекста (Prompt Caching) и итоговая стоимость работы в долларах.
  • /compact — принудительное сжатие текущего контекста диалога. Вызывайте, когда задача близится к финалу, но агент начал заметно медленнее отвечать из-за раздутой истории правок.
  • /bug или /doctor — быстрая проверка сетевой связности с API Anthropic, статуса авторизации и корректности прав на файлы настроек.

Итог

Правильная организация конфигов Claude Code строится вокруг трех вещей: безопасный allow-список для автоматизации тестов, жесткий .claudeignore для изоляции тяжелых директорий от расхода токенов и отдельный .claude/settings.local.json под локальные капризы разработчика. Один раз настроив этот каркас в шаблоне репозитория, вы избавляете себя от микроменеджмента терминала на всех последующих задачах.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *