Як стати постачальником
Каталог «Прокачай свій ШІ» збирає скіли й правила з публічних репозиторіїв на GitHub. Ваші файли лишаються у вашому репозиторії. Каталог читає його після кожного push, показує опис позицій, а файли для встановлення збирає сам: під агента й місце встановлення, з контрольними сумами SHA-256.
Вимоги
- публічний репозиторій на GitHub;
- відкрита пермісивна ліцензія репозиторію:
MIT,Apache-2.0,BSD-2-Clause,BSD-3-Clause,ISC,0BSD,MIT-0,UnlicenseабоCC0-1.0. Копілефт-ліцензії (GPL, AGPL) не приймаються. Ліцензію визначає GitHub за файломLICENSE; - позиції лежать у теці
ufo-tech.ai/; - у файлах немає секретів, токенів, внутрішніх адрес чи персональних даних.
Як опублікувати
- Зберіть позицію в
ufo-tech.ai/свого репозиторію. Це зробить за вас скіл Автор скілів для каталогу UFO Tech: він знає всі вимоги цієї сторінки. - Увійдіть на сайт через GitHub.
- Встановіть GitHub App каталогу на репозиторії, які хочете опублікувати. Застосунок отримує доступ до їхнього вмісту лише на читання і повідомляє каталог про кожен push.
- Зробіть push в основну гілку. Каталог прочитає репозиторій одразу. Позиції з'являються, щойно проходять перевірки, а пропущені позиції разом із причиною видно у вашому кабінеті.
Структура
Каталог читає лише теку ufo-tech.ai/. Вкладеність усередині може бути будь-якою: сканер зупиняється на першій теці, де є manifest.yaml, і ця тека — одна позиція.
ufo-tech.ai/
├── skills/my-skill/
│ ├── manifest.yaml
│ ├── README.en.md # обов'язковий
│ ├── README.uk.md # за бажанням, по файлу на кожну мову
│ ├── shared/ # спільне для всіх агентів (за бажанням)
│ ├── claude/SKILL.md
│ └── codex/SKILL.md
└── rules/my-rule/
├── manifest.yaml
├── README.en.md
└── universal/my-rule.md # саме правило, один файл для всіх агентів
- Варіанти — теки з назвами агентів:
claude(Claude Code),codex(Codex).universalу правила встановлюється для всіх агентів, а в скіла — лише читається за посиланням. shared/— файли, спільні для всіх варіантів. Під час встановлення вони додаються до кожного варіанта, тож копіювати їх не треба.- Обов'язкові файли: валідний
manifest.yaml, хоча б одна тека варіанта,SKILL.mdу кожному варіанті скіла (у правила — хоча б один.md) іREADME.en.md. Позицію без чогось із цього каталог пропускає, а решта позицій репозиторію публікується.
manifest.yaml
version: 1.0 # версія формату маніфесту
name: vendor/my-skill # vendor/назва, латиниця в kebab-case; після публікації не змінюється
type: skill # skill | rule
title:
en: English title # англійська обов'язкова
uk: Назва українською # інші мови — за бажанням
summary:
en: One or two sentences — what it does and when it helps.
uk: Одне-два речення — що робить і коли корисно.
authors: # як у composer.json
- name: some name
email: you@example.com # необов'язково; ніде не показується
support: # як у composer.json
source: https://github.com/vendor/ai-skills
issues: https://github.com/vendor/ai-skills/issues
tags: [php, symfony]
platforms: [macos, linux] # необов'язково; лише звужує платформи, визначені за скриптами
Якщо перекладу мовою сторінки немає, каталог показує позицію англійською з позначкою.
Vendor і автори
- Vendor закріплюється за GitHub-акаунтом, який першим опублікував позицію з ним. Інших мейнтейнерів, наприклад колег з організації, додає наявний мейнтейнер у кабінеті. Позицію з чужим vendor не буде прийнято.
- Автори — той, хто додав позицію, і співавтори, яких він вказав у кабінеті. Ім'я та аватар беруться з GitHub. Співавтор отримує запит на підтвердження, а якщо ще не заходив на сайт, то й лист із запрошенням.
- Автори з маніфесту теж показуються на сторінці позиції. Верифікованим із посиланням автор стає лише тоді, коли
emailз маніфесту збігається з його акаунтом і він сам підтвердив авторство у своєму кабінеті. Інакше показується лише ім'я.
Версії
Поля версії в маніфесті немає. Каталог читає основну гілку репозиторію і теги semver:
- тег репозиторію
v1.2.3дає версію1.2.3кожній позиції, файли якої змінилися з її попередньої версії; позиції без змін зберігають свою; - тег позиції
<name>@1.2.3, наприкладmy-skill@1.2.0, так само версіонує одну позицію; - зміна в основній гілці без тегу стає версією
YYYY.MM.DD.<hash>: дата й короткий хеш коміту. У переліку показується лише остання така версія, і лише поки після неї немає тегу; - pre-release (
1.3.0-beta.1) є в переліку, але за замовчуванням не встановлюється; - номер видаленого тегу лишається зайнятим: він показується перекресленим, а повторний тег з тим самим номером ігнорується з поясненням у кабінеті.
За замовчуванням встановлюється остання версія з тегом, а якщо тегів немає — остання згенерована. Користувач може обрати будь-яку доступну версію на сторінці позиції або назвати її агенту.
Платформи й заповнювачі
- Платформи визначаються за скриптами позиції: лише
.sh→ macOS і Linux, лише.ps1→ Windows, обидва або жодного → усі платформи. Полеplatformsможе лише звузити цей перелік. Каталог фільтрує позиції за платформами. - Назву скіла й теку встановлення не пишіть самі. Їх знає лише сайт у момент завантаження. У текстових файлах використовуйте заповнювачі, і сайт підставить значення під агента й місце встановлення:
| Заповнювач | Значення |
|---|---|
{{ufo.skill_name}} |
назва теки скіла в агенті, з vendor |
{{ufo.skill_dir}} |
тека встановлення для обраного агента й місця |
{{ufo.agent}} |
агент: claude, codex, … |
{{ufo.scope}} |
project або global |
У SKILL.md пишіть name: {{ufo.skill_name}}. У README позиції можна використовувати лише {{ufo.skill_name}}. Невідомий заповнювач {{ufo.*}} робить позицію невалідною. Повна специфікація — у reference.md репозиторію UFO-Tech/ai-skills.
Перевірки й кабінет
Під час кожного читання репозиторію каталог перевіряє:
- ліцензію репозиторію;
- маніфест і обов'язкові файли;
- заповнювачі;
- чи немає у файлах схожого на секрети;
- розмір позиції.
Позиція, що не пройшла перевірку, не публікується, а причину видно в кабінеті. Там же видно статус останнього оновлення кожного репозиторію.
Оцінки, скарги, модерація
- Відвідувачі, що увійшли через GitHub, ставлять позиціям лайк чи дизлайк. Мейнтейнери vendor не оцінюють власні позиції.
- Відвідувачі, що увійшли через GitHub, можуть поскаржитися на позицію. Позиція зі скаргою лишається в каталозі з позначкою «на перевірці», її переглядає модератор. Позицію, на яку поскаржилися як на шкідливу, приховують до завершення перевірки.
- Модератор може приховати позицію, усі позиції vendor або заблокувати vendor. Причину ви побачите в кабінеті.