Як стати постачальником

Як стати постачальником

Каталог «Прокачай свій ШІ» збирає скіли й правила з публічних репозиторіїв на 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/;
  • у файлах немає секретів, токенів, внутрішніх адрес чи персональних даних.

Як опублікувати

  1. Зберіть позицію в ufo-tech.ai/ свого репозиторію. Це зробить за вас скіл Автор скілів для каталогу UFO Tech: він знає всі вимоги цієї сторінки.
  2. Увійдіть на сайт через GitHub.
  3. Встановіть GitHub App каталогу на репозиторії, які хочете опублікувати. Застосунок отримує доступ до їхнього вмісту лише на читання і повідомляє каталог про кожен push.
  4. Зробіть 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. Причину ви побачите в кабінеті.