Appstore Release Skill banner
2sem 2sem

Appstore Release Skill

Design community

Description

Claude Code skill: ship an iOS release through the App Store Connect web UI when GitHub Actions CD is blocked (failed payment / spending limit / minutes), with per-locale patch notes verified by codepoint checksum.

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

README

appstore-release-skill

Ship an iOS release through the App Store Connect **web UI** when the GitHub Actions CD pipeline can't run, and monitor TestFlight processing when there's no build to submit yet.

Primary trigger — the job never starts, no step logs, just:

deploy
The job was not started because recent account payments have failed or your spending
limit needs to be increased. Please check the 'Billing & plans' section in your settings

Also covers: Actions disabled, macOS minutes exhausted, runner unavailable, stuck concurrency group, org policy block.

Extracted from a real 13-locale TalkTrans 2.3.0 submission.

Install

Claude Code picks up skills from `~/.claude/skills/` (user) or `.claude/skills/` (project):

git clone https://github.com/2sem/appstore-release-skill.git
ln -s "$PWD/appstore-release-skill" ~/.claude/skills/appstore-release-skill

Then `/appstore-release-skill`, or let it trigger on "CD is blocked, submit 2.3.0 manually" / "no build to submit, watch TestFlight".

Contents

Path What it is
SKILL.md The procedure: confirm the GitHub block → read version state → create/reconcile the version against the release branch → attach the build → fill patch notes per locale → checksum-verify → submit → repo bookkeeping
references/cd-fallback-triggers.md GitHub-limit vs real-build-failure table, gh commands, local archive + upload fallback
references/testflight-build-monitor.md processingState table, polling cadence, the no-build-at-all path
references/asc-web-playbook.md Locale label mapping, 2-call-per-locale browser loop, UI quirks, iris endpoints
scripts/verify_release_notes.py Codepoint length+sum diff of submitted text vs fastlane/metadata/*/release_notes.txt

Requirements

  • Claude in Chrome tools, with an App Store Connect session already signed in (the skill never enters credentials)
  • fastlane/metadata//release_notes.txt as the source of truth