# suede-play-release

Проводит сборку Android через Google Play API: загрузка AAB на тестовый трек, промоут того же versionCode, поэтапный роллаут и чтение того, что реально в проде.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · ★ 126
- Автор: JasonColapietro
- Лицензия: MIT · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/JasonColapietro/suede-creator-skills/tree/HEAD/skills/suede-play-release/SKILL.md
- Обновлён: 2026-10-24
- HTML: https://affpapa.org/nevibecode/skills/suede-play-release

## Что делает

Скилл ведёт релиз по шагам и на каждом сверяется с Play API, а не с зелёным отчётом fastlane. Сначала preflight: скрипт `scripts/play-preflight.py` открывает и удаляет edit — так проверяется, что ключ живой и доступ выдан. Потом загрузка AAB на внутренний трек, промоут уже проверенного versionCode в production, чтение `versionCodes`, `status` и `userFraction` из трека.

Внутри — работа с сервисным аккаунтом: JSON кладётся в Keychain macOS в base64, для preflight нужны `pyjwt` и `cryptography`. Отдельный шаг остаётся за вами: первый грант доступа сервисному аккаунту в Play Console через API не делается, поэтому до него ключ бесполезен. Ответ 403 на edit — обычное состояние нового аккаунта, а не сбой.

Changelog пишется заранее в `fastlane/metadata/android/<locale>/changelogs/<versionCode>.txt`, по файлу на локаль. Пропущенный файл Play не считает ошибкой: пользователи просто увидят заметки прошлой версии. Перед публикацией скилл останавливается и спрашивает, каким процентом пользователей катить — откатить уже розданный релиз нельзя. Планирование, сборка и проверка политик приложения сюда не входят.

## Установка

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

1. **Через Skills CLI (Vercel)**
```bash
npx skills add JasonColapietro/suede-creator-skills --skill suede-play-release -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/suede-play-release/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/suede-play-release/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add JasonColapietro/suede-creator-skills --skill suede-play-release -a codex
```

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

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add JasonColapietro/suede-creator-skills --skill suede-play-release -a cursor
```

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

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install JasonColapietro/suede-creator-skills suede-play-release
```

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

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add JasonColapietro/suede-creator-skills --skill suede-play-release -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/JasonColapietro/suede-creator-skills --path skills/suede-play-release
```

### Windsurf (Devin Desktop)

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

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add JasonColapietro/suede-creator-skills --skill suede-play-release -a opencode
```

### Claude.ai

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

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/JasonColapietro/suede-creator-skills/tree/HEAD/skills/suede-play-release/SKILL.md

## Когда брать
- проверить ключ сервисного аккаунта до публикации
- загрузить AAB на внутренний трек через fastlane
- промоутнуть проверенный versionCode в production без повторной загрузки
- написать changelog для каждой локали под нужный versionCode
- узнать, какой versionCode и какой процент пользователей сейчас в проде

## Примеры запросов агенту
- Проверь доступ к Play для пакета `com.example.app` через `scripts/play-preflight.py`
- Залей `app-release.aab` на internal и покажи, что вернул Play API
- Подними роллаут до 50% и прочитай статус трека production

## Похожие
- [vercel-react-native-skills](https://affpapa.org/nevibecode/skills/vercel-react-native-skills.md) — скилл · 255200 установок
- [animate-expo](https://affpapa.org/nevibecode/skills/animate-expo.md) — скилл · 137900 установок
- [mobile-native](https://affpapa.org/nevibecode/skills/mobile-native.md) — скилл · 86600 установок
- [aso](https://affpapa.org/nevibecode/skills/aso.md) — скилл · 75900 установок
- [paywalls](https://affpapa.org/nevibecode/skills/paywalls.md) — скилл · 71000 установок
- [swiftui-pro](https://affpapa.org/nevibecode/skills/swiftui-pro.md) — скилл · 35200 установок

Из того же набора: [jasoncolapietro/suede-creator-skills](https://affpapa.org/nevibecode/by/jasoncolapietro/suede-creator-skills.md) — 61 карточка

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

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