Handle App Store rejections, prepare submissions to avoid common rejection reasons, write Resolution Center responses, and navigate the appeal process. Use when user's app was rejected, is preparing for submission, or needs help with App Review.
npx skills add https://github.com/rshankras/claude-code-apple-skills --skill rejection-handler
Guide developers through handling App Store rejections — from understanding why the rejection happened, to crafting effective responses, to escalating when appropriate.
Use this skill when the user:
Before handling a rejection, load:
| File | Purpose |
|------|---------|
| common-rejections.md | Top 20 rejection reasons with fixes and response templates |
Run through this before submitting to avoid the most common rejections. Each item maps to a specific App Store Review Guideline.
When a user reports a rejection, gather:
Ask via AskUserQuestion:
Read common-rejections.md and match the cited guideline to the detailed breakdown. Determine:
Is the rejection objectively correct?
├── YES → Fix the issue and resubmit (Phase A)
└── NO → Did the reviewer misunderstand?
├── YES → Clarify with evidence (Phase B)
└── NO → Is it a subjective judgment call?
├── YES → Evaluate: fix or push back? (Phase C)
└── NO → Appeal (Phase D)
For clear violations (crashes, missing privacy policy, private API usage):
Response template (Fix and Resubmit):
Thank you for the review.
We've addressed the issue cited in Guideline [X.X]:
- [Specific change made]
- [How it was verified]
The updated build ([version] [build number]) has been submitted
for review.
Please let us know if you have any further questions.
For rejections based on misunderstanding:
Response template (Clarification):
Thank you for reviewing our app.
We'd like to provide additional context regarding Guideline [X.X].
[Clear explanation of how the feature/app works]
To demonstrate this:
1. [Step-by-step instructions to see the relevant feature]
2. [Step-by-step instructions continued]
[Optional: screenshot or video link]
We believe this addresses the concern raised. We're happy to
provide any additional information or make a call to discuss
further.
For "minimum functionality" (4.2), "spam" (4.3), or "design" (4.0) rejections, decide:
When to fix (usually the better path):
When to push back:
Response template (Pushing Back on Subjective Rejection):
Thank you for your feedback on our app.
We respectfully believe [App Name] provides meaningful
functionality as outlined in Guideline [X.X]:
1. [Core value proposition]
2. [Specific features that demonstrate depth]
3. [User benefit that differentiates from a simple website]
[App Name] is designed as a focused [type of app] that excels
at [specific purpose]. This intentional focus is a design
decision, not a limitation.
[Optional: "Similar apps like [X] and [Y] are available on the
App Store with comparable scope."]
We'd welcome the opportunity to discuss this further or
demonstrate the app's functionality in detail.
If Resolution Center responses don't resolve the issue, escalate.
If the Resolution Center reply doesn't resolve it:
If Level 1 and Level 2 fail:
Appeal writing tips:
Apple is usually right about:
Apple is sometimes wrong about:
Rule of thumb: If 3 people independently look at the rejection and all say "Apple has a point," fix the issue. If they all say "this seems wrong," push back with evidence.
| Scenario | Expected Timeline |
|----------|------------------|
| Initial submission | 1-3 days (24-48 hours typical) |
| Resubmission after rejection | 1-3 days |
| Expedited review request | Same day to 1 day |
| Resolution Center reply | 1-3 business days |
| Phone call request | 3-7 business days |
| App Review Board appeal | 5-14 business days |
Apple allows expedited review requests for:
Do NOT request expedited review for:
When handling a rejection, produce this assessment:
# Rejection Analysis: [App Name]
## Rejection Details
- **Guideline**: [X.X] - [Guideline Name]
- **Submission type**: Initial / Resubmission
- **Rejection message**: [Quoted text]
## Assessment
- **Category**: Objective violation / Subjective judgment / Possible error
- **Validity**: [Is Apple right? Partially right? Wrong?]
- **Recommended strategy**: Fix and resubmit / Clarify / Push back / Appeal
## Recommended Response
[Draft Resolution Center response]
## If Fixing: Action Items
1. [Specific change needed]
2. [Specific change needed]
3. [Verification step before resubmitting]
## If Appealing: Evidence to Prepare
- [Screenshot/video needed]
- [Comparable App Store precedent]
- [Guideline language to reference]
## Pre-Resubmission Checklist
- [ ] Issue addressed
- [ ] Tested on [device types]
- [ ] App Review notes updated
- [ ] Demo account credentials current
- [ ] Resolution Center response sent
release-review — Pre-release audit that catches rejection-causing issuessecurity/privacy-manifests — Privacy manifest complianceapp-store/app-description-writer — Metadata accuracy (prevents Guideline 2.3 rejections)monetization — IAP compliance guidance (prevents Guideline 3.1 rejections)Integration with protocols.io API for managing scientific protocols. This skill should be used when working with protocols.io to search, create, update, or publish protocols; manage protocol steps and materials; handle discussions and comments; organize workspaces; upload and manage files; or integrate protocols.io functionality into workflows. Applicable for protocol discovery, collaborative protocol development, experiment tracking, lab protocol management, and scientific documentation.
Analyzes job descriptions and generates tailored resumes that highlight relevant experience, skills, and achievements to maximize interview chances
Generate Excalidraw diagrams from natural language descriptions. Use when asked to "create a diagram", "make a flowchart", "visualize a process", "draw a system architecture", "create a mind map", or "generate an Excalidraw file". Supports flowcharts, relationship diagrams, mind maps, and system architecture diagrams. Outputs .excalidraw JSON files that can be opened directly in Excalidraw.
Build and distribute Expo development clients locally or via TestFlight
Use when you have a written implementation plan to execute in a separate session with review checkpoints
Data structure for annotated matrices in single-cell analysis. Use when working with .h5ad files or integrating with the scverse ecosystem. This is the data format skill—for analysis workflows use scanpy; for probabilistic models use scvi-tools; for population-scale queries use cellxgene-census.
Benchling R&D platform integration. Access registry (DNA, proteins), inventory, ELN entries, workflows via API, build Benchling Apps, query Data Warehouse, for lab data management automation.
Comprehensive molecular biology toolkit. Use for sequence manipulation, file parsing (FASTA/GenBank/PDB), phylogenetics, and programmatic NCBI/PubMed access (Bio.Entrez). Best for batch processing, custom bioinformatics pipelines, BLAST automation. For quick lookups use gget; for multi-service integration use bioservices.
Take rshankras/rejection-handler from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.