App Store Release Flow
rorkai/app-store-connect-cli-skills
Orchestrates App Store releases with the asc CLI: staging a version, uploading or building, publishing and submitting for review, with dry-run and confirmation gates.
Get an iOS/iPadOS app through App Store review and keep it there — preparing a submission, reading App Store Connect instead of guessing, answering a 2.1 information request, fixing a metadata…
$ npx skills add templetongroup/radiant --skill app-store-review -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install templetongroup/radiant app-store-review --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/templetongroup/radiant.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/app-store-review .claude/skills/app-store-review && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "app-store-review" agent skill from https://github.com/templetongroup/radiant/tree/master/.claude/skills/app-store-review into .claude/skills/app-store-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "app-store-review", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/templetongroup/radiant/tree/master/.claude/skills/app-store-reviewType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add templetongroup/radiant --skill app-store-review -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install templetongroup/radiant app-store-review --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/templetongroup/radiant.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/app-store-review .agents/skills/app-store-review && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "app-store-review" agent skill from https://github.com/templetongroup/radiant/tree/master/.claude/skills/app-store-review into .agents/skills/app-store-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "app-store-review", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add templetongroup/radiant --skill app-store-review -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install templetongroup/radiant app-store-review --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/templetongroup/radiant.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/app-store-review .cursor/skills/app-store-review && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "app-store-review" agent skill from https://github.com/templetongroup/radiant/tree/master/.claude/skills/app-store-review into .cursor/skills/app-store-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "app-store-review", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/templetongroup/radiant.git --path .claude/skills/app-store-review--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add templetongroup/radiant --skill app-store-review -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install templetongroup/radiant app-store-review --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/templetongroup/radiant.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/app-store-review .gemini/skills/app-store-review && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "app-store-review" agent skill from https://github.com/templetongroup/radiant/tree/master/.claude/skills/app-store-review into .gemini/skills/app-store-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "app-store-review", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install templetongroup/radiant app-store-reviewInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add templetongroup/radiant --skill app-store-review -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/templetongroup/radiant.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/app-store-review .github/skills/app-store-review && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "app-store-review" agent skill from https://github.com/templetongroup/radiant/tree/master/.claude/skills/app-store-review into .github/skills/app-store-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "app-store-review", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add templetongroup/radiant --skill app-store-review -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install templetongroup/radiant app-store-review --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/templetongroup/radiant.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/app-store-review .opencode/skills/app-store-review && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "app-store-review" agent skill from https://github.com/templetongroup/radiant/tree/master/.claude/skills/app-store-review into .opencode/skills/app-store-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "app-store-review", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
app-store-reviewGet an iOS/iPadOS app through App Store review and keep it there — preparing a submission, reading App Store Connect instead of guessing, answering a 2.1 information request, fixing a metadata…
App Store Review is an agent skill from templetongroup/radiant. Get an iOS/iPadOS app through App Store review and keep it there — preparing a submission, reading App Store Connect instead of guessing, answering a 2.1 information request, fixing a metadata rejection without a new build, and the App Store Connect traps that cost a round trip each. Use when the user says "submit to the App Store", "Apple rejected the app", "what's the status of the submission", "fill in TestFlight", "app privacy", "age rating", or anything about App Store Connect. Learned the hard way shipping…
Its SKILL.md is about 3.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files (for example `README.md`, `reference/checklist.md` and `reference/rejections.md`).
It sits in Mobile, covering App store release. It works with App Store Connect and iOS. The repository describes itself as: A local coding harness for Mac. Chat with coding agents across cloud and local models, watch every tool call in a live activity feed, and drive a real terminal — in one window… The licence is MIT.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 94838ca. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
appstoreconnect.apple.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
App Store Review loads about 3.8k tokens when it runs. Until then it costs about 158 tokens; SKILL.md has 2,380 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from templetongroup/radiant at commit 94838ca, republished under its MIT licence (© templetongroup). 2,380 words, ~3,836 tokens.
.claude/skills/app-store-review/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.This is a working protocol, not Apple's documentation. Every rule in it was paid for by a real round trip on a real app (Radiant for iPhone, 2026-08 to 2026-09). Where a rule looks paranoid, the reference files say what it cost.
It is model- and harness-agnostic. "Open App Store Connect" means: drive a browser if you have one, and otherwise write the exact steps for the user. Only the account holder can press Submit, reply to App Review, or upload a build — prepare everything, then hand over, and never report a step as done that you did not see finish.
The status of a submission lives in exactly one place:
https://appstoreconnect.apple.com/apps/<app id>/distribution/reviewsubmissionsNot in your notes, not in the last commit message, not in the project file's build number, not in what the user remembers. Every one of those went stale on Radiant — a status doc said "Waiting for Review" for nine days while the app had been REJECTED, and a whole day of work was done on a build that was not in the queue at all. Reading the page costs one navigation. Do it first, every time the task touches the submission, and write what you saw (status, build number, date) into whatever record you keep, dated.
Corollary: a prediction of why Apple will reject is worth nothing. Radiant's notes predicted guideline 1.2 twice; Apple raised 2.1, then 5.0.0 + 5.2.5. Do not build a fix for a rejection that has not happened.
Work through reference/checklist.md in full. The items that bite:
iPhone, iPad,
Apple, Mac). The description may mention them; the subtitle reads as
branding and is held to guideline 5.2.5.⚠️ THIS SECTION EXISTS BECAUSE THE SKILL DID NOT HAVE IT. Everything above gets a binary through review. None of it makes the app a product once it is on sale, and Radiant shipped 1.0 with no way to rate it — discovered a day after launch, by the owner, not by the checklist. His words: "not being able to rate the app is a crippling problem."
Review these before the first submission, because two of them cannot be fixed without another review cycle.
A rating prompt. Non-negotiable. Ratings are a ranking input, and a new app
has none. No ratings means no ranking means no downloads means no ratings —
the loop does not break on its own, and every week without the prompt is a week
of installs that could have left one and did not. Implement
AppStore.requestReview(in: scene) (iOS 18+), falling back to
SKStoreReviewController.requestReview(in: scene), and:
catch swallows it. strings -a <binary> | grep <ClassName> — do not trust BUILD SUCCEEDED.Keywords, or nobody finds it. 100 characters, comma-separated, no spaces after the commas (a space costs a character and buys nothing). Do not repeat words already in the name or subtitle — those are indexed and a repeat wastes the budget. No competitor brand names and no other companies' model names: the description is held to a looser standard than keywords, so name the models there instead. A day after Radiant launched it was findable at #17 for one narrow phrase and nowhere in the top 40 for anything else, including its own name — indexed, but ranking nowhere, which is the normal state of an app with no ratings and empty keywords.
Promotional text. 170 characters, sits above the description, and is the only listing field that can be changed at any time with no review. Not indexed for search, so it is for what changes — a new feature, a moment — not for keywords. Radiant shipped with it empty.
Then look at the app the way a stranger will, before the reviewer does: first launch with no data, the empty states, what the first sixty seconds asks of someone who has never seen it, and whether anything a new user hits first is half-built. A reviewer opens the app cold; so does every download.
| Status | Meaning | Do |
|---|---|---|
| Waiting for Review | in the queue | nothing; do not resubmit, do not touch the build |
| In Review | a person has it | nothing |
| Rejected — Information Needed (2.1) | not a violation; questions | answer in App Review and paste the answers into Review Notes; no button to press, the reply is the resubmission |
| Rejected — a guideline number | a finding | see step 3 |
| Pending Developer Release | approved, held | the user presses Release |
| Removed | you pulled it | a fresh submission is needed |
"Missing Test Information" is a TestFlight warning, not an App Store one. It
gates external TestFlight testing only and does not block review. It lives
under TestFlight → Test Information, a different tab with its own fields. Fill
it (it takes ten minutes; reference/checklist.md lists the fields), but do not
read it as a problem with the submission.
reference/rejections.md has the four Radiant rejections in full — the text,
the field, the fix, the buttons — including the one that needed a new build.
A submitted binary cannot be edited. Raise the build number (read it from the project file — it has drifted from every note that recorded it), archive, upload. While the state is Waiting for Review or In Review, use Remove this version from review first, attach the new build, submit again — that keeps the same version listing. Once it is Pending Developer Release or on sale, the new build is an update instead.
Being approved is not being found. Check where the app actually ranks
rather than assuming the store will surface it: itunes.apple.com/search? term=<...>&entity=software&country=us&limit=50 and look for your trackId,
and itunes.apple.com/lookup?id=<id> for what the listing really holds
(promotional text, release notes, screenshot counts, description). Search a few
terms including the app's own name. Found by developer name but not by app
name means it is indexed and ranking nowhere — a keywords and ratings problem,
not a propagation one. Do not report "the index hasn't caught up" without
measuring; that was said about Radiant and was wrong.
Nothing in the store updates itself. Metadata edits (promotional text, review notes, what's-new for the next version) do not need a build; the subtitle, name, screenshots and description are tied to a version and change with the next submission. Keep a list of "change on the next submission" items in your record — Radiant's is the subtitle — and put it in front of the user as part of the next build's checklist. Do not assume they remembered.
xcodebuild -exportArchive -archivePath <.xcarchive> -exportOptionsPlist <plist with destination: upload> -allowProvisioningUpdates uploads without
Xcode's GUI — but it reads the Apple ID from Xcode → Settings → Accounts.
"exportArchive Failed to Use Accounts" / "No Accounts" means nobody is signed
in on this Mac; the log also says "No signing certificate iOS Distribution
found", which is a red herring — once an account is signed in, cloud-managed
signing supplies the certificate and no local Distribution identity is needed.
Ask the user to sign in, rerun, look for "Upload succeeded" and
"EXPORT SUCCEEDED". Processing on Apple's side takes several minutes before
the build can be attached to a version.
.value = — the field stays empty and Save never enables. Click
and type, or set through the native value descriptor and dispatch input
then change. The TestFlight Beta App Description is a contenteditable
div, not a textarea; a querySelectorAll('textarea') sweep misses it.Apple asks for one when they cannot see the feature work (2.1). Rules that each cost a take on Radiant:
Keep one file in the repo (Radiant uses docs/APP_STORE_LISTING.md): every
metadata field's current text with its character count, the privacy answers and
why, the age rating answers and why, each rejection verbatim with the fix, and
a dated status line that says when it was last read from App Store Connect.
Headings that state a status go stale; prefer "checked 2026-09-10: Waiting for
Review, build 6" to "Waiting for Review".
It does not decide the product's content policy, it does not enrol the developer account, and it does not convert an Individual enrolment to an Organization (that is a D-U-N-S number plus a support request, and it updates the seller name on shipped apps without a resubmission — so it never blocks a release).
© templetongroup, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 4 other files in .claude/skills/app-store-review of templetongroup/radiant.
Open the folder on GitHubat commit 94838ca
App Store Review next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| App Store Review this skilltempletongroup/radiant | 113 | — | ~3.8k | Automated safety check: Pass | MIT | |
| App Store Release Flowrorkai/app-store-connect-cli-skills | 1.1k | 2 repos | ~2k | Automated safety check: Pass | MIT | |
| App Store Submission Healthrorkai/app-store-connect-cli-skills | 1.1k | 2 repos | ~2.2k | Automated safety check: Pass | MIT | |
| App Store Preflight Skillstruongduy2611/app-store-preflight-skills | 1.4k | — | ~1.4k | Automated safety check: Pass | MIT | |
| App Store Connect App Creatorrorkai/app-store-connect-cli-skills | 1.1k | 3 repos | ~1.5k | Automated safety check: Pass | MIT | |
| OdevioOdevio/Odevio-CLI | 423 | — | ~7.6k | Automated safety check: Pass | MIT |
rorkai/app-store-connect-cli-skills
Orchestrates App Store releases with the asc CLI: staging a version, uploading or building, publishing and submitting for review, with dry-run and confirmation gates.
rorkai/app-store-connect-cli-skills
Diagnoses why an App Store version cannot be submitted or is stuck in review, using the asc CLI for validation, repair routing, status checks and retry decisions.
truongduy2611/app-store-preflight-skills
Scan an iOS/macOS Xcode project for common App Store rejection patterns before submission.
rorkai/app-store-connect-cli-skills
Creates a new App Store Connect app record by driving the New App form through browser automation, for cases where no public API covers app creation.
Odevio/Odevio-CLI
Take a Flutter project to an iPhone or the App Store with Odevio - build, sign and publish iOS apps from Windows, Linux or macOS with no Mac and no Xcode.
ZestfulPulse/ios-app-store-submit
Build, sign, and submit a Flutter/iOS app to the App Store Connect — covers Xcode archive/export, code signing (including headless-Mac keychain workarounds), the asc CLI for App Store Connect…
templetongroup/radiant
A skill your agent uses to generate or audit design systems, check visual consistency, and review PRs that touch styling.
templetongroup/radiant
Design, redesign, build, audit, polish, and production-verify exceptional interfaces across web, mobile, and native apps.
templetongroup/radiant
Expert guidance for developing with the tinystruct Java framework.
templetongroup/radiant
Add x402 payment execution to AI agents with per-task budgets, spending controls, and non-custodial wallets.
templetongroup/radiant
Production-ready UI motion system for React/Next.js. An agent skill from templetongroup/radiant.
templetongroup/radiant
Read a plan document, decompose it into steps, design a per-step agent chain from the ECC catalogue, and emit ready-to-paste /orchestrate custom prompts.
Works with
Categories
Get an iOS/iPadOS app through App Store review and keep it there — preparing a submission, reading App Store Connect instead of guessing, answering a 2.1 information request, fixing a metadata…. App Store Review is an agent skill from templetongroup/radiant.1 information request, fixing a metadata rejection without a new build, and the App Store Connect traps that cost a round trip each.
App Store Review fits situations like: the user says submit to the App Store; apple rejected the app; whats the status of the submission; fill in TestFlight.
Run `npx skills add templetongroup/radiant --skill app-store-review -a claude-code`. Or copy the skill folder (.claude/skills/app-store-review in templetongroup/radiant) into .claude/skills/app-store-review in your project. Claude Code loads it when a task matches its description.
Run `npx skills add templetongroup/radiant --skill app-store-review -a codex`. Or copy the skill folder (.claude/skills/app-store-review in templetongroup/radiant) into .agents/skills/app-store-review in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add templetongroup/radiant --skill app-store-review -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/app-store-review, .gemini/skills/app-store-review, .github/skills/app-store-review and .opencode/skills/app-store-review in your project.
SKILL.md names no scripts, command-line tools or credentials: App Store Review is instructions for the agent only.
SKILL.md names 1 domain. As links in the text: appstoreconnect.apple.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
App Store Review is published under the MIT licence (from the LICENSE file in the skill folder). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.8k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with App Store Review: App Store Release Flow (rorkai/app-store-connect-cli-skills, 1.1k stars), App Store Submission Health (rorkai/app-store-connect-cli-skills, 1.1k stars), App Store Preflight Skills (truongduy2611/app-store-preflight-skills, 1.4k stars) and App Store Connect App Creator (rorkai/app-store-connect-cli-skills, 1.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
templetongroup (a GitHub user) maintains it in templetongroup/radiant, which has 113 GitHub stars. The repository holds 9 skills in this directory. The repository was last updated on October 6, 2026.
Source: templetongroup/radiant on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.