korolevpavel/xbsl-ai-skills/xbsl-deploy

Claude Code and agent skill by korolevpavel/xbsl-ai-skills

Trust tier 2
  • community
LLM review pending
Source check pending

Checking that the SKILL.md file is still in the repository.

Используй этот скилл для любых операций с приложениями на платформе 1С:Предприятие.Элемент (1cmycloud.com): создать приложение, задеплоить ветку из внешнего git-репозитория (GitHub, GitLab и др.), обновить, проверить статус, запустить, остановить, удалить, принять изменения (merge). Вызывай скилл всякий раз, когда пользователь упоминает деплой, запуск, остановку или управление приложением на Элементе — даже если он не говорит явно "задеплой", а просто спрашивает "как дела с приложением" или "см…

Install

npx vskill@latest install korolevpavel/xbsl-ai-skills/xbsl-deploy

SKILL.md

Во всех командах ниже {python} означает python в Windows и python3 в macOS/Linux/WSL. Выбирай команду сразу по текущей ОС, не запускай оба варианта.

Деплой на 1С:Предприятие.Элемент

Справочник по API: references/endpoints.md — читай его если нужны детали по полям запросов/ответов.

Шаг 0: Загрузи переменные окружения

Перед любым обращением к API загрузи env vars. Выполни команду:

bash
set -a && source .env 2>/dev/null; set +a

Если .env не найден — продолжай: нужные переменные могут быть уже заданы в системе.

Обязательные переменные: ELEMENT_BASE_URL, ELEMENT_CLIENT_ID, ELEMENT_CLIENT_SECRET. Если хотя бы одна отсутствует — сообщи пользователю и остановись.


Два вида веток: внешний git vs внутренний git платформы

В 1С:Элемент существуют два независимых механизма веток — не путай их:

Внешний git (GitHub/GitLab)Внутренний git платформы
Что этоТвой обычный git-репозиторийВстроенная система групповой разработки платформы
Как обновить приложениеsync-branch / кнопка «Загрузить из ветки» в IDEСценарий B (update-branch + restart)
API/console/ui/module/call (внутренний)GET/POST /console/api/v2/branches
Когда работаетВсегда (если репо доступен платформе)Только если проект включил режим групповой разработки
Ошибка если не поддерживается—503 "does not use export branches"
Merge измененийЧерез git (PR/MR)Сценарий G (merge-branch)
Типичный сценарийДеплой из GitHub на продакшнКомандная разработка задач внутри платформы (issue/CRM-1)

Если получаешь 503 на `list-branches` / `get-branch` — проект работает через внешний git. Используй Сценарий I (путь 2: --from-branch) вместо Сценария B.


Шаг 1: Определи намерение

Фраза пользователяСценарий
создать / новое / задеплой с нуля / развернутьA: Создать + задеплоить
обновить / задеплой / загрузить ветку / редеплойB: Обновить существующее
статус / как дела / что с приложением / проверьC: Проверить статус
запусти / старт / включиD: Запустить
останови / стоп / выключиE: Остановить
удали / снести / delete / убериF: Удалить
принять изменения / смёрджи / mergeG: Merge ветки
создать проект / загрузить сборку / новый проект из файлаH: Создать проект из сборки
задеплой из исходников / собери и задеплой / deploy from sourceI: Собрать .xasm и задеплоить
sync-branch / обнови ветку в облаке / загрузить из ветки / pull из gitJ: sync-branch с фолбэком на сборку
версия технологии / какая платформа / обнови платформу / technology versionK: Версия технологии
подключить / обновить / включить / выключить расширениеL: Управление расширением

Шаг 2: Получи токен

bash
{python} skills/xbsl-deploy/scripts/api.py --action get-token

Если ошибка — сообщи пользователю что нужно задать env vars: ELEMENT_BASE_URL, ELEMENT_CLIENT_ID, ELEMENT_CLIENT_SECRET.


Сценарий A: Создать новое приложение и задеплоить

По умолчанию: новое приложение привязывается к существующему проекту. Загрузка файла сборки для создания нового проекта — только если пользователь явно попросил («создать проект из сборки», «загрузить сборку» и т.п.) — тогда используй Сценарий H.

A0. Проверь вид проекта (если известна папка проекта)

Если пользователь указал локальную папку проекта — прочитай Проект.yaml и проверь ВидПроекта:

