К содержимому
# Публикация и авторство
[Home](/ru/ai)
[Catalog](/ru/ai/catalog)
Подготовка repository-backed компонентов и сетапов к публикации.
## 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
# Авторство компонента или сетапа Авторство — локальная работа, связанная digest: собрать дерево, заполнить только подтверждённые факты, закрепить точный публичный GitHub commit, проверить паспорт, выпустить `X.Y`, затем пройти [Публикацию](index.md). Секреты, приватные пути, кэши и generated output не должны попадать в паспорт. Опубликованная версия — неизменяемый `X.Y`, не SemVer. Изменение байтов означает новую версию. Повседневный путь: ```bash ai-stp task start --intent author --idempotency-key author-session-01 --json ``` Leaves scaffold / adopt / validate / release ниже — expert recovery. ## Expert recovery: scaffold Сначала просмотрите каждый файл и digest, затем примените те же входы с точным digest плана. Назначения ещё не должно существовать. 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 ``` `--type` — один из закрытых видов. Декларативные виды (`instruction`, `skill`, `command`, `agent`, `setting`) принимают `--language none`. Исполняемые `mcp`, `plugin` и `cli` принимают `python`, `typescript`, `javascript`, `rust`, `go` или `dart-flutter`. `hook` не принимает Rust или Go: provider не делает скрытую сборку исходников. Вид `cli` только portable. `--harness` — `portable` или один конкретный харнесс. Если у харнесса нет самостоятельной нативной формы для этого вида, план отклоняется до любой записи. `setting` требует конкретный харнесс. Apply инициализирует git, если каталог ещё не внутри worktree; git не входит в digest плана. Каталог `component-scaffold/6` содержит: ```text playwright-checks/ ├── .ai-stp-template.json ├── .gitignore ├── README.md ├── component-passport.json ├── eval-profile.json ├── source/ # канон; portable adopt переносит это └── projections/<harness>/ # только если --harness конкретный ``` У hook дополнительно есть `source/hook-source.json` (событие, порядок, блокирующий failure, handler). Portable hook пишет производные `hooks.json` и запускаемый handler в `source/`; конкретный харнесс проецирует их в `projections/<harness>/`. Plugin с каталогом манифеста получает продуктовый манифест и заметку `skills/`, без заглушки `activate_plugin`. Plugin для OpenCode и Pi — один модуль JS/TS, без выдуманного манифеста. `setting` требует конкретный харнесс. `discover` / `adopt` переносят `source/` для portable и `projections/<harness>/` для конкретного харнесса, а не весь авторский каталог. `setup scaffold plan` / `apply` создают физический каталог сетапа для одного харнесса: черновик `setup.json`, черновик `setup-passport.json`, вложенные `components/<member>/` с одним git-корнем и пустой `projections/<harness>/` до отдельной команды экспорта. Вложенные члены указывают на сгенерированную проекцию и задают `managed_paths`. Перед `setup compose` замените каждый маркер `TODO(ai-stp-scaffold):` и добавьте tags: compose отказывает черновику. Compose пишет SQLite. Compose — это не install. ## Паспорт Паспорт scaffold — локальный patch: без выдуманного источника, без секретов, без разрешения на распространение (`NOASSERTION`, пока вы не проверите лицензию). Expert recovery — повседневное авторство это intent `author`: ```bash ai-stp task start --intent author --idempotency-key author-session-01 --json ``` Не набирайте discover / adopt / passport. Движок регистрирует дерево. `validate` перечисляет все структурные блокеры публикации. `quality` — необязательные подсказки автору; он не меняет доверие и готовность. Для `required_env` записывайте имена и назначение, никогда значения. ## Точный GitHub commit `component source parse` — недоверенное намерение. `github/exact` становится только полный lowercase SHA commit. ```bash ai-stp component source parse --source https://github.com/example/repo --json ai-stp component source resolve --source https://github.com/example/repo --commit <40-char-sha> --json ``` Ветка, тег, короткий SHA, URL с учётными данными, управляющие символы, абсолютный subpath или выход через `..` отклоняются. Точная идентичность ещё не доказывает digest содержимого; это даёт последующий путь import/adopt. Обновляйте архивные GitHub-доказательства только после того, как версия уже есть локально: ```bash ai-stp component source evidence show --id <stable_id> --version 1.0 --json ai-stp component source evidence refresh --id <stable_id> --version 1.0 --json ``` ## Без секретов Не кладите токены, пароли, закрытые ключи, OAuth refresh token или тела `.env` в: - паспорт; - файлы `source/` или `projections/<harness>/`, которые будут опубликованы; - логи, фикстуры или примеры README с живыми значениями. Если харнессу нужна учётная запись, паспорт может сказать, что требуется именованная переменная. Значение живёт в системном хранилище секретов или в окружении оператора — никогда в артефакте. `setting` — не место, чтобы прятать секреты. См. [`setting`](../components/setting.md). ## Проверка только для skill Из закрытых видов независимая спецификация есть только у `skill`. Проверяйте **пакет** (каталог с `SKILL.md` в корне), а не всё авторское дерево: ```bash ai-stp component skill validate --path ./playwright-checks/source --json ``` Эта команда — не [`ai-stp skill install`](../cli/skill.md). Последняя устанавливает собственный Agent Skill CLI. ## Из нативного дерева, которое уже есть Если компонент уже лежит в layout харнесса, запустите intent `author`. Discover и adopt ниже — expert recovery: ```bash ai-stp task start --intent author --idempotency-key author-session-01 --json ``` Не набирайте `component discover` или `component adopt`. Adoption принимает только путь, который discovery уже назвал. У каталога должен быть манифест из закрытого набора (`SKILL.md`, `AGENTS.md`, `plugin.json`, `.claude-plugin/plugin.json`, `.codex-plugin/plugin.json`, `.cursor-plugin/plugin.json`, `hooks.json`, `package.json` или `pyproject.toml`). Каталог без такого файла отклоняется. ## Сетапы Соберите сетап из каталожных pin и embedded-источников, затем выпустите и опубликуйте граф как набор. JSON-манифест и путь обновления — на странице [Сетапы](../setups/index.md). Путь confirm — на [Публикации](index.md). ## Продуктовые статьи — не пользовательская CMS Статьи help-центра, changelog и заметки о выпуске живут в репозитории в `docs-user-facing/content/` как Git-native Markdown, по файлу на локаль, с совпадающими `type` и `slug`. Это не CMS, которую аккаунт редактирует с сайта, и не способ публиковать компонент или сетап. Публикация компонента и сетапа — CLI-путь выше.