К содержимому
# skill
[Home](/ru/ai)
[Catalog](/ru/ai/catalog)
Skill-компоненты: повторяемые workflows для агента, отдельно от Agent Skill CLI.
## Pages
[Главная](/ru/ai/docs)
### Быстрый старт
[Быстрый старт](/ru/ai/docs/quickstart)
[Для человека](/ru/ai/docs/quickstart/human)
[Для ИИ-агента](/ru/ai/docs/quickstart/agent)
[Харнессы](/ru/ai/docs/harnesses)
[Понятия](/ru/ai/docs/concepts)
[Каталог](/ru/ai/docs/catalog)
### CLI
[CLI](/ru/ai/docs/cli)
[Карта команд](/ru/ai/docs/cli/commands)
[Наблюдение](/ru/ai/docs/cli/observe)
[Конфигурация](/ru/ai/docs/cli/config)
[Телеметрия](/ru/ai/docs/cli/telemetry)
[Устройство](/ru/ai/docs/cli/device)
[Паспорта](/ru/ai/docs/cli/passport)
[Вход](/ru/ai/docs/cli/auth)
[Согласие](/ru/ai/docs/cli/consent)
[Проект](/ru/ai/docs/cli/project)
[Toolchain](/ru/ai/docs/cli/toolchain)
[Harness](/ru/ai/docs/cli/harness)
[Agent Skill CLI](/ru/ai/docs/cli/skill)
[Реестр](/ru/ai/docs/cli/registry)
#### Компонент
[Обзор](/ru/ai/docs/cli/component)
[Обнаружение](/ru/ai/docs/cli/component-discover)
[Паспорт](/ru/ai/docs/cli/component-passport)
[Источник](/ru/ai/docs/cli/component-source)
[Публикация](/ru/ai/docs/cli/component-publish)
[Выбор](/ru/ai/docs/cli/select)
[Установка](/ru/ai/docs/cli/install)
[Target](/ru/ai/docs/cli/target)
[Setup](/ru/ai/docs/cli/setup)
[Provider](/ru/ai/docs/cli/provider)
[Синхронизация](/ru/ai/docs/cli/sync)
[Доступ](/ru/ai/docs/cli/grant)
[Жалобы](/ru/ai/docs/cli/report)
[Owner](/ru/ai/docs/cli/owner)
[Publication](/ru/ai/docs/cli/publication)
[Eval](/ru/ai/docs/cli/eval)
### Веб
[Веб](/ru/ai/docs/web)
[Главная](/ru/ai/docs/web/home)
[Каталог](/ru/ai/docs/web/catalog)
[Карточка компонента](/ru/ai/docs/web/catalog-component)
[Карточка сетапа](/ru/ai/docs/web/catalog-setup)
[Региональные сервисы](/ru/ai/docs/web/services)
[Издатели](/ru/ai/docs/web/publishers)
[Content](/ru/ai/docs/web/content)
[Эта документация](/ru/ai/docs/web/docs)
[Контакт](/ru/ai/docs/web/contact)
[Правовые документы](/ru/ai/docs/web/legal)
[Вход](/ru/ai/docs/web/login)
[Аккаунт](/ru/ai/docs/web/account)
[Профиль](/ru/ai/docs/web/profile)
[Устройства](/ru/ai/docs/web/devices)
[Объекты](/ru/ai/docs/web/objects)
[Доступ](/ru/ai/docs/web/access)
[Жалобы](/ru/ai/docs/web/reports)
[Лайки](/ru/ai/docs/web/likes)
[Онбординг](/ru/ai/docs/web/onboarding)
[Публикация](/ru/ai/docs/web/publications)
### Компоненты
[Компоненты](/ru/ai/docs/components)
[instruction](/ru/ai/docs/components/instruction)
[skill](/ru/ai/docs/components/skill)
[mcp](/ru/ai/docs/components/mcp)
[hook](/ru/ai/docs/components/hook)
[command](/ru/ai/docs/components/command)
[agent](/ru/ai/docs/components/agent)
[plugin](/ru/ai/docs/components/plugin)
[setting](/ru/ai/docs/components/setting)
[Сетапы](/ru/ai/docs/setups)
### Публикация
[Публикация](/ru/ai/docs/publishing)
[Авторство](/ru/ai/docs/publishing/authoring)
### Доверие и безопасность
[Обзор](/ru/ai/docs/trust-and-safety)
[Проверки безопасности](/ru/ai/docs/security-checks)
[Диагностика](/ru/ai/docs/troubleshooting)
[cli](/ru/ai/docs/components/cli)
## Content
# `skill` `skill` — переносимый агентский workflow. Обычно он содержит `SKILL.md`, инструкции, references, assets и иногда scripts, которые помогают агенту выполнить специализированную задачу без угадывания процесса. Skill отвечает на вопрос: **как агент должен делать этот класс задач?** Он не отвечает «какой именованный shortcut набрать?» (`command`), «какой внешний tool подключён?» (`mcp`) и «какой пакет расширяет харнесс?» (`plugin`). !!! warning "Два разных объекта с именем skill" Эта страница — **вид компонента** `skill`, который входит в сетап. CLI также поставляет один канонический Agent Skill, который учит агента управлять самим `ai-stp`. Этот объект ставится командой [`ai-stp skill install`](../cli/skill.md), проверяется через `ai-stp skill status` и снимается через `ai-stp skill remove`. Это **не** компонент каталога, его **не** выбирают в сетап, и `ai-stp component skill validate` — **не** этот установщик. | Объект | Семейство команд | Живёт в сетапе? | | --- | --- | --- | | Вид `skill` (эта страница) | `component …`, `select`, `install` | да | | CLI Agent Skill | `ai-stp skill install` / `status` / `remove` | нет | ## Соседи | Вид | Главное отличие | | --- | --- | | `instruction` | даёт общие правила и контекст и не обязан описывать workflow | | `command` | запускается как именованный shortcut, а skill активируется по смыслу задачи | | `plugin` | расширяет сам харнесс, а skill расширяет рабочее поведение агента | | `mcp` | даёт инструментальный интерфейс, а skill объясняет, когда и как им пользоваться | | `hook` | срабатывает на событии жизненного цикла, а skill ждёт, пока его выберут для задачи | | `agent` | называет роль, которая может использовать несколько skills; skill — процедура, не роль | | `setting` | хранит параметры, а не workflow | Выбирайте `skill`, когда агент должен следовать повторяемой процедуре с сопроводительными файлами. Выбирайте `instruction`, когда нужны только постоянные правила. Выбирайте `command`, когда человек или агент должен вызвать работу по имени. ## Рекомендуемая структура пакета Из закрытых видов независимая спецификация есть только у `skill`: Agent Skills Specification. `SKILL.md` должен лежать в **корне пакета**. Обёртка `payload/SKILL.md` не соответствует стандарту для любого читателя, который реализует спецификацию, а не локальный layout. ```text playwright-checks/ ├── SKILL.md обязательно: YAML frontmatter и инструкции ├── scripts/ необязательно, по соглашению ├── references/ необязательно, по соглашению ├── assets/ необязательно, по соглашению ├── evals/ допустимое расширение; в отчёте отдельно └── tests/ допустимое расширение; не отказ ``` Имя каталога должно совпадать с полем `name` во frontmatter. Когда вы начинаете из `ai_stp`, стартуйте intent `author`. Не набирайте `component scaffold plan`. Авторский каталог шире опубликованного пакета: `discover` / `adopt` переносят `source/` для portable и `projections/<harness>/` для конкретного харнесса, а не всё дерево. ```text playwright-checks/ # component-scaffold/6 ├── .ai-stp-template.json ├── .gitignore ├── README.md ├── component-passport.json ├── eval-profile.json └── source/ └── SKILL.md ``` Повседневное авторство: ```bash ai-stp task start --intent author --idempotency-key author-session-01 --json ``` Expert recovery (уже есть digest): ```text ai-stp component scaffold plan \ --type skill \ --language none \ --harness portable \ --name playwright-checks \ --output ./playwright-checks \ --json ai-stp component scaffold apply \ --type skill \ --language none \ --harness portable \ --name playwright-checks \ --output ./playwright-checks \ --expected-plan-digest <digest> \ --json ``` `--language` для skill — `none`. Вид декларативный. ### Frontmatter, который примет валидатор | Поле | Обязательно | Ограничение | | --- | --- | --- | | `name` | да | 1–64 символа; строчные буквы, цифры и дефисы; не начинается и не заканчивается дефисом; без двойных дефисов; совпадает с именем каталога | | `description` | да | 1–1024 символа, непустое | | `license` | нет | стандарт не задаёт дополнительного лимита | | `compatibility` | нет | 1–500 символов | | `metadata` | нет | отображение строк в строки | | `allowed-tools` | нет | строка через пробел; experimental | Ключ верхнего уровня, который стандарт не определяет, сообщается как `SK033`. Свойства конкретного клиента кладите в `metadata`. Тело после frontmatter на формат не проверяется: спецификация говорит, что ограничений формата нет. Проверяйте форму установленного пакета, а не авторское дерево: ```bash ai-stp component skill validate --path ./playwright-checks/source --json ``` Команда только читает. Она называет каждое отклонение кодом `SKxxx`. Она не делает adopt, не публикует и не пишет target. ## Стандарты и фреймворки - [Agent Skills Specification](https://agentskills.io/specification) — независимый стандарт. `ai-stp component skill validate` реализует эту границу, а не внутренний стиль дома. - Сканеры безопасности, которые используются при публикации, если доступны: [NVIDIA SkillSpector](https://github.com/NVIDIA/SkillSpector) и [Cisco Skill Scanner](https://github.com/cisco-ai-defense/skill-scanner). Недоступный движок никогда не становится прохождением. См. [Проверки безопасности](../security-checks.md). Не выдумывайте дополнительные поля frontmatter только потому, что их показывает UI харнесса. Заметки, специфичные для харнесса, кладите в `metadata`. ## Нативные layout по харнессам Discovery сообщает только объявленные layout. Точные пути на машине даёт конверт intent `author`. У каждой находки есть `layout_source` — официальный документ, который объявил layout. Если классификация неясна, покажите это поле; не угадывайте путь соседа. Из матрицы discovery: | Харнесс | Global | Project | Что есть в контракте discovery | | --- | --- | --- | --- | | Claude Code | да | да | в `skills/` каталог с `SKILL.md` — это skill; каталог с `.claude-plugin/plugin.json` или `plugin.json` — это **plugin** | | Codex | общий skill | общий skill | общие `.agents/skills` не принадлежат харнессу (`harness_id=null`) | | Pi | да | да | | | OpenCode | да | да | | | Grok Build | да | да | | | Cursor | через plugin pack | через plugin pack | skills читаются внутри доказанного пакета `.cursor-plugin/plugin.json` | | Antigravity | да | да | | | `undefined` | переносимые соглашения | переносимые соглашения | это не харнесс; автоматическая установка не считается безопасной | Общие `.agents/skills` возвращаются один раз, а не дублируются под каждым совместимым харнессом. `nori.json` Nori или `.agents/.skill-lock.json` (версия 3) могут уточнить уже найденный путь. Они не создают skill из отсутствующего каталога и не делают внешний манифест источником подтверждённых фактов паспорта. Expert recovery — повседневное авторство это intent `author`: ```bash ai-stp task start --intent author --idempotency-key author-session-01 --json ``` Не набирайте `component discover`. Движок сам находит нативное дерево. ## Версии — `X.Y`, не SemVer Опубликованная версия skill неизменяема и имеет вид `X.Y`. Патч-номера нет. Изменение `SKILL.md`, скрипта или asset — новая версия. Обновление skill внутри сетапа — новая версия сетапа. ```bash ai-stp component version list --id <stable_id> --json ai-stp component version release --id <stable_id> --json ``` `--major` открывает следующую мажорную линию. Мажорная линия — отдельная граница доступа. ## Что проверяет `ai_stp` Процент карточки каталога и разделение обязательных и необязательных проверок объяснены на странице [Проверки безопасности](../security-checks.md). Для skill ожидайте как минимум: - структуру, digest, лицензию, tags, исходный репозиторий; - ограниченную распаковку и path denylist; - сканирование секретов (`secrets_heuristic` и Gitleaks, если включён); - правила prompt-injection и скрытого содержимого; - `skill_static_gate` (собственные правила плюс SkillSpector и Skill Scanner, когда они доступны); - языковой SAST и SCA, если есть scripts и lockfiles. Пройденное сканирование снижает известный риск. Это не гарантия, что workflow безвреден. Обязательные проверки, которые провалились или не смогли запуститься, блокируют публикацию. Перед установкой также смотрите: | Проверка | Почему важно | | --- | --- | | Есть ли scripts | скрипты могут действовать вне Markdown | | Есть ли references или assets | агенту нужен весь комплект, не только `SKILL.md` | | Совместим ли харнесс | одинаковое имя skill не гарантирует одинаковый формат | | Кто автор | verified-автор не делает содержимое автоматически безопасным | | Какой `X.Y` закреплён | обновление skill создаёт новую версию сетапа | | Линия доверия | `experimental` требует явного согласия | ## Связанные команды CLI Только команды, которые существуют. Флаги из continuation `argv`; старт — `ai-stp task intents --json`. **Именно этот вид:** ```bash ai-stp component skill validate --path <directory> --json ``` **Не этот вид** — CLI Agent Skill (см. [Agent Skill CLI](../cli/skill.md)): ```bash ai-stp skill status --json ai-stp skill install --target <dir> --json ai-stp skill remove --target <dir> --json ``` **Автор, adopt, публикация:** ```bash ai-stp task start --intent author --idempotency-key author-session-01 --json ai-stp task start --intent publish --idempotency-key publish-session-01 --json ``` **Установить:** ```bash ai-stp task start --intent install --idempotency-key install-session-01 --json ``` Expert-просмотр каталога: ```text ai-stp registry search --kind component --query <name> --json ``` Skill может быть и embedded-членом compose-манифеста. См. [Сетапы](../setups/index.md). ## Как skill проходит через `ai_stp` === "Автор" Автор публикует skill из публичного GitHub-источника или импортирует его локально. Версия закрепляет точный commit и подпуть. === "Каталог" Каталог показывает назначение, поддерживаемые харнессы, ограничения, trusted status автора и независимый status самого компонента. === "Сборщик" Сборщик проверяет, что skill можно встроить в выбранный сетап и что его файловая структура подходит проекции provider. === "Provider" Provider кладёт skill в нативный каталог харнесса и обновляет связанные индексы только после плана, digest и подтверждения. ## Красные флаги - `SKILL.md` вложен в `payload/` или другой каталог-обёртку. - `name` во frontmatter не совпадает с именем каталога (`SK013`). - Поле верхнего уровня, которое спецификация не определяет (`SK033`), вместо `metadata`. - Скрипты, которые скачивают и pipe'ят в shell, или которые велят агенту игнорировать предыдущие инструкции. - Живые токены, закрытые ключи или тела `.env` в пакете. - Каталог под `skills/`, который на самом деле plugin (есть `.claude-plugin/plugin.json` / `.codex-plugin/plugin.json` / `.cursor-plugin/plugin.json` / `plugin.json`), помеченный как skill. - Линия доверия `experimental` без `consent allow`. - Харнесс не в списке совместимости компонента. - «Latest» или имя ветки вместо точных `X.Y` и commit. - Обращение с `ai-stp skill install` так, будто оно опубликовало этот компонент. - Обращение с `author_verified` как с `component_verified`. ??? question "Можно ли skill использовать без публикации" Да. Собственный, импортированный или точно закреплённый skill можно использовать после локальных проверок. Он от этого не становится platform-verified и должен быть показан именно как локальный или закреплённый объект (`local_owner_or_pinned`). ## Чеклист автора 1. Сделайте scaffold с `--type skill --language none` и держите `SKILL.md` в корне пакета (в авторском дереве — под `source/`). 2. Заполните `name` и `description`. Ключи конкретного харнесса кладите в `metadata`. 3. Добавляйте `scripts/`, `references/` и `assets/` только когда workflow без них не работает. Что они делают, объявите в паспорте. 4. Запустите `ai-stp component skill validate --path <package> --json` и исправьте каждый код `SKxxx`. 5. Закрепите точный публичный GitHub commit и подпуть. Секретов в дереве нет. 6. Зарегистрируйте каталог через `ai-stp task start --intent author --idempotency-key author-session-01 --json`. Expert discover/adopt остаются для recovery. 7. `component version release`, чтобы выпустить неизменяемый `X.Y`. 8. Публикуйте через [путь публикации](../publishing/index.md). 9. В сетапе закрепите этот `X.Y`. Позднее обновление — новая версия сетапа. Связанное: [Авторство](../publishing/authoring.md), [Компоненты](index.md), [CLI Agent Skill](../cli/skill.md).