Как настроить Claude Code для команды разработчиков

Один инженер ставит Claude Code себе, настраивает его под свой стиль и получает помощника, который понимает проект с полуслова. Через неделю то же самое делает второй, третий, и у каждого свой набор правил, свои разрешённые команды, свой формат коммитов. Команда из пяти человек превращается в пять разных агентов, которые по-разному трактуют одну и ту же кодовую базу.

Чтобы этого избежать, Claude Code разворачивают как общий контур: единый CLAUDE.md в репозитории, согласованные права на инструменты, разделение секретов между человеком и агентом. Тогда любой разработчик клонирует проект, запускает агента и сразу получает то же поведение, что и остальные. Ниже разберём, что именно положить в общий контур и как раздать доступы, чтобы любой разработчик клонировал проект и получал того же агента, что и остальные.

Быстрый ответ: как развернуть Claude Code на команду

Claude Code от Anthropic читает настройки слоями. Сначала глобальный ~/.claude/CLAUDE.md и ~/.claude/settings.json для всей машины, потом проектный CLAUDE.md и .claude/settings.json из репозитория, потом личный .claude/settings.local.json поверх. Команда фиксирует средний слой в git, и тогда поведение агента перестаёт зависеть от того, кто его запустил.

Что положить в общий CLAUDE.md

Файл CLAUDE.md в корне репозитория — это память проекта, которую агент подгружает в начало каждой сессии. Он задаёт правила, которые иначе пришлось бы повторять в каждом запросе. Чем точнее этот файл описывает реальные договорённости команды, тем меньше агент придумывает от себя.

В работе с инженерными командами я часто вижу одну и ту же картину. Каждый держит правила проекта у себя в голове, новичок выясняет их через ревью и поломанные сборки, а агент каждого человека настроен по-своему. Общий CLAUDE.md переносит эти негласные правила в текст, который читают и люди, и Claude Code.

Раздел CLAUDE.mdЧто туда кладут
АрхитектураКак устроен проект, где границы модулей, какие папки за что отвечают, куда складывать новый код
КомандыКак запустить тесты, линтер, локальный сервер, сборку. Агент берёт их отсюда и перестаёт угадывать
Стиль кодаСоглашения по именованию, формат, запрет на правки сгенерированных файлов, правила импортов
GitФормат коммитов, политика веток, запрет на прямой пуш в основную ветку
ТестыКогда писать тесты, какой охват считается достаточным, что прогонять перед коммитом
ЗапретыЧто агенту закрыто: трогать миграции вслепую, удалять данные, коммитить секреты

Настройка единого контура по шагам

Соберём контур с нуля так, чтобы любой человек в команде получил одинакового агента после клонирования репозитория. Каждый шаг даёт результат, который видно сразу.

  1. Создайте в корне репозитория файл CLAUDE.md и опишите в нём архитектуру, команды запуска, стиль кода и список запретов. Закоммитьте его в git, чтобы он попал ко всем.
  2. Создайте папку .claude в репозитории и внутри неё файл settings.json. В нём перечислите разрешённые команды через секцию permissions: тесты, линтер, сборку, git status. Этот файл тоже коммитится.
  3. Добавьте .claude/settings.local.json в .gitignore. Сюда каждый человек кладёт личные настройки и доступы, которые остаются на его машине.
  4. Вынесите секреты в локальный .env, добавьте его в .gitignore, а в репозиторий положите .env.example с пустыми ключами. Агент видит, какие переменные нужны, а сами значения остаются у владельца.
  5. Опишите MCP-серверы команды в .mcp.json в корне репозитория. Тогда у всех подключатся одни и те же внешние инструменты, а каждый настроит их вручную.
  6. Попросите коллегу с чистой машиной клонировать репозиторий, запустить claude и выполнить типовую задачу. Если агент берёт команды из CLAUDE.md и упирается в те же ограничения, что у вас, контур собран.

Доступы: что разрешить агенту, а что оставить человеку

Доступы решают, насколько агенту можно доверять без присмотра. Claude Code управляет правами через секцию permissions в settings.json: одни команды разрешены без вопросов, другие требуют подтверждения, третьи запрещены совсем. Команда фиксирует безопасный набор в общем файле, и тогда агент у каждого человека действует в одних рамках.

