# asc-workflow

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

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 6700 установок · ★ 1101
- Автор: rorkai
- Лицензия: MIT · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/rorkai/app-store-connect-cli-skills/tree/HEAD/skills/asc-workflow/SKILL.md
- Обновлён: 2026-10-20
- HTML: https://affpapa.org/nevibecode/skills/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 с секретами лучше не трогать.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
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/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add rorkai/app-store-connect-cli-skills --skill asc-workflow -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/asc-workflow/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add rorkai/app-store-connect-cli-skills --skill asc-workflow -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/asc-workflow/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install rorkai/app-store-connect-cli-skills asc-workflow
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/asc-workflow/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add rorkai/app-store-connect-cli-skills --skill asc-workflow -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/rorkai/app-store-connect-cli-skills --path skills/asc-workflow
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/asc-workflow/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add rorkai/app-store-connect-cli-skills --skill asc-workflow -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/rorkai/app-store-connect-cli-skills/tree/HEAD/skills/asc-workflow/SKILL.md

## Когда брать
- проверить структуру воркфлоу до первого запуска
- посмотреть список сценариев и прогнать нужный через `--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}`

## Похожие
- [blitz](https://affpapa.org/nevibecode/mcp/blitz.md) — MCP-сервер · ★ 1760
- [asc-metrics](https://affpapa.org/nevibecode/skills/asc-metrics.md) — скилл · 2500 установок
- [expo-dev-client](https://affpapa.org/nevibecode/skills/expo-expo-dev-client.md) — скилл · 70300 установок
- [axiom-shipping](https://affpapa.org/nevibecode/skills/axiom-shipping.md) — скилл · 1400 установок
- [expo-app-clip](https://affpapa.org/nevibecode/skills/expo-app-clip.md) — скилл · 19800 установок
- [github-actions](https://affpapa.org/nevibecode/skills/github-actions.md) — скилл · 10900 установок

Из того же набора: [rorkai/app-store-connect-cli-skills](https://affpapa.org/nevibecode/by/rorkai/app-store-connect-cli-skills.md) — 24 карточки

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
