✻ Claude Code по-русски
🎧 Аудиокурс
🎧 Озвучка этой страницы готовится.

#Поделитесь настройкой с командой

Продвинутый уровень · Урок 6 из 7 · около 20 минут · Нужно: GitHub Actions · Сверено с Claude Code v2.1.285 (stable) 09.10.2026

#Цель

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

#Что понадобится

#Идея

То, что должно быть у всех, коммитится: .claude/settings.json, CLAUDE.md, .claude/rules/, скиллы, агенты и .mcp.json (Explore the .claude directory). Личное остаётся вне git: .claude/settings.local.json, который в той таблице не помечен для коммита, и CLAUDE.local.md (What's not shown). Ваш локальный файл старше общего, так что коллега может переопределить настройку команды для себя без коммита, хотя списки вроде правил разрешений, напротив, объединяются (Settings files and precedence).

Плагин передаёт команде скиллы, агентов и хуки одним целым (Create a Claude Code plugin), а маркетплейс — это папка, в которой .claude-plugin/marketplace.json перечисляет плагины (Create a marketplace). Закоммитьте маркетплейс внутри репозитория, объявите его в extraKnownMarketplaces по относительному пути directory и включите его плагин в enabledPlugins. Каждый коллега получает плагин, как только принимает диалог доверия для папки (Manage Claude Code plugins for your organization), и ничего не устанавливает: плагин, указанный по относительному пути, загружается прямо из маркетплейса (Plugin loading reference).

#Разбор примера

Коллеги постоянно спрашивают, как устроена настройка Claude Code в репозитории. Поделитесь со всеми, кто клонирует репозиторий, скиллом, который это объясняет.

  1. В корне репозитория скачайте пример маркетплейса из этого руководства в team-marketplace/. Прочитайте каждый файл, прежде чем коммитить:
base=https://raw.githubusercontent.com/wesammustafa/Claude-Code-Everything-You-Need-to-Know/main/examples/advanced/06-share-your-setup
curl -fsSL --create-dirs "$base/dot-claude-plugin/marketplace.json" -o team-marketplace/.claude-plugin/marketplace.json
for f in plugins/team-kit/.claude-plugin/plugin.json plugins/team-kit/skills/onboard/SKILL.md plugins/team-kit/agents/config-reviewer.md; do
  curl -fsSL --create-dirs "$base/$f" -o "team-marketplace/$f"
done

Маркетплейс team-tools содержит один плагин, team-kit, по относительному пути ./plugins/team-kit. В плагине есть скилл onboard, который велит Claude объяснить общую настройку репозитория, не меняя файлов, и субагент config-reviewer, который может только читать и искать. Руководство хранит файл маркетплейса в папке dot-claude-plugin/, чтобы его собственный репозиторий не мог работать как маркетплейс; первый curl сохраняет его как .claude-plugin/marketplace.json — по пути, который использует маркетплейс (Create a marketplace). 2. Провалидируйте маркетплейс, затем плагин:

claude plugin validate ./team-marketplace
claude plugin validate ./team-marketplace/plugins/team-kit --strict

Каждый запуск заканчивается строкой ✔ Validation passed (Create a marketplace). Валидация маркетплейса проверяет его файл и записи, но не открывает файлы скиллов и агентов перечисленных плагинов (Validate a directory), поэтому второй запуск валидирует папку плагина, а --strict превращает предупреждения в ошибки (Plugin commands reference). 3. Поделитесь им через .claude/settings.json. Добавьте эти ключи рядом с ключами из уроков Среднего уровня; если enabledPlugins уже есть со времён урока 8, добавьте в него строку team-kit:

"extraKnownMarketplaces": {
  "team-tools": {
    "source": { "source": "directory", "path": "./team-marketplace" }
  }
},
"enabledPlugins": {
  "team-kit@team-tools": true
}

Ключ в extraKnownMarketplaces — это name маркетплейса (Manage Claude Code plugins for your organization), а id плагина — <entry name>@<marketplace name>, здесь team-kit@team-tools (Entry name and manifest name). Источник directory указывает локальную папку в path (All settings). Относительный path разрешается от основного checkout репозитория, так что сессия в worktree загружает team-marketplace/ основного checkout (Require plugins per repository). Файл settings.snippet.json из примера содержит те же ключи плюс правило deny для .env — для репозитория, где его ещё нет. 4. Закоммитьте и то и другое:

git add team-marketplace .claude/settings.json
git commit -m "Share the team's Claude Code setup"

Если git сообщает, что путь игнорируется, git check-ignore -v <path> покажет совпавшее правило; добавьте путь через git add -f, как в уроке 1 Среднего уровня. 5. Запустите claude в корне репозитория и примите диалог доверия, если он появится. После старта сессии Claude Code регистрирует маркетплейс, объявленный в ваших настройках, и загружает из него team-kit без всякой команды установки (Plugin loading reference). Наберите /team-kit:, чтобы увидеть скилл плагина (Interactive mode), затем выполните /team-kit:onboard (Add components to a plugin). Claude прочитает закоммиченную настройку и объяснит, что репозиторий делает общим, а что остаётся личным; формулировки у вас будут другими. Если по ходу он попросит запустить команду, убедитесь, что она только читает файлы, и одобрите. Субагент тоже загружается — как team-kit:config-reviewer (Add components to a plugin): наберите @ и выберите его в подсказках, где он значится под этим именем, чтобы вызвать (Create custom subagents). 6. Отключите плагин только для себя. Добавьте этот ключ в .claude/settings.local.json рядом с настройкой песочницы, которую туда сохранил урок 4 Среднего уровня; если enabledPlugins там уже есть, добавьте в него строку team-kit. Если создаёте файл, оберните ключ в { }:

"enabledPlugins": {
  "team-kit@team-tools": false
}

Сохраните файл и выполните /reload-plugins (Plugin commands reference). /team-kit:onboard исчезнет из вашей сессии, а закоммиченный файл по-прежнему включает плагин для всех остальных: ваш локальный файл старше проектного (All settings). Если скилл всё ещё в списке, снова выполните /reload-plugins или начните новую сессию: изменение настроек доходит до загруженных плагинов только после перезагрузки или при следующем старте (Plugin loading reference). Затем удалите эту запись, сохраните файл и снова выполните /reload-plugins. Если git status показывает .claude/settings.local.json, не коммитьте его: в задании «Ваша очередь» вы добавите его в .gitignore.

#Ваша очередь

Задание: перенесите одну часть своей настройки Среднего уровня в team-kit, чтобы все, кто клонирует репозиторий, получали её из плагина. Возьмите скилл, например tdd из урока 1 Среднего уровня, или субагента, например test-gaps из урока 6. Для задачи посложнее возьмите хук из урока 5: его запись идёт в hooks/hooks.json плагина в том же виде, что и в файле настроек, а скрипт лежит внутри плагина и вызывается через ${CLAUDE_PLUGIN_ROOT} (Add components to a plugin).

Критерии приёмки:

Поскольку team-kit указан в маркетплейсе на вашем диске по относительному пути, Claude Code загружает его на месте: правка в team-marketplace/ вступает в силу при следующем старте сессии или после /reload-plugins, без смены версии (Plugin loading reference). Проверка Среднего уровня для переносимого компонента читает его из .claude/, поэтому после переноса она падает; это ожидаемо.

#Проверка

Урок пройден, когда выполнено всё это:

Запустите npm run check -- a-6 --dir <your repo> из своей копии для практики.

Если не проходит первый пункт, выполните claude plugin validate ./team-marketplace и сравните name записи с plugin.json плагина; папка, всё ещё называющаяся dot-claude-plugin/, не станет маркетплейсом, пока вы не переименуете её в .claude-plugin/. Если не проходит второй, проверьте, что ключ в extraKnownMarketplaces — это name маркетплейса, что path относительный, например ./team-marketplace, и что значение плагина — true, а не "true". Если не проходит третий, выполните git status: оригинал может всё ещё быть закоммичен в .claude/, или копия в плагине ещё не закоммичена. Если не проходит четвёртый, выполните git rm --cached для отслеживаемого файла, добавьте обе строки в .gitignore и закоммитьте. Если не проходит пятый, снова запустите строгую валидацию из корня репозитория и сохраните отчёт после того, как она пройдёт.

#Осторожно

#Что дальше


Источники: Settings files and precedence · Explore the .claude directory · Create a Claude Code plugin · Manage Claude Code plugins for your organization · Plugin loading reference · Create a marketplace · Plugin commands reference · All settings · Add components to a plugin · Create custom subagents · Interactive mode · Plugin security and trust · Configure permissions

← GitHub Actions · Оглавление Продвинутого уровня · Ограничьте автономные запуски → · Тема: Плагины · Застряли на уроке?