bash
grep "ВидПроекта" <путь>/Проект.yaml

Если найдено ВидПроекта: Библиотека — остановись и сообщи пользователю:

Платформа не может развернуть библиотеку как самостоятельное приложение. Библиотека предназначена для подключения через Импорт в другой проект, а не для деплоя.

Если найдено ВидПроекта: Расширение — перейди к сценарию L. Расширение подключается к существующему приложению и не создаёт отдельное приложение.

A1. Определи проект

Если ELEMENT_PROJECT_ID не задан — выведи список проектов и попроси пользователя выбрать:

bash
{python} skills/xbsl-deploy/scripts/api.py --action list-projects

Показывай только не удалённые ("deleted": false) проекты типа Application.

Сохрани выбранный project-id для следующих шагов.

A2. Определи space-id

Если ELEMENT_SPACE_ID не задан:

bash
{python} skills/xbsl-deploy/scripts/api.py --action list-spaces
  • Если пространство одно — используй его id как space-id. Предложи пользователю сохранить в .env: ELEMENT_SPACE_ID=<id>.
  • Если пространств несколько — покажи список и спроси пользователя выбрать.
  • Если пространств нет — сообщи пользователю, создать пространство нужно через веб-консоль.
A3. Создай приложение

Спроси имя приложения если не указано.

Если проект создан загрузкой сборки в сценарии H, используй id сборки из ответа upload-build как assembly-id. У нового проекта может ещё не быть сборки по умолчанию, поэтому передавай точную версию:

bash
{python} skills/xbsl-deploy/scripts/api.py --action create-app --name <name> --space-id <space-id> --version-id <assembly-id>

Для уже существующего проекта, когда конкретная сборка не выбрана, сохрани прежний вариант:

bash
{python} skills/xbsl-deploy/scripts/api.py --action create-app --name <name> --space-id <space-id> --project-id <project-id>

Сохрани id из ответа как app-id.

A4. Запусти приложение
bash
{python} skills/xbsl-deploy/scripts/api.py --action start-app --app-id <app-id>
A5. Жди Running

Опрашивай каждые 10 сек, до 5 мин:

bash
{python} skills/xbsl-deploy/scripts/api.py --action get-app --app-id <app-id>

Жди пока status == Running. Если status == Error — сообщи error пользователю и остановись. Если 5 мин прошло, а статус не Running — сообщи пользователю текущий статус и предложи проверить логи в консоли Элемента. После создания из сборки дополнительно проверь, что source.project-version-id совпадает с assembly-id из H4. Старый Running для другой сборки не доказывает успех новой публикации.

A6. Верни ссылку

Из последнего ответа get-app возьми поле uri и отправь пользователю.


Сценарий B: Обновить приложение из ветки

B1. Найди приложение

Используй ELEMENT_APP_ID или спроси имя и найди:

bash
{python} skills/xbsl-deploy/scripts/api.py --action list-apps --name <name>

Сохрани id как app-id.

B2. Определи project-id

Используй ELEMENT_PROJECT_ID. Если не задан — извлеки из ответа B1: поле project.id в объекте приложения. Если поле project отсутствует или пустое:

bash
{python} skills/xbsl-deploy/scripts/api.py --action list-projects

Спроси пользователя выбрать проект. Сохрани как project-id.

B3. Создай дамп (страховка перед изменениями)

Дамп нужен как точка отката на случай проблем после деплоя.

bash
{python} skills/xbsl-deploy/scripts/api.py --action create-dump --app-id <app-id>

Сохрани id из ответа как dump-id. Проверь статус сразу (без паузы), затем опрашивай каждые 3 сек (до 60 сек):

bash
{python} skills/xbsl-deploy/scripts/api.py --action get-dump --app-id <app-id> --dump-id <dump-id>

Жди пока status станет Done или Completed. Если дамп завершился ошибкой или не готов за 60 сек — остановись и сообщи пользователю. Не продолжай.

B4. Найди ветку
bash
{python} skills/xbsl-deploy/scripts/api.py --action list-branches --project-id <project-id> --branch-name <branch>
B5. Привяжи ветку к приложению (если нужно)

Если branch.application.id != app-id:

bash
{python} skills/xbsl-deploy/scripts/api.py --action update-branch --branch-id <branch-id> --app-id <app-id>
B6. Перезапусти (подхвати изменения из репозитория)

