Как настроить 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 | Формат коммитов, политика веток, запрет на прямой пуш в основную ветку |
| Тесты | Когда писать тесты, какой охват считается достаточным, что прогонять перед коммитом |
| Запреты | Что агенту закрыто: трогать миграции вслепую, удалять данные, коммитить секреты |
Настройка единого контура по шагам
Соберём контур с нуля так, чтобы любой человек в команде получил одинакового агента после клонирования репозитория. Каждый шаг даёт результат, который видно сразу.
- Создайте в корне репозитория файл CLAUDE.md и опишите в нём архитектуру, команды запуска, стиль кода и список запретов. Закоммитьте его в git, чтобы он попал ко всем.
- Создайте папку .claude в репозитории и внутри неё файл settings.json. В нём перечислите разрешённые команды через секцию permissions: тесты, линтер, сборку, git status. Этот файл тоже коммитится.
- Добавьте .claude/settings.local.json в .gitignore. Сюда каждый человек кладёт личные настройки и доступы, которые остаются на его машине.
- Вынесите секреты в локальный .env, добавьте его в .gitignore, а в репозиторий положите .env.example с пустыми ключами. Агент видит, какие переменные нужны, а сами значения остаются у владельца.
- Опишите MCP-серверы команды в .mcp.json в корне репозитория. Тогда у всех подключатся одни и те же внешние инструменты, а каждый настроит их вручную.
- Попросите коллегу с чистой машиной клонировать репозиторий, запустить 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 →