ДействиеКому отдатьПочему так
Запуск тестов, линтера, сборкиАгенту без подтвержденияБезопасные команды, которые агент гоняет десятки раз за сессию
Чтение и правка файлов проектаАгенту без подтвержденияОсновная работа, ради которой его и ставят
git commit и pushАгенту с подтверждениемПолезно, но человек должен видеть, что уходит в историю
Доступ к секретам и ключамТолько человекуКлючи лежат в локальном .env вне git, агент работает через переменные окружения
Деплой на рабочий контурТолько человекуВыкладку в реальную работу запускает человек после проверки
Удаление данных, правка миграцийЗапрет в CLAUDE.mdЦена ошибки слишком высокая, чтобы отдавать это агенту

Как поддерживать контур живым

Контур собирается один раз, а живёт ровно до тех пор, пока команда его обновляет. Проект меняется, появляются новые команды запуска и новые запреты, и если CLAUDE.md отстаёт от реальности, агент начинает действовать по устаревшим правилам.

  • Обновляйте CLAUDE.md в том же коммите, где меняете процесс. Поменяли команду запуска тестов — поправьте файл сразу, а через месяц по жалобе.
  • Проверяйте settings.json на ревью так же, как обычный код. Новое разрешение для агента — это изменение прав, его стоит обсудить.
  • Раз в спринт перечитывайте список запретов. Разрослись опасные команды — добавьте их в запрет до того, как агент туда дотянется.
  • Заведите короткий раздел для новичка: как поставить Claude Code, где взять .env.example, что прочитать перед первой сессией.
  • Собирайте обратную связь от команды. Если агент у кого-то ведёт себя иначе, почти всегда дело в личном settings.local.json, который перекрывает общий.

Единый контур ценен ровно тем, что новый инженер получает то же поведение агента, что и старожил, в первый же день. Команда занимается кодом, а разница в настройках агентов перестаёт быть темой.

Частые вопросы

Где Claude Code ищет CLAUDE.md и в каком порядке применяет настройки?

Claude Code читает настройки слоями. Сначала глобальные файлы для всей машины в ~/.claude, потом проектный CLAUDE.md и .claude/settings.json из корня репозитория, потом личный .claude/settings.local.json поверх остального. Слой ближе к проекту и человеку перекрывает более общий. Команда коммитит средний слой в git, и поведение агента становится одинаковым у всех.

Стоит ли коммитить CLAUDE.md и settings.json в git?

CLAUDE.md и .claude/settings.json коммитятся в репозиторий, потому что именно они задают общий контур. Личный .claude/settings.local.json и .env с секретами держите в .gitignore, чтобы они оставались на машине владельца. Так общие правила едут вместе с кодом, а доступы остаются разделёнными.

Как раздать команде доступы к инструментам безопасно?

Через секцию permissions в общем settings.json. Безопасные команды (тесты, линтер, сборка, чтение файлов) разрешите без подтверждения. Запись в историю git и пуш оставьте с подтверждением. Секреты, деплой на рабочий контур и удаление данных отдайте только человеку, прописав запреты в CLAUDE.md. Тогда агент у каждого человека действует в одних рамках.

Как защититься от внедрения инструкций через входные данные?

Агент читает файлы, веб-страницы и вывод команд, а там встречаются спрятанные инструкции, которые пытаются увести его в сторону. Защита строится на ограничении прав: явный список разрешённых команд в settings.json, подтверждение на запись и пуш, секреты вне досягаемости агента. Даже если в данных лежит ловушка, выполнить опасное действие агент сам уже сможет.

Как подключить общие MCP-серверы для всей команды?

Опишите MCP-серверы в файле .mcp.json в корне репозитория и закоммитьте его. После клонирования у каждого человека подключаются одни и те же внешние инструменты: доступ к базе, трекеру задач, документации. Личные ключи к этим серверам каждый держит у себя в локальных настройках, а сам список инструментов остаётся общим.

Что делать, если агенты у разных инженеров ведут себя по-разному?

Почти всегда причина в локальном слое настроек. Личный settings.local.json или глобальный ~/.claude/settings.json перекрывает общий проектный файл, и человек получает другие права или другие правила. Сверьте локальные настройки с общим контуром, уберите перекрытия, которые там оказались случайно, и поведение выровняется.

Разберём вашу ситуацию на Discovery-созвоне

Один час, бесплатно. Покажем, какие задачи в вашем случае отдать ИИ, а какие оставить людям.

Записаться на Discovery →

← Все статьи