К основному содержанию
скилл CX Codex

asc-workflow — скилл для Claude Code: сценарии релиза

Описывает сценарии App Store Connect в .asc/workflow.json и запускает их через asc workflow run с проверкой, выходами шагов и продолжением после сбоя.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add rorkai/app-store-connect-cli-skills --skill asc-workflow -a claude-code
Открыть на GitHub

Что делает asc-workflow

Скилл учит агента работать с asc workflow из App Store Connect CLI: держать многошаговые сценарии в .asc/workflow.json и гонять их через validate, list и run. Внутри разобран порядок от проверки структуры до запуска, формат файла и правила работы с выходами шагов.

Воркфлоу лежит в репозитории, это не сервис. Шаг задаётся строкой или объектом с run, workflow, if, with, outputs, retry, timeout. Хуки before_all, after_all и error срабатывают на весь прогон. Вывод шага забирается по ${steps.step_name.OUTPUT_NAME}, поэтому asc-команда должна печатать JSON на stdout с флагом --output json. Упавший запуск продолжают по run ID из результата, но с --resume лишние KEY:VALUE уже не передают.

Заранее нужен сам asc и настроенная авторизация, её проверяют хуком вроде asc auth status. У retry от 2 до 100 попыток, задержка и таймаут не больше 24 часов. Таймаут без повтора считается окончательным, потому что команда могла успеть выполниться на стороне Apple. Повтор вешайте только на то, что точно безопасно повторять: раннер сам не различает мутации. Файл запускает доверенные shell-команды, так что воркфлоу из чужого PR с секретами лучше не трогать.

Какие задачи решает

  • проверить структуру воркфлоу до первого запуска
  • посмотреть список сценариев и прогнать нужный через --dry-run
  • разложить релиз на validate, stage и submit
  • забрать ID сборки из JSON и передать его следующему шагу
  • продолжить упавший прогон с сохранёнными выходами

Примеры запросов агенту

  • Проверь .asc/workflow.json через asc workflow validate и покажи, что сломано в структуре
  • Сделай asc workflow run --dry-run beta BUILD_ID:123456789 и объясни, какие шаги выполнились бы
  • Добавь в сценарий шаг с outputs и retry, вывод берём из ${steps.resolve_build.BUILD_ID}

Как установить asc-workflow

1Через Skills CLI (Vercel)

npx skills add rorkai/app-store-connect-cli-skills --skill asc-workflow -a claude-code

2Вручную: положить файлы

~/.claude/skills/asc-workflow/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/asc-workflow/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о asc-workflow

Как установить asc-workflow в Claude Code?

Выполните npx skills add rorkai/app-store-connect-cli-skills --skill asc-workflow -a claude-code, после установки скилл лежит в ~/.claude/skills/asc-workflow/SKILL.md.

Что делает asc-workflow?

Учит агента писать и прогонять локальные сценарии для App Store Connect CLI: команды asc workflow validate, list и run, выходы шагов, повторы и продолжение после сбоя.

Можно ли передать параметры при --resume?

Нет. Сохранённый файл воркфлоу, параметры и накопленные выходы берутся из состояния прогона, а лишние KEY:VALUE рядом с --resume не передают.

Исходный текст

SKILL.md · MIT
---
name: asc-workflow
description: Define, validate, run, resume, and audit repo-local multi-step automations with current `asc workflow` and `.asc/workflow.json`, including step outputs and safe release/TestFlight workflows.
---

# asc workflow

Use this skill when you need lane-style automation inside the CLI using:

- `asc workflow validate`
- `asc workflow list`
- `asc workflow run`

Workflows are repo-local automation files. They run trusted shell commands, stream step output to stderr, and keep stdout as machine-readable JSON.

## Command discovery

Always verify flags with:

```bash
asc workflow --help
asc workflow validate --help
asc workflow list --help
asc workflow run --help
```

## End-to-end flow

1. Author `.asc/workflow.json`.
2. Validate structure and references:

```bash
asc workflow validate
```

3. Discover public workflows:

```bash
asc workflow list
asc workflow list --all
```

4. Preview execution:

```bash
asc workflow run --dry-run beta BUILD_ID:123456789 GROUP_ID:abcdef
```

5. Execute:

```bash
asc workflow run beta BUILD_ID:123456789 GROUP_ID:abcdef
```

6. If a recoverable run fails, resume with the run ID from the JSON result:

