Профиль проекта
Файл .onplate/profile.json лежит рядом с кодом и отвечает на вопрос «что
нужно этому проекту»: какие скиллы, MCP-серверы и субагенты должны быть у
того, кто над ним работает.
Его пишет onplate, а читают люди в диффе pull request. Это и есть главная ценность: договорённость о том, чем пользуется команда, обсуждается там же, где обсуждается всё остальное в проекте — а не в переписке, которая забудется.
Не путать с профилем команды: тот отвечает «кто я в компании», живёт в отдельном репозитории-реестре и ставит глобально.
Что лежит в репозитории
.onplate/
profile.json ← список: имя, версия, checksum, цели
README.md ← «что это за папка» для тех, кто без onplate
files/skills/go-review/SKILL.md ← тело обычным markdown
files/agents/db-migrator.md
Тела скиллов лежат отдельными файлами, а не строками внутри JSON: иначе дифф нечитаем, а ради читаемого диффа всё и затевалось. MCP-сервер — исключение: у него нет свободного текста, только десять строк конфига, и он едет прямо в манифесте.
Собрать профиль
В разделе Команда → Поделиться с командой.
- Выберите папку проекта. В списке уже те, где вы работали.
- Отметьте, чем делитесь. Список разбит на три группы: уже в этом проекте (отмечено заранее), стоит у вас глобально, остальное хранилище под поиском. «Стоит глобально» — обычный первый шаг: личная настройка становится командной.
- Внизу — сумма в токенах: «профиль добавит N токенов в контекст каждому». Столько будет весить набор у каждого коллеги при каждом запросе. Хороший профиль — 5–10 записей, а не всё подряд.
- Показать, что запишем — сам JSON до записи.
- Записать в репозиторий.
onplate покажет путь и команду:
git add .onplate && git commit -m "onplate: профиль проекта"
Коммитит и пушит человек, не onplate. Дальше — обычный pull request.
Применить профиль
Коллега делает git pull. При следующем запуске onplate на
дашборде появляется карточка «Профиль проекта ждёт» с
этой папкой. Раздела в меню нет намеренно: раздел требовал бы помнить, что
такая возможность существует.
onplate проверяет только те папки, которые уже знает — проекты Claude Code и корни сканирования из настроек. По диску в поисках репозиториев он не ходит.
Кнопка Посмотреть открывает план — что получится, до того как что-либо изменится:
| Класс | Что значит | Действие по умолчанию |
|---|---|---|
| нет у вас | ни в хранилище, ни в проекте | поставить |
| в профиле новее | у вас старая версия | обновить |
| совпадает | всё как надо | ничего |
| у вас новее | ваша версия свежее | ничего не откатывать |
| расхождение | версия та же, содержимое разное | оставить своё |
| одно и то же | разное происхождение, одинаковые байты | склеить |
| имя занято | другая вещь под тем же именем | переименовать своё |
| нельзя применить | нет нужного AI, запись в корзине | пропустить |
Установка идёт в этот проект, а не глобально. Цели сужаются под вашу машину: если у вас только Codex, запись «claude + codex» не будет висеть вечной недостачей.
Три решения, которые стоит знать
Локально новее — не откатывается никогда. Откат чужой кнопкой отбирает работу, которую вы только что сделали. Вместо этого предлагается отправить своё в профиль.
Расхождение приезжает следующей версией. Если вы правили скилл, а в профиле та же версия с другим содержимым, «взять из профиля» добавит 1.3.1, а не затрёт 1.3.0. Ваше тело остаётся в истории, а расхождение становится видимым вместо тихого исчезновения.
Опасное не применяется молча. Класс остаётся честным, но действие по умолчанию — пропустить. Вы включаете запись сами, увидев обоснование, которое автор написал в файле.
Ваш отказ запоминается: следующий git pull не переспросит.
Секреты и доверие
В файл едут только имена секретов. Значение, в котором сканер видит учётные данные, onplate записать откажется — подменит требуемым секретом и объяснит, что и почему. Токен, случайно вписанный в обычную переменную окружения, — самый простой способ навредить себе такой функцией, поэтому здесь запрет, а не совет.
Профиль не может нести ничего исполняемого: только скиллы, MCP-серверы и субагентов. Ни хуков, ни команд, ни скриптов после установки.
Что не делается
- Не удаляется то, что стоит в проекте сверх профиля — только подсвечивается.
- Не применяется само: запись в чужие конфиги AI требует человека.
- Не тянется по ссылке: записи с источником в git или на площадке читаются и показываются, но применяются как «нельзя применить». Всё, что написано внутри команды, переносится значением — это основной случай.