Сначала останови (если приложение не Stopped):

bash
{python} skills/xbsl-deploy/scripts/api.py --action stop-app --app-id <app-id>

Жди Stopped (опрос каждые 10 сек, до 3 мин). Затем запусти:

bash
{python} skills/xbsl-deploy/scripts/api.py --action start-app --app-id <app-id>
B7. Жди Running → верни URL (как A5-A6)

Сценарий C: Статус приложения

bash
{python} skills/xbsl-deploy/scripts/api.py --action get-app --app-id <app-id>

Выведи пользователю:

  • status (Running / Stopped / Error / ...)
  • uri — ссылка на приложение
  • error — если есть
  • current-task — текущая задача если есть
  • technology-version

Сценарий D: Запустить приложение

bash
{python} skills/xbsl-deploy/scripts/api.py --action start-app --app-id <app-id>

Жди Running (опрос каждые 10 сек, до 5 мин) → верни статус и ссылку. Если таймаут — сообщи текущий статус и предложи проверить логи в консоли Элемента.


Сценарий E: Остановить приложение

bash
{python} skills/xbsl-deploy/scripts/api.py --action stop-app --app-id <app-id>

Жди Stopped (опрос каждые 10 сек, до 3 мин) → сообщи что остановлено. Если таймаут — сообщи текущий статус.


Сценарий F: Удалить приложение

Обязательно запроси подтверждение у пользователя перед любым удалением. Сообщи имя удаляемого объекта и что действие необратимо. Продолжай только после явного подтверждения («да», «удали», «confirm» и т.п.). Если пользователь не подтвердил — остановись.

Если приложение не Stopped:

bash
{python} skills/xbsl-deploy/scripts/api.py --action stop-app --app-id <app-id>

Жди Stopped (опрос каждые 10 сек, до 3 мин). Затем:

bash
{python} skills/xbsl-deploy/scripts/api.py --action delete-app --app-id <app-id>

Если ветка создавалась скиллом — предложи удалить и её. Удаляй ветку только после отдельного подтверждения:

bash
{python} skills/xbsl-deploy/scripts/api.py --action delete-branch --branch-id <branch-id>

Сценарий G: Принять изменения (merge ветки)

Если branch-id не известен — найди ветку. Для этого нужен project-id (из ELEMENT_PROJECT_ID или спроси пользователя через list-projects):

bash
{python} skills/xbsl-deploy/scripts/api.py --action list-branches --project-id <project-id> --branch-name <branch>

Затем выполни merge:

bash
{python} skills/xbsl-deploy/scripts/api.py --action merge-branch --branch-id <branch-id>

Сообщи результат.


Сценарий H: Создать проект из файла сборки

Проект на Элементе создаётся загрузкой бинарного файла сборки (.zip или артефакт компилятора). Без файла создать проект через API нельзя.

H1. Уточни параметры

Спроси пользователя:

  • путь к файлу сборки (--file)
  • имя ветки (--branch-name), если нужно зафиксировать (иначе используется ELEMENT_BRANCH)
  • хэш коммита и сообщение (--commit-id, --commit-message) — опционально
H2. Определи space-id

Если ELEMENT_SPACE_ID не задан:

bash
{python} skills/xbsl-deploy/scripts/api.py --action list-spaces

Если пространство одно — используй его автоматически.

H3. Выполни fail-closed проверку идентичности

При создании без project-id команда upload-build до бинарной загрузки автоматически:

  1. читает точную пару Vendor + Name из корневого Assembly.yaml;
  2. получает список проектов через read-only GET /projects;
  3. для каждого активного проекта целевого пространства читает его сборки и

сравнивает project-developer + project-name как единую пару;

  1. использует строгое регистрозависимое сравнение без fuzzy-сопоставления,

нормализации или попытки вывести пару только из ProjectDto.name: в ProjectDto нет второй координаты identity — поставщика.

This is the start of the file. Read the full SKILL.md on GitHub.

Security

  • Security scanPassed, 100 of 100Pattern checks on the skill's files.
  • Model reviewNot runA model review is scheduled for the next rescan.

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

7-day trend score
0

Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/korolevpavel/xbsl-ai-skills/xbsl-deploy/badge)](https://verified-skill.com/skills/korolevpavel/xbsl-ai-skills/xbsl-deploy)

Something wrong with this skill or its page? Tell us.