- Python 100%
| .claude-plugin | ||
| tools | ||
| ONBOARDING.md | ||
| README.md | ||
Маркетплейс скиллов Yango — каталог
Общее место для скиллов Claude Code команды Yango. Больше не пересылаем файлы в Telegram: скилл лежит в одном экземпляре, и каждый забирает актуальную версию командой, а не из чата.
Всё живёт на внутреннем Forgejo (git.nercy.org) на Yango-сервере — внутри
NDA-контура, оба репозитория приватные, публичных облачных копий нет.
Хочешь просто пользоваться: ONBOARDING.md — 4 шага.
Два репозитория, а не один
| Репозиторий | Что внутри | Кто трогает |
|---|---|---|
yango/skills-marketplace (этот) |
только каталог: marketplace.json + документация, килобайты |
тот, кто добавляет новый скилл в список |
yango/skills |
сам контент скиллов, ~130 МБ | все, кто правит свои скиллы |
Разделение вынужденное и важное. /plugin marketplace add клонирует репозиторий
каталога целиком и имеет жёсткий таймаут 120 секунд. Аплинк сервера ~0.5 МБ/с,
поэтому полный клон контента идёт 3.5 минуты — маркетплейс просто не
добавлялся бы, у всех и всегда.
Поэтому каталог вынесен отдельно и весит килобайты: add отрабатывает за
секунды. А записи в нём указывают на контент источником git-subdir — при
установке скилла Claude Code делает разреженный частичный клон только его
подпапки. Побочный выигрыш: Физза, которой нужны только карусели, не качает
презентационные шаблоны.
Что здесь есть
| Скилл | Что делает | Photo-search |
|---|---|---|
yango-group-design |
Презентации и веб в зонтичном бренде Yango Group | — |
yango-tech-design |
Дизайн-система Yango Tech 2025 (продуктовый бренд) | — |
yango-group-deck |
Преза Группы в СТРОГОМ официальном шаблоне | да |
yango-group-deck-live |
То же, но все фото подбираются под тему слайда | да |
yango-group-carousel-reel |
Instagram-карусели и обложки Reels (YANGOGROUP-303) | — |
reels-scriptwriter |
Сценарии Reels и каруселей, серия «Первооткрыватель» | — |
podcast-content-factory |
Транскрипции подкастов → карусели и сценарии (черновик) | — |
yango-skills-sync |
Забрать свежие версии скиллов: «коллеги обновили, подгрузи» | — |
yango-skills-publish |
Выложить свой скилл команде (обратная операция к sync) | — |
yango-group-design и yango-tech-design — разные бренды, а не версии
одного скилла. Group — зонтичный, Tech — продуктовый (tech.yango.com). Раньше
теховский назывался просто yango-design, из-за чего их путали; здесь он
переименован в yango-tech-design.
Почему deck и deck-live — плагины, а остальные просто скиллы
Обычный скилл — это папка с SKILL.md, её достаточно перечислить здесь со
strict: false. Но yango-group-deck и yango-group-deck-live ходят в
медиабиблиотеку через Yango Photo-search MCP. Если оставить коннектор отдельным
шагом настройки, человеку пришлось бы руками прописывать MCP-сервер и токен.
Поэтому они упакованы полноценными плагинами: plugin.json объявляет
mcpServers, а userConfig заставляет Claude Code один раз спросить токен при
включении и подставить его в заголовок авторизации. Для человека это один шаг
вместо двух.
Photo-search нужен именно этим двум — проверено по коду скиллов. У
yango-group-carousel-reel MCP упомянут только как происхождение примеров в
репозитории, в рантайме он туда не ходит, поэтому в плагин его заворачивать
незачем.
Скиллы .skill-архивами не кладём. Этот формат нужен Claude.ai и Cowork
(кнопка «Save skill»); тулинг Claude Code работает с папками напрямую, и архив
был бы лишним слоем — он ещё и прячет diff при обновлении.
Добавить или обновить скилл
Руками этого делать не надо — есть скилл yango-skills-publish: «залей этот
скилл в маркетплейс». Он держит порядок, который здесь легко нарушить: сперва
контент, потом каталог (наоборот — и у коллеги установка падает Source path does not exist), разреженный клон вместо полного, отказ публиковать plugin.json с
полем version. Механика — в skills/yango-skills-publish/publish.py репозитория
контента.
Если всё же вручную:
- Положи папку скилла в
yango/skills— вskills/<имя>/(или вplugins/<имя>/, если ему нужен MCP-сервер). Разреженным клоном:git clone --filter=blob:none --sparse+git sparse-checkout set <путь>. - Добавь запись сюда, в
.claude-plugin/marketplace.json, по образцу соседних. Обычному скиллу нужныstrict: falseиskills: ["./"]; плагину — нет, у него это уже описано в егоplugin.json. - Проверь до пуша:
claude plugin validate . --strict.
Поле version в записях и в plugin.json намеренно не заполняем. Закреплённая
version замораживает плагин: Claude Code видит ту же строку и держит кэш, сколько
бы коммитов ни пришло. Без неё версией становится SHA коммита, и обновления
доезжают сами. validate --strict из-за этого предупреждает про отсутствующую
версию — так и надо, чинить нечего.
Шпаргалка PDF-кой
tools/build-onboarding-pdf.py собирает ONBOARDING.md в
PDF — в фирменной типографике, шрифты подтягиваются из уже установленного
yango-group-design. Нужно это затем, что новому человеку шпаргалку надо отдать
до того, как у него появился доступ, а значит она должна ездить отдельным
файлом.
Сам PDF в репозиторий не кладём: каждая пересборка добавляла бы в историю ещё
пару сотен килобайт навсегда, а этот репозиторий клонируется целиком у каждого,
кто делает marketplace add. Собирается он за секунду — проще собрать, чем
хранить.