К содержимому

Публикация компонента

Выпустить версию X.Y, сделать fork, проверить skill-пакет и выделить встроенный компонент.

Публикация компонента

Эти команды замораживают локальный head как неизменяемый X.Y, копируют версию под новой идентичностью, проверяют skill-пакет по Agent Skills Specification и извлекают один embedded-член сетапа в обычный план публикации.

Сами по себе они не делают каталог публичным. component publish — это plan. Публичная запись — подтверждение на Publication или setup publish confirm, когда наружу уходит весь граф.

Повседневная публикация — intent publish. Version, fork, validate и component publish ниже — expert recovery.

ai-stp task start --intent publish --idempotency-key publish-session-01 --json

Таблица команд

КомандаMutabilityConfirmationКогда
ai-stp component version listreadnoneвсе записанные версии и следующий minor
ai-stp component version releaseapplynoneдать текущему head неизменяемый X.Y; minor, если нет --major
ai-stp component forkapplynoneскопировать одну записанную версию под новой идентичностью
ai-stp component skill validatereadnoneназвать каждое отклонение от Agent Skills Specification
component publishplannoneизвлечь один embedded-компонент в план публикации

--json глобальный. Всегда передавайте его.

Version list

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 нет.

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 копирует одну записанную версию под новой идентичностью. Оригинал не трогается.

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, не патчит и не публикует.

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. Kind skill — это компонент.

Expert recovery: component publish

Извлечь один embedded-компонент из локального сетапа в обычный план публикации. У членов каталога уже есть издатель; эта команда — для члена, который живёт только внутри сетапа.

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

Повседневный путь:

ai-stp task start --intent publish --idempotency-key publish-session-01 --json

Expert recovery из локального черновика:

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-члена сетапа:

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:

component skill validate --path <dir>
→ component adopt --path <dir>
→ component passport validate --id <id>

Именованные поля успеха

КомандаКакие поля читать
version list / release / forkstable_id, versions, next_minor, forked_from
skill validateconforms, findings
publishplan_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: falseskill-пакет отклоняется от спецификациипрочитать каждый SK… finding; не adopt как прошедший
считать component publish публичнымэто planподтвердить через publication confirm
выдумывать --confirm у releaseтакого флага нет--major — единственное дополнительное решение

Публичная версия должна приходить из публичного репозитория GitHub на точном commit и subpath. Черновики только локально остаются локальными, пока такого provenance нет.

Связанные страницы

Флаги берутся из continuation argv

ai-stp task intents --json

Не дампьте help --agent как прелюдию. Флаги текущей задачи — в continuation argv.

Эта страница группирует команды публикации, чтобы человек их нашёл. Если страница и CLI расходятся, следуйте CLI.