```bash
asc workflow run release --resume "release-20260312T120000Z-deadbeef"
```

Do not pass extra `KEY:VALUE` params with `--resume`; the saved workflow file, params, and persisted outputs are reused.

## File location and format

- Default path: `.asc/workflow.json`
- Override path: `asc workflow run --file ./path/to/workflow.json <name>`
- JSONC comments are supported.
- Top-level hooks: `before_all`, `after_all`, `error`
- Workflow keys: `description`, `private`, `env`, `steps`
- Step forms:
  - string shorthand: `"echo hello"`
  - `run` shell command
  - `workflow` sub-workflow call
  - `name` label
  - `if` conditional var name
  - `with` env overrides for workflow-call steps
  - `outputs` map for JSON stdout extraction from named run steps
  - `retry` fixed-delay retry policy for a `run` step
  - `timeout` positive per-attempt duration for a `run` step

## Outputs

Run steps can declare outputs. The command must emit JSON on stdout, so pass `--output json` for `asc` commands that produce outputs.

Output references use:

```text
${steps.step_name.OUTPUT_NAME}
```

Rules:

- A step that declares `outputs` must have a reference-safe `name`.
- Outputs are allowed on `run` steps, not workflow-call steps.
- Output-producing names must be unique across workflows that can execute together in the same run graph.
- Persisted outputs are stored in workflow run state, so do not map secrets into outputs.

## Bounded retry and timeout

Add retry only to commands you have determined are safe to repeat. The runner does not classify commands or retry mutations on its own.

```json
{
  "name": "resolve_build",
  "run": "asc builds info --app $APP_ID --latest --platform IOS --output json",
  "retry": {
    "max_attempts": 3,
    "delay": "5s"
  },
  "timeout": "2m"
}
```

`retry.max_attempts` counts the first attempt and must be between 2 and 100. Retry delays and timeouts must be positive durations no longer than 24 hours. Both fields work only on `run` steps, not workflow calls or lifecycle hooks.

A timeout without retry is terminal because the command may have completed remotely. Pairing retry and timeout is the explicit signal that another attempt is safe. Resume requires either a successful checkpoint or a retry-enabled failed step; output-extraction failures cannot be resumed.

## Runtime params

`asc workflow run <name> [KEY:VALUE ...]` supports both separators:

```bash
asc workflow run beta VERSION:2.1.0
asc workflow run beta VERSION=2.1.0
```

Repeated keys are last-write-wins. In shell commands, reference params through shell expansion like `$VERSION`.

## Env precedence

Main workflow run:

```text
definition.env < workflow.env < CLI params
```

Sub-workflow call with `with`:

```text
sub-workflow env < caller env and params < step with
```

## Conditionals

Add `"if": "VAR_NAME"` to a step. Truthy values are `1`, `true`, `yes`, `y`, and `on`, case-insensitive. Lookup checks merged workflow env/params first, then process environment.

## Example workflow

```json
{
  "env": {
    "APP_ID": "123456789",
    "VERSION": "1.0.0",
    "GROUP_ID": ""
  },
  "before_all": "asc auth status",
  "after_all": "echo workflow_done",
  "error": "echo workflow_failed",
  "workflows": {
    "beta": {
      "description": "Resolve the latest build and distribute it to TestFlight",
      "steps": [
        {
          "name": "resolve_build",
          "run": "asc builds info --app $APP_ID --latest --platform IOS --output json",
          "outputs": {
            "BUILD_ID": "$.data.id"
          }
        },
        {
          "name": "list_groups",
          "run": "asc testflight groups list --app $APP_ID --limit 20 --output json"
        },
        {
          "name": "add_build_to_group",
          "if": "GROUP_ID",
          "run": "asc builds add-groups --build-id ${steps.resolve_build.BUILD_ID} --group $GROUP_ID"
        }
      ]
    },
    "release": {
      "description": "Validate, stage, and submit an App Store version",
      "steps": [
        {
          "name": "validate",
          "run": "asc validate --app $APP_ID --version $VERSION --platform IOS --output json"
        },
        {
          "name": "stage",
          "run": "asc release stage --app $APP_ID --version $VERSION --build-id $BUILD_ID --metadata-dir ./metadata --confirm --output json"
        },
        {
          "name": "submit",
          "if": "SUBMIT_FOR_REVIEW",
          "run": "asc review submit --app $APP_ID --version $VERSION --build-id $BUILD_ID --confirm --output json"
        }
      ]
    },
    "publish-appstore": {
      "description": "High-level upload plus App Store review submission",
      "steps": [
        {
          "name": "publish",
          "run": "asc publish appstore --app $APP_ID --ipa ./build/MyApp.ipa --version $VERSION --wait --submit --confirm --output json"
        }
      ]
    }
  }
}
```

## Useful invocations

```bash
asc workflow validate | jq -e '.valid == true'
asc workflow list --pretty
asc workflow list --all --pretty
asc workflow run --dry-run beta BUILD_ID:123 GROUP_ID:grp_abc
asc workflow run beta BUILD_ID:123 GROUP_ID:grp_abc | jq -e '.status == "ok"'
asc workflow run release BUILD_ID:123 SUBMIT_FOR_REVIEW:true
asc workflow run release --resume "release-20260312T120000Z-deadbeef"
```

## Safety rules

- Treat `.asc/workflow.json` like code; only run trusted workflow files.
- Avoid running workflows from untrusted PRs with secrets.
- Keep workflow files in version control.
- Validate first, dry-run next, then run.
- Use explicit IDs and `--confirm` for mutating steps.
- Use `asc validate`, `asc release stage`, `asc review submit`, and `asc publish appstore`; do not use removed submission commands.

© rorkai · MIT · rorkai/app-store-connect-cli-skills

Похожие скиллы

Всё по теме «Мобильная разработка» →
blitz blitzdotdev Нативное приложение для macOS, которое через MCP отдаёт агенту управление App Store Connect: сборки, IAP, скриншоты, отправка на ревью. CX Codex +1 ★ 1 760звёзд репо asc-metrics appeeky Разбирает фактические данные из App Store Connect через Appeeky: скачивания, подписки, выручку и конверсию пробных периодов. CX Codex +1 2 500установок expo-dev-client expo Скилл для сборки и распространения пользовательских клиентов Expo на физические устройства через локальные сборки или TestFlight. Нужен, если вы используете собственный нативный код, виджеты Apple или библиотеки вне Expo Go. CX Codex +1 70 300установок axiom-shipping CharlesWiltgen Скилл для публикации iOS-приложений: чек-листы перед отправкой, разбор отказов App Review, метаданные, privacy manifest и триаж крашей. CX Codex +1 1 400установок expo-app-clip expo Добавляет iOS App Clip к проекту на Expo — лёгкую версию приложения, которая запускается по URL без установки из App Store. CX Codex +1 19 800установок github-actions callstackincubator Готовые шаблоны GitHub Actions для сборки React Native приложений на iOS-симуляторе и Android-эмуляторе в облаке с загрузкой артефактов. Упрощает настройку CI-пайплайнов и скачивание собранных бинарников через gh или REST API. CX Codex +1 10 900установок

Из того же набора24

asc-build-lifecycle Скилл учит агента работать со сборками в App Store Connect через CLI asc: находить последнюю сборку, проверять обработку, считать следующий номер и чистить старые. CX Codex +1 7 200установок asc-shots-pipeline Автоматизирует сборку iOS-приложения, снимки в симуляторе, оформление рамками и загрузку через asc. Нужен для сценариев захвата экранов по плану. CX Codex +1 6 900установок asc-localize-metadata Скачивает описание, ключевые слова, заголовки и список новшеств из App Store Connect, переводит на нужные языки через LLM и загружает обратно. CX Codex +1 7 000установок asc-subscription-localization Массово заполняет названия и описания подписок или встроенных покупок в App Store Connect через утилиту asc. Избавляет от ручного кликанья по десяткам языков. CX Codex +1 6 800установок asc-notarization Готовит macOS-приложение к распространению вне App Store: архивирует, экспортирует с Developer ID и отправляет на нотарификацию Apple. CX Codex +1 6 600установок asc-crash-triage Скилл собирает через утилиту asc крэши из TestFlight, отзывы бета-тестеров и диагностику зависаний iOS-сборок, формируя понятный отчёт. CX Codex +1 6 400установок asc-aso-audit Проверяет метаданные App Store в папке ./metadata на ошибки ASO: дубли ключей, пробелы после запятых и пустые поля. CX Codex +1 6 200установок asc-revenuecat-catalog-sync Сверяет каталог подписок и встроенных покупок App Store Connect с продуктами RevenueCat. Нужен перед запуском или при устранении расхождений между каталогами. CX Codex +1 6 100установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой