К содержимому
# Публикация компонента
[Home](/ru/ai)
[Catalog](/ru/ai/catalog)
Выпустить версию X.Y, сделать fork, проверить skill-пакет и выделить встроенный компонент.
## 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
# Публикация компонента Эти команды замораживают локальный head как неизменяемый `X.Y`, копируют версию под новой идентичностью, проверяют skill-пакет по Agent Skills Specification и извлекают один embedded-член сетапа в обычный план публикации. Сами по себе они не делают каталог публичным. `component publish` — это `plan`. Публичная запись — подтверждение на [Publication](publication.md) или `setup publish confirm`, когда наружу уходит весь граф. Повседневная публикация — intent `publish`. Version, fork, validate и `component publish` ниже — expert recovery. ```bash ai-stp task start --intent publish --idempotency-key publish-session-01 --json ``` ## Таблица команд | Команда | Mutability | Confirmation | Когда | | --- | --- | --- | --- | | `ai-stp component version list` | `read` | `none` | все записанные версии и следующий minor | | `ai-stp component version release` | `apply` | `none` | дать текущему head неизменяемый `X.Y`; minor, если нет `--major` | | `ai-stp component fork` | `apply` | `none` | скопировать одну записанную версию под новой идентичностью | | `ai-stp component skill validate` | `read` | `none` | назвать каждое отклонение от Agent Skills Specification | | component publish | `plan` | `none` | извлечь один embedded-компонент в план публикации | `--json` глобальный. Всегда передавайте его. ## Version list ```bash ai-stp component version list --id <stable_id> --json ``` Поля успеха: `stable_id`, `versions` (у каждой `version`, `passport_digest`, `revision_id`, `created_at`), `next_minor`, `publishable`, `publish_reason`, `forked_from`, `forked_from_version`. `next_minor` считается из сохранённой истории. Поля `next_major` нет: открыть major-линию — решение, а не подсказка. ## Version release Release даёт текущему head паспорта неизменяемый двухцелый номер. По умолчанию — следующий minor. `--major` открывает следующую major-линию. Этот boolean **и есть** решение о major-линии. Второго `--confirm` нет. ```bash ai-stp component version release --id <stable_id> --json ai-stp component version release --id <stable_id> --major --json ``` Выданный номер не переиспользуется и не переписывается. Ответ той же формы version-line, что у `version list`, теперь с новым `X.Y`. Если собираетесь публиковать, перед release проверьте паспорт. ## Fork Fork копирует одну записанную версию под новой идентичностью. Оригинал не трогается. ```bash ai-stp component fork --id <stable_id> --version 1.0 --json ``` `--id` и `--version` обязательны. `--version` — точный копируемый `X.Y`. Ответ — линия версий **новой** идентичности: `stable_id` (новый), `forked_from`, `forked_from_version`, `versions`, `next_minor`. ## Skill validate Проверить каталог по Agent Skills Specification. Это read. Называет каждое отклонение. Не adopt, не патчит и не публикует. ```bash ai-stp component skill validate --path ./components/demo-skill --json ``` Поля успеха: `conforms`, `name`, `description`, `findings`, `extension_directories`, `other_entries`, `packaged_as`. У каждого finding есть `code` (вида `SK000`), `at` и `summary`. `conforms: false` со списком finding — успешный отчёт, а не упавшая команда. Это не собственный Agent Skill CLI (`ai-stp skill …`). Тот skill описан на [Agent Skill CLI](skill.md). Kind `skill` — это компонент. ## Expert recovery: component publish Извлечь один **embedded**-компонент из локального сетапа в обычный план публикации. У членов каталога уже есть издатель; эта команда — для члена, который живёт только внутри сетапа. ```text ai-stp component publish \ --from-setup <setup_id> \ --setup-version 1.0 \ --component-id <embedded_id> \ --json ``` `--from-setup`, `--setup-version` и `--component-id` обязательны. `--component-id` — точный embedded-идентификатор, никогда не display name. `--attestation-file` повторяемый: каждый путь — полное локально подписанное attestation, привязанное к продвигаемой версии. Ответ — план продвижения: `setup_id`, `setup_version`, `source_component_id`, `catalog_stable_id`, `catalog_version`, `plan_id`, `plan_hash`, `state`, `reused_passport`, `still_embedded`. Подтверждайте его через `publication confirm --plan-id … --plan-hash … --confirm`. Embedded-член остаётся embedded, пока подтверждение не завершится. ## Happy path Повседневный путь: ```bash ai-stp task start --intent publish --idempotency-key publish-session-01 --json ``` Expert recovery из локального черновика: ```text component passport validate --id <id> → component version release --id <id> → publication plan --id <id> --version <X.Y> → publication confirm --plan-id <plan> --plan-hash <hash> --confirm ``` Expert recovery из embedded-члена сетапа: ```text component publish --from-setup <setup> --setup-version <X.Y> --component-id <id> → publication status --plan-id <plan> → publication confirm --plan-id <plan> --plan-hash <hash> --confirm ``` Expert recovery для skill-пакета, который ещё не adopt: ```text component skill validate --path <dir> → component adopt --path <dir> → component passport validate --id <id> ``` ## Именованные поля успеха | Команда | Какие поля читать | | --- | --- | | `version list` / `release` / `fork` | `stable_id`, `versions`, `next_minor`, `forked_from` | | `skill validate` | `conforms`, `findings` | | `publish` | `plan_id`, `plan_hash`, `catalog_stable_id`, `catalog_version`, `still_embedded` | ## Отказы | Что видно | Что это значит | Что делать | | --- | --- | --- | | `AI_STP_VALIDATION_ERROR` | нет обязательного id, версии или пути | прочитать дескриптор | | `AI_STP_NOT_FOUND` | объекта, версии или embedded-члена здесь нет | `version list` или `select graph` | | `AI_STP_PRECONDITION_FAILED` | паспорт не готов, или attestation не привязано | `passport validate`; подписать через `attestation sign` | | `AI_STP_AUTH_REQUIRED` | продвижение на сервер требует сессии | `task start --intent account --idempotency-key account-session-01 --json` | | `AI_STP_PERMISSION_DENIED` | этот аккаунт не может публиковать этот объект | проверить owner и grants | | `conforms: false` | skill-пакет отклоняется от спецификации | прочитать каждый `SK…` finding; не adopt как прошедший | | считать `component publish` публичным | это plan | подтвердить через `publication confirm` | | выдумывать `--confirm` у release | такого флага нет | `--major` — единственное дополнительное решение | Публичная версия должна приходить из публичного репозитория GitHub на точном commit и subpath. Черновики только локально остаются локальными, пока такого provenance нет. ## Связанные страницы - [Команды компонента](component.md) - [Паспорт компонента](component-passport.md) - [Источник компонента](component-source.md) - [Publication](publication.md) - [Команды сетапа](setup.md) - [Публикация](../publishing/index.md) - [Публикация и авторство](../publishing/authoring.md) - [Проверки безопасности](../security-checks.md) - [Agent Skill CLI](skill.md) ## Флаги берутся из continuation argv ```bash ai-stp task intents --json ``` Не дампьте `help --agent` как прелюдию. Флаги текущей задачи — в continuation `argv`. Эта страница группирует команды публикации, чтобы человек их нашёл. Если страница и CLI расходятся, следуйте CLI.