app-store-rejection-checker skill

Claude Code skill that audits an iOS app before App Store submission: guideline, code evidence, fix and confidence per finding.

  • 81 ★ on the repository
  • Last commit
  • MIT
Skill

Minimal access

Why this level

  • The skill reads repository files and fetches Apple guideline pages.
All reasons and checks

dabodamjan/app-store-rejection-checker

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add skills/app-store-rejection-checker

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Minimal accessThe tool runs nothing and makes no network calls.

  • The skill reads repository files and fetches Apple guideline pages.

This is third-party code. Review the repository files before installing.

What it does

The skill audits an iOS or iPadOS app repository and predicts what Apple may reject. Each finding gives the guideline number or upload validation, evidence from the code, a concrete fix and an honest confidence level. Every audit starts by fetching the current App Store Review Guidelines from Apple's site instead of a frozen list. Static checks cover purpose strings against linked APIs, the privacy manifest, entitlements, export compliance, purchases and restore, account deletion, App Tracking Transparency and web-wrapper fingerprints. The semantic part judges the description, differentiation, reviewer notes and consent before sharing data with third-party AI.

Who it is for. iOS developers before submitting a build for review, especially those who built the app with an agent and may have missed guideline items.

Good fit when

  • Before a release with sign-up, you must confirm that account deletion exists inside the app.
  • Purpose strings need checking against the APIs actually linked.
  • Subscriptions and in-app purchases need restore and disclosure checks.
  • For a category with hundreds of similar apps, check the differentiation rule against template output.

Not a fit when

  • The app is not for Apple platforms: the skill reads only App Store rules.
  • You need an approval guarantee: findings are a risk assessment and an Apple reviewer decides.
  • You need runtime checks: the skill does not see crashes, links or server-driven content.

Example request

Check this app for App Store rejection risks and show findings by guideline with evidence from the code.

Limitations

The skill sees the repository, the metadata you share and the live guidelines, but not runtime behavior: crashes, broken links, restore flows and server-driven content land in the unchecked list. Findings are risk assessments with a stated confidence and not verdicts, because people run the review. Fetching the guidelines needs a page-fetching or browser tool in the agent. The `allowed-tools` field in the skill format is experimental, so behavior may differ in other agents. The project is not affiliated with Apple.

How to disable. Delete the `app-store-rejection-checker` folder from `~/.claude/skills` or the project `.claude/skills`. If you installed it as a plugin, remove the plugin.

FAQ

How do I install the skill manually?

Run `git clone https://github.com/dabodamjan/app-store-rejection-checker.git`, then `mkdir -p ~/.claude/skills` and copy the skill folder with `cp -R`. For a single project use `.claude/skills/`.

Does the skill work outside Claude Code?

Yes, the format is open: Cursor, Codex CLI and Gemini CLI read such skills. Put the `skills/app-store-rejection-checker/` folder into the agent skills directory.

Where does the skill get the rules?

Each audit fetches the current App Store Review Guidelines from Apple's site and the bundled references serve as a supplement.

What should I paste for a fuller audit?

App Store Connect metadata: description, keywords, age rating, review notes and a demo account. The store listing is a rejection surface too.

What is rule 2.5.19?

Apple's October 2026 rule on hidden features: reviewer detection, features behind a switch and hidden entry points. The skill looks for such patterns in code.

Discussion

No questions or reviews yet.

Skills

A skill that scans an iOS or macOS project for common App Store rejection patterns before you submit

SkillExtended access1.4KRepository stars

A Claude Code plugin that audits a mobile app against App Store and Google Play review rules before submission.

PluginMinimal access106Repository stars

An agent checks Apple app code against every App Store guideline and shows what could trigger a rejection before you submit

SkillMinimal access451Repository stars

Claude Code skill that takes an iOS or Flutter app from archive and signing to App Store submission and review rejection recovery.

SkillBroad access144Repository stars

A guard hook before an App Store or Google Play submit finds critical rejection risks and blocks the command until they are fixed.

SkillExtended access425Repository stars

A CLI and Claude Code plugin that find App Store and Google Play rejection causes before you submit, citing the rule for each.

CLIMinimal access2.5KRepository stars

Comparison with similar tools

Cards that share the main search query, and how they differ.

ToolOfficialRepository starsMain difference
app-store-rejection-checker (this card)no81
App Store Review Skillno106a Claude Code plugin for App Store and Google Play; this skill is iOS-only and fetches fresh Apple rules each time
App Store Preflightno1,414a similar preflight before review; here the focus is repository evidence and a confidence rating per finding

README in short

The text covers installation through an agent request and manually, an example finding, a table of checked areas, honest limits and use with other agents. It closes with a comparison to fastlane precheck and other checkers.

README badge

Original SKILL.md

---
name: app-store-rejection-checker
description: Audits an iOS or iPadOS Xcode project and its App Store Connect metadata against the current App Store Review Guidelines and reports likely rejection risks, each tied to a guideline number with evidence, a fix, and a confidence level. Use before an App Store submission, or when the user mentions App Store review, app rejection, review guidelines, rejection risk, submission preflight, or asks whether their app will pass review.
license: MIT
compatibility: Needs network access to fetch the live App Store Review Guidelines. Designed for repositories containing an Xcode project or Swift package.
metadata:
  author: dabodamjan
  homepage: https://github.com/dabodamjan/app-store-rejection-checker
allowed-tools: Read Grep Glob Bash WebFetch WebSearch
---

# App Store review preflight

Audit the repository and the developer's App Store Connect metadata the way an App Review
reviewer would: read the actual code, the actual configuration, and the actual store copy,
then report what is likely to be rejected and why.

Non-negotiable output rules:

1. Every finding cites a specific guideline number (or names the automated upload
   validation) and states the evidence found in this repository or metadata.
2. Every finding carries a confidence level (defined in Step 6). Never present a
   judgment call as a certainty.
3. Never promise approval, estimate approval odds as a percentage, or invent statistics.
   Passing this audit reduces known risks; it does not guarantee anything.
4. The live guidelines text fetched in Step 1 is the authority. The bundled reference
   files are a map of the rejection landscape (verified 2026-10-17); on any conflict,
   the live text wins, and the report should note the discrepancy. When the live fetch
   truncates before a section, a finding may quote wording recovered via the Step 1
   web-search fallback instead, labeled as a secondary source.

## Step 1: fetch the live guidelines

Do this before running any checklist.

Fetch https://developer.apple.com/app-store/review/guidelines/ with WebFetch. The page is
long and fetch results may truncate near the end (section 5.4 and later). Fetch results
are typically cached per URL, so fetching again retrieves the same snapshot; what a
targeted prompt changes is which part of that snapshot gets extracted. Use targeted
prompts to pull each area out of the snapshot:

1. Sections 1 and 2 (Safety, Performance): ask for the subsection structure and any
   wording relevant to the app under audit.
2. Sections 3 and 4 (Business, Design): same.
3. Section 5 (Legal): same. If the result cuts off before 5.4, re-prompting will not

Report a problem