.cursor/skills/play-store-upload/SKILL.md
Upload a release AAB to Google Play Store using the Gradle Play Publisher plugin. Use when the user asks to upload to Play Store, publish to Google Play, deploy to internal testing, promote a release, or mentions Play Console.
npx skillsauth add baijum/ukulele-companion play-store-uploadInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Upload the release AAB to Google Play Store's internal testing track using the Gradle Play Publisher (GPP) plugin.
These must be completed once before first use:
play-publisher)app/play-service-account.json (already in .gitignore)com.baijum.ukufretboard./gradlew bootstrapListing
If this succeeds, the service account is correctly connected.
The AAB should already be built by the android-release skill. Verify it exists:
ls -lh app/build/outputs/bundle/release/app-release.aab
If it doesn't exist, build it:
./gradlew bundleRelease
./gradlew publishReleaseBundle
block_until_ms: 120000 (upload can take 30-60s depending on file size and network).COMPLETED (immediately available to internal testers).After a successful upload, provide:
./gradlew promoteReleaseArtifact --track production --release-status completed
./gradlew promoteReleaseArtifact --track beta
./gradlew promoteReleaseArtifact --track production --release-status inProgress --user-fraction 0.1
This rolls out to 10% of users. Increase the fraction in subsequent runs.
| Task | Command |
|------|---------|
| Upload to internal | ./gradlew publishReleaseBundle |
| Promote to production | ./gradlew promoteReleaseArtifact --track production --release-status completed |
| Promote to beta | ./gradlew promoteReleaseArtifact --track beta |
| Staged rollout (10%) | ./gradlew promoteReleaseArtifact --track production --release-status inProgress --user-fraction 0.1 |
| Validate setup | ./gradlew bootstrapListing |
| List GPP tasks | ./gradlew tasks --group publishing |
app/play-service-account.json exists. Alternatively, set the ANDROID_PUBLISHER_CREDENTIALS environment variable to the JSON file contents.versionCode in app/build.gradle.kts before uploading../gradlew clean bundleRelease then retry the publish.tools
Record scene video clips for a TOML video project. Reads the android.toml or ios.toml to get the scene list and min_clip_duration, navigates to each screen via ADB (Android) or simctl (iOS), and records individual clips. Use when the user says /record-clips and provides a TOML path.
development
Promote a release from Google Play internal testing to a closed testing track (Alpha or App Hive Testing). Use when the user asks to promote a release, move to closed testing, push to alpha, push to App Hive Testing, or mentions track promotion.
development
Promote a release to Google Play open testing or production tracks. Supports full rollout and staged rollout to production. Use when the user asks to promote to open testing, beta, go to production, release to all users, staged rollout, or increase rollout percentage.
development
Audit iOS port parity against the Android app. Compares ViewModels, Views, Settings, and Navigation at the code level, verifies features from docs/videos/ TOML project files, and optionally captures side-by-side screenshots. Use when the user asks to compare iOS vs Android, check iOS parity, find missing iOS features, audit the port, or mentions feature